@strapi/admin 5.0.0-alpha.1 → 5.0.0-alpha.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 (415) hide show
  1. package/dist/_chunks/{AdminSeatInfo-TjK5LW2b.js → AdminSeatInfo-JtsYpBbO.js} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-TjK5LW2b.js.map → AdminSeatInfo-JtsYpBbO.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-20pkL95U.mjs → AdminSeatInfo-ZZsKxX-S.mjs} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-20pkL95U.mjs.map → AdminSeatInfo-ZZsKxX-S.mjs.map} +1 -1
  5. package/dist/_chunks/{ApplicationInfoPage-ed6y9Q-B.mjs → ApplicationInfoPage-NhhWzHF1.mjs} +15 -15
  6. package/dist/_chunks/ApplicationInfoPage-NhhWzHF1.mjs.map +1 -0
  7. package/dist/_chunks/{ApplicationInfoPage-1OdKMDYH.js → ApplicationInfoPage-xj1SCaSR.js} +13 -13
  8. package/dist/_chunks/ApplicationInfoPage-xj1SCaSR.js.map +1 -0
  9. package/dist/_chunks/{AuthResponse-Hxop00n-.mjs → AuthResponse-jIqWZLMh.mjs} +2 -2
  10. package/dist/_chunks/{AuthResponse-Hxop00n-.mjs.map → AuthResponse-jIqWZLMh.mjs.map} +1 -1
  11. package/dist/_chunks/{AuthResponse-sca_wjIN.js → AuthResponse-maUe9KWA.js} +2 -2
  12. package/dist/_chunks/{AuthResponse-sca_wjIN.js.map → AuthResponse-maUe9KWA.js.map} +1 -1
  13. package/dist/_chunks/{AuthenticatedLayout-knXNB2i2.mjs → AuthenticatedLayout-Ffy6uoNF.mjs} +27 -22
  14. package/dist/_chunks/AuthenticatedLayout-Ffy6uoNF.mjs.map +1 -0
  15. package/dist/_chunks/{AuthenticatedLayout-PPlOm7kb.js → AuthenticatedLayout-kxORHKAl.js} +29 -25
  16. package/dist/_chunks/AuthenticatedLayout-kxORHKAl.js.map +1 -0
  17. package/dist/_chunks/{ComponentConfigurationPage-xZMDjeVf.js → ComponentConfigurationPage-JMCc1P7r.js} +12 -11
  18. package/dist/_chunks/ComponentConfigurationPage-JMCc1P7r.js.map +1 -0
  19. package/dist/_chunks/{ComponentConfigurationPage-okd3XovW.mjs → ComponentConfigurationPage-oiBCHXQO.mjs} +12 -11
  20. package/dist/_chunks/ComponentConfigurationPage-oiBCHXQO.mjs.map +1 -0
  21. package/dist/_chunks/{CreateActionEE-E6YNdAVx.js → CreateActionEE-ThopeFZP.js} +2 -2
  22. package/dist/_chunks/{CreateActionEE-E6YNdAVx.js.map → CreateActionEE-ThopeFZP.js.map} +1 -1
  23. package/dist/_chunks/{CreateActionEE-PaZYJ410.mjs → CreateActionEE-VMKfXSGW.mjs} +2 -2
  24. package/dist/_chunks/{CreateActionEE-PaZYJ410.mjs.map → CreateActionEE-VMKfXSGW.mjs.map} +1 -1
  25. package/dist/_chunks/{CreatePage-P1F3dkB3.mjs → CreatePage-6AeIanOF.mjs} +16 -17
  26. package/dist/_chunks/CreatePage-6AeIanOF.mjs.map +1 -0
  27. package/dist/_chunks/{CreatePage-PM_r99U5.mjs → CreatePage-Gh5xb10f.mjs} +9 -10
  28. package/dist/_chunks/CreatePage-Gh5xb10f.mjs.map +1 -0
  29. package/dist/_chunks/{CreatePage-hlkPO2Cv.js → CreatePage-JIHfFWS7.js} +3 -3
  30. package/dist/_chunks/{CreatePage-hlkPO2Cv.js.map → CreatePage-JIHfFWS7.js.map} +1 -1
  31. package/dist/_chunks/{CreatePage-1Oi4-aR6.js → CreatePage-WWKaoNH7.js} +16 -17
  32. package/dist/_chunks/CreatePage-WWKaoNH7.js.map +1 -0
  33. package/dist/_chunks/{CreatePage-6458K0l9.mjs → CreatePage-hxFhldpL.mjs} +3 -3
  34. package/dist/_chunks/{CreatePage-6458K0l9.mjs.map → CreatePage-hxFhldpL.mjs.map} +1 -1
  35. package/dist/_chunks/{CreatePage-DmNFNVN9.js → CreatePage-yjmy0z57.js} +9 -10
  36. package/dist/_chunks/CreatePage-yjmy0z57.js.map +1 -0
  37. package/dist/_chunks/{CreateView-AWmN1xWJ.js → CreateView-J48m0lSL.js} +3 -3
  38. package/dist/_chunks/{CreateView-AWmN1xWJ.js.map → CreateView-J48m0lSL.js.map} +1 -1
  39. package/dist/_chunks/{CreateView-hUH4bf5k.js → CreateView-Vqd1PVrJ.js} +3 -3
  40. package/dist/_chunks/{CreateView-hUH4bf5k.js.map → CreateView-Vqd1PVrJ.js.map} +1 -1
  41. package/dist/_chunks/{CreateView-cTvLLIgu.mjs → CreateView-oBp0NzJx.mjs} +3 -3
  42. package/dist/_chunks/{CreateView-cTvLLIgu.mjs.map → CreateView-oBp0NzJx.mjs.map} +1 -1
  43. package/dist/_chunks/{CreateView-pBI75ZwZ.mjs → CreateView-qzpeDBvR.mjs} +3 -3
  44. package/dist/_chunks/{CreateView-pBI75ZwZ.mjs.map → CreateView-qzpeDBvR.mjs.map} +1 -1
  45. package/dist/_chunks/{EditConfigurationPage-LItt0mJo.mjs → EditConfigurationPage-MAUfMzG6.mjs} +11 -10
  46. package/dist/_chunks/EditConfigurationPage-MAUfMzG6.mjs.map +1 -0
  47. package/dist/_chunks/{EditConfigurationPage-PZ4yq1bM.js → EditConfigurationPage-PKHUVKGD.js} +11 -10
  48. package/dist/_chunks/EditConfigurationPage-PKHUVKGD.js.map +1 -0
  49. package/dist/_chunks/{EditPage-W6hncyNY.js → EditPage-7bVupT7n.js} +15 -15
  50. package/dist/_chunks/EditPage-7bVupT7n.js.map +1 -0
  51. package/dist/_chunks/{EditPage-MPNLCYgQ.mjs → EditPage-DQUZsl8H.mjs} +16 -17
  52. package/dist/_chunks/EditPage-DQUZsl8H.mjs.map +1 -0
  53. package/dist/_chunks/{EditPage-mU2WAH0F.js → EditPage-Hxt5uBXk.js} +10 -11
  54. package/dist/_chunks/EditPage-Hxt5uBXk.js.map +1 -0
  55. package/dist/_chunks/{EditPage-30rqjB1d.mjs → EditPage-Izmz7bdh.mjs} +16 -16
  56. package/dist/_chunks/EditPage-Izmz7bdh.mjs.map +1 -0
  57. package/dist/_chunks/{EditPage-_N_lm93z.js → EditPage-QA0-S3kV.js} +14 -15
  58. package/dist/_chunks/EditPage-QA0-S3kV.js.map +1 -0
  59. package/dist/_chunks/{EditPage--EPGgPNr.mjs → EditPage-THSaM4-0.mjs} +10 -11
  60. package/dist/_chunks/EditPage-THSaM4-0.mjs.map +1 -0
  61. package/dist/_chunks/{EditPage-RpzlPkkU.js → EditPage-vUQIn3OJ.js} +18 -19
  62. package/dist/_chunks/{EditPage-RpzlPkkU.js.map → EditPage-vUQIn3OJ.js.map} +1 -1
  63. package/dist/_chunks/{EditPage-GRIZWtGz.mjs → EditPage-zpnfFOjc.mjs} +18 -19
  64. package/dist/_chunks/{EditPage-GRIZWtGz.mjs.map → EditPage-zpnfFOjc.mjs.map} +1 -1
  65. package/dist/_chunks/{EditView-wDP9PNQY.js → EditView-63ynF0vf.js} +12 -13
  66. package/dist/_chunks/EditView-63ynF0vf.js.map +1 -0
  67. package/dist/_chunks/{EditView-0lXpbgG0.mjs → EditView-cfOpTlAi.mjs} +14 -15
  68. package/dist/_chunks/EditView-cfOpTlAi.mjs.map +1 -0
  69. package/dist/_chunks/{EditViewPage-0Pd8zBi7.js → EditViewPage--SujdXIG.js} +16 -18
  70. package/dist/_chunks/EditViewPage--SujdXIG.js.map +1 -0
  71. package/dist/_chunks/{EditViewPage-R6diW-gL.mjs → EditViewPage-JFzIJClS.mjs} +6 -7
  72. package/dist/_chunks/EditViewPage-JFzIJClS.mjs.map +1 -0
  73. package/dist/_chunks/{EditViewPage-ed0-10GO.js → EditViewPage-kkCJlZyh.js} +8 -9
  74. package/dist/_chunks/EditViewPage-kkCJlZyh.js.map +1 -0
  75. package/dist/_chunks/{EditViewPage-uWYR_o8w.mjs → EditViewPage-vz8UJ4U_.mjs} +17 -18
  76. package/dist/_chunks/EditViewPage-vz8UJ4U_.mjs.map +1 -0
  77. package/dist/_chunks/{EventsTable-R_AHW6Z4.js → EventsTable-1X4uyY8J.js} +2 -2
  78. package/dist/_chunks/{EventsTable-R_AHW6Z4.js.map → EventsTable-1X4uyY8J.js.map} +1 -1
  79. package/dist/_chunks/{EventsTable-CqN6AzV9.mjs → EventsTable-dN2MNNFu.mjs} +2 -2
  80. package/dist/_chunks/{EventsTable-CqN6AzV9.mjs.map → EventsTable-dN2MNNFu.mjs.map} +1 -1
  81. package/dist/_chunks/{FieldTypeIcon-rAK1gg9p.mjs → FieldTypeIcon-4-UZzZla.mjs} +2 -2
  82. package/dist/_chunks/{FieldTypeIcon-rAK1gg9p.mjs.map → FieldTypeIcon-4-UZzZla.mjs.map} +1 -1
  83. package/dist/_chunks/{FieldTypeIcon-1WDWx0cR.js → FieldTypeIcon-wxfhExw2.js} +2 -2
  84. package/dist/_chunks/{FieldTypeIcon-1WDWx0cR.js.map → FieldTypeIcon-wxfhExw2.js.map} +1 -1
  85. package/dist/_chunks/{Filters-rPaxqj4F.mjs → Filters--lh-i85A.mjs} +2 -3
  86. package/dist/_chunks/Filters--lh-i85A.mjs.map +1 -0
  87. package/dist/_chunks/{Filters-f6ghLf0Z.js → Filters-V0VODaNk.js} +4 -5
  88. package/dist/_chunks/Filters-V0VODaNk.js.map +1 -0
  89. package/dist/_chunks/{Form-eqzCPjSo.js → Form-6QJjWK34.js} +5 -6
  90. package/dist/_chunks/Form-6QJjWK34.js.map +1 -0
  91. package/dist/_chunks/{Form-QOZA9Aq6.mjs → Form-HXiNxSZi.mjs} +5 -6
  92. package/dist/_chunks/Form-HXiNxSZi.mjs.map +1 -0
  93. package/dist/_chunks/{History-Eq4_WQPf.mjs → History-CRGqDfHr.mjs} +4 -5
  94. package/dist/_chunks/History-CRGqDfHr.mjs.map +1 -0
  95. package/dist/_chunks/{History-j00hpmXV.js → History-R_4lEy01.js} +9 -10
  96. package/dist/_chunks/History-R_4lEy01.js.map +1 -0
  97. package/dist/_chunks/{HomePage-gTElgmEK.mjs → HomePage-GJRtRqAj.mjs} +3 -3
  98. package/dist/_chunks/{HomePage-gTElgmEK.mjs.map → HomePage-GJRtRqAj.mjs.map} +1 -1
  99. package/dist/_chunks/{HomePage-O-TRGX5T.mjs → HomePage-Si17pjt5.mjs} +5 -6
  100. package/dist/_chunks/HomePage-Si17pjt5.mjs.map +1 -0
  101. package/dist/_chunks/{HomePage-3IVOMrYf.js → HomePage-oiaJD-JE.js} +5 -6
  102. package/dist/_chunks/HomePage-oiaJD-JE.js.map +1 -0
  103. package/dist/_chunks/{HomePage-79fqDlve.js → HomePage-rEW7Jpww.js} +3 -3
  104. package/dist/_chunks/{HomePage-79fqDlve.js.map → HomePage-rEW7Jpww.js.map} +1 -1
  105. package/dist/_chunks/{InputRenderer-bJwYq9ga.mjs → InputRenderer-JfwBoJk0.mjs} +40 -18
  106. package/dist/_chunks/InputRenderer-JfwBoJk0.mjs.map +1 -0
  107. package/dist/_chunks/{InputRenderer-AVDw8MeU.js → InputRenderer-hWILsDgK.js} +42 -20
  108. package/dist/_chunks/InputRenderer-hWILsDgK.js.map +1 -0
  109. package/dist/_chunks/{InstalledPluginsPage-R2hVFPZl.mjs → InstalledPluginsPage-XqzfeZgq.mjs} +7 -9
  110. package/dist/_chunks/InstalledPluginsPage-XqzfeZgq.mjs.map +1 -0
  111. package/dist/_chunks/{InstalledPluginsPage-FkR2xkQz.js → InstalledPluginsPage-ao6yYe7N.js} +6 -8
  112. package/dist/_chunks/InstalledPluginsPage-ao6yYe7N.js.map +1 -0
  113. package/dist/_chunks/{Layout-omCNy92r.mjs → Layout-2dctwEHz.mjs} +2 -2
  114. package/dist/_chunks/{Layout-omCNy92r.mjs.map → Layout-2dctwEHz.mjs.map} +1 -1
  115. package/dist/_chunks/{Layout-cV6Se3U9.mjs → Layout-3sYAgWn4.mjs} +6 -6
  116. package/dist/_chunks/Layout-3sYAgWn4.mjs.map +1 -0
  117. package/dist/_chunks/{Layout-jweb3cF3.js → Layout-4vMUN0Ez.js} +2 -2
  118. package/dist/_chunks/{Layout-jweb3cF3.js.map → Layout-4vMUN0Ez.js.map} +1 -1
  119. package/dist/_chunks/{Layout-G49-Vc5u.js → Layout-kbqdKkiF.js} +5 -5
  120. package/dist/_chunks/Layout-kbqdKkiF.js.map +1 -0
  121. package/dist/_chunks/{ListConfigurationPage-70qtv4Ci.js → ListConfigurationPage-BXuW_9Wt.js} +10 -11
  122. package/dist/_chunks/ListConfigurationPage-BXuW_9Wt.js.map +1 -0
  123. package/dist/_chunks/{ListConfigurationPage-PrJNO_6y.mjs → ListConfigurationPage-lPILAPkW.mjs} +10 -11
  124. package/dist/_chunks/ListConfigurationPage-lPILAPkW.mjs.map +1 -0
  125. package/dist/_chunks/{ListPage-78Cv8Vfq.js → ListPage-02WM7Pt9.js} +11 -12
  126. package/dist/_chunks/ListPage-02WM7Pt9.js.map +1 -0
  127. package/dist/_chunks/{ListPage-2lswUYQN.js → ListPage-7TAp-q4k.js} +15 -16
  128. package/dist/_chunks/ListPage-7TAp-q4k.js.map +1 -0
  129. package/dist/_chunks/{ListPage-edro79m2.mjs → ListPage-EdOy02-v.mjs} +11 -12
  130. package/dist/_chunks/ListPage-EdOy02-v.mjs.map +1 -0
  131. package/dist/_chunks/{ListPage-mAUCZIg8.mjs → ListPage-OaldiDCh.mjs} +57 -59
  132. package/dist/_chunks/ListPage-OaldiDCh.mjs.map +1 -0
  133. package/dist/_chunks/{ListPage-Q81SX0vA.mjs → ListPage-R8Qs69v7.mjs} +3 -3
  134. package/dist/_chunks/{ListPage-Q81SX0vA.mjs.map → ListPage-R8Qs69v7.mjs.map} +1 -1
  135. package/dist/_chunks/{ListPage-Cvn3WbMH.mjs → ListPage-SCTNGhhO.mjs} +16 -17
  136. package/dist/_chunks/ListPage-SCTNGhhO.mjs.map +1 -0
  137. package/dist/_chunks/{ListPage-xFkcmM1b.mjs → ListPage-YZ45BiMe.mjs} +17 -18
  138. package/dist/_chunks/ListPage-YZ45BiMe.mjs.map +1 -0
  139. package/dist/_chunks/{ListPage-7dZ3nYvc.js → ListPage-ZWUo77nT.js} +55 -56
  140. package/dist/_chunks/ListPage-ZWUo77nT.js.map +1 -0
  141. package/dist/_chunks/{ListPage-Ms6egnF5.js → ListPage-bE4a6YkV.js} +3 -3
  142. package/dist/_chunks/{ListPage-Ms6egnF5.js.map → ListPage-bE4a6YkV.js.map} +1 -1
  143. package/dist/_chunks/{ListPage-NmUS_cOz.mjs → ListPage-p17R2Gql.mjs} +14 -18
  144. package/dist/_chunks/ListPage-p17R2Gql.mjs.map +1 -0
  145. package/dist/_chunks/{ListPage-Pf5LxUYn.js → ListPage-rCVvOLlD.js} +14 -20
  146. package/dist/_chunks/ListPage-rCVvOLlD.js.map +1 -0
  147. package/dist/_chunks/{ListPage-yymh17qi.js → ListPage-u6uVacPz.js} +14 -15
  148. package/dist/_chunks/ListPage-u6uVacPz.js.map +1 -0
  149. package/dist/_chunks/{ListView--43zLiHW.mjs → ListView--O7X6dMw.mjs} +13 -14
  150. package/dist/_chunks/ListView--O7X6dMw.mjs.map +1 -0
  151. package/dist/_chunks/{ListView-YtMAQnXL.js → ListView-SsUn5vcn.js} +11 -12
  152. package/dist/_chunks/ListView-SsUn5vcn.js.map +1 -0
  153. package/dist/_chunks/{ListView-nfA6o3qO.js → ListView-ZkjwQBXQ.js} +10 -11
  154. package/dist/_chunks/ListView-ZkjwQBXQ.js.map +1 -0
  155. package/dist/_chunks/{ListView-qPiKeCxj.mjs → ListView-oP-C8SCR.mjs} +12 -13
  156. package/dist/_chunks/ListView-oP-C8SCR.mjs.map +1 -0
  157. package/dist/_chunks/{ListViewPage-fPFonK_X.mjs → ListViewPage-1VNVP9Rw.mjs} +12 -13
  158. package/dist/_chunks/ListViewPage-1VNVP9Rw.mjs.map +1 -0
  159. package/dist/_chunks/{ListViewPage-Ys7-G2XX.js → ListViewPage-idgrhBAP.js} +16 -17
  160. package/dist/_chunks/ListViewPage-idgrhBAP.js.map +1 -0
  161. package/dist/_chunks/{Login-Ge3DZEpr.js → Login-4Igrm6CC.js} +2 -2
  162. package/dist/_chunks/{Login-Ge3DZEpr.js.map → Login-4Igrm6CC.js.map} +1 -1
  163. package/dist/_chunks/{Login-6kXI90Vy.mjs → Login-B55AM-7k.mjs} +2 -2
  164. package/dist/_chunks/{Login-6kXI90Vy.mjs.map → Login-B55AM-7k.mjs.map} +1 -1
  165. package/dist/_chunks/{MagicLinkEE-HXWaLr0K.mjs → MagicLinkEE-Zy_9ZZ7y.mjs} +3 -3
  166. package/dist/_chunks/{MagicLinkEE-HXWaLr0K.mjs.map → MagicLinkEE-Zy_9ZZ7y.mjs.map} +1 -1
  167. package/dist/_chunks/{MagicLinkEE-sXtA2gUK.js → MagicLinkEE-v7xTuVEA.js} +3 -3
  168. package/dist/_chunks/{MagicLinkEE-sXtA2gUK.js.map → MagicLinkEE-v7xTuVEA.js.map} +1 -1
  169. package/dist/_chunks/{MarketplacePage-hVOJ9_0k.mjs → MarketplacePage-UGys0LVN.mjs} +20 -17
  170. package/dist/_chunks/MarketplacePage-UGys0LVN.mjs.map +1 -0
  171. package/dist/_chunks/{MarketplacePage-s8KDwNwK.js → MarketplacePage-tWKM5xe8.js} +22 -19
  172. package/dist/_chunks/MarketplacePage-tWKM5xe8.js.map +1 -0
  173. package/dist/_chunks/{NoContentTypePage-szvJnQKF.mjs → NoContentTypePage-BaaTD5uB.mjs} +4 -6
  174. package/dist/_chunks/NoContentTypePage-BaaTD5uB.mjs.map +1 -0
  175. package/dist/_chunks/{NoContentTypePage-7YEcgsE3.js → NoContentTypePage-Lbuve_Uu.js} +3 -5
  176. package/dist/_chunks/NoContentTypePage-Lbuve_Uu.js.map +1 -0
  177. package/dist/_chunks/{NoPermissionsPage-pqQFFlXa.mjs → NoPermissionsPage--Oa97N7k.mjs} +5 -7
  178. package/dist/_chunks/NoPermissionsPage--Oa97N7k.mjs.map +1 -0
  179. package/dist/_chunks/{NoPermissionsPage-UX-5msLb.js → NoPermissionsPage-q44k5VFX.js} +3 -5
  180. package/dist/_chunks/NoPermissionsPage-q44k5VFX.js.map +1 -0
  181. package/dist/_chunks/{Permissions-a0IZJ8dM.js → Permissions-CFuwI0Ni.js} +5 -6
  182. package/dist/_chunks/Permissions-CFuwI0Ni.js.map +1 -0
  183. package/dist/_chunks/{Permissions-NUaDxULo.mjs → Permissions-NbmBkSB4.mjs} +3 -3
  184. package/dist/_chunks/Permissions-NbmBkSB4.mjs.map +1 -0
  185. package/dist/_chunks/{PrivateRoute-eP4-pBby.mjs → PrivateRoute-YN_98pM_.mjs} +2 -2
  186. package/dist/_chunks/{PrivateRoute-eP4-pBby.mjs.map → PrivateRoute-YN_98pM_.mjs.map} +1 -1
  187. package/dist/_chunks/{PrivateRoute-KGxyTa5b.js → PrivateRoute-avlq1MEy.js} +2 -2
  188. package/dist/_chunks/{PrivateRoute-KGxyTa5b.js.map → PrivateRoute-avlq1MEy.js.map} +1 -1
  189. package/dist/_chunks/{ProfilePage-MBCGqbc_.js → ProfilePage-brPbqDP1.js} +14 -16
  190. package/dist/_chunks/ProfilePage-brPbqDP1.js.map +1 -0
  191. package/dist/_chunks/{ProfilePage-LXB-_EZ8.mjs → ProfilePage-eCIvxxJY.mjs} +15 -17
  192. package/dist/_chunks/ProfilePage-eCIvxxJY.mjs.map +1 -0
  193. package/dist/_chunks/{ReviewWorkflowsColumn-Ancp7-x3.js → ReviewWorkflowsColumn-HfjzpLFU.js} +2 -2
  194. package/dist/_chunks/{ReviewWorkflowsColumn-Ancp7-x3.js.map → ReviewWorkflowsColumn-HfjzpLFU.js.map} +1 -1
  195. package/dist/_chunks/{ReviewWorkflowsColumn-WzYpj2O3.mjs → ReviewWorkflowsColumn-sPZxvFUd.mjs} +2 -2
  196. package/dist/_chunks/{ReviewWorkflowsColumn-WzYpj2O3.mjs.map → ReviewWorkflowsColumn-sPZxvFUd.mjs.map} +1 -1
  197. package/dist/_chunks/{SelectRoles-Pr2wqehq.js → SelectRoles-BmNzL0q5.js} +9 -7
  198. package/dist/_chunks/SelectRoles-BmNzL0q5.js.map +1 -0
  199. package/dist/_chunks/{SelectRoles-Dxz_rAaT.mjs → SelectRoles-jvH4WUf6.mjs} +8 -6
  200. package/dist/_chunks/SelectRoles-jvH4WUf6.mjs.map +1 -0
  201. package/dist/_chunks/{SingleSignOnPage-4dK4id8H.js → SingleSignOnPage-ZyiHtZxJ.js} +10 -11
  202. package/dist/_chunks/SingleSignOnPage-ZyiHtZxJ.js.map +1 -0
  203. package/dist/_chunks/{SingleSignOnPage-gxgIeURz.mjs → SingleSignOnPage-aMd3wcAh.mjs} +12 -13
  204. package/dist/_chunks/SingleSignOnPage-aMd3wcAh.mjs.map +1 -0
  205. package/dist/_chunks/{Table-NiTkS4IC.mjs → Table-591I_RMU.mjs} +2 -3
  206. package/dist/_chunks/Table-591I_RMU.mjs.map +1 -0
  207. package/dist/_chunks/{Table-_9gVkGGi.js → Table-aUfykqgd.js} +3 -4
  208. package/dist/_chunks/Table-aUfykqgd.js.map +1 -0
  209. package/dist/_chunks/{TokenTypeSelect-jtfCyMMZ.mjs → TokenTypeSelect-vIBdBE9t.mjs} +9 -10
  210. package/dist/_chunks/TokenTypeSelect-vIBdBE9t.mjs.map +1 -0
  211. package/dist/_chunks/{TokenTypeSelect-3aWUm1cW.js → TokenTypeSelect-vp-54yBv.js} +10 -11
  212. package/dist/_chunks/TokenTypeSelect-vp-54yBv.js.map +1 -0
  213. package/dist/_chunks/{UseCasePage-QK-B8FfM.js → UseCasePage-0_alQEc9.js} +6 -7
  214. package/dist/_chunks/UseCasePage-0_alQEc9.js.map +1 -0
  215. package/dist/_chunks/{UseCasePage-0qXYZ8kt.mjs → UseCasePage-Cxu2FeWo.mjs} +6 -7
  216. package/dist/_chunks/UseCasePage-Cxu2FeWo.mjs.map +1 -0
  217. package/dist/_chunks/{apiTokens-TayNdk_V.js → apiTokens-IG3rF-G2.js} +2 -2
  218. package/dist/_chunks/{apiTokens-TayNdk_V.js.map → apiTokens-IG3rF-G2.js.map} +1 -1
  219. package/dist/_chunks/{apiTokens-DO6vkoyd.mjs → apiTokens-wLmJ3Liv.mjs} +2 -2
  220. package/dist/_chunks/{apiTokens-DO6vkoyd.mjs.map → apiTokens-wLmJ3Liv.mjs.map} +1 -1
  221. package/dist/_chunks/{constants-_T5uxsuv.mjs → constants-0OGkpIzK.mjs} +3 -3
  222. package/dist/_chunks/{constants-_T5uxsuv.mjs.map → constants-0OGkpIzK.mjs.map} +1 -1
  223. package/dist/_chunks/{constants-RZp8o_c4.js → constants-7yqqXq3r.js} +2 -2
  224. package/dist/_chunks/{constants-RZp8o_c4.js.map → constants-7yqqXq3r.js.map} +1 -1
  225. package/dist/_chunks/{constants-FEW7x2Od.mjs → constants-JgR8CVx2.mjs} +2 -2
  226. package/dist/_chunks/{constants-FEW7x2Od.mjs.map → constants-JgR8CVx2.mjs.map} +1 -1
  227. package/dist/_chunks/{constants-Xd-X3SCR.js → constants-XJLrl2Tl.js} +3 -3
  228. package/dist/_chunks/{constants-Xd-X3SCR.js.map → constants-XJLrl2Tl.js.map} +1 -1
  229. package/dist/_chunks/{index-hjUhNUvw.mjs → index-GIVuHJgC.mjs} +647 -312
  230. package/dist/_chunks/index-GIVuHJgC.mjs.map +1 -0
  231. package/dist/_chunks/{index-ejSDPT-T.js → index-haHGOQMJ.js} +553 -218
  232. package/dist/_chunks/index-haHGOQMJ.js.map +1 -0
  233. package/dist/_chunks/{selectors-uLWxH-jN.mjs → selectors--2Vzk8PA.mjs} +2 -2
  234. package/dist/_chunks/{selectors-uLWxH-jN.mjs.map → selectors--2Vzk8PA.mjs.map} +1 -1
  235. package/dist/_chunks/{selectors-T2YIN4Fb.js → selectors-NSSzzIzx.js} +2 -2
  236. package/dist/_chunks/{selectors-T2YIN4Fb.js.map → selectors-NSSzzIzx.js.map} +1 -1
  237. package/dist/_chunks/{transferTokens-jdkk-sPx.mjs → transferTokens-WIsWKVbF.mjs} +2 -2
  238. package/dist/_chunks/{transferTokens-jdkk-sPx.mjs.map → transferTokens-WIsWKVbF.mjs.map} +1 -1
  239. package/dist/_chunks/{transferTokens-T-kGMb3U.js → transferTokens-xL4mlopP.js} +2 -2
  240. package/dist/_chunks/{transferTokens-T-kGMb3U.js.map → transferTokens-xL4mlopP.js.map} +1 -1
  241. package/dist/_chunks/{useAdminRoles-QJQS1BCd.mjs → useAdminRoles--ozrdfW_.mjs} +2 -2
  242. package/dist/_chunks/{useAdminRoles-QJQS1BCd.mjs.map → useAdminRoles--ozrdfW_.mjs.map} +1 -1
  243. package/dist/_chunks/{useAdminRoles-SnzC_mvy.js → useAdminRoles-Y25Pjlcy.js} +2 -2
  244. package/dist/_chunks/{useAdminRoles-SnzC_mvy.js.map → useAdminRoles-Y25Pjlcy.js.map} +1 -1
  245. package/dist/_chunks/{useContentTypes-Lpg-eJmK.js → useContentTypes-Vr8jkHQL.js} +4 -5
  246. package/dist/_chunks/useContentTypes-Vr8jkHQL.js.map +1 -0
  247. package/dist/_chunks/{useContentTypes-U-n1-lz0.mjs → useContentTypes-ralhLmpD.mjs} +4 -5
  248. package/dist/_chunks/useContentTypes-ralhLmpD.mjs.map +1 -0
  249. package/dist/_chunks/{useLicenseLimitNotification-yJHxF4YO.mjs → useLicenseLimitNotification-RSTkqcfW.mjs} +5 -6
  250. package/dist/_chunks/useLicenseLimitNotification-RSTkqcfW.mjs.map +1 -0
  251. package/dist/_chunks/{useLicenseLimitNotification-Hjv_LKmp.js → useLicenseLimitNotification-fSsffVh-.js} +5 -6
  252. package/dist/_chunks/useLicenseLimitNotification-fSsffVh-.js.map +1 -0
  253. package/dist/_chunks/{useReviewWorkflows-0rQx2KxS.mjs → useReviewWorkflows--7WPIykR.mjs} +2 -2
  254. package/dist/_chunks/{useReviewWorkflows-0rQx2KxS.mjs.map → useReviewWorkflows--7WPIykR.mjs.map} +1 -1
  255. package/dist/_chunks/{useReviewWorkflows-QoSEilRp.js → useReviewWorkflows-4t3eVbDa.js} +2 -2
  256. package/dist/_chunks/{useReviewWorkflows-QoSEilRp.js.map → useReviewWorkflows-4t3eVbDa.js.map} +1 -1
  257. package/dist/_chunks/{useSyncRbac-hZJWbmmY.js → useSyncRbac-Fw5UPeMQ.js} +2 -2
  258. package/dist/_chunks/{useSyncRbac-hZJWbmmY.js.map → useSyncRbac-Fw5UPeMQ.js.map} +1 -1
  259. package/dist/_chunks/{useSyncRbac-wVgN6XIc.mjs → useSyncRbac-JNQibLFa.mjs} +2 -2
  260. package/dist/_chunks/{useSyncRbac-wVgN6XIc.mjs.map → useSyncRbac-JNQibLFa.mjs.map} +1 -1
  261. package/dist/_chunks/{useWebhooks-1ZG0V0Mc.js → useWebhooks-IXb4Ks8E.js} +2 -2
  262. package/dist/_chunks/{useWebhooks-1ZG0V0Mc.js.map → useWebhooks-IXb4Ks8E.js.map} +1 -1
  263. package/dist/_chunks/{useWebhooks-WBwti5Jl.mjs → useWebhooks-sfNt0r3v.mjs} +2 -2
  264. package/dist/_chunks/{useWebhooks-WBwti5Jl.mjs.map → useWebhooks-sfNt0r3v.mjs.map} +1 -1
  265. package/dist/_chunks/{validateWorkflow-23kb45Oa.mjs → validateWorkflow-YRBggwod.mjs} +5 -6
  266. package/dist/_chunks/validateWorkflow-YRBggwod.mjs.map +1 -0
  267. package/dist/_chunks/{validateWorkflow-MaEpFiHz.js → validateWorkflow-akFNValJ.js} +8 -9
  268. package/dist/_chunks/validateWorkflow-akFNValJ.js.map +1 -0
  269. package/dist/_chunks/{validation-7cD0kJHF.js → validation--QPWqn0e.js} +2 -2
  270. package/dist/_chunks/{validation-7cD0kJHF.js.map → validation--QPWqn0e.js.map} +1 -1
  271. package/dist/_chunks/{validation-rilbXPnt.mjs → validation-hlioQ0PO.mjs} +2 -2
  272. package/dist/_chunks/{validation-rilbXPnt.mjs.map → validation-hlioQ0PO.mjs.map} +1 -1
  273. package/dist/admin/index.js +7 -1
  274. package/dist/admin/index.js.map +1 -1
  275. package/dist/admin/index.mjs +28 -22
  276. package/dist/admin/src/components/PageHelpers.d.ts +6 -2
  277. package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +1 -1
  278. package/dist/admin/src/content-manager/history/tests/mockData.d.ts +692 -0
  279. package/dist/admin/src/content-manager/history/tests/server.d.ts +3 -0
  280. package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +2 -1
  281. package/dist/admin/src/content-manager/services/api.d.ts +1 -1
  282. package/dist/admin/src/content-manager/services/components.d.ts +2 -2
  283. package/dist/admin/src/content-manager/services/contentTypes.d.ts +3 -3
  284. package/dist/admin/src/content-manager/services/documents.d.ts +17 -20
  285. package/dist/admin/src/content-manager/services/init.d.ts +1 -1
  286. package/dist/admin/src/content-manager/services/relations.d.ts +2 -2
  287. package/dist/admin/src/content-manager/services/uid.d.ts +3 -3
  288. package/dist/admin/src/core/store/configure.d.ts +2 -2
  289. package/dist/admin/src/core/store/hooks.d.ts +3 -3
  290. package/dist/admin/src/features/AppInfo.d.ts +22 -0
  291. package/dist/admin/src/features/Notifications.d.ts +47 -0
  292. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +4 -3
  293. package/dist/admin/src/hooks/useClipboard.d.ts +4 -0
  294. package/dist/admin/src/hooks/useFetchClient.d.ts +43 -0
  295. package/dist/admin/src/hooks/useFocusInputField.d.ts +20 -0
  296. package/dist/admin/src/hooks/useQueryParams.d.ts +5 -0
  297. package/dist/admin/src/index.d.ts +8 -4
  298. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +1 -1
  299. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  300. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  301. package/dist/admin/src/selectors.d.ts +2 -2
  302. package/dist/admin/src/utils/baseQuery.d.ts +1 -1
  303. package/dist/admin/src/utils/getFetchClient.d.ts +30 -0
  304. package/dist/admin/src/utils/getYupInnerErrors.d.ts +7 -0
  305. package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -2
  306. package/dist/admin/src/utils/users.d.ts +1 -1
  307. package/dist/admin/tests/index.js +49173 -0
  308. package/dist/admin/tests/index.js.map +1 -0
  309. package/dist/admin/tests/index.mjs +49135 -0
  310. package/dist/admin/tests/index.mjs.map +1 -0
  311. package/dist/admin/tests/mockData.d.ts +2053 -0
  312. package/dist/admin/tests/server.d.ts +2 -0
  313. package/dist/admin/tests/setup.d.ts +1 -0
  314. package/dist/admin/tests/store.d.ts +468 -0
  315. package/dist/admin/tests/utils.d.ts +511 -0
  316. package/dist/server/src/validation/api-tokens.d.ts +4 -27
  317. package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
  318. package/dist/server/src/validation/authentication/register.d.ts +2 -8
  319. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  320. package/dist/server/src/validation/permission.d.ts +4 -53
  321. package/dist/server/src/validation/permission.d.ts.map +1 -1
  322. package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -7
  323. package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
  324. package/dist/server/src/validation/role.d.ts +6 -23
  325. package/dist/server/src/validation/role.d.ts.map +1 -1
  326. package/dist/server/src/validation/transfer/token.d.ts +4 -23
  327. package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
  328. package/dist/server/src/validation/user.d.ts +8 -56
  329. package/dist/server/src/validation/user.d.ts.map +1 -1
  330. package/package.json +12 -12
  331. package/dist/_chunks/ApplicationInfoPage-1OdKMDYH.js.map +0 -1
  332. package/dist/_chunks/ApplicationInfoPage-ed6y9Q-B.mjs.map +0 -1
  333. package/dist/_chunks/AuthenticatedLayout-PPlOm7kb.js.map +0 -1
  334. package/dist/_chunks/AuthenticatedLayout-knXNB2i2.mjs.map +0 -1
  335. package/dist/_chunks/ComponentConfigurationPage-okd3XovW.mjs.map +0 -1
  336. package/dist/_chunks/ComponentConfigurationPage-xZMDjeVf.js.map +0 -1
  337. package/dist/_chunks/CreatePage-1Oi4-aR6.js.map +0 -1
  338. package/dist/_chunks/CreatePage-DmNFNVN9.js.map +0 -1
  339. package/dist/_chunks/CreatePage-P1F3dkB3.mjs.map +0 -1
  340. package/dist/_chunks/CreatePage-PM_r99U5.mjs.map +0 -1
  341. package/dist/_chunks/EditConfigurationPage-LItt0mJo.mjs.map +0 -1
  342. package/dist/_chunks/EditConfigurationPage-PZ4yq1bM.js.map +0 -1
  343. package/dist/_chunks/EditPage--EPGgPNr.mjs.map +0 -1
  344. package/dist/_chunks/EditPage-30rqjB1d.mjs.map +0 -1
  345. package/dist/_chunks/EditPage-MPNLCYgQ.mjs.map +0 -1
  346. package/dist/_chunks/EditPage-W6hncyNY.js.map +0 -1
  347. package/dist/_chunks/EditPage-_N_lm93z.js.map +0 -1
  348. package/dist/_chunks/EditPage-mU2WAH0F.js.map +0 -1
  349. package/dist/_chunks/EditView-0lXpbgG0.mjs.map +0 -1
  350. package/dist/_chunks/EditView-wDP9PNQY.js.map +0 -1
  351. package/dist/_chunks/EditViewPage-0Pd8zBi7.js.map +0 -1
  352. package/dist/_chunks/EditViewPage-R6diW-gL.mjs.map +0 -1
  353. package/dist/_chunks/EditViewPage-ed0-10GO.js.map +0 -1
  354. package/dist/_chunks/EditViewPage-uWYR_o8w.mjs.map +0 -1
  355. package/dist/_chunks/Filters-f6ghLf0Z.js.map +0 -1
  356. package/dist/_chunks/Filters-rPaxqj4F.mjs.map +0 -1
  357. package/dist/_chunks/Form-QOZA9Aq6.mjs.map +0 -1
  358. package/dist/_chunks/Form-eqzCPjSo.js.map +0 -1
  359. package/dist/_chunks/History-Eq4_WQPf.mjs.map +0 -1
  360. package/dist/_chunks/History-j00hpmXV.js.map +0 -1
  361. package/dist/_chunks/HomePage-3IVOMrYf.js.map +0 -1
  362. package/dist/_chunks/HomePage-O-TRGX5T.mjs.map +0 -1
  363. package/dist/_chunks/InputRenderer-AVDw8MeU.js.map +0 -1
  364. package/dist/_chunks/InputRenderer-bJwYq9ga.mjs.map +0 -1
  365. package/dist/_chunks/InstalledPluginsPage-FkR2xkQz.js.map +0 -1
  366. package/dist/_chunks/InstalledPluginsPage-R2hVFPZl.mjs.map +0 -1
  367. package/dist/_chunks/Layout-G49-Vc5u.js.map +0 -1
  368. package/dist/_chunks/Layout-cV6Se3U9.mjs.map +0 -1
  369. package/dist/_chunks/ListConfigurationPage-70qtv4Ci.js.map +0 -1
  370. package/dist/_chunks/ListConfigurationPage-PrJNO_6y.mjs.map +0 -1
  371. package/dist/_chunks/ListPage-2lswUYQN.js.map +0 -1
  372. package/dist/_chunks/ListPage-78Cv8Vfq.js.map +0 -1
  373. package/dist/_chunks/ListPage-7dZ3nYvc.js.map +0 -1
  374. package/dist/_chunks/ListPage-Cvn3WbMH.mjs.map +0 -1
  375. package/dist/_chunks/ListPage-NmUS_cOz.mjs.map +0 -1
  376. package/dist/_chunks/ListPage-Pf5LxUYn.js.map +0 -1
  377. package/dist/_chunks/ListPage-edro79m2.mjs.map +0 -1
  378. package/dist/_chunks/ListPage-mAUCZIg8.mjs.map +0 -1
  379. package/dist/_chunks/ListPage-xFkcmM1b.mjs.map +0 -1
  380. package/dist/_chunks/ListPage-yymh17qi.js.map +0 -1
  381. package/dist/_chunks/ListView--43zLiHW.mjs.map +0 -1
  382. package/dist/_chunks/ListView-YtMAQnXL.js.map +0 -1
  383. package/dist/_chunks/ListView-nfA6o3qO.js.map +0 -1
  384. package/dist/_chunks/ListView-qPiKeCxj.mjs.map +0 -1
  385. package/dist/_chunks/ListViewPage-Ys7-G2XX.js.map +0 -1
  386. package/dist/_chunks/ListViewPage-fPFonK_X.mjs.map +0 -1
  387. package/dist/_chunks/MarketplacePage-hVOJ9_0k.mjs.map +0 -1
  388. package/dist/_chunks/MarketplacePage-s8KDwNwK.js.map +0 -1
  389. package/dist/_chunks/NoContentTypePage-7YEcgsE3.js.map +0 -1
  390. package/dist/_chunks/NoContentTypePage-szvJnQKF.mjs.map +0 -1
  391. package/dist/_chunks/NoPermissionsPage-UX-5msLb.js.map +0 -1
  392. package/dist/_chunks/NoPermissionsPage-pqQFFlXa.mjs.map +0 -1
  393. package/dist/_chunks/Permissions-NUaDxULo.mjs.map +0 -1
  394. package/dist/_chunks/Permissions-a0IZJ8dM.js.map +0 -1
  395. package/dist/_chunks/ProfilePage-LXB-_EZ8.mjs.map +0 -1
  396. package/dist/_chunks/ProfilePage-MBCGqbc_.js.map +0 -1
  397. package/dist/_chunks/SelectRoles-Dxz_rAaT.mjs.map +0 -1
  398. package/dist/_chunks/SelectRoles-Pr2wqehq.js.map +0 -1
  399. package/dist/_chunks/SingleSignOnPage-4dK4id8H.js.map +0 -1
  400. package/dist/_chunks/SingleSignOnPage-gxgIeURz.mjs.map +0 -1
  401. package/dist/_chunks/Table-NiTkS4IC.mjs.map +0 -1
  402. package/dist/_chunks/Table-_9gVkGGi.js.map +0 -1
  403. package/dist/_chunks/TokenTypeSelect-3aWUm1cW.js.map +0 -1
  404. package/dist/_chunks/TokenTypeSelect-jtfCyMMZ.mjs.map +0 -1
  405. package/dist/_chunks/UseCasePage-0qXYZ8kt.mjs.map +0 -1
  406. package/dist/_chunks/UseCasePage-QK-B8FfM.js.map +0 -1
  407. package/dist/_chunks/index-ejSDPT-T.js.map +0 -1
  408. package/dist/_chunks/index-hjUhNUvw.mjs.map +0 -1
  409. package/dist/_chunks/useContentTypes-Lpg-eJmK.js.map +0 -1
  410. package/dist/_chunks/useContentTypes-U-n1-lz0.mjs.map +0 -1
  411. package/dist/_chunks/useLicenseLimitNotification-Hjv_LKmp.js.map +0 -1
  412. package/dist/_chunks/useLicenseLimitNotification-yJHxF4YO.mjs.map +0 -1
  413. package/dist/_chunks/validateWorkflow-23kb45Oa.mjs.map +0 -1
  414. package/dist/_chunks/validateWorkflow-MaEpFiHz.js.map +0 -1
  415. package/dist/admin/src/types/errors.d.ts +0 -2
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
- const helperPlugin = require("@strapi/helper-plugin");
6
5
  const reactHelmet = require("react-helmet");
6
+ const reactIntl = require("react-intl");
7
7
  const reactRouterDom = require("react-router-dom");
8
- const index = require("./index-ejSDPT-T.js");
9
- const Form = require("./Form-eqzCPjSo.js");
8
+ const index = require("./index-haHGOQMJ.js");
9
+ const Form = require("./Form-6QJjWK34.js");
10
10
  function _interopNamespace(e) {
11
11
  if (e && e.__esModule)
12
12
  return e;
@@ -51,7 +51,8 @@ const componentsApi = index.contentManagerApi.injectEndpoints({
51
51
  const { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } = componentsApi;
52
52
  const ComponentConfigurationPage = () => {
53
53
  const { slug: model } = reactRouterDom.useParams();
54
- const toggleNotification = helperPlugin.useNotification();
54
+ const { toggleNotification } = index.useNotification();
55
+ const { formatMessage } = reactIntl.useIntl();
55
56
  const { _unstableFormatAPIError: formatAPIError } = index.useAPIErrorHandler();
56
57
  const {
57
58
  components,
@@ -88,7 +89,7 @@ const ComponentConfigurationPage = () => {
88
89
  React__namespace.useEffect(() => {
89
90
  if (errorSchema) {
90
91
  toggleNotification({
91
- type: "warning",
92
+ type: "danger",
92
93
  message: formatAPIError(errorSchema)
93
94
  });
94
95
  }
@@ -102,7 +103,7 @@ const ComponentConfigurationPage = () => {
102
103
  React__namespace.useEffect(() => {
103
104
  if (error) {
104
105
  toggleNotification({
105
- type: "warning",
106
+ type: "danger",
106
107
  message: formatAPIError(error)
107
108
  });
108
109
  }
@@ -158,18 +159,18 @@ const ComponentConfigurationPage = () => {
158
159
  if ("data" in res) {
159
160
  toggleNotification({
160
161
  type: "success",
161
- message: { id: "notification.success.saved", defaultMessage: "Saved" }
162
+ message: formatMessage({ id: "notification.success.saved", defaultMessage: "Saved" })
162
163
  });
163
164
  } else {
164
165
  toggleNotification({
165
- type: "warning",
166
+ type: "danger",
166
167
  message: formatAPIError(res.error)
167
168
  });
168
169
  }
169
170
  } catch {
170
171
  toggleNotification({
171
- type: "warning",
172
- message: { id: "notification.error", defaultMessage: "An error occurred" }
172
+ type: "danger",
173
+ message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
173
174
  });
174
175
  }
175
176
  };
@@ -251,4 +252,4 @@ const ProtectedComponentConfigurationPage = () => {
251
252
  };
252
253
  exports.ComponentConfigurationPage = ComponentConfigurationPage;
253
254
  exports.ProtectedComponentConfigurationPage = ProtectedComponentConfigurationPage;
254
- //# sourceMappingURL=ComponentConfigurationPage-xZMDjeVf.js.map
255
+ //# sourceMappingURL=ComponentConfigurationPage-JMCc1P7r.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentConfigurationPage-JMCc1P7r.js","sources":["../../admin/src/content-manager/services/components.ts","../../admin/src/content-manager/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n Contracts.Components.FindComponentConfiguration.Response['data'],\n Contracts.Components.FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: Contracts.Components.FindComponentConfiguration.Response) =>\n response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: Contracts.Components.UpdateComponentConfiguration.Response) =>\n response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { Page } from '../../components/PageHelpers';\nimport { useTypedSelector } from '../../core/store/hooks';\nimport { useNotification } from '../../features/Notifications';\nimport { useAPIErrorHandler } from '../../hooks/useAPIErrorHandler';\nimport { setIn } from '../../utils/objects';\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(\n data?.component.metadatas ?? {}\n ).reduce<Contracts.ContentTypes.Metadatas>((acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n }, {});\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Helmet title={`Configure ${editLayout.settings.displayName} Edit View | Strapi`} />\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: Contracts.Components.FindComponentConfiguration.Response['data'],\n {\n schema,\n components,\n }: { schema?: Contracts.Components.Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["contentManagerApi","useParams","useNotification","useIntl","useAPIErrorHandler","useGetInitialDataQuery","schema","components","extractContentTypeComponents","fieldSizes","React","DEFAULT_SETTINGS","TEMP_FIELD_NAME","setIn","jsx","Page","jsxs","Fragment","Helmet","ConfigurationForm","convertEditLayoutToFieldLayouts","useTypedSelector"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { useNotification } from "@strapi/helper-plugin";
4
3
  import { Helmet } from "react-helmet";
4
+ import { useIntl } from "react-intl";
5
5
  import { useParams } from "react-router-dom";
6
- import { aA as contentManagerApi, o as useTypedSelector, P as Page, m as useAPIErrorHandler, aX as useGetInitialDataQuery, aY as extractContentTypeComponents, aZ as DEFAULT_SETTINGS, a_ as convertEditLayoutToFieldLayouts, aW as setIn } from "./index-hjUhNUvw.mjs";
7
- import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from "./Form-QOZA9Aq6.mjs";
6
+ import { aF as contentManagerApi, q as useTypedSelector, P as Page, u as useNotification, o as useAPIErrorHandler, b1 as useGetInitialDataQuery, b2 as extractContentTypeComponents, b3 as DEFAULT_SETTINGS, b4 as convertEditLayoutToFieldLayouts, b0 as setIn } from "./index-GIVuHJgC.mjs";
7
+ import { C as ConfigurationForm, T as TEMP_FIELD_NAME } from "./Form-HXiNxSZi.mjs";
8
8
  const componentsApi = contentManagerApi.injectEndpoints({
9
9
  endpoints: (builder) => ({
10
10
  getComponentConfiguration: builder.query({
@@ -30,7 +30,8 @@ const componentsApi = contentManagerApi.injectEndpoints({
30
30
  const { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } = componentsApi;
31
31
  const ComponentConfigurationPage = () => {
32
32
  const { slug: model } = useParams();
33
- const toggleNotification = useNotification();
33
+ const { toggleNotification } = useNotification();
34
+ const { formatMessage } = useIntl();
34
35
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
35
36
  const {
36
37
  components,
@@ -67,7 +68,7 @@ const ComponentConfigurationPage = () => {
67
68
  React.useEffect(() => {
68
69
  if (errorSchema) {
69
70
  toggleNotification({
70
- type: "warning",
71
+ type: "danger",
71
72
  message: formatAPIError(errorSchema)
72
73
  });
73
74
  }
@@ -81,7 +82,7 @@ const ComponentConfigurationPage = () => {
81
82
  React.useEffect(() => {
82
83
  if (error) {
83
84
  toggleNotification({
84
- type: "warning",
85
+ type: "danger",
85
86
  message: formatAPIError(error)
86
87
  });
87
88
  }
@@ -137,18 +138,18 @@ const ComponentConfigurationPage = () => {
137
138
  if ("data" in res) {
138
139
  toggleNotification({
139
140
  type: "success",
140
- message: { id: "notification.success.saved", defaultMessage: "Saved" }
141
+ message: formatMessage({ id: "notification.success.saved", defaultMessage: "Saved" })
141
142
  });
142
143
  } else {
143
144
  toggleNotification({
144
- type: "warning",
145
+ type: "danger",
145
146
  message: formatAPIError(res.error)
146
147
  });
147
148
  }
148
149
  } catch {
149
150
  toggleNotification({
150
- type: "warning",
151
- message: { id: "notification.error", defaultMessage: "An error occurred" }
151
+ type: "danger",
152
+ message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
152
153
  });
153
154
  }
154
155
  };
@@ -232,4 +233,4 @@ export {
232
233
  ComponentConfigurationPage,
233
234
  ProtectedComponentConfigurationPage
234
235
  };
235
- //# sourceMappingURL=ComponentConfigurationPage-okd3XovW.mjs.map
236
+ //# sourceMappingURL=ComponentConfigurationPage-oiBCHXQO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentConfigurationPage-oiBCHXQO.mjs","sources":["../../admin/src/content-manager/services/components.ts","../../admin/src/content-manager/pages/ComponentConfigurationPage.tsx"],"sourcesContent":["import { contentManagerApi } from './api';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\nconst componentsApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getComponentConfiguration: builder.query<\n Contracts.Components.FindComponentConfiguration.Response['data'],\n Contracts.Components.FindComponentConfiguration.Params['uid']\n >({\n query: (uid) => `/content-manager/components/${uid}/configuration`,\n transformResponse: (response: Contracts.Components.FindComponentConfiguration.Response) =>\n response.data,\n providesTags: (_result, _error, uid) => [{ type: 'ComponentConfiguration', id: uid }],\n }),\n updateComponentConfiguration: builder.mutation({\n query: ({ uid, ...body }) => ({\n url: `/content-manager/components/${uid}/configuration`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: Contracts.Components.UpdateComponentConfiguration.Response) =>\n response.data,\n invalidatesTags: (_result, _error, { uid }) => [\n { type: 'ComponentConfiguration', id: uid },\n // otherwise layouts already fetched will have stale component configuration data.\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n});\n\nconst { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation } =\n componentsApi;\n\nexport { useGetComponentConfigurationQuery, useUpdateComponentConfigurationMutation };\n","import * as React from 'react';\n\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { Page } from '../../components/PageHelpers';\nimport { useTypedSelector } from '../../core/store/hooks';\nimport { useNotification } from '../../features/Notifications';\nimport { useAPIErrorHandler } from '../../hooks/useAPIErrorHandler';\nimport { setIn } from '../../utils/objects';\nimport { TEMP_FIELD_NAME } from '../components/ConfigurationForm/Fields';\nimport { ConfigurationForm, ConfigurationFormProps } from '../components/ConfigurationForm/Form';\nimport { ComponentsDictionary, extractContentTypeComponents } from '../hooks/useContentTypeSchema';\nimport {\n DEFAULT_SETTINGS,\n EditLayout,\n convertEditLayoutToFieldLayouts,\n} from '../hooks/useDocumentLayout';\nimport {\n useGetComponentConfigurationQuery,\n useUpdateComponentConfigurationMutation,\n} from '../services/components';\nimport { useGetInitialDataQuery } from '../services/init';\n\nimport type { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * ComponentConfigurationPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComponentConfigurationPage = () => {\n /**\n * useDocumentLayout only works for documents, not components,\n * it feels weird to make that hook work for both when this is SUCH\n * a unique use case and we only do it here, so in short, we essentially\n * just extracted the logic to make an edit view layout and reproduced it here.\n */\n const { slug: model } = useParams<{ slug: string }>();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const {\n components,\n fieldSizes,\n schema,\n error: errorSchema,\n isLoading: isLoadingSchema,\n isFetching: isFetchingSchema,\n } = useGetInitialDataQuery(undefined, {\n selectFromResult: (res) => {\n const schema = res.data?.components.find((ct) => ct.uid === model);\n\n const componentsByKey = res.data?.components.reduce<ComponentsDictionary>(\n (acc, component) => {\n acc[component.uid] = component;\n\n return acc;\n },\n {}\n );\n\n const components = extractContentTypeComponents(schema?.attributes, componentsByKey);\n\n const fieldSizes = Object.entries(res.data?.fieldSizes ?? {}).reduce<\n ConfigurationFormProps['fieldSizes']\n >((acc, [attributeName, { default: size }]) => {\n acc[attributeName] = size;\n\n return acc;\n }, {});\n\n return {\n isFetching: res.isFetching,\n isLoading: res.isLoading,\n error: res.error,\n components,\n schema,\n fieldSizes,\n };\n },\n });\n\n React.useEffect(() => {\n if (errorSchema) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(errorSchema),\n });\n }\n }, [errorSchema, formatAPIError, toggleNotification]);\n\n const {\n data,\n isLoading: isLoadingConfig,\n isFetching: isFetchingConfig,\n error,\n } = useGetComponentConfigurationQuery(model ?? '');\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n /**\n * you **must** check if we're loading or fetching in case the component gets new props\n * but nothing was unmounted, it then becomes a fetch, not a load.\n */\n const isLoading = isLoadingConfig || isLoadingSchema || isFetchingConfig || isFetchingSchema;\n\n const editLayout = React.useMemo(\n () =>\n data && !isLoading\n ? formatEditLayout(data, { schema, components })\n : ({\n layout: [],\n components: {},\n metadatas: {},\n options: {},\n settings: DEFAULT_SETTINGS,\n } as EditLayout),\n [data, isLoading, schema, components]\n );\n\n const [updateConfiguration] = useUpdateComponentConfigurationMutation();\n const handleSubmit: ConfigurationFormProps['onSubmit'] = async (formData) => {\n try {\n /**\n * We reconstruct the metadatas object by taking the existing list metadatas\n * and re-merging that by attribute name with the current list metadatas, whilst overwriting\n * the data from the form we've built.\n */\n const meta = Object.entries(\n data?.component.metadatas ?? {}\n ).reduce<Contracts.ContentTypes.Metadatas>((acc, [name, { edit, list }]) => {\n const {\n __temp_key__,\n size: _size,\n name: _name,\n ...editedMetadata\n } = formData.layout.flatMap((row) => row.children).find((field) => field.name === name) ??\n {};\n\n acc[name] = {\n edit: {\n ...edit,\n ...editedMetadata,\n },\n list,\n };\n\n return acc;\n }, {});\n\n const res = await updateConfiguration({\n layouts: {\n edit: formData.layout.map((row) =>\n row.children.reduce<Array<{ name: string; size: number }>>((acc, { name, size }) => {\n if (name !== TEMP_FIELD_NAME) {\n return [...acc, { name, size }];\n }\n\n return acc;\n }, [])\n ),\n list: data?.component.layouts.list,\n },\n settings: setIn(formData.settings, 'displayName', undefined),\n metadatas: meta,\n uid: model,\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || errorSchema || !schema) {\n return <Page.Error />;\n }\n\n return (\n <>\n <Helmet title={`Configure ${editLayout.settings.displayName} Edit View | Strapi`} />\n <ConfigurationForm\n onSubmit={handleSubmit}\n attributes={schema.attributes}\n fieldSizes={fieldSizes}\n layout={editLayout}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatEditLayout = (\n data: Contracts.Components.FindComponentConfiguration.Response['data'],\n {\n schema,\n components,\n }: { schema?: Contracts.Components.Component; components: ComponentsDictionary }\n) => {\n const editAttributes = convertEditLayoutToFieldLayouts(\n data.component.layouts.edit,\n schema?.attributes,\n data.component.metadatas,\n { configurations: data.components, schemas: components }\n );\n\n const componentEditAttributes = Object.entries(data.components).reduce<EditLayout['components']>(\n (acc, [uid, configuration]) => {\n acc[uid] = {\n layout: convertEditLayoutToFieldLayouts(\n configuration.layouts.edit,\n components[uid].attributes,\n configuration.metadatas\n ),\n settings: {\n ...configuration.settings,\n icon: components[uid].info.icon,\n displayName: components[uid].info.displayName,\n },\n };\n return acc;\n },\n {}\n );\n\n const editMetadatas = Object.entries(data.component.metadatas).reduce<EditLayout['metadatas']>(\n (acc, [attribute, metadata]) => {\n return {\n ...acc,\n [attribute]: metadata.edit,\n };\n },\n {}\n );\n\n return {\n layout: [editAttributes],\n components: componentEditAttributes,\n metadatas: editMetadatas,\n options: {\n ...schema?.options,\n ...schema?.pluginOptions,\n },\n settings: {\n ...data.component.settings,\n displayName: schema?.info.displayName,\n },\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedComponentConfigurationPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.componentsConfigurations\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ComponentConfigurationPage />\n </Page.Protect>\n );\n};\n\nexport { ComponentConfigurationPage, ProtectedComponentConfigurationPage };\n"],"names":["schema","components","fieldSizes"],"mappings":"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"}
@@ -5,7 +5,7 @@ const designSystem = require("@strapi/design-system");
5
5
  const Icons = require("@strapi/icons");
6
6
  const isNil = require("lodash/isNil");
7
7
  const reactIntl = require("react-intl");
8
- const index = require("./index-ejSDPT-T.js");
8
+ const index = require("./index-haHGOQMJ.js");
9
9
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
10
10
  const isNil__default = /* @__PURE__ */ _interopDefault(isNil);
11
11
  const CreateActionEE = ({ onClick }) => {
@@ -52,4 +52,4 @@ const CreateActionEE = ({ onClick }) => {
52
52
  ] });
53
53
  };
54
54
  exports.CreateActionEE = CreateActionEE;
55
- //# sourceMappingURL=CreateActionEE-E6YNdAVx.js.map
55
+ //# sourceMappingURL=CreateActionEE-ThopeFZP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateActionEE-E6YNdAVx.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.tsx"],"sourcesContent":["import { Button, Flex, Icon, Tooltip } from '@strapi/design-system';\nimport { Envelop, ExclamationMarkCircle } from '@strapi/icons';\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\n\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nimport type { CreateActionCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE';\n\nexport const CreateActionEE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n\n const { permittedSeats, shouldStopCreate } = license ?? {};\n\n if (isError || isLoading) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n {!isNil(permittedSeats) && shouldStopCreate && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n position=\"left\"\n >\n <Icon\n width={`${14 / 16}rem`}\n height={`${14 / 16}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n <Button\n data-testid=\"create-user-button\"\n onClick={onClick}\n startIcon={<Envelop />}\n size=\"S\"\n disabled={shouldStopCreate}\n >\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n </Flex>\n );\n};\n"],"names":["useIntl","useLicenseLimits","jsxs","Flex","isNil","jsx","Tooltip","Icon","ExclamationMarkCircle","Button","Envelop"],"mappings":";;;;;;;;;;AASO,MAAM,iBAAiB,CAAC,EAAE,cAAmC;AAC5D,QAAA,EAAE,kBAAkBA,UAAAA;AAC1B,QAAM,EAAE,SAAS,SAAS,cAAcC,MAAiB,iBAAA;AAEzD,QAAM,EAAE,gBAAgB,qBAAqB,WAAW,CAAA;AAExD,MAAI,WAAW,WAAW;AACjB,WAAA;AAAA,EACT;AAGE,SAAAC,2BAAA,KAACC,aAAK,MAAA,EAAA,KAAK,GACR,UAAA;AAAA,IAAC,CAAAC,uBAAM,cAAc,KAAK,oBACzBC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,aAAa,cAAc;AAAA,UACzB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,UAAS;AAAA,QAET,UAAAD,2BAAA;AAAA,UAACE,aAAA;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,KAAK,EAAE;AAAA,YACjB,QAAQ,GAAG,KAAK,EAAE;AAAA,YAClB,OAAM;AAAA,YACN,IAAIC,MAAA;AAAA,UAAA;AAAA,QACN;AAAA,MAAA;AAAA,IACF;AAAA,IAEFH,2BAAA;AAAA,MAACI,aAAA;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ;AAAA,QACA,0CAAYC,MAAQ,SAAA,EAAA;AAAA,QACpB,MAAK;AAAA,QACL,UAAU;AAAA,QAET,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"CreateActionEE-ThopeFZP.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.tsx"],"sourcesContent":["import { Button, Flex, Icon, Tooltip } from '@strapi/design-system';\nimport { Envelop, ExclamationMarkCircle } from '@strapi/icons';\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\n\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nimport type { CreateActionCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE';\n\nexport const CreateActionEE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n\n const { permittedSeats, shouldStopCreate } = license ?? {};\n\n if (isError || isLoading) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n {!isNil(permittedSeats) && shouldStopCreate && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n position=\"left\"\n >\n <Icon\n width={`${14 / 16}rem`}\n height={`${14 / 16}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n <Button\n data-testid=\"create-user-button\"\n onClick={onClick}\n startIcon={<Envelop />}\n size=\"S\"\n disabled={shouldStopCreate}\n >\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n </Flex>\n );\n};\n"],"names":["useIntl","useLicenseLimits","jsxs","Flex","isNil","jsx","Tooltip","Icon","ExclamationMarkCircle","Button","Envelop"],"mappings":";;;;;;;;;;AASO,MAAM,iBAAiB,CAAC,EAAE,cAAmC;AAC5D,QAAA,EAAE,kBAAkBA,UAAAA;AAC1B,QAAM,EAAE,SAAS,SAAS,cAAcC,MAAiB,iBAAA;AAEzD,QAAM,EAAE,gBAAgB,qBAAqB,WAAW,CAAA;AAExD,MAAI,WAAW,WAAW;AACjB,WAAA;AAAA,EACT;AAGE,SAAAC,2BAAA,KAACC,aAAK,MAAA,EAAA,KAAK,GACR,UAAA;AAAA,IAAC,CAAAC,uBAAM,cAAc,KAAK,oBACzBC,2BAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,aAAa,cAAc;AAAA,UACzB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,UAAS;AAAA,QAET,UAAAD,2BAAA;AAAA,UAACE,aAAA;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,KAAK,EAAE;AAAA,YACjB,QAAQ,GAAG,KAAK,EAAE;AAAA,YAClB,OAAM;AAAA,YACN,IAAIC,MAAA;AAAA,UAAA;AAAA,QACN;AAAA,MAAA;AAAA,IACF;AAAA,IAEFH,2BAAA;AAAA,MAACI,aAAA;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ;AAAA,QACA,0CAAYC,MAAQ,SAAA,EAAA;AAAA,QACpB,MAAK;AAAA,QACL,UAAU;AAAA,QAET,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ;;"}
@@ -3,7 +3,7 @@ import { Flex, Tooltip, Icon, Button } from "@strapi/design-system";
3
3
  import { ExclamationMarkCircle, Envelop } from "@strapi/icons";
4
4
  import isNil from "lodash/isNil";
5
5
  import { useIntl } from "react-intl";
6
- import { C as useLicenseLimits } from "./index-hjUhNUvw.mjs";
6
+ import { J as useLicenseLimits } from "./index-GIVuHJgC.mjs";
7
7
  const CreateActionEE = ({ onClick }) => {
8
8
  const { formatMessage } = useIntl();
9
9
  const { license, isError, isLoading } = useLicenseLimits();
@@ -50,4 +50,4 @@ const CreateActionEE = ({ onClick }) => {
50
50
  export {
51
51
  CreateActionEE
52
52
  };
53
- //# sourceMappingURL=CreateActionEE-PaZYJ410.mjs.map
53
+ //# sourceMappingURL=CreateActionEE-VMKfXSGW.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateActionEE-PaZYJ410.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.tsx"],"sourcesContent":["import { Button, Flex, Icon, Tooltip } from '@strapi/design-system';\nimport { Envelop, ExclamationMarkCircle } from '@strapi/icons';\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\n\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nimport type { CreateActionCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE';\n\nexport const CreateActionEE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n\n const { permittedSeats, shouldStopCreate } = license ?? {};\n\n if (isError || isLoading) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n {!isNil(permittedSeats) && shouldStopCreate && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n position=\"left\"\n >\n <Icon\n width={`${14 / 16}rem`}\n height={`${14 / 16}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n <Button\n data-testid=\"create-user-button\"\n onClick={onClick}\n startIcon={<Envelop />}\n size=\"S\"\n disabled={shouldStopCreate}\n >\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;AASO,MAAM,iBAAiB,CAAC,EAAE,cAAmC;AAC5D,QAAA,EAAE,kBAAkB;AAC1B,QAAM,EAAE,SAAS,SAAS,cAAc,iBAAiB;AAEzD,QAAM,EAAE,gBAAgB,qBAAqB,WAAW,CAAA;AAExD,MAAI,WAAW,WAAW;AACjB,WAAA;AAAA,EACT;AAGE,SAAA,qBAAC,MAAK,EAAA,KAAK,GACR,UAAA;AAAA,IAAC,CAAA,MAAM,cAAc,KAAK,oBACzB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa,cAAc;AAAA,UACzB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,UAAS;AAAA,QAET,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,KAAK,EAAE;AAAA,YACjB,QAAQ,GAAG,KAAK,EAAE;AAAA,YAClB,OAAM;AAAA,YACN,IAAI;AAAA,UAAA;AAAA,QACN;AAAA,MAAA;AAAA,IACF;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ;AAAA,QACA,+BAAY,SAAQ,EAAA;AAAA,QACpB,MAAK;AAAA,QACL,UAAU;AAAA,QAET,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"CreateActionEE-VMKfXSGW.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.tsx"],"sourcesContent":["import { Button, Flex, Icon, Tooltip } from '@strapi/design-system';\nimport { Envelop, ExclamationMarkCircle } from '@strapi/icons';\nimport isNil from 'lodash/isNil';\nimport { useIntl } from 'react-intl';\n\nimport { useLicenseLimits } from '../../../../../hooks/useLicenseLimits';\n\nimport type { CreateActionCEProps } from '../../../../../../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE';\n\nexport const CreateActionEE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n const { license, isError, isLoading } = useLicenseLimits();\n\n const { permittedSeats, shouldStopCreate } = license ?? {};\n\n if (isError || isLoading) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n {!isNil(permittedSeats) && shouldStopCreate && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n position=\"left\"\n >\n <Icon\n width={`${14 / 16}rem`}\n height={`${14 / 16}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n <Button\n data-testid=\"create-user-button\"\n onClick={onClick}\n startIcon={<Envelop />}\n size=\"S\"\n disabled={shouldStopCreate}\n >\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;AASO,MAAM,iBAAiB,CAAC,EAAE,cAAmC;AAC5D,QAAA,EAAE,kBAAkB;AAC1B,QAAM,EAAE,SAAS,SAAS,cAAc,iBAAiB;AAEzD,QAAM,EAAE,gBAAgB,qBAAqB,WAAW,CAAA;AAExD,MAAI,WAAW,WAAW;AACjB,WAAA;AAAA,EACT;AAGE,SAAA,qBAAC,MAAK,EAAA,KAAK,GACR,UAAA;AAAA,IAAC,CAAA,MAAM,cAAc,KAAK,oBACzB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa,cAAc;AAAA,UACzB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,QACD,UAAS;AAAA,QAET,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,KAAK,EAAE;AAAA,YACjB,QAAQ,GAAG,KAAK,EAAE;AAAA,YAClB,OAAM;AAAA,YACN,IAAI;AAAA,UAAA;AAAA,QACN;AAAA,MAAA;AAAA,IACF;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ;AAAA,QACA,+BAAY,SAAQ,EAAA;AAAA,QACpB,MAAK;AAAA,QACL,UAAU;AAAA,QAET,UAAc,cAAA;AAAA,UACb,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAAA,IACH;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,18 +1,17 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { Button, Flex, Loader, Typography } from "@strapi/design-system";
4
- import { useNotification } from "@strapi/helper-plugin";
5
4
  import { Check } from "@strapi/icons";
6
5
  import { useFormik, FormikProvider, Form } from "formik";
7
6
  import { useIntl } from "react-intl";
8
7
  import { useDispatch, useSelector } from "react-redux";
9
8
  import { useNavigate } from "react-router-dom";
10
- import { m as useAPIErrorHandler, C as useLicenseLimits, D as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, V as CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME, W as useInjectReducer, X as REDUX_NAMESPACE, Y as BackButton, E as ConfirmDialog, G as LimitsModal, t as isBaseQueryError } from "./index-hjUhNUvw.mjs";
11
- import { u as useAdminRoles } from "./useAdminRoles-QJQS1BCd.mjs";
12
- import { u as useContentTypes } from "./useContentTypes-U-n1-lz0.mjs";
13
- import { s as selectIsLoading, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, c as selectRoles, v as validateWorkflow, r as reducer, d as resetWorkflow, e as setWorkflows, f as setContentTypes, g as setRoles, h as setIsLoading, i as addStage, W as WorkflowAttributes, S as Stages } from "./validateWorkflow-23kb45Oa.mjs";
14
- import { D as DragLayerRendered, H as Header, R as Root } from "./Layout-omCNy92r.mjs";
15
- import { u as useReviewWorkflows } from "./useReviewWorkflows-0rQx2KxS.mjs";
9
+ import { o as useAPIErrorHandler, u as useNotification, J as useLicenseLimits, K as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, _ as CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME, $ as useInjectReducer, a0 as REDUX_NAMESPACE, a1 as BackButton, M as ConfirmDialog, O as LimitsModal, w as isBaseQueryError } from "./index-GIVuHJgC.mjs";
10
+ import { u as useAdminRoles } from "./useAdminRoles--ozrdfW_.mjs";
11
+ import { u as useContentTypes } from "./useContentTypes-ralhLmpD.mjs";
12
+ import { s as selectIsLoading, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, c as selectRoles, v as validateWorkflow, r as reducer, d as resetWorkflow, e as setWorkflows, f as setContentTypes, g as setRoles, h as setIsLoading, i as addStage, W as WorkflowAttributes, S as Stages } from "./validateWorkflow-YRBggwod.mjs";
13
+ import { D as DragLayerRendered, H as Header, R as Root } from "./Layout-2dctwEHz.mjs";
14
+ import { u as useReviewWorkflows } from "./useReviewWorkflows--7WPIykR.mjs";
16
15
  const ReviewWorkflowsCreatePage = () => {
17
16
  const { formatMessage } = useIntl();
18
17
  const navigate = useNavigate();
@@ -21,7 +20,7 @@ const ReviewWorkflowsCreatePage = () => {
21
20
  _unstableFormatValidationErrors: formatValidationErrors
22
21
  } = useAPIErrorHandler();
23
22
  const dispatch = useDispatch();
24
- const toggleNotification = useNotification();
23
+ const { toggleNotification } = useNotification();
25
24
  const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();
26
25
  const { isLoading: isLoadingWorkflow, meta, workflows, createWorkflow } = useReviewWorkflows();
27
26
  const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles();
@@ -49,26 +48,26 @@ const ReviewWorkflowsCreatePage = () => {
49
48
  setInitialErrors(formatValidationErrors(res.error));
50
49
  }
51
50
  toggleNotification({
52
- type: "warning",
51
+ type: "danger",
53
52
  message: formatAPIError(res.error)
54
53
  });
55
54
  return;
56
55
  }
57
56
  toggleNotification({
58
57
  type: "success",
59
- message: {
58
+ message: formatMessage({
60
59
  id: "Settings.review-workflows.create.page.notification.success",
61
60
  defaultMessage: "Workflow successfully created"
62
- }
61
+ })
63
62
  });
64
- navigate(`/settings/review-workflows/${res.data.id}`);
63
+ navigate(res.data.id.toString());
65
64
  } catch (error) {
66
65
  toggleNotification({
67
- type: "warning",
68
- message: {
66
+ type: "danger",
67
+ message: formatMessage({
69
68
  id: "Settings.review-workflows.create.page.notification.error",
70
69
  defaultMessage: "An error occurred"
71
- }
70
+ })
72
71
  });
73
72
  }
74
73
  };
@@ -139,7 +138,7 @@ const ReviewWorkflowsCreatePage = () => {
139
138
  if (!isLoading && roles?.length === 0) {
140
139
  toggleNotification({
141
140
  blockTransition: true,
142
- type: "warning",
141
+ type: "danger",
143
142
  message: formatMessage({
144
143
  id: "Settings.review-workflows.stage.permissions.noPermissions.description",
145
144
  defaultMessage: "You don’t have the permission to see roles"
@@ -245,4 +244,4 @@ const ReviewWorkflowsCreatePage = () => {
245
244
  export {
246
245
  ReviewWorkflowsCreatePage
247
246
  };
248
- //# sourceMappingURL=CreatePage-P1F3dkB3.mjs.map
247
+ //# sourceMappingURL=CreatePage-6AeIanOF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreatePage-6AeIanOF.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider, FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../../../../admin/src/components/ConfirmDialog';\nimport { BackButton } from '../../../../../../../admin/src/features/BackButton';\nimport { useNotification } from '../../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useContentTypes } from '../../../../../../../admin/src/hooks/useContentTypes';\nimport { useInjectReducer } from '../../../../../../../admin/src/hooks/useInjectReducer';\nimport { isBaseQueryError } from '../../../../../../../admin/src/utils/baseQuery';\nimport { useLicenseLimits } from '../../../../hooks/useLicenseLimits';\n\nimport {\n addStage,\n resetWorkflow,\n setContentTypes,\n setIsLoading,\n setRoles,\n setWorkflows,\n} from './actions';\nimport * as Layout from './components/Layout';\nimport { LimitsModal } from './components/LimitsModal';\nimport { Stages } from './components/Stages';\nimport { WorkflowAttributes } from './components/WorkflowAttributes';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from './constants';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\nimport { CurrentWorkflow, reducer } from './reducer';\nimport {\n selectIsLoading,\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectRoles,\n} from './selectors';\nimport { validateWorkflow } from './utils/validateWorkflow';\n\nexport const ReviewWorkflowsCreatePage = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const { isLoading: isLoadingWorkflow, meta, workflows, createWorkflow } = useReviewWorkflows();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles();\n const isLoading = useSelector(selectIsLoading);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const roles = useSelector(selectRoles);\n const [showLimitModal, setShowLimitModal] = React.useState<'workflow' | 'stage' | null>(null);\n const { isLoading: isLicenseLoading, getFeature } = useLicenseLimits();\n const [initialErrors, setInitialErrors] = React.useState<FormikErrors<CurrentWorkflow>>();\n const [savePrompts, setSavePrompts] = React.useState<{ hasReassignedContentTypes?: boolean }>({});\n\n const limits = getFeature<string>('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME];\n const stagesPerWorkflow = limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME];\n const contentTypesFromOtherWorkflows = workflows?.flatMap((workflow) => workflow.contentTypes);\n\n const submitForm = async () => {\n setSavePrompts({});\n\n try {\n const res = await createWorkflow({\n // @ts-expect-error – currentWorkflow will have already been validated by formik before it gets here.\n data: currentWorkflow,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setInitialErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Settings.review-workflows.create.page.notification.success',\n defaultMessage: 'Workflow successfully created',\n }),\n });\n\n navigate(res.data.id.toString());\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'Settings.review-workflows.create.page.notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes?.some((contentType) =>\n contentTypesFromOtherWorkflows?.includes(contentType)\n );\n\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n\n if (meta && numberOfWorkflows && meta?.workflowCount >= parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n currentWorkflow.stages &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length >= parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n } else if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n React.useEffect(() => {\n dispatch(resetWorkflow());\n\n if (!isLoadingWorkflow && workflows) {\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingContentTypes || isLoadingRoles));\n\n // Create an empty default stage\n dispatch(\n addStage({\n name: '',\n })\n );\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingRoles,\n isLoadingWorkflow,\n serverRoles,\n singleTypes,\n workflows,\n ]);\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoadingWorkflow && !isLicenseLoading) {\n if (\n currentWorkflow.stages &&\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length >= parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [isLicenseLoading, isLoadingWorkflow, limits, currentWorkflow.stages, stagesPerWorkflow]);\n\n React.useEffect(() => {\n if (!isLoading && roles?.length === 0) {\n toggleNotification({\n blockTransition: true,\n type: 'danger',\n message: formatMessage({\n id: 'Settings.review-workflows.stage.permissions.noPermissions.description',\n defaultMessage: 'You don’t have the permission to see roles',\n }),\n });\n }\n }, [formatMessage, isLoading, roles, toggleNotification]);\n\n return (\n <>\n <Layout.DragLayerRendered />\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<BackButton />}\n primaryAction={\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.review-workflows.create.page.title',\n defaultMessage: 'Create Review Workflow',\n })}\n subtitle={formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow?.stages?.length ?? 0 }\n )}\n />\n <Layout.Root>\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n {isLoading ? (\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes />\n <Stages stages={formik.values?.stages} />\n </Flex>\n )}\n </Flex>\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog\n isOpen={Object.keys(savePrompts).length > 0}\n onClose={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows?.filter((contentType) =>\n currentWorkflow.contentTypes?.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(null)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.create.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.create.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root isOpen={showLimitModal === 'stage'} onClose={() => setShowLimitModal(null)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.create.page.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.create.page.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n};\n"],"names":["Layout.DragLayerRendered","Layout.Header","Layout.Root"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { Main, HeaderLayout, Flex, Button, ContentLayout, Box, Typography, Grid, GridItem, TextInput, Textarea } from "@strapi/design-system";
4
- import { useNotification } from "@strapi/helper-plugin";
5
4
  import { format } from "date-fns";
6
5
  import { Formik, Form } from "formik";
7
6
  import { Helmet } from "react-helmet";
@@ -9,15 +8,15 @@ import { useIntl } from "react-intl";
9
8
  import { useMatch, useNavigate } from "react-router-dom";
10
9
  import styled from "styled-components";
11
10
  import * as yup from "yup";
12
- import { n as errorsTrads, o as useTypedSelector, P as Page, c as useTracking, m as useAPIErrorHandler, b3 as useGetRolePermissionLayoutQuery, b4 as useGetRolePermissionsQuery, b5 as useCreateRoleMutation, b6 as useUpdateRolePermissionsMutation, Y as BackButton, t as isBaseQueryError } from "./index-hjUhNUvw.mjs";
13
- import { P as Permissions } from "./Permissions-NUaDxULo.mjs";
11
+ import { p as errorsTrads, q as useTypedSelector, P as Page, u as useNotification, d as useTracking, o as useAPIErrorHandler, ba as useGetRolePermissionLayoutQuery, bb as useGetRolePermissionsQuery, bc as useCreateRoleMutation, bd as useUpdateRolePermissionsMutation, a1 as BackButton, w as isBaseQueryError } from "./index-GIVuHJgC.mjs";
12
+ import { P as Permissions } from "./Permissions-NbmBkSB4.mjs";
14
13
  const CREATE_SCHEMA = yup.object().shape({
15
14
  name: yup.string().required(errorsTrads.required.id),
16
15
  description: yup.string().required(errorsTrads.required.id)
17
16
  });
18
17
  const CreatePage = () => {
19
18
  const match = useMatch("/settings/roles/duplicate/:id");
20
- const toggleNotification = useNotification();
19
+ const { toggleNotification } = useNotification();
21
20
  const { formatMessage } = useIntl();
22
21
  const navigate = useNavigate();
23
22
  const permissionsRef = React.useRef(null);
@@ -58,7 +57,7 @@ const CreatePage = () => {
58
57
  formik.setErrors(formatValidationErrors(res.error));
59
58
  } else {
60
59
  toggleNotification({
61
- type: "warning",
60
+ type: "danger",
62
61
  message: formatAPIError(res.error)
63
62
  });
64
63
  }
@@ -75,7 +74,7 @@ const CreatePage = () => {
75
74
  formik.setErrors(formatValidationErrors(updateRes.error));
76
75
  } else {
77
76
  toggleNotification({
78
- type: "warning",
77
+ type: "danger",
79
78
  message: formatAPIError(updateRes.error)
80
79
  });
81
80
  }
@@ -84,13 +83,13 @@ const CreatePage = () => {
84
83
  }
85
84
  toggleNotification({
86
85
  type: "success",
87
- message: { id: "Settings.roles.created", defaultMessage: "created" }
86
+ message: formatMessage({ id: "Settings.roles.created", defaultMessage: "created" })
88
87
  });
89
88
  navigate(res.data.id.toString(), { replace: true });
90
89
  } catch (err) {
91
90
  toggleNotification({
92
- type: "warning",
93
- message: { id: "notification.error" }
91
+ type: "danger",
92
+ message: formatMessage({ id: "notification.error" })
94
93
  });
95
94
  }
96
95
  };
@@ -243,4 +242,4 @@ export {
243
242
  CreatePage,
244
243
  ProtectedCreatePage
245
244
  };
246
- //# sourceMappingURL=CreatePage-PM_r99U5.mjs.map
245
+ //# sourceMappingURL=CreatePage-Gh5xb10f.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreatePage-Gh5xb10f.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React 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 { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const match = useMatch('/settings/roles/duplicate/:id');\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const id = match?.params.id ?? null;\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { data: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(res.data.id.toString(), { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n />\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\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 type=\"submit\" 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={<BackButton />}\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 <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </ContentLayout>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\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\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["translatedErrors"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const index = require("./index-ejSDPT-T.js");
5
- const EditPage = require("./EditPage-RpzlPkkU.js");
4
+ const index = require("./index-haHGOQMJ.js");
5
+ const EditPage = require("./EditPage-vUQIn3OJ.js");
6
6
  const ProtectedCreatePage = () => {
7
7
  const permissions = index.useTypedSelector(
8
8
  (state) => state.admin_app.permissions.settings?.webhooks.create
@@ -11,4 +11,4 @@ const ProtectedCreatePage = () => {
11
11
  };
12
12
  exports.CreatePage = EditPage.EditPage;
13
13
  exports.ProtectedCreatePage = ProtectedCreatePage;
14
- //# sourceMappingURL=CreatePage-hlkPO2Cv.js.map
14
+ //# sourceMappingURL=CreatePage-JIHfFWS7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage-hlkPO2Cv.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/CreatePage.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditPage } from './EditPage';\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedCreatePage, EditPage as CreatePage };\n"],"names":["useTypedSelector","Page","jsx","EditPage"],"mappings":";;;;;AAKA,MAAM,sBAAsB,MAAM;AAChC,QAAM,cAAcA,MAAA;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,SAAS;AAAA,EAAA;AAG5D,wCACGC,MAAAA,KAAK,SAAL,EAAa,aACZ,UAAAC,2BAAAA,IAACC,qBAAS,EACZ,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"CreatePage-JIHfFWS7.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/CreatePage.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditPage } from './EditPage';\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedCreatePage, EditPage as CreatePage };\n"],"names":["useTypedSelector","Page","jsx","EditPage"],"mappings":";;;;;AAKA,MAAM,sBAAsB,MAAM;AAChC,QAAM,cAAcA,MAAA;AAAA,IAClB,CAAC,UAAU,MAAM,UAAU,YAAY,UAAU,SAAS;AAAA,EAAA;AAG5D,wCACGC,MAAAA,KAAK,SAAL,EAAa,aACZ,UAAAC,2BAAAA,IAACC,qBAAS,EACZ,CAAA;AAEJ;;;"}