@strapi/admin 5.0.0-alpha.0 → 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 (361) hide show
  1. package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js → AdminSeatInfo-JtsYpBbO.js} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js.map → AdminSeatInfo-JtsYpBbO.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs → AdminSeatInfo-ZZsKxX-S.mjs} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs.map → AdminSeatInfo-ZZsKxX-S.mjs.map} +1 -1
  5. package/dist/_chunks/{ApplicationInfoPage-Zn5JU2zd.mjs → ApplicationInfoPage-NhhWzHF1.mjs} +7 -8
  6. package/dist/_chunks/ApplicationInfoPage-NhhWzHF1.mjs.map +1 -0
  7. package/dist/_chunks/{ApplicationInfoPage-PHLA1Ysy.js → ApplicationInfoPage-xj1SCaSR.js} +5 -6
  8. package/dist/_chunks/ApplicationInfoPage-xj1SCaSR.js.map +1 -0
  9. package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs → AuthResponse-jIqWZLMh.mjs} +2 -2
  10. package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs.map → AuthResponse-jIqWZLMh.mjs.map} +1 -1
  11. package/dist/_chunks/{AuthResponse-7NG3smr6.js → AuthResponse-maUe9KWA.js} +2 -2
  12. package/dist/_chunks/{AuthResponse-7NG3smr6.js.map → AuthResponse-maUe9KWA.js.map} +1 -1
  13. package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs → AuthenticatedLayout-Ffy6uoNF.mjs} +22 -15
  14. package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs.map → AuthenticatedLayout-Ffy6uoNF.mjs.map} +1 -1
  15. package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js → AuthenticatedLayout-kxORHKAl.js} +22 -15
  16. package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js.map → AuthenticatedLayout-kxORHKAl.js.map} +1 -1
  17. package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js → ComponentConfigurationPage-JMCc1P7r.js} +3 -3
  18. package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js.map → ComponentConfigurationPage-JMCc1P7r.js.map} +1 -1
  19. package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs → ComponentConfigurationPage-oiBCHXQO.mjs} +3 -3
  20. package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs.map → ComponentConfigurationPage-oiBCHXQO.mjs.map} +1 -1
  21. package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js → CreateActionEE-ThopeFZP.js} +2 -2
  22. package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js.map → CreateActionEE-ThopeFZP.js.map} +1 -1
  23. package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs → CreateActionEE-VMKfXSGW.mjs} +2 -2
  24. package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs.map → CreateActionEE-VMKfXSGW.mjs.map} +1 -1
  25. package/dist/_chunks/{CreatePage-Bil0egZ1.mjs → CreatePage-6AeIanOF.mjs} +7 -7
  26. package/dist/_chunks/{CreatePage-Bil0egZ1.mjs.map → CreatePage-6AeIanOF.mjs.map} +1 -1
  27. package/dist/_chunks/{CreatePage-h5L6QP47.mjs → CreatePage-Gh5xb10f.mjs} +3 -3
  28. package/dist/_chunks/{CreatePage-h5L6QP47.mjs.map → CreatePage-Gh5xb10f.mjs.map} +1 -1
  29. package/dist/_chunks/{CreatePage-MAI6XyNg.js → CreatePage-JIHfFWS7.js} +3 -3
  30. package/dist/_chunks/{CreatePage-MAI6XyNg.js.map → CreatePage-JIHfFWS7.js.map} +1 -1
  31. package/dist/_chunks/{CreatePage-nl6zKkKT.js → CreatePage-WWKaoNH7.js} +7 -7
  32. package/dist/_chunks/{CreatePage-nl6zKkKT.js.map → CreatePage-WWKaoNH7.js.map} +1 -1
  33. package/dist/_chunks/{CreatePage-UC4uBFUR.mjs → CreatePage-hxFhldpL.mjs} +3 -3
  34. package/dist/_chunks/{CreatePage-UC4uBFUR.mjs.map → CreatePage-hxFhldpL.mjs.map} +1 -1
  35. package/dist/_chunks/{CreatePage-NSKUL8l4.js → CreatePage-yjmy0z57.js} +3 -3
  36. package/dist/_chunks/{CreatePage-NSKUL8l4.js.map → CreatePage-yjmy0z57.js.map} +1 -1
  37. package/dist/_chunks/{CreateView-kc0iM0LS.js → CreateView-J48m0lSL.js} +3 -3
  38. package/dist/_chunks/{CreateView-kc0iM0LS.js.map → CreateView-J48m0lSL.js.map} +1 -1
  39. package/dist/_chunks/{CreateView-3DMhoCPN.js → CreateView-Vqd1PVrJ.js} +3 -3
  40. package/dist/_chunks/{CreateView-3DMhoCPN.js.map → CreateView-Vqd1PVrJ.js.map} +1 -1
  41. package/dist/_chunks/{CreateView-RVrFxAFt.mjs → CreateView-oBp0NzJx.mjs} +3 -3
  42. package/dist/_chunks/{CreateView-RVrFxAFt.mjs.map → CreateView-oBp0NzJx.mjs.map} +1 -1
  43. package/dist/_chunks/{CreateView-DuSt3AcE.mjs → CreateView-qzpeDBvR.mjs} +3 -3
  44. package/dist/_chunks/{CreateView-DuSt3AcE.mjs.map → CreateView-qzpeDBvR.mjs.map} +1 -1
  45. package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs → EditConfigurationPage-MAUfMzG6.mjs} +3 -3
  46. package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs.map → EditConfigurationPage-MAUfMzG6.mjs.map} +1 -1
  47. package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js → EditConfigurationPage-PKHUVKGD.js} +3 -3
  48. package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js.map → EditConfigurationPage-PKHUVKGD.js.map} +1 -1
  49. package/dist/_chunks/{EditPage-9aK8IFXY.js → EditPage-7bVupT7n.js} +8 -8
  50. package/dist/_chunks/{EditPage-9aK8IFXY.js.map → EditPage-7bVupT7n.js.map} +1 -1
  51. package/dist/_chunks/{EditPage-VoRR5DCQ.mjs → EditPage-DQUZsl8H.mjs} +9 -10
  52. package/dist/_chunks/EditPage-DQUZsl8H.mjs.map +1 -0
  53. package/dist/_chunks/{EditPage-PpBP7TBo.js → EditPage-Hxt5uBXk.js} +4 -4
  54. package/dist/_chunks/{EditPage-PpBP7TBo.js.map → EditPage-Hxt5uBXk.js.map} +1 -1
  55. package/dist/_chunks/{EditPage-fDVAYmuS.mjs → EditPage-Izmz7bdh.mjs} +8 -8
  56. package/dist/_chunks/{EditPage-fDVAYmuS.mjs.map → EditPage-Izmz7bdh.mjs.map} +1 -1
  57. package/dist/_chunks/{EditPage-A6olBfVm.js → EditPage-QA0-S3kV.js} +7 -8
  58. package/dist/_chunks/EditPage-QA0-S3kV.js.map +1 -0
  59. package/dist/_chunks/{EditPage-_swY0Hy-.mjs → EditPage-THSaM4-0.mjs} +4 -4
  60. package/dist/_chunks/{EditPage-_swY0Hy-.mjs.map → EditPage-THSaM4-0.mjs.map} +1 -1
  61. package/dist/_chunks/{EditPage-QoDSqYYq.js → EditPage-vUQIn3OJ.js} +5 -5
  62. package/dist/_chunks/{EditPage-QoDSqYYq.js.map → EditPage-vUQIn3OJ.js.map} +1 -1
  63. package/dist/_chunks/{EditPage-wfPrhkA7.mjs → EditPage-zpnfFOjc.mjs} +5 -5
  64. package/dist/_chunks/{EditPage-wfPrhkA7.mjs.map → EditPage-zpnfFOjc.mjs.map} +1 -1
  65. package/dist/_chunks/{EditView-C_ynfmtW.js → EditView-63ynF0vf.js} +5 -6
  66. package/dist/_chunks/EditView-63ynF0vf.js.map +1 -0
  67. package/dist/_chunks/{EditView-EuUw_2zc.mjs → EditView-cfOpTlAi.mjs} +7 -8
  68. package/dist/_chunks/EditView-cfOpTlAi.mjs.map +1 -0
  69. package/dist/_chunks/{EditViewPage-Z_e1dpbU.js → EditViewPage--SujdXIG.js} +5 -6
  70. package/dist/_chunks/EditViewPage--SujdXIG.js.map +1 -0
  71. package/dist/_chunks/{EditViewPage-xYzUSAwS.mjs → EditViewPage-JFzIJClS.mjs} +4 -5
  72. package/dist/_chunks/EditViewPage-JFzIJClS.mjs.map +1 -0
  73. package/dist/_chunks/{EditViewPage-XtJmgPi5.js → EditViewPage-kkCJlZyh.js} +6 -7
  74. package/dist/_chunks/EditViewPage-kkCJlZyh.js.map +1 -0
  75. package/dist/_chunks/{EditViewPage-8uPO5GWR.mjs → EditViewPage-vz8UJ4U_.mjs} +7 -8
  76. package/dist/_chunks/EditViewPage-vz8UJ4U_.mjs.map +1 -0
  77. package/dist/_chunks/{EventsTable-hI0aV29K.js → EventsTable-1X4uyY8J.js} +2 -2
  78. package/dist/_chunks/{EventsTable-hI0aV29K.js.map → EventsTable-1X4uyY8J.js.map} +1 -1
  79. package/dist/_chunks/{EventsTable-WP7PUujH.mjs → EventsTable-dN2MNNFu.mjs} +2 -2
  80. package/dist/_chunks/{EventsTable-WP7PUujH.mjs.map → EventsTable-dN2MNNFu.mjs.map} +1 -1
  81. package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs → FieldTypeIcon-4-UZzZla.mjs} +2 -2
  82. package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs.map → FieldTypeIcon-4-UZzZla.mjs.map} +1 -1
  83. package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js → FieldTypeIcon-wxfhExw2.js} +2 -2
  84. package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js.map → FieldTypeIcon-wxfhExw2.js.map} +1 -1
  85. package/dist/_chunks/{Filters-tMd2Q5jg.mjs → Filters--lh-i85A.mjs} +2 -3
  86. package/dist/_chunks/Filters--lh-i85A.mjs.map +1 -0
  87. package/dist/_chunks/{Filters-xVuf1kg6.js → Filters-V0VODaNk.js} +4 -5
  88. package/dist/_chunks/Filters-V0VODaNk.js.map +1 -0
  89. package/dist/_chunks/{Form-EiK_H9BI.js → Form-6QJjWK34.js} +3 -3
  90. package/dist/_chunks/{Form-EiK_H9BI.js.map → Form-6QJjWK34.js.map} +1 -1
  91. package/dist/_chunks/{Form-sZKjSFQC.mjs → Form-HXiNxSZi.mjs} +3 -3
  92. package/dist/_chunks/{Form-sZKjSFQC.mjs.map → Form-HXiNxSZi.mjs.map} +1 -1
  93. package/dist/_chunks/{History-1AF4LH3c.mjs → History-CRGqDfHr.mjs} +4 -5
  94. package/dist/_chunks/History-CRGqDfHr.mjs.map +1 -0
  95. package/dist/_chunks/{History-V_ik1IL0.js → History-R_4lEy01.js} +9 -10
  96. package/dist/_chunks/History-R_4lEy01.js.map +1 -0
  97. package/dist/_chunks/{HomePage-7Xva17wM.mjs → HomePage-GJRtRqAj.mjs} +3 -3
  98. package/dist/_chunks/{HomePage-7Xva17wM.mjs.map → HomePage-GJRtRqAj.mjs.map} +1 -1
  99. package/dist/_chunks/{HomePage-C6Ivli1q.mjs → HomePage-Si17pjt5.mjs} +4 -4
  100. package/dist/_chunks/{HomePage-C6Ivli1q.mjs.map → HomePage-Si17pjt5.mjs.map} +1 -1
  101. package/dist/_chunks/{HomePage-yrIp1-eG.js → HomePage-oiaJD-JE.js} +4 -4
  102. package/dist/_chunks/{HomePage-yrIp1-eG.js.map → HomePage-oiaJD-JE.js.map} +1 -1
  103. package/dist/_chunks/{HomePage-zL7HPV7A.js → HomePage-rEW7Jpww.js} +3 -3
  104. package/dist/_chunks/{HomePage-zL7HPV7A.js.map → HomePage-rEW7Jpww.js.map} +1 -1
  105. package/dist/_chunks/{InputRenderer-iP1kRki4.mjs → InputRenderer-JfwBoJk0.mjs} +23 -8
  106. package/dist/_chunks/InputRenderer-JfwBoJk0.mjs.map +1 -0
  107. package/dist/_chunks/{InputRenderer-RMnWnPI4.js → InputRenderer-hWILsDgK.js} +25 -10
  108. package/dist/_chunks/InputRenderer-hWILsDgK.js.map +1 -0
  109. package/dist/_chunks/{InstalledPluginsPage-7m_FfOGl.mjs → InstalledPluginsPage-XqzfeZgq.mjs} +5 -7
  110. package/dist/_chunks/InstalledPluginsPage-XqzfeZgq.mjs.map +1 -0
  111. package/dist/_chunks/{InstalledPluginsPage-PrMyistN.js → InstalledPluginsPage-ao6yYe7N.js} +4 -6
  112. package/dist/_chunks/InstalledPluginsPage-ao6yYe7N.js.map +1 -0
  113. package/dist/_chunks/{Layout-tDfvrUZo.mjs → Layout-2dctwEHz.mjs} +2 -2
  114. package/dist/_chunks/{Layout-tDfvrUZo.mjs.map → Layout-2dctwEHz.mjs.map} +1 -1
  115. package/dist/_chunks/{Layout-EDS3Yv8X.mjs → Layout-3sYAgWn4.mjs} +4 -4
  116. package/dist/_chunks/{Layout-EDS3Yv8X.mjs.map → Layout-3sYAgWn4.mjs.map} +1 -1
  117. package/dist/_chunks/{Layout-DC68R0Fa.js → Layout-4vMUN0Ez.js} +2 -2
  118. package/dist/_chunks/{Layout-DC68R0Fa.js.map → Layout-4vMUN0Ez.js.map} +1 -1
  119. package/dist/_chunks/{Layout-9Li8e-qi.js → Layout-kbqdKkiF.js} +4 -4
  120. package/dist/_chunks/{Layout-9Li8e-qi.js.map → Layout-kbqdKkiF.js.map} +1 -1
  121. package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js → ListConfigurationPage-BXuW_9Wt.js} +3 -3
  122. package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js.map → ListConfigurationPage-BXuW_9Wt.js.map} +1 -1
  123. package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs → ListConfigurationPage-lPILAPkW.mjs} +3 -3
  124. package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs.map → ListConfigurationPage-lPILAPkW.mjs.map} +1 -1
  125. package/dist/_chunks/{ListPage-_i7RNkUF.js → ListPage-02WM7Pt9.js} +6 -7
  126. package/dist/_chunks/ListPage-02WM7Pt9.js.map +1 -0
  127. package/dist/_chunks/{ListPage-em8KMoKx.js → ListPage-7TAp-q4k.js} +8 -9
  128. package/dist/_chunks/ListPage-7TAp-q4k.js.map +1 -0
  129. package/dist/_chunks/{ListPage-RlY1nro4.mjs → ListPage-EdOy02-v.mjs} +6 -7
  130. package/dist/_chunks/ListPage-EdOy02-v.mjs.map +1 -0
  131. package/dist/_chunks/{ListPage-1q5Fi4W9.mjs → ListPage-OaldiDCh.mjs} +50 -51
  132. package/dist/_chunks/ListPage-OaldiDCh.mjs.map +1 -0
  133. package/dist/_chunks/{ListPage-cBvO_gYR.mjs → ListPage-R8Qs69v7.mjs} +3 -3
  134. package/dist/_chunks/{ListPage-cBvO_gYR.mjs.map → ListPage-R8Qs69v7.mjs.map} +1 -1
  135. package/dist/_chunks/{ListPage-DZBRIMkE.mjs → ListPage-SCTNGhhO.mjs} +6 -7
  136. package/dist/_chunks/ListPage-SCTNGhhO.mjs.map +1 -0
  137. package/dist/_chunks/{ListPage-God7L19W.mjs → ListPage-YZ45BiMe.mjs} +10 -11
  138. package/dist/_chunks/ListPage-YZ45BiMe.mjs.map +1 -0
  139. package/dist/_chunks/{ListPage-skKuhRrN.js → ListPage-ZWUo77nT.js} +49 -49
  140. package/dist/_chunks/ListPage-ZWUo77nT.js.map +1 -0
  141. package/dist/_chunks/{ListPage-0eDZZ7Zw.js → ListPage-bE4a6YkV.js} +3 -3
  142. package/dist/_chunks/{ListPage-0eDZZ7Zw.js.map → ListPage-bE4a6YkV.js.map} +1 -1
  143. package/dist/_chunks/{ListPage-Ky2tG2bd.mjs → ListPage-p17R2Gql.mjs} +10 -14
  144. package/dist/_chunks/ListPage-p17R2Gql.mjs.map +1 -0
  145. package/dist/_chunks/{ListPage-NdzVJ_Ed.js → ListPage-rCVvOLlD.js} +9 -13
  146. package/dist/_chunks/ListPage-rCVvOLlD.js.map +1 -0
  147. package/dist/_chunks/{ListPage-aElBcYPH.js → ListPage-u6uVacPz.js} +4 -5
  148. package/dist/_chunks/ListPage-u6uVacPz.js.map +1 -0
  149. package/dist/_chunks/{ListView-hm-mjZ8N.mjs → ListView--O7X6dMw.mjs} +7 -8
  150. package/dist/_chunks/ListView--O7X6dMw.mjs.map +1 -0
  151. package/dist/_chunks/{ListView--mxDKrnG.js → ListView-SsUn5vcn.js} +5 -6
  152. package/dist/_chunks/ListView-SsUn5vcn.js.map +1 -0
  153. package/dist/_chunks/{ListView-vP-PjR4p.js → ListView-ZkjwQBXQ.js} +5 -6
  154. package/dist/_chunks/ListView-ZkjwQBXQ.js.map +1 -0
  155. package/dist/_chunks/{ListView-QEgFV6dm.mjs → ListView-oP-C8SCR.mjs} +7 -8
  156. package/dist/_chunks/ListView-oP-C8SCR.mjs.map +1 -0
  157. package/dist/_chunks/{ListViewPage-xOVa04T_.mjs → ListViewPage-1VNVP9Rw.mjs} +10 -11
  158. package/dist/_chunks/ListViewPage-1VNVP9Rw.mjs.map +1 -0
  159. package/dist/_chunks/{ListViewPage-NiwpwxBR.js → ListViewPage-idgrhBAP.js} +14 -15
  160. package/dist/_chunks/ListViewPage-idgrhBAP.js.map +1 -0
  161. package/dist/_chunks/{Login-0FtP5Ck_.js → Login-4Igrm6CC.js} +2 -2
  162. package/dist/_chunks/{Login-0FtP5Ck_.js.map → Login-4Igrm6CC.js.map} +1 -1
  163. package/dist/_chunks/{Login-IFCsIrab.mjs → Login-B55AM-7k.mjs} +2 -2
  164. package/dist/_chunks/{Login-IFCsIrab.mjs.map → Login-B55AM-7k.mjs.map} +1 -1
  165. package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs → MagicLinkEE-Zy_9ZZ7y.mjs} +3 -3
  166. package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs.map → MagicLinkEE-Zy_9ZZ7y.mjs.map} +1 -1
  167. package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js → MagicLinkEE-v7xTuVEA.js} +3 -3
  168. package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js.map → MagicLinkEE-v7xTuVEA.js.map} +1 -1
  169. package/dist/_chunks/{MarketplacePage-f0ZrC_p8.mjs → MarketplacePage-UGys0LVN.mjs} +3 -5
  170. package/dist/_chunks/MarketplacePage-UGys0LVN.mjs.map +1 -0
  171. package/dist/_chunks/{MarketplacePage-zSQ_GRnZ.js → MarketplacePage-tWKM5xe8.js} +5 -7
  172. package/dist/_chunks/MarketplacePage-tWKM5xe8.js.map +1 -0
  173. package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs → NoContentTypePage-BaaTD5uB.mjs} +4 -6
  174. package/dist/_chunks/NoContentTypePage-BaaTD5uB.mjs.map +1 -0
  175. package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js → NoContentTypePage-Lbuve_Uu.js} +3 -5
  176. package/dist/_chunks/NoContentTypePage-Lbuve_Uu.js.map +1 -0
  177. package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs → NoPermissionsPage--Oa97N7k.mjs} +5 -7
  178. package/dist/_chunks/NoPermissionsPage--Oa97N7k.mjs.map +1 -0
  179. package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js → NoPermissionsPage-q44k5VFX.js} +3 -5
  180. package/dist/_chunks/NoPermissionsPage-q44k5VFX.js.map +1 -0
  181. package/dist/_chunks/{Permissions--rdF1ZKQ.js → Permissions-CFuwI0Ni.js} +2 -2
  182. package/dist/_chunks/{Permissions--rdF1ZKQ.js.map → Permissions-CFuwI0Ni.js.map} +1 -1
  183. package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs → Permissions-NbmBkSB4.mjs} +2 -2
  184. package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs.map → Permissions-NbmBkSB4.mjs.map} +1 -1
  185. package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs → PrivateRoute-YN_98pM_.mjs} +2 -2
  186. package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs.map → PrivateRoute-YN_98pM_.mjs.map} +1 -1
  187. package/dist/_chunks/{PrivateRoute-GLTcdbu8.js → PrivateRoute-avlq1MEy.js} +2 -2
  188. package/dist/_chunks/{PrivateRoute-GLTcdbu8.js.map → PrivateRoute-avlq1MEy.js.map} +1 -1
  189. package/dist/_chunks/{ProfilePage-EEcNKnGH.js → ProfilePage-brPbqDP1.js} +4 -6
  190. package/dist/_chunks/ProfilePage-brPbqDP1.js.map +1 -0
  191. package/dist/_chunks/{ProfilePage-bE7txhNu.mjs → ProfilePage-eCIvxxJY.mjs} +5 -7
  192. package/dist/_chunks/ProfilePage-eCIvxxJY.mjs.map +1 -0
  193. package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js → ReviewWorkflowsColumn-HfjzpLFU.js} +2 -2
  194. package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js.map → ReviewWorkflowsColumn-HfjzpLFU.js.map} +1 -1
  195. package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs → ReviewWorkflowsColumn-sPZxvFUd.mjs} +2 -2
  196. package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs.map → ReviewWorkflowsColumn-sPZxvFUd.mjs.map} +1 -1
  197. package/dist/_chunks/{SelectRoles-XK5HcBdP.js → SelectRoles-BmNzL0q5.js} +4 -5
  198. package/dist/_chunks/SelectRoles-BmNzL0q5.js.map +1 -0
  199. package/dist/_chunks/{SelectRoles-Iih1yeTu.mjs → SelectRoles-jvH4WUf6.mjs} +3 -4
  200. package/dist/_chunks/SelectRoles-jvH4WUf6.mjs.map +1 -0
  201. package/dist/_chunks/{SingleSignOnPage-uURRsIxP.js → SingleSignOnPage-ZyiHtZxJ.js} +4 -5
  202. package/dist/_chunks/SingleSignOnPage-ZyiHtZxJ.js.map +1 -0
  203. package/dist/_chunks/{SingleSignOnPage-vOeDxBfa.mjs → SingleSignOnPage-aMd3wcAh.mjs} +6 -7
  204. package/dist/_chunks/SingleSignOnPage-aMd3wcAh.mjs.map +1 -0
  205. package/dist/_chunks/{Table-k6gVR2KH.mjs → Table-591I_RMU.mjs} +2 -3
  206. package/dist/_chunks/Table-591I_RMU.mjs.map +1 -0
  207. package/dist/_chunks/{Table-VsNr4Mha.js → Table-aUfykqgd.js} +3 -4
  208. package/dist/_chunks/Table-aUfykqgd.js.map +1 -0
  209. package/dist/_chunks/{TokenTypeSelect-Z9iyoteG.mjs → TokenTypeSelect-vIBdBE9t.mjs} +2 -3
  210. package/dist/_chunks/TokenTypeSelect-vIBdBE9t.mjs.map +1 -0
  211. package/dist/_chunks/{TokenTypeSelect-QN_bDdss.js → TokenTypeSelect-vp-54yBv.js} +3 -4
  212. package/dist/_chunks/TokenTypeSelect-vp-54yBv.js.map +1 -0
  213. package/dist/_chunks/{UseCasePage-xAlTWOcX.js → UseCasePage-0_alQEc9.js} +3 -3
  214. package/dist/_chunks/{UseCasePage-xAlTWOcX.js.map → UseCasePage-0_alQEc9.js.map} +1 -1
  215. package/dist/_chunks/{UseCasePage-qJwKBweD.mjs → UseCasePage-Cxu2FeWo.mjs} +3 -3
  216. package/dist/_chunks/{UseCasePage-qJwKBweD.mjs.map → UseCasePage-Cxu2FeWo.mjs.map} +1 -1
  217. package/dist/_chunks/{apiTokens-b3w4qO8B.js → apiTokens-IG3rF-G2.js} +2 -2
  218. package/dist/_chunks/{apiTokens-b3w4qO8B.js.map → apiTokens-IG3rF-G2.js.map} +1 -1
  219. package/dist/_chunks/{apiTokens-dGGyJI-w.mjs → apiTokens-wLmJ3Liv.mjs} +2 -2
  220. package/dist/_chunks/{apiTokens-dGGyJI-w.mjs.map → apiTokens-wLmJ3Liv.mjs.map} +1 -1
  221. package/dist/_chunks/{constants-WjN6I3sL.mjs → constants-0OGkpIzK.mjs} +3 -3
  222. package/dist/_chunks/{constants-WjN6I3sL.mjs.map → constants-0OGkpIzK.mjs.map} +1 -1
  223. package/dist/_chunks/{constants-PHXhIuUs.js → constants-7yqqXq3r.js} +2 -2
  224. package/dist/_chunks/{constants-PHXhIuUs.js.map → constants-7yqqXq3r.js.map} +1 -1
  225. package/dist/_chunks/{constants-ruIkLWCb.mjs → constants-JgR8CVx2.mjs} +2 -2
  226. package/dist/_chunks/{constants-ruIkLWCb.mjs.map → constants-JgR8CVx2.mjs.map} +1 -1
  227. package/dist/_chunks/{constants-IZEgEoW9.js → constants-XJLrl2Tl.js} +3 -3
  228. package/dist/_chunks/{constants-IZEgEoW9.js.map → constants-XJLrl2Tl.js.map} +1 -1
  229. package/dist/_chunks/{index-5ZvCaCyY.mjs → index-GIVuHJgC.mjs} +347 -188
  230. package/dist/_chunks/index-GIVuHJgC.mjs.map +1 -0
  231. package/dist/_chunks/{index-ibtz273H.js → index-haHGOQMJ.js} +270 -110
  232. package/dist/_chunks/index-haHGOQMJ.js.map +1 -0
  233. package/dist/_chunks/{selectors-JBxTdRJK.mjs → selectors--2Vzk8PA.mjs} +2 -2
  234. package/dist/_chunks/{selectors-JBxTdRJK.mjs.map → selectors--2Vzk8PA.mjs.map} +1 -1
  235. package/dist/_chunks/{selectors-TFKI8arF.js → selectors-NSSzzIzx.js} +2 -2
  236. package/dist/_chunks/{selectors-TFKI8arF.js.map → selectors-NSSzzIzx.js.map} +1 -1
  237. package/dist/_chunks/{transferTokens-4KlyXDql.mjs → transferTokens-WIsWKVbF.mjs} +2 -2
  238. package/dist/_chunks/{transferTokens-4KlyXDql.mjs.map → transferTokens-WIsWKVbF.mjs.map} +1 -1
  239. package/dist/_chunks/{transferTokens-G-suI4pp.js → transferTokens-xL4mlopP.js} +2 -2
  240. package/dist/_chunks/{transferTokens-G-suI4pp.js.map → transferTokens-xL4mlopP.js.map} +1 -1
  241. package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs → useAdminRoles--ozrdfW_.mjs} +2 -2
  242. package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs.map → useAdminRoles--ozrdfW_.mjs.map} +1 -1
  243. package/dist/_chunks/{useAdminRoles-o4dxsCcY.js → useAdminRoles-Y25Pjlcy.js} +2 -2
  244. package/dist/_chunks/{useAdminRoles-o4dxsCcY.js.map → useAdminRoles-Y25Pjlcy.js.map} +1 -1
  245. package/dist/_chunks/{useContentTypes-dRoMxL8c.js → useContentTypes-Vr8jkHQL.js} +2 -2
  246. package/dist/_chunks/{useContentTypes-dRoMxL8c.js.map → useContentTypes-Vr8jkHQL.js.map} +1 -1
  247. package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs → useContentTypes-ralhLmpD.mjs} +2 -2
  248. package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs.map → useContentTypes-ralhLmpD.mjs.map} +1 -1
  249. package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs → useLicenseLimitNotification-RSTkqcfW.mjs} +2 -2
  250. package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs.map → useLicenseLimitNotification-RSTkqcfW.mjs.map} +1 -1
  251. package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js → useLicenseLimitNotification-fSsffVh-.js} +2 -2
  252. package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js.map → useLicenseLimitNotification-fSsffVh-.js.map} +1 -1
  253. package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs → useReviewWorkflows--7WPIykR.mjs} +2 -2
  254. package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs.map → useReviewWorkflows--7WPIykR.mjs.map} +1 -1
  255. package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js → useReviewWorkflows-4t3eVbDa.js} +2 -2
  256. package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js.map → useReviewWorkflows-4t3eVbDa.js.map} +1 -1
  257. package/dist/_chunks/{useSyncRbac-f7CCq_yt.js → useSyncRbac-Fw5UPeMQ.js} +2 -2
  258. package/dist/_chunks/{useSyncRbac-f7CCq_yt.js.map → useSyncRbac-Fw5UPeMQ.js.map} +1 -1
  259. package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs → useSyncRbac-JNQibLFa.mjs} +2 -2
  260. package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs.map → useSyncRbac-JNQibLFa.mjs.map} +1 -1
  261. package/dist/_chunks/{useWebhooks-Fhm21I_2.js → useWebhooks-IXb4Ks8E.js} +2 -2
  262. package/dist/_chunks/{useWebhooks-Fhm21I_2.js.map → useWebhooks-IXb4Ks8E.js.map} +1 -1
  263. package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs → useWebhooks-sfNt0r3v.mjs} +2 -2
  264. package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs.map → useWebhooks-sfNt0r3v.mjs.map} +1 -1
  265. package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs → validateWorkflow-YRBggwod.mjs} +2 -2
  266. package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs.map → validateWorkflow-YRBggwod.mjs.map} +1 -1
  267. package/dist/_chunks/{validateWorkflow-1g4fl4e7.js → validateWorkflow-akFNValJ.js} +2 -2
  268. package/dist/_chunks/{validateWorkflow-1g4fl4e7.js.map → validateWorkflow-akFNValJ.js.map} +1 -1
  269. package/dist/_chunks/{validation-NckIpCgz.js → validation--QPWqn0e.js} +2 -2
  270. package/dist/_chunks/{validation-NckIpCgz.js.map → validation--QPWqn0e.js.map} +1 -1
  271. package/dist/_chunks/{validation-aaWzg0nE.mjs → validation-hlioQ0PO.mjs} +2 -2
  272. package/dist/_chunks/{validation-aaWzg0nE.mjs.map → validation-hlioQ0PO.mjs.map} +1 -1
  273. package/dist/admin/index.js +4 -1
  274. package/dist/admin/index.js.map +1 -1
  275. package/dist/admin/index.mjs +21 -18
  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/services/api.d.ts +1 -1
  281. package/dist/admin/src/content-manager/services/components.d.ts +2 -2
  282. package/dist/admin/src/content-manager/services/contentTypes.d.ts +3 -3
  283. package/dist/admin/src/content-manager/services/documents.d.ts +17 -20
  284. package/dist/admin/src/content-manager/services/init.d.ts +1 -1
  285. package/dist/admin/src/content-manager/services/relations.d.ts +2 -2
  286. package/dist/admin/src/content-manager/services/uid.d.ts +3 -3
  287. package/dist/admin/src/core/store/configure.d.ts +2 -2
  288. package/dist/admin/src/core/store/hooks.d.ts +3 -3
  289. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -1
  290. package/dist/admin/src/hooks/useClipboard.d.ts +4 -0
  291. package/dist/admin/src/hooks/useFetchClient.d.ts +43 -0
  292. package/dist/admin/src/hooks/useFocusInputField.d.ts +20 -0
  293. package/dist/admin/src/hooks/useQueryParams.d.ts +5 -0
  294. package/dist/admin/src/index.d.ts +8 -6
  295. package/dist/admin/src/selectors.d.ts +2 -2
  296. package/dist/admin/src/utils/baseQuery.d.ts +1 -1
  297. package/dist/admin/src/utils/getFetchClient.d.ts +30 -0
  298. package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -2
  299. package/dist/admin/tests/index.js +49173 -0
  300. package/dist/admin/tests/index.js.map +1 -0
  301. package/dist/admin/tests/index.mjs +49135 -0
  302. package/dist/admin/tests/index.mjs.map +1 -0
  303. package/dist/admin/tests/mockData.d.ts +2053 -0
  304. package/dist/admin/tests/server.d.ts +2 -0
  305. package/dist/admin/tests/setup.d.ts +1 -0
  306. package/dist/admin/tests/store.d.ts +468 -0
  307. package/dist/admin/tests/utils.d.ts +511 -0
  308. package/package.json +19 -12
  309. package/dist/_chunks/ApplicationInfoPage-PHLA1Ysy.js.map +0 -1
  310. package/dist/_chunks/ApplicationInfoPage-Zn5JU2zd.mjs.map +0 -1
  311. package/dist/_chunks/EditPage-A6olBfVm.js.map +0 -1
  312. package/dist/_chunks/EditPage-VoRR5DCQ.mjs.map +0 -1
  313. package/dist/_chunks/EditView-C_ynfmtW.js.map +0 -1
  314. package/dist/_chunks/EditView-EuUw_2zc.mjs.map +0 -1
  315. package/dist/_chunks/EditViewPage-8uPO5GWR.mjs.map +0 -1
  316. package/dist/_chunks/EditViewPage-XtJmgPi5.js.map +0 -1
  317. package/dist/_chunks/EditViewPage-Z_e1dpbU.js.map +0 -1
  318. package/dist/_chunks/EditViewPage-xYzUSAwS.mjs.map +0 -1
  319. package/dist/_chunks/Filters-tMd2Q5jg.mjs.map +0 -1
  320. package/dist/_chunks/Filters-xVuf1kg6.js.map +0 -1
  321. package/dist/_chunks/History-1AF4LH3c.mjs.map +0 -1
  322. package/dist/_chunks/History-V_ik1IL0.js.map +0 -1
  323. package/dist/_chunks/InputRenderer-RMnWnPI4.js.map +0 -1
  324. package/dist/_chunks/InputRenderer-iP1kRki4.mjs.map +0 -1
  325. package/dist/_chunks/InstalledPluginsPage-7m_FfOGl.mjs.map +0 -1
  326. package/dist/_chunks/InstalledPluginsPage-PrMyistN.js.map +0 -1
  327. package/dist/_chunks/ListPage-1q5Fi4W9.mjs.map +0 -1
  328. package/dist/_chunks/ListPage-DZBRIMkE.mjs.map +0 -1
  329. package/dist/_chunks/ListPage-God7L19W.mjs.map +0 -1
  330. package/dist/_chunks/ListPage-Ky2tG2bd.mjs.map +0 -1
  331. package/dist/_chunks/ListPage-NdzVJ_Ed.js.map +0 -1
  332. package/dist/_chunks/ListPage-RlY1nro4.mjs.map +0 -1
  333. package/dist/_chunks/ListPage-_i7RNkUF.js.map +0 -1
  334. package/dist/_chunks/ListPage-aElBcYPH.js.map +0 -1
  335. package/dist/_chunks/ListPage-em8KMoKx.js.map +0 -1
  336. package/dist/_chunks/ListPage-skKuhRrN.js.map +0 -1
  337. package/dist/_chunks/ListView--mxDKrnG.js.map +0 -1
  338. package/dist/_chunks/ListView-QEgFV6dm.mjs.map +0 -1
  339. package/dist/_chunks/ListView-hm-mjZ8N.mjs.map +0 -1
  340. package/dist/_chunks/ListView-vP-PjR4p.js.map +0 -1
  341. package/dist/_chunks/ListViewPage-NiwpwxBR.js.map +0 -1
  342. package/dist/_chunks/ListViewPage-xOVa04T_.mjs.map +0 -1
  343. package/dist/_chunks/MarketplacePage-f0ZrC_p8.mjs.map +0 -1
  344. package/dist/_chunks/MarketplacePage-zSQ_GRnZ.js.map +0 -1
  345. package/dist/_chunks/NoContentTypePage-ER4yVLjV.mjs.map +0 -1
  346. package/dist/_chunks/NoContentTypePage-_XU8B8oQ.js.map +0 -1
  347. package/dist/_chunks/NoPermissionsPage-5A4Hwjad.js.map +0 -1
  348. package/dist/_chunks/NoPermissionsPage-DcFRsCHz.mjs.map +0 -1
  349. package/dist/_chunks/ProfilePage-EEcNKnGH.js.map +0 -1
  350. package/dist/_chunks/ProfilePage-bE7txhNu.mjs.map +0 -1
  351. package/dist/_chunks/SelectRoles-Iih1yeTu.mjs.map +0 -1
  352. package/dist/_chunks/SelectRoles-XK5HcBdP.js.map +0 -1
  353. package/dist/_chunks/SingleSignOnPage-uURRsIxP.js.map +0 -1
  354. package/dist/_chunks/SingleSignOnPage-vOeDxBfa.mjs.map +0 -1
  355. package/dist/_chunks/Table-VsNr4Mha.js.map +0 -1
  356. package/dist/_chunks/Table-k6gVR2KH.mjs.map +0 -1
  357. package/dist/_chunks/TokenTypeSelect-QN_bDdss.js.map +0 -1
  358. package/dist/_chunks/TokenTypeSelect-Z9iyoteG.mjs.map +0 -1
  359. package/dist/_chunks/index-5ZvCaCyY.mjs.map +0 -1
  360. package/dist/_chunks/index-ibtz273H.js.map +0 -1
  361. package/dist/admin/src/types/errors.d.ts +0 -2
@@ -7,13 +7,13 @@ import { useFormik, FormikProvider, Form } from "formik";
7
7
  import { useIntl } from "react-intl";
8
8
  import { useSelector, useDispatch } from "react-redux";
9
9
  import { useParams } from "react-router-dom";
10
- import { o as useAPIErrorHandler, u as useNotification, G as useLicenseLimits, H as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, Y as CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME, W as useUpdateWorkflowMutation, Z as useInjectReducer, _ as REDUX_NAMESPACE, $ as BackButton, J as ConfirmDialog, K as LimitsModal, w as isBaseQueryError } from "./index-5ZvCaCyY.mjs";
11
- import { u as useAdminRoles } from "./useAdminRoles-7_YWhmkQ.mjs";
12
- import { u as useContentTypes } from "./useContentTypes-x6OLbsWe.mjs";
13
- import { s as selectAdminPermissions } from "./selectors-JBxTdRJK.mjs";
14
- import { j as selectServerState, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, k as selectHasDeletedServerStages, c as selectRoles, s as selectIsLoading, v as validateWorkflow, r as reducer, l as setWorkflow, e as setWorkflows, f as setContentTypes, g as setRoles, h as setIsLoading, d as resetWorkflow, W as WorkflowAttributes, S as Stages } from "./validateWorkflow-DlwU9a4N.mjs";
15
- import { D as DragLayerRendered, H as Header, R as Root } from "./Layout-tDfvrUZo.mjs";
16
- import { u as useReviewWorkflows } from "./useReviewWorkflows-PAvhwNm3.mjs";
10
+ import { o as useAPIErrorHandler, u as useNotification, J as useLicenseLimits, K as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, _ as CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME, Y as useUpdateWorkflowMutation, $ as useInjectReducer, a0 as REDUX_NAMESPACE, a1 as BackButton, M as ConfirmDialog, O as LimitsModal, w as isBaseQueryError } from "./index-GIVuHJgC.mjs";
11
+ import { u as useAdminRoles } from "./useAdminRoles--ozrdfW_.mjs";
12
+ import { u as useContentTypes } from "./useContentTypes-ralhLmpD.mjs";
13
+ import { s as selectAdminPermissions } from "./selectors--2Vzk8PA.mjs";
14
+ import { j as selectServerState, a as selectIsWorkflowDirty, b as selectCurrentWorkflow, k as selectHasDeletedServerStages, c as selectRoles, s as selectIsLoading, v as validateWorkflow, r as reducer, l as setWorkflow, e as setWorkflows, f as setContentTypes, g as setRoles, h as setIsLoading, d as resetWorkflow, W as WorkflowAttributes, S as Stages } from "./validateWorkflow-YRBggwod.mjs";
15
+ import { D as DragLayerRendered, H as Header, R as Root } from "./Layout-2dctwEHz.mjs";
16
+ import { u as useReviewWorkflows } from "./useReviewWorkflows--7WPIykR.mjs";
17
17
  const ReviewWorkflowsEditPage = () => {
18
18
  const { workflowId = "" } = useParams();
19
19
  const permissions = useSelector(selectAdminPermissions);
@@ -300,4 +300,4 @@ const ReviewWorkflowsEditPage = () => {
300
300
  export {
301
301
  ReviewWorkflowsEditPage
302
302
  };
303
- //# sourceMappingURL=EditPage-fDVAYmuS.mjs.map
303
+ //# sourceMappingURL=EditPage-Izmz7bdh.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-fDVAYmuS.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider, FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } 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 { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\nimport { isBaseQueryError } from '../../../../../../../admin/src/utils/baseQuery';\nimport { Stage } from '../../../../../../../shared/contracts/review-workflows';\nimport { useLicenseLimits } from '../../../../hooks/useLicenseLimits';\nimport { useUpdateWorkflowMutation } from '../../../../services/reviewWorkflows';\n\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\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_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from './constants';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\nimport { CurrentWorkflow, reducer } from './reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from './selectors';\nimport { validateWorkflow } from './utils/validateWorkflow';\n\nexport const ReviewWorkflowsEditPage = () => {\n const { workflowId = '' } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings?.['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState<{\n hasDeletedServerStages?: boolean;\n hasReassignedContentTypes?: boolean;\n }>({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined);\n const [showLimitModal, setShowLimitModal] = React.useState<'workflow' | 'stage' | null>(null);\n const [initialErrors, setInitialErrors] = React.useState<FormikErrors<CurrentWorkflow>>();\n const [saving, setSaving] = React.useState(false);\n\n const workflow = workflows?.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n ?.filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const limits = getFeature<string>('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME];\n const stagesPerWorkflow = limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME];\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n\n const submitForm = async () => {\n // reset the error messages\n setInitialErrors(undefined);\n setSaving(true);\n\n try {\n const res = await updateWorkflow({\n id: workflowId!,\n data: {\n ...currentWorkflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: currentWorkflow.stages?.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow?.stages?.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permissions?.length ||\n !serverStage.permissions?.every(\n (serverPermission) =>\n !!stage.permissions?.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n } satisfies Stage;\n }),\n },\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({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setSaving(false);\n }\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes?.some((contentType) =>\n contentTypesFromOtherWorkflows?.includes(contentType)\n );\n\n if (meta && numberOfWorkflows && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n currentWorkflow.stages &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length > parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && workflow && workflows) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\n ]);\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && !isLicenseLoading) {\n if (meta && numberOfWorkflows && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal('workflow');\n } else if (\n currentWorkflow.stages &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length > parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta,\n numberOfWorkflows,\n stagesPerWorkflow,\n ]);\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 // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<BackButton />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Boolean(Object.keys(savePrompts).length > 0) && saving}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages?.length }\n )\n }\n title={currentWorkflow.name || ''}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog\n isOpen={Object.keys(savePrompts).length > 0}\n onClose={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows?.filter((contentType) =>\n currentWorkflow.contentTypes?.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(null)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root isOpen={showLimitModal === 'stage'} onClose={() => setShowLimitModal(null)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n};\n"],"names":["workflow","serverStage","Layout.DragLayerRendered","Layout.Header","Layout.Root"],"mappings":";;;;;;;;;;;;;;;;AAoDO,MAAM,0BAA0B,MAAM;AAC3C,QAAM,EAAE,aAAa,GAAG,IAAI,UAAU;AAChC,QAAA,cAAc,YAAY,sBAAsB;AAChD,QAAA,EAAE,kBAAkB;AAC1B,QAAM,WAAW;AACX,QAAA;AAAA,IACJ,yBAAyB;AAAA,IACzB,iCAAiC;AAAA,MAC/B,mBAAmB;AACjB,QAAA,EAAE,uBAAuB;AAC/B,QAAM,EAAE,WAAW,mBAAmB,MAAM,UAAA,IAAc;AAC1D,QAAM,EAAE,iBAAiB,aAAa,WAAW,sBAAA,IAA0B;AACrE,QAAA,cAAc,YAAY,iBAAiB;AAC3C,QAAA,yBAAyB,YAAY,qBAAqB;AAC1D,QAAA,kBAAkB,YAAY,qBAAqB;AACnD,QAAA,yBAAyB,YAAY,4BAA4B;AACjE,QAAA,QAAQ,YAAY,WAAW;AAC/B,QAAA,YAAY,YAAY,eAAe;AACvC,QAAA;AAAA,IACJ,gBAAgB,EAAE,WAAW,UAAU;AAAA,EACrC,IAAA,QAAQ,YAAY,WAAW,kBAAkB,CAAC;AACtD,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAGzC,CAAA,CAAE;AACL,QAAM,EAAE,YAAY,WAAW,qBAAqB,iBAAiB;AACrE,QAAM,EAAE,WAAW,gBAAgB,OAAO,YAAY,IAAI,cAAc,MAAS;AACjF,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAsC,IAAI;AAC5F,QAAM,CAAC,eAAe,gBAAgB,IAAI,MAAM,SAAwC;AACxF,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,KAAK;AAE1C,QAAA,WAAW,WAAW,KAAK,CAACA,cAAaA,UAAS,OAAO,SAAS,YAAY,EAAE,CAAC;AACvF,QAAM,iCAAiC,WACnC,OAAO,CAACA,cAAaA,UAAS,OAAO,SAAS,YAAY,EAAE,CAAC,EAC9D,QAAQ,CAACA,cAAaA,UAAS,YAAY;AAExC,QAAA,SAAS,WAAmB,kBAAkB;AAC9C,QAAA,oBAAoB,SAAS,mCAAmC;AAChE,QAAA,oBAAoB,SAAS,8CAA8C;AAE3E,QAAA,CAAC,cAAc,IAAI;AAEzB,QAAM,aAAa,YAAY;AAE7B,qBAAiB,MAAS;AAC1B,cAAU,IAAI;AAEV,QAAA;AACI,YAAA,MAAM,MAAM,eAAe;AAAA,QAC/B,IAAI;AAAA,QACJ,MAAM;AAAA,UACJ,GAAG;AAAA;AAAA;AAAA;AAAA,UAKH,QAAQ,gBAAgB,QAAQ,IAAI,CAAC,UAAU;AAC7C,gBAAI,wBAAwB;AACtB,kBAAA,cAAc,YAAY,UAAU,QAAQ;AAAA,cAChD,CAACC,iBAAgBA,aAAY,OAAO,OAAO;AAAA,YAAA;AAG7C,gBAAI,aAAa;AAEb,sCAAA,YAAY,aAAa,WAAW,MAAM,aAAa,UACvD,CAAC,YAAY,aAAa;AAAA,gBACxB,CAAC,qBACC,CAAC,CAAC,MAAM,aAAa;AAAA,kBACnB,CAAC,eAAe,WAAW,SAAS,iBAAiB;AAAA,gBACvD;AAAA,cAAA;AAAA,YAER;AAEO,mBAAA;AAAA,cACL,GAAG;AAAA,cACH,aAAa,wBAAwB,MAAM,cAAc;AAAA,YAAA;AAAA,UAC3D,CACD;AAAA,QACH;AAAA,MAAA,CACD;AAED,UAAI,WAAW,KAAK;AAClB,YAAI,iBAAiB,IAAI,KAAK,KAAK,IAAI,MAAM,SAAS,mBAAmB;AACtD,2BAAA,uBAAuB,IAAI,KAAK,CAAC;AAAA,QACpD;AAEmB,2BAAA;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,eAAe,IAAI,KAAK;AAAA,QAAA,CAClC;AAED;AAAA,MACF;AAEmB,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,cAAc,EAAE,IAAI,8BAA8B,gBAAgB,SAAS;AAAA,MAAA,CACrF;AAAA,aACM,OAAO;AACK,yBAAA;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IAAA,UACD;AACA,gBAAU,KAAK;AAAA,IACjB;AAEA,mBAAe,CAAE,CAAA;AAAA,EAAA;AAGnB,QAAM,4BAA4B,YAAY;AAC5C,UAAM,WAAW;AAAA,EAAA;AAGnB,QAAM,qBAAqB,MAAM;AAC/B,mBAAe,CAAE,CAAA;AAAA,EAAA;AAGnB,QAAM,SAAS,UAAU;AAAA,IACvB,oBAAoB;AAAA,IACpB;AAAA,IACA,eAAe;AAAA,IACf,MAAM,WAAW;AACT,YAAA,4BAA4B,gBAAgB,cAAc;AAAA,QAAK,CAAC,gBACpE,gCAAgC,SAAS,WAAW;AAAA,MAAA;AAGtD,UAAI,QAAQ,qBAAqB,MAAM,gBAAgB,SAAS,mBAAmB,EAAE,GAAG;AAMtF,0BAAkB,UAAU;AAAA,MAO9B,WACE,gBAAgB,UAChB,qBACA,gBAAgB,OAAO,SAAS,SAAS,mBAAmB,EAAE,GAC9D;AACA,0BAAkB,OAAO;AAAA,MAAA,WAChB,0BAA0B,2BAA2B;AAC9D,YAAI,wBAAwB;AAC1B,yBAAe,CAAC,UAAU,EAAE,GAAG,MAAM,wBAAwB,KAAO,EAAA;AAAA,QACtE;AAEA,YAAI,2BAA2B;AAC7B,yBAAe,CAAC,UAAU,EAAE,GAAG,MAAM,2BAA2B,KAAO,EAAA;AAAA,QACzE;AAAA,MAAA,OACK;AACM;MACb;AAAA,IACF;AAAA,IACA,SAAS,QAAQ;AACf,aAAO,iBAAiB,EAAE,QAAQ,cAAe,CAAA;AAAA,IACnD;AAAA,EAAA,CACD;AAED,mBAAiB,iBAAiB,OAAO;AAEzC,QAAM,UAAU,MAAM;AAChB,QAAA,CAAC,qBAAqB,YAAY,WAAW;AAC/C,eAAS,YAAY,EAAE,SAAS,CAAC,CAAC;AAClC,eAAS,aAAa,EAAE,UAAU,CAAC,CAAC;AAAA,IACtC;AAEA,QAAI,CAAC,uBAAuB;AAC1B,eAAS,gBAAgB,EAAE,iBAAiB,YAAA,CAAa,CAAC;AAAA,IAC5D;AAEA,QAAI,CAAC,gBAAgB;AACV,eAAA,SAAS,WAAW,CAAC;AAAA,IAChC;AAEA,aAAS,aAAa,qBAAqB,yBAAyB,cAAc,CAAC;AAInF,WAAO,MAAM;AACX,eAAS,eAAe;AAAA,IAAA;AAAA,EAC1B,GACC;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAeD,QAAM,UAAU,MAAM;AAChB,QAAA,CAAC,qBAAqB,CAAC,kBAAkB;AAC3C,UAAI,QAAQ,qBAAqB,MAAM,gBAAgB,SAAS,mBAAmB,EAAE,GAAG;AACtF,0BAAkB,UAAU;AAAA,MAC9B,WACE,gBAAgB,UAChB,qBACA,gBAAgB,OAAO,SAAS,SAAS,mBAAmB,EAAE,GAC9D;AACA,0BAAkB,OAAO;AAAA,MAC3B;AAAA,IACF;AAAA,EAAA,GACC;AAAA,IACD,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAED,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,aAAa,OAAO,WAAW,GAAG;AAClB,yBAAA;AAAA,QACjB,iBAAiB;AAAA,QACjB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IACH;AAAA,KACC,CAAC,eAAe,WAAW,OAAO,kBAAkB,CAAC;AAIxD,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAAC,mBAAA,EAAyB;AAAA,IAE1B,oBAAC,kBAAe,OAAO,QACrB,+BAAC,MAAK,EAAA,UAAU,OAAO,cACrB,UAAA;AAAA,MAAA;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,sCAAmB,YAAW,EAAA;AAAA,UAC9B,eACE,aACE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,+BAAY,OAAM,EAAA;AAAA,cAClB,MAAK;AAAA,cACL,MAAK;AAAA,cACL,UAAU,CAAC;AAAA,cAGX,SAAS,CAAC,QAAQ,OAAO,KAAK,WAAW,EAAE,SAAS,CAAC,KAAK;AAAA,cAEzD,UAAc,cAAA;AAAA,gBACb,IAAI;AAAA,gBACJ,gBAAgB;AAAA,cAAA,CACjB;AAAA,YAAA;AAAA,UACH;AAAA,UAGJ,UACE,CAAC,aACD;AAAA,YACE;AAAA,cACE,IAAI;AAAA,cACJ,gBAAgB;AAAA,YAClB;AAAA,YACA,EAAE,OAAO,gBAAgB,QAAQ,OAAO;AAAA,UAC1C;AAAA,UAEF,OAAO,gBAAgB,QAAQ;AAAA,QAAA;AAAA,MACjC;AAAA,MAEA,oBAACC,MAAA,EACE,UAAA,YACE,oBAAA,MAAA,EAAK,gBAAe,UACnB,UAAC,oBAAA,QAAA,EACE,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBAAgB;AAAA,MACjB,CAAA,EACH,CAAA,EACF,CAAA,IAEA,qBAAC,MAAK,EAAA,YAAW,WAAU,WAAU,UAAS,KAAK,GACjD,UAAA;AAAA,QAAA,oBAAC,sBAAmB,WAAsB;AAAA,QAC1C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,QAAQ,OAAO,QAAQ;AAAA,UAAA;AAAA,QACzB;AAAA,MAAA,EAAA,CACF,EAEJ,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IAEA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAQ,OAAO,KAAK,WAAW,EAAE,SAAS;AAAA,QAC1C,SAAS;AAAA,QACT,WAAW;AAAA,QAEX,UAAC,qBAAA,MAAA,EAAK,WAAU,UAAS,KAAK,GAC3B,UAAA;AAAA,UAAA,YAAY,0BACV,oBAAA,YAAA,EAAW,WAAU,UAAS,SAAQ,SACpC,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBACE;AAAA,UACH,CAAA,GACH;AAAA,UAGD,YAAY,6BACX,oBAAC,cAAW,WAAU,UAAS,SAAQ,SACpC,UAAA;AAAA,YACC;AAAA,cACE,IAAI;AAAA,cACJ,gBACE;AAAA,YACJ;AAAA,YACA;AAAA,cACE,OAAO,gCAAgC;AAAA,gBAAO,CAAC,gBAC7C,gBAAgB,cAAc,SAAS,WAAW;AAAA,cAAA,EAClD;AAAA,YACJ;AAAA,UAAA,GAEJ;AAAA,8BAGD,YAAW,EAAA,WAAU,UAAS,SAAQ,SACpC,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IACF;AAAA,IAEA;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QACC,QAAQ,mBAAmB;AAAA,QAC3B,SAAS,MAAM,kBAAkB,IAAI;AAAA,QAErC,UAAA;AAAA,UAAC,oBAAA,YAAY,OAAZ,EACE,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,UAEC,oBAAA,YAAY,MAAZ,EACE,UAAc,cAAA;AAAA,YACb,IAAI;AAAA,YACJ,gBAAgB;AAAA,UACjB,CAAA,GACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IAEA,qBAAC,YAAY,MAAZ,EAAiB,QAAQ,mBAAmB,SAAS,SAAS,MAAM,kBAAkB,IAAI,GACzF,UAAA;AAAA,MAAC,oBAAA,YAAY,OAAZ,EACE,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBAAgB;AAAA,MACjB,CAAA,GACH;AAAA,MAEC,oBAAA,YAAY,MAAZ,EACE,UAAc,cAAA;AAAA,QACb,IAAI;AAAA,QACJ,gBAAgB;AAAA,MACjB,CAAA,GACH;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"EditPage-Izmz7bdh.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, Loader, Typography } from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport { useFormik, Form, FormikProvider, FormikErrors } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams } 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 { selectAdminPermissions } from '../../../../../../../admin/src/selectors';\nimport { isBaseQueryError } from '../../../../../../../admin/src/utils/baseQuery';\nimport { Stage } from '../../../../../../../shared/contracts/review-workflows';\nimport { useLicenseLimits } from '../../../../hooks/useLicenseLimits';\nimport { useUpdateWorkflowMutation } from '../../../../services/reviewWorkflows';\n\nimport {\n resetWorkflow,\n setIsLoading,\n setWorkflow,\n setContentTypes,\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_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n REDUX_NAMESPACE,\n} from './constants';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\nimport { CurrentWorkflow, reducer } from './reducer';\nimport {\n selectIsWorkflowDirty,\n selectCurrentWorkflow,\n selectHasDeletedServerStages,\n selectIsLoading,\n selectRoles,\n selectServerState,\n} from './selectors';\nimport { validateWorkflow } from './utils/validateWorkflow';\n\nexport const ReviewWorkflowsEditPage = () => {\n const { workflowId = '' } = useParams();\n const permissions = useSelector(selectAdminPermissions);\n const { formatMessage } = useIntl();\n const dispatch = useDispatch();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const { isLoading: isLoadingWorkflow, meta, workflows } = useReviewWorkflows();\n const { collectionTypes, singleTypes, isLoading: isLoadingContentTypes } = useContentTypes();\n const serverState = useSelector(selectServerState);\n const currentWorkflowIsDirty = useSelector(selectIsWorkflowDirty);\n const currentWorkflow = useSelector(selectCurrentWorkflow);\n const hasDeletedServerStages = useSelector(selectHasDeletedServerStages);\n const roles = useSelector(selectRoles);\n const isLoading = useSelector(selectIsLoading);\n const {\n allowedActions: { canDelete, canUpdate },\n } = useRBAC(permissions.settings?.['review-workflows']);\n const [savePrompts, setSavePrompts] = React.useState<{\n hasDeletedServerStages?: boolean;\n hasReassignedContentTypes?: boolean;\n }>({});\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const { isLoading: isLoadingRoles, roles: serverRoles } = useAdminRoles(undefined);\n const [showLimitModal, setShowLimitModal] = React.useState<'workflow' | 'stage' | null>(null);\n const [initialErrors, setInitialErrors] = React.useState<FormikErrors<CurrentWorkflow>>();\n const [saving, setSaving] = React.useState(false);\n\n const workflow = workflows?.find((workflow) => workflow.id === parseInt(workflowId, 10));\n const contentTypesFromOtherWorkflows = workflows\n ?.filter((workflow) => workflow.id !== parseInt(workflowId, 10))\n .flatMap((workflow) => workflow.contentTypes);\n\n const limits = getFeature<string>('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME];\n const stagesPerWorkflow = limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME];\n\n const [updateWorkflow] = useUpdateWorkflowMutation();\n\n const submitForm = async () => {\n // reset the error messages\n setInitialErrors(undefined);\n setSaving(true);\n\n try {\n const res = await updateWorkflow({\n id: workflowId!,\n data: {\n ...currentWorkflow,\n\n // compare permissions of stages and only submit them if at least one has\n // changed; this enables partial updates e.g. for users who don't have\n // permissions to see roles\n stages: currentWorkflow.stages?.map((stage) => {\n let hasUpdatedPermissions = true;\n const serverStage = serverState.workflow?.stages?.find(\n (serverStage) => serverStage.id === stage?.id\n );\n\n if (serverStage) {\n hasUpdatedPermissions =\n serverStage.permissions?.length !== stage.permissions?.length ||\n !serverStage.permissions?.every(\n (serverPermission) =>\n !!stage.permissions?.find(\n (permission) => permission.role === serverPermission.role\n )\n );\n }\n\n return {\n ...stage,\n permissions: hasUpdatedPermissions ? stage.permissions : undefined,\n } satisfies Stage;\n }),\n },\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({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setSaving(false);\n }\n\n setSavePrompts({});\n };\n\n const handleConfirmDeleteDialog = async () => {\n await submitForm();\n };\n\n const handleConfirmClose = () => {\n setSavePrompts({});\n };\n\n const formik = useFormik({\n enableReinitialize: true,\n initialErrors,\n initialValues: currentWorkflow,\n async onSubmit() {\n const isContentTypeReassignment = currentWorkflow.contentTypes?.some((contentType) =>\n contentTypesFromOtherWorkflows?.includes(contentType)\n );\n\n if (meta && numberOfWorkflows && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n /**\n * If the current license has a limit, check if the total count of workflows\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit, check if the total count of stages\n * exceeds that limit and display the limits modal instead of sending the\n * update, because it would throw an API error.\n */\n } else if (\n currentWorkflow.stages &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length > parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n } else if (hasDeletedServerStages || isContentTypeReassignment) {\n if (hasDeletedServerStages) {\n setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));\n }\n\n if (isContentTypeReassignment) {\n setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));\n }\n } else {\n submitForm();\n }\n },\n validate(values) {\n return validateWorkflow({ values, formatMessage });\n },\n });\n\n useInjectReducer(REDUX_NAMESPACE, reducer);\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && workflow && workflows) {\n dispatch(setWorkflow({ workflow }));\n dispatch(setWorkflows({ workflows }));\n }\n\n if (!isLoadingContentTypes) {\n dispatch(setContentTypes({ collectionTypes, singleTypes }));\n }\n\n if (!isLoadingRoles) {\n dispatch(setRoles(serverRoles));\n }\n\n dispatch(setIsLoading(isLoadingWorkflow || isLoadingContentTypes || isLoadingRoles));\n\n // reset the state to the initial state to avoid flashes if a user\n // navigates from an edit-view to a create-view\n return () => {\n dispatch(resetWorkflow());\n };\n }, [\n collectionTypes,\n dispatch,\n isLoadingContentTypes,\n isLoadingWorkflow,\n isLoadingRoles,\n serverRoles,\n singleTypes,\n workflow,\n workflows,\n ]);\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n\n React.useEffect(() => {\n if (!isLoadingWorkflow && !isLicenseLoading) {\n if (meta && numberOfWorkflows && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal('workflow');\n } else if (\n currentWorkflow.stages &&\n stagesPerWorkflow &&\n currentWorkflow.stages.length > parseInt(stagesPerWorkflow, 10)\n ) {\n setShowLimitModal('stage');\n }\n }\n }, [\n currentWorkflow.stages,\n isLicenseLoading,\n isLoadingWorkflow,\n limits,\n meta,\n numberOfWorkflows,\n stagesPerWorkflow,\n ]);\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 // TODO: redirect back to list-view if workflow is not found?\n\n return (\n <>\n <Layout.DragLayerRendered />\n\n <FormikProvider value={formik}>\n <Form onSubmit={formik.handleSubmit}>\n <Layout.Header\n navigationAction={<BackButton />}\n primaryAction={\n canUpdate && (\n <Button\n startIcon={<Check />}\n type=\"submit\"\n size=\"M\"\n disabled={!currentWorkflowIsDirty}\n // if the confirm dialog is open the loading state is on\n // the confirm button already\n loading={!Boolean(Object.keys(savePrompts).length > 0) && saving}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n subtitle={\n !isLoading &&\n formatMessage(\n {\n id: 'Settings.review-workflows.page.subtitle',\n defaultMessage: '{count, plural, one {# stage} other {# stages}}',\n },\n { count: currentWorkflow.stages?.length }\n )\n }\n title={currentWorkflow.name || ''}\n />\n\n <Layout.Root>\n {isLoading ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.isLoading',\n defaultMessage: 'Workflow is loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Flex alignItems=\"stretch\" direction=\"column\" gap={7}>\n <WorkflowAttributes canUpdate={canUpdate} />\n <Stages\n canDelete={canDelete}\n canUpdate={canUpdate}\n stages={formik.values?.stages}\n />\n </Flex>\n )}\n </Layout.Root>\n </Form>\n </FormikProvider>\n\n <ConfirmDialog\n isOpen={Object.keys(savePrompts).length > 0}\n onClose={handleConfirmClose}\n onConfirm={handleConfirmDeleteDialog}\n >\n <Flex direction=\"column\" gap={5}>\n {savePrompts.hasDeletedServerStages && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.stages.body',\n defaultMessage:\n 'All entries assigned to deleted stages will be moved to the previous stage.',\n })}\n </Typography>\n )}\n\n {savePrompts.hasReassignedContentTypes && (\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage(\n {\n id: 'Settings.review-workflows.page.delete.confirm.contentType.body',\n defaultMessage:\n '{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',\n },\n {\n count: contentTypesFromOtherWorkflows?.filter((contentType) =>\n currentWorkflow.contentTypes?.includes(contentType)\n ).length,\n }\n )}\n </Typography>\n )}\n\n <Typography textAlign=\"center\" variant=\"omega\">\n {formatMessage({\n id: 'Settings.review-workflows.page.delete.confirm.confirm',\n defaultMessage: 'Are you sure you want to save?',\n })}\n </Typography>\n </Flex>\n </ConfirmDialog>\n\n <LimitsModal.Root\n isOpen={showLimitModal === 'workflow'}\n onClose={() => setShowLimitModal(null)}\n >\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n\n <LimitsModal.Root isOpen={showLimitModal === 'stage'} onClose={() => setShowLimitModal(null)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.edit.page.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </>\n );\n};\n"],"names":["workflow","serverStage","Layout.DragLayerRendered","Layout.Header","Layout.Root"],"mappings":"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"}
@@ -10,10 +10,10 @@ const reactHelmet = require("react-helmet");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
12
  const yup = require("yup");
13
- const index = require("./index-ibtz273H.js");
14
- const selectors = require("./selectors-TFKI8arF.js");
15
- const SelectRoles = require("./SelectRoles-XK5HcBdP.js");
16
- const validation = require("./validation-NckIpCgz.js");
13
+ const index = require("./index-haHGOQMJ.js");
14
+ const selectors = require("./selectors-NSSzzIzx.js");
15
+ const SelectRoles = require("./SelectRoles-BmNzL0q5.js");
16
+ const validation = require("./validation--QPWqn0e.js");
17
17
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
18
18
  function _interopNamespace(e) {
19
19
  if (e && e.__esModule)
@@ -56,7 +56,7 @@ const EditPage = () => {
56
56
  const { toggleNotification } = index.useNotification();
57
57
  const MagicLink = index.useEnterprise(
58
58
  SelectRoles.MagicLinkCE,
59
- async () => (await Promise.resolve().then(() => require("./MagicLinkEE-S7dXBaH0.js"))).MagicLinkEE
59
+ async () => (await Promise.resolve().then(() => require("./MagicLinkEE-v7xTuVEA.js"))).MagicLinkEE
60
60
  );
61
61
  const {
62
62
  _unstableFormatAPIError: formatAPIError,
@@ -71,7 +71,6 @@ const EditPage = () => {
71
71
  update: permissions.settings?.users.update ?? []
72
72
  });
73
73
  const [updateUser] = index.useUpdateUserMutation();
74
- helperPlugin.useFocusWhenNavigate();
75
74
  const {
76
75
  data,
77
76
  error,
@@ -138,7 +137,7 @@ const EditPage = () => {
138
137
  });
139
138
  }
140
139
  };
141
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { children: [
140
+ return /* @__PURE__ */ jsxRuntime.jsxs(index.Page.Main, { children: [
142
141
  /* @__PURE__ */ jsxRuntime.jsx(
143
142
  reactHelmet.Helmet,
144
143
  {
@@ -345,4 +344,4 @@ const ProtectedEditPage = () => {
345
344
  };
346
345
  exports.EditPage = EditPage;
347
346
  exports.ProtectedEditPage = ProtectedEditPage;
348
- //# sourceMappingURL=EditPage-A6olBfVm.js.map
347
+ //# sourceMappingURL=EditPage-QA0-S3kV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditPage-QA0-S3kV.js","sources":["../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n Typography,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the use to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n />\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <HeaderLayout\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n name: getDisplayName(initialData, formatMessage),\n }\n )}\n navigationAction={<BackButton />}\n />\n <ContentLayout>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </GridItem>\n );\n })\n )}\n </Grid>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles disabled={!canUpdate} />\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n </Flex>\n </ContentLayout>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["yup","COMMON_USER_SCHEMA","translatedErrors","useIntl","useMatch","useNavigate","useNotification","useEnterprise","MagicLinkCE","useAPIErrorHandler","useTypedSelector","selectAdminPermissions","useRBAC","useUpdateUserMutation","useAdminUsers","React","jsx","Page","pick","id","isBaseQueryError","jsxs","Helmet","Form","Fragment","HeaderLayout","Button","Check","getDisplayName","BackButton","ContentLayout","Box","Flex","Typography","Grid","GridItem","InputRenderer","SelectRoles"],"mappings":"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"}
@@ -6,9 +6,9 @@ import { Helmet } from "react-helmet";
6
6
  import { useIntl } from "react-intl";
7
7
  import { useMatch, Navigate } from "react-router-dom";
8
8
  import * as yup from "yup";
9
- import { p as errorsTrads, q as useTypedSelector, P as Page, u as useNotification, d as useTracking, o as useAPIErrorHandler, b6 as useGetRolePermissionLayoutQuery, b7 as useGetRolePermissionsQuery, bb as useUpdateRoleMutation, b9 as useUpdateRolePermissionsMutation, $ as BackButton, w as isBaseQueryError } from "./index-5ZvCaCyY.mjs";
10
- import { u as useAdminRoles } from "./useAdminRoles-7_YWhmkQ.mjs";
11
- import { P as Permissions } from "./Permissions-Ke5fqSQ2.mjs";
9
+ 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, bf as useUpdateRoleMutation, bd as useUpdateRolePermissionsMutation, a1 as BackButton, w as isBaseQueryError } from "./index-GIVuHJgC.mjs";
10
+ import { u as useAdminRoles } from "./useAdminRoles--ozrdfW_.mjs";
11
+ import { P as Permissions } from "./Permissions-NbmBkSB4.mjs";
12
12
  const RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {
13
13
  const { formatMessage } = useIntl();
14
14
  return /* @__PURE__ */ jsx(Box, { background: "neutral0", padding: 6, shadow: "filterShadow", hasRadius: true, children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
@@ -256,4 +256,4 @@ export {
256
256
  EditPage,
257
257
  ProtectedEditPage
258
258
  };
259
- //# sourceMappingURL=EditPage-_swY0Hy-.mjs.map
259
+ //# sourceMappingURL=EditPage-THSaM4-0.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-_swY0Hy-.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\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 {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\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: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport { Formik, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\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 { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\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 const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\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 if (role.code !== 'strapi-super-admin' && permissionsToSend) {\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 if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !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 enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit 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 <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["translatedErrors"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage-THSaM4-0.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\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 {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\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: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport { Formik, FormikHelpers } from 'formik';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\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 { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\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 const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\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 if (role.code !== 'strapi-super-admin' && permissionsToSend) {\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 if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !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 enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit 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 <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["translatedErrors"],"mappings":"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"}
@@ -5,13 +5,13 @@ const designSystem = require("@strapi/design-system");
5
5
  const reactHelmet = require("react-helmet");
6
6
  const reactIntl = require("react-intl");
7
7
  const reactRouterDom = require("react-router-dom");
8
- const index = require("./index-ibtz273H.js");
9
- const selectors = require("./selectors-TFKI8arF.js");
8
+ const index = require("./index-haHGOQMJ.js");
9
+ const selectors = require("./selectors-NSSzzIzx.js");
10
10
  const Icons = require("@strapi/icons");
11
11
  const formik = require("formik");
12
12
  const yup = require("yup");
13
13
  const styled = require("styled-components");
14
- const useWebhooks = require("./useWebhooks-Fhm21I_2.js");
14
+ const useWebhooks = require("./useWebhooks-IXb4Ks8E.js");
15
15
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
16
16
  function _interopNamespace(e) {
17
17
  if (e && e.__esModule)
@@ -490,7 +490,7 @@ const WebhookForm = ({
490
490
  const [showTriggerResponse, setShowTriggerResponse] = React__namespace.useState(false);
491
491
  const EventTable = index.useEnterprise(
492
492
  EventTableCE,
493
- async () => (await Promise.resolve().then(() => require("./EventsTable-hI0aV29K.js"))).EventsTableEE
493
+ async () => (await Promise.resolve().then(() => require("./EventsTable-1X4uyY8J.js"))).EventsTableEE
494
494
  );
495
495
  const mapHeaders = (headers) => {
496
496
  if (!Object.keys(headers).length) {
@@ -807,4 +807,4 @@ const EditPage$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
807
807
  exports.EditPage = EditPage;
808
808
  exports.EditPage$1 = EditPage$1;
809
809
  exports.Events = Events;
810
- //# sourceMappingURL=EditPage-QoDSqYYq.js.map
810
+ //# sourceMappingURL=EditPage-vUQIn3OJ.js.map