@strapi/admin 5.0.0-alpha.7 → 5.0.0-alpha.8

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 (208) hide show
  1. package/dist/admin/{AdminSeatInfo-5S4b9ytt.js → AdminSeatInfo-Gp4BFR1_.js} +2 -2
  2. package/dist/admin/{AdminSeatInfo-5S4b9ytt.js.map → AdminSeatInfo-Gp4BFR1_.js.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-A6gxA301.mjs → AdminSeatInfo-dDgFBcLY.mjs} +2 -2
  4. package/dist/admin/{AdminSeatInfo-A6gxA301.mjs.map → AdminSeatInfo-dDgFBcLY.mjs.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-SaBco4KU.mjs → ApplicationInfoPage-GQLKLk5T.mjs} +3 -3
  6. package/dist/admin/{ApplicationInfoPage-SaBco4KU.mjs.map → ApplicationInfoPage-GQLKLk5T.mjs.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-Fxy6RARu.js → ApplicationInfoPage-e_sOqQMh.js} +3 -3
  8. package/dist/admin/{ApplicationInfoPage-Fxy6RARu.js.map → ApplicationInfoPage-e_sOqQMh.js.map} +1 -1
  9. package/dist/admin/{AuthenticatedLayout-Iyagtqob.mjs → AuthenticatedLayout-3fYM18Xy.mjs} +3 -3
  10. package/dist/admin/{AuthenticatedLayout-Iyagtqob.mjs.map → AuthenticatedLayout-3fYM18Xy.mjs.map} +1 -1
  11. package/dist/admin/{AuthenticatedLayout-tRi16L9c.js → AuthenticatedLayout-gGQYIisy.js} +3 -3
  12. package/dist/admin/{AuthenticatedLayout-tRi16L9c.js.map → AuthenticatedLayout-gGQYIisy.js.map} +1 -1
  13. package/dist/admin/{ComponentConfigurationPage-6CnnkE6E.mjs → ComponentConfigurationPage-0kf7a5LK.mjs} +2 -2
  14. package/dist/admin/{ComponentConfigurationPage-6CnnkE6E.mjs.map → ComponentConfigurationPage-0kf7a5LK.mjs.map} +1 -1
  15. package/dist/admin/{ComponentConfigurationPage-LpuZH_80.js → ComponentConfigurationPage-U7RcNJFs.js} +2 -2
  16. package/dist/admin/{ComponentConfigurationPage-LpuZH_80.js.map → ComponentConfigurationPage-U7RcNJFs.js.map} +1 -1
  17. package/dist/admin/{CreateActionEE-9-R9hmOH.js → CreateActionEE-HO-FmNjw.js} +2 -2
  18. package/dist/admin/{CreateActionEE-9-R9hmOH.js.map → CreateActionEE-HO-FmNjw.js.map} +1 -1
  19. package/dist/admin/{CreateActionEE-fPOnLJuM.mjs → CreateActionEE-OscS6KZj.mjs} +2 -2
  20. package/dist/admin/{CreateActionEE-fPOnLJuM.mjs.map → CreateActionEE-OscS6KZj.mjs.map} +1 -1
  21. package/dist/admin/{CreatePage-t0FqkFrZ.mjs → CreatePage-1a_Nb-RK.mjs} +6 -6
  22. package/dist/admin/{CreatePage-t0FqkFrZ.mjs.map → CreatePage-1a_Nb-RK.mjs.map} +1 -1
  23. package/dist/admin/{CreatePage-k_yey8N_.mjs → CreatePage-8rG8fSZv.mjs} +2 -2
  24. package/dist/admin/{CreatePage-k_yey8N_.mjs.map → CreatePage-8rG8fSZv.mjs.map} +1 -1
  25. package/dist/admin/{CreatePage-UjSB-dgp.js → CreatePage-B0kLot_Q.js} +2 -2
  26. package/dist/admin/{CreatePage-UjSB-dgp.js.map → CreatePage-B0kLot_Q.js.map} +1 -1
  27. package/dist/admin/{CreatePage-couIKeZQ.mjs → CreatePage-c92hDTE3.mjs} +2 -2
  28. package/dist/admin/{CreatePage-couIKeZQ.mjs.map → CreatePage-c92hDTE3.mjs.map} +1 -1
  29. package/dist/admin/{CreatePage-Fu_8X4K8.js → CreatePage-h9gJgINE.js} +2 -2
  30. package/dist/admin/{CreatePage-Fu_8X4K8.js.map → CreatePage-h9gJgINE.js.map} +1 -1
  31. package/dist/admin/{CreatePage-ZPziliHk.js → CreatePage-pN8WcSWM.js} +6 -6
  32. package/dist/admin/{CreatePage-ZPziliHk.js.map → CreatePage-pN8WcSWM.js.map} +1 -1
  33. package/dist/admin/{CreateView-41To--31.js → CreateView-Gd7sLphf.js} +2 -2
  34. package/dist/admin/{CreateView-41To--31.js.map → CreateView-Gd7sLphf.js.map} +1 -1
  35. package/dist/admin/{CreateView-3rY4Zptu.mjs → CreateView-PIPvgwa8.mjs} +2 -2
  36. package/dist/admin/{CreateView-3rY4Zptu.mjs.map → CreateView-PIPvgwa8.mjs.map} +1 -1
  37. package/dist/admin/{CreateView-Tg9Mh5T3.js → CreateView-kVD9MjAf.js} +2 -2
  38. package/dist/admin/{CreateView-Tg9Mh5T3.js.map → CreateView-kVD9MjAf.js.map} +1 -1
  39. package/dist/admin/{CreateView-ePHsDH45.mjs → CreateView-nXkGgZTO.mjs} +2 -2
  40. package/dist/admin/{CreateView-ePHsDH45.mjs.map → CreateView-nXkGgZTO.mjs.map} +1 -1
  41. package/dist/admin/{EditConfigurationPage-xUIWyyB3.js → EditConfigurationPage-YAS-MAtE.js} +2 -2
  42. package/dist/admin/{EditConfigurationPage-xUIWyyB3.js.map → EditConfigurationPage-YAS-MAtE.js.map} +1 -1
  43. package/dist/admin/{EditConfigurationPage-msmjy1KU.mjs → EditConfigurationPage-jugWslla.mjs} +2 -2
  44. package/dist/admin/{EditConfigurationPage-msmjy1KU.mjs.map → EditConfigurationPage-jugWslla.mjs.map} +1 -1
  45. package/dist/admin/{EditPage-KuoEv50O.mjs → EditPage-6pGLGlrZ.mjs} +3 -3
  46. package/dist/admin/{EditPage-KuoEv50O.mjs.map → EditPage-6pGLGlrZ.mjs.map} +1 -1
  47. package/dist/admin/{EditPage-SySHhxVT.mjs → EditPage-I99-ASjb.mjs} +4 -4
  48. package/dist/admin/{EditPage-SySHhxVT.mjs.map → EditPage-I99-ASjb.mjs.map} +1 -1
  49. package/dist/admin/{EditPage-3SBMJVop.mjs → EditPage-NrM8ZRAf.mjs} +6 -6
  50. package/dist/admin/{EditPage-3SBMJVop.mjs.map → EditPage-NrM8ZRAf.mjs.map} +1 -1
  51. package/dist/admin/{EditPage-ZB_Kwtk6.js → EditPage-ci9fcWte.js} +6 -6
  52. package/dist/admin/{EditPage-ZB_Kwtk6.js.map → EditPage-ci9fcWte.js.map} +1 -1
  53. package/dist/admin/{EditPage-cCyAao8t.mjs → EditPage-fT6nuOwT.mjs} +3 -3
  54. package/dist/admin/{EditPage-cCyAao8t.mjs.map → EditPage-fT6nuOwT.mjs.map} +1 -1
  55. package/dist/admin/{EditPage--MbF06mK.js → EditPage-hEDFGDcC.js} +3 -3
  56. package/dist/admin/{EditPage--MbF06mK.js.map → EditPage-hEDFGDcC.js.map} +1 -1
  57. package/dist/admin/{EditPage-GG3uO1tK.js → EditPage-m5HVhxC-.js} +3 -3
  58. package/dist/admin/{EditPage-GG3uO1tK.js.map → EditPage-m5HVhxC-.js.map} +1 -1
  59. package/dist/admin/{EditPage-qUg5s7MV.js → EditPage-um8Yysr-.js} +4 -4
  60. package/dist/admin/{EditPage-qUg5s7MV.js.map → EditPage-um8Yysr-.js.map} +1 -1
  61. package/dist/admin/{EditView-uTB8aFye.mjs → EditView-79rujo0b.mjs} +2 -2
  62. package/dist/admin/{EditView-uTB8aFye.mjs.map → EditView-79rujo0b.mjs.map} +1 -1
  63. package/dist/admin/{EditView-NPoSYint.js → EditView-zEf-a-YM.js} +2 -2
  64. package/dist/admin/{EditView-NPoSYint.js.map → EditView-zEf-a-YM.js.map} +1 -1
  65. package/dist/admin/{EditViewPage-GUkP1rzn.mjs → EditViewPage-BJdNfzBZ.mjs} +2 -2
  66. package/dist/admin/{EditViewPage-GUkP1rzn.mjs.map → EditViewPage-BJdNfzBZ.mjs.map} +1 -1
  67. package/dist/admin/{EditViewPage-aIpRJ8vJ.js → EditViewPage-Y67V7K7l.js} +2 -2
  68. package/dist/admin/{EditViewPage-aIpRJ8vJ.js.map → EditViewPage-Y67V7K7l.js.map} +1 -1
  69. package/dist/admin/{EditViewPage-8eo8XEp-.mjs → EditViewPage-iuq_KY3C.mjs} +2 -2
  70. package/dist/admin/{EditViewPage-8eo8XEp-.mjs.map → EditViewPage-iuq_KY3C.mjs.map} +1 -1
  71. package/dist/admin/{EditViewPage-K7ytzy_P.js → EditViewPage-vrE8FNb1.js} +2 -2
  72. package/dist/admin/{EditViewPage-K7ytzy_P.js.map → EditViewPage-vrE8FNb1.js.map} +1 -1
  73. package/dist/admin/{EventsTable-miLAex8G.mjs → EventsTable-LOh2EX0N.mjs} +2 -2
  74. package/dist/admin/{EventsTable-miLAex8G.mjs.map → EventsTable-LOh2EX0N.mjs.map} +1 -1
  75. package/dist/admin/{EventsTable-LHOhvL6b.js → EventsTable-bm16Pj4a.js} +2 -2
  76. package/dist/admin/{EventsTable-LHOhvL6b.js.map → EventsTable-bm16Pj4a.js.map} +1 -1
  77. package/dist/admin/{Filters-dwU8wA6T.js → Filters-5FAHd62q.js} +2 -2
  78. package/dist/admin/{Filters-dwU8wA6T.js.map → Filters-5FAHd62q.js.map} +1 -1
  79. package/dist/admin/{Filters-NuK9aAYl.mjs → Filters-hYfcsahl.mjs} +2 -2
  80. package/dist/admin/{Filters-NuK9aAYl.mjs.map → Filters-hYfcsahl.mjs.map} +1 -1
  81. package/dist/admin/{Form-y8gH26Xy.mjs → Form-7gccxUtH.mjs} +2 -2
  82. package/dist/admin/{Form-y8gH26Xy.mjs.map → Form-7gccxUtH.mjs.map} +1 -1
  83. package/dist/admin/{Form-QoOkjEjV.js → Form-m0qUJusG.js} +2 -2
  84. package/dist/admin/{Form-QoOkjEjV.js.map → Form-m0qUJusG.js.map} +1 -1
  85. package/dist/admin/{HomePage-K72cOtYS.mjs → HomePage-2q7ngwX4.mjs} +3 -3
  86. package/dist/admin/{HomePage-K72cOtYS.mjs.map → HomePage-2q7ngwX4.mjs.map} +1 -1
  87. package/dist/admin/{HomePage-89WRumlX.mjs → HomePage-_eHszm7N.mjs} +3 -3
  88. package/dist/admin/{HomePage-89WRumlX.mjs.map → HomePage-_eHszm7N.mjs.map} +1 -1
  89. package/dist/admin/{HomePage-qj5mNY6J.js → HomePage-jwm3AAzI.js} +3 -3
  90. package/dist/admin/{HomePage-qj5mNY6J.js.map → HomePage-jwm3AAzI.js.map} +1 -1
  91. package/dist/admin/{HomePage-33ElW8Xc.js → HomePage-ozwWqZdZ.js} +3 -3
  92. package/dist/admin/{HomePage-33ElW8Xc.js.map → HomePage-ozwWqZdZ.js.map} +1 -1
  93. package/dist/admin/{Layout-JxGSf9_Y.mjs → Layout-JSg7Wwnx.mjs} +2 -2
  94. package/dist/admin/{Layout-JxGSf9_Y.mjs.map → Layout-JSg7Wwnx.mjs.map} +1 -1
  95. package/dist/admin/{Layout-u3VVVTce.mjs → Layout-gqm-mRb2.mjs} +3 -3
  96. package/dist/admin/{Layout-u3VVVTce.mjs.map → Layout-gqm-mRb2.mjs.map} +1 -1
  97. package/dist/admin/{Layout-v-mkhXKv.js → Layout-rp7YlCuF.js} +3 -3
  98. package/dist/admin/{Layout-v-mkhXKv.js.map → Layout-rp7YlCuF.js.map} +1 -1
  99. package/dist/admin/{Layout-T0g-F0J1.js → Layout-tPXv8ts4.js} +2 -2
  100. package/dist/admin/{Layout-T0g-F0J1.js.map → Layout-tPXv8ts4.js.map} +1 -1
  101. package/dist/admin/{ListConfigurationPage-bltmUKBT.mjs → ListConfigurationPage-1JkDop6y.mjs} +2 -2
  102. package/dist/admin/{ListConfigurationPage-bltmUKBT.mjs.map → ListConfigurationPage-1JkDop6y.mjs.map} +1 -1
  103. package/dist/admin/{ListConfigurationPage-MwlySSVK.js → ListConfigurationPage-egv99PTx.js} +2 -2
  104. package/dist/admin/{ListConfigurationPage-MwlySSVK.js.map → ListConfigurationPage-egv99PTx.js.map} +1 -1
  105. package/dist/admin/{ListPage-L-_ih7Hh.js → ListPage-5VIwPlnG.js} +3 -3
  106. package/dist/admin/{ListPage-L-_ih7Hh.js.map → ListPage-5VIwPlnG.js.map} +1 -1
  107. package/dist/admin/{ListPage-t2yAStC4.js → ListPage-85XB15gk.js} +4 -4
  108. package/dist/admin/{ListPage-t2yAStC4.js.map → ListPage-85XB15gk.js.map} +1 -1
  109. package/dist/admin/{ListPage-jUKAQtpH.js → ListPage-NG7c9Zx-.js} +3 -3
  110. package/dist/admin/{ListPage-jUKAQtpH.js.map → ListPage-NG7c9Zx-.js.map} +1 -1
  111. package/dist/admin/{ListPage-VNJqXKYM.js → ListPage-Wf8HxliA.js} +3 -3
  112. package/dist/admin/{ListPage-VNJqXKYM.js.map → ListPage-Wf8HxliA.js.map} +1 -1
  113. package/dist/admin/{ListPage-6TwMzZ42.mjs → ListPage-Y0vGfxO1.mjs} +3 -3
  114. package/dist/admin/{ListPage-6TwMzZ42.mjs.map → ListPage-Y0vGfxO1.mjs.map} +1 -1
  115. package/dist/admin/{ListPage-ea3ZLj4B.mjs → ListPage-_1MCPNWC.mjs} +3 -3
  116. package/dist/admin/{ListPage-ea3ZLj4B.mjs.map → ListPage-_1MCPNWC.mjs.map} +1 -1
  117. package/dist/admin/{ListPage-cB1S2S4t.mjs → ListPage-bdblB4wE.mjs} +2 -2
  118. package/dist/admin/{ListPage-cB1S2S4t.mjs.map → ListPage-bdblB4wE.mjs.map} +1 -1
  119. package/dist/admin/{ListPage-zMNnrnTB.js → ListPage-d0uTS6lH.js} +2 -2
  120. package/dist/admin/{ListPage-zMNnrnTB.js.map → ListPage-d0uTS6lH.js.map} +1 -1
  121. package/dist/admin/{ListPage-nvhOIoAg.js → ListPage-e0975Wh-.js} +7 -7
  122. package/dist/admin/{ListPage-nvhOIoAg.js.map → ListPage-e0975Wh-.js.map} +1 -1
  123. package/dist/admin/{ListPage-pP9hYRl0.mjs → ListPage-eMKRFxzM.mjs} +3 -3
  124. package/dist/admin/{ListPage-pP9hYRl0.mjs.map → ListPage-eMKRFxzM.mjs.map} +1 -1
  125. package/dist/admin/{ListPage-QKnSioEM.mjs → ListPage-tFqx6zb_.mjs} +7 -7
  126. package/dist/admin/{ListPage-QKnSioEM.mjs.map → ListPage-tFqx6zb_.mjs.map} +1 -1
  127. package/dist/admin/{ListPage-tR89wtOV.mjs → ListPage-v07yRAHk.mjs} +4 -4
  128. package/dist/admin/{ListPage-tR89wtOV.mjs.map → ListPage-v07yRAHk.mjs.map} +1 -1
  129. package/dist/admin/{ListView-TAmGuKTG.mjs → ListView-9shnR2xp.mjs} +2 -2
  130. package/dist/admin/{ListView-TAmGuKTG.mjs.map → ListView-9shnR2xp.mjs.map} +1 -1
  131. package/dist/admin/{ListView-I9Hfj5vj.js → ListView-IaEe1_Uy.js} +2 -2
  132. package/dist/admin/{ListView-I9Hfj5vj.js.map → ListView-IaEe1_Uy.js.map} +1 -1
  133. package/dist/admin/{ListView-mCiRJwrY.js → ListView-_EZZ571X.js} +2 -2
  134. package/dist/admin/{ListView-mCiRJwrY.js.map → ListView-_EZZ571X.js.map} +1 -1
  135. package/dist/admin/{ListView-MbnmLD5H.mjs → ListView-z9G1Eash.mjs} +2 -2
  136. package/dist/admin/{ListView-MbnmLD5H.mjs.map → ListView-z9G1Eash.mjs.map} +1 -1
  137. package/dist/admin/{ListViewPage-J4KUAgai.mjs → ListViewPage-FE12IpwT.mjs} +6 -6
  138. package/dist/admin/{ListViewPage-J4KUAgai.mjs.map → ListViewPage-FE12IpwT.mjs.map} +1 -1
  139. package/dist/admin/{ListViewPage-dluuhb-d.js → ListViewPage-u5WSF93L.js} +6 -6
  140. package/dist/admin/{ListViewPage-dluuhb-d.js.map → ListViewPage-u5WSF93L.js.map} +1 -1
  141. package/dist/admin/{Login-eWkr5rD0.mjs → Login-9iKNSYCJ.mjs} +2 -2
  142. package/dist/admin/{Login-eWkr5rD0.mjs.map → Login-9iKNSYCJ.mjs.map} +1 -1
  143. package/dist/admin/{Login-xaRTR09T.js → Login-ug0ICazL.js} +2 -2
  144. package/dist/admin/{Login-xaRTR09T.js.map → Login-ug0ICazL.js.map} +1 -1
  145. package/dist/admin/{MagicLinkEE-jSJRGswm.mjs → MagicLinkEE-3a4aj5bM.mjs} +3 -3
  146. package/dist/admin/{MagicLinkEE-jSJRGswm.mjs.map → MagicLinkEE-3a4aj5bM.mjs.map} +1 -1
  147. package/dist/admin/{MagicLinkEE-DdAnlnbT.js → MagicLinkEE-TlpYCgSF.js} +3 -3
  148. package/dist/admin/{MagicLinkEE-DdAnlnbT.js.map → MagicLinkEE-TlpYCgSF.js.map} +1 -1
  149. package/dist/admin/{MarketplacePage-NuCSMXXA.mjs → MarketplacePage-BBs4GMeX.mjs} +2 -2
  150. package/dist/admin/{MarketplacePage-NuCSMXXA.mjs.map → MarketplacePage-BBs4GMeX.mjs.map} +1 -1
  151. package/dist/admin/{MarketplacePage-7R9OXLe5.js → MarketplacePage-GuZItQkJ.js} +2 -2
  152. package/dist/admin/{MarketplacePage-7R9OXLe5.js.map → MarketplacePage-GuZItQkJ.js.map} +1 -1
  153. package/dist/admin/{ReviewWorkflowsColumn-fFjISpV-.mjs → ReviewWorkflowsColumn-NUu47oVz.mjs} +2 -2
  154. package/dist/admin/{ReviewWorkflowsColumn-fFjISpV-.mjs.map → ReviewWorkflowsColumn-NUu47oVz.mjs.map} +1 -1
  155. package/dist/admin/{ReviewWorkflowsColumn-woA2SXEC.js → ReviewWorkflowsColumn-uIqJfjyd.js} +2 -2
  156. package/dist/admin/{ReviewWorkflowsColumn-woA2SXEC.js.map → ReviewWorkflowsColumn-uIqJfjyd.js.map} +1 -1
  157. package/dist/admin/{SelectRoles-IagtXRkz.js → SelectRoles-5vr-vXOm.js} +3 -3
  158. package/dist/admin/{SelectRoles-IagtXRkz.js.map → SelectRoles-5vr-vXOm.js.map} +1 -1
  159. package/dist/admin/{SelectRoles-wkrG60gH.mjs → SelectRoles-ytHc3di2.mjs} +3 -3
  160. package/dist/admin/{SelectRoles-wkrG60gH.mjs.map → SelectRoles-ytHc3di2.mjs.map} +1 -1
  161. package/dist/admin/{SingleSignOnPage-QtJcKvz1.js → SingleSignOnPage-1Wqj_7y-.js} +2 -2
  162. package/dist/admin/{SingleSignOnPage-QtJcKvz1.js.map → SingleSignOnPage-1Wqj_7y-.js.map} +1 -1
  163. package/dist/admin/{SingleSignOnPage-EnR7TNHn.mjs → SingleSignOnPage-7oJES3UH.mjs} +2 -2
  164. package/dist/admin/{SingleSignOnPage-EnR7TNHn.mjs.map → SingleSignOnPage-7oJES3UH.mjs.map} +1 -1
  165. package/dist/admin/{Table--Lb2Jk8K.mjs → Table-LQhGojNx.mjs} +2 -2
  166. package/dist/admin/{Table--Lb2Jk8K.mjs.map → Table-LQhGojNx.mjs.map} +1 -1
  167. package/dist/admin/{Table-EGrwI1DE.js → Table-M5UsBfFs.js} +2 -2
  168. package/dist/admin/{Table-EGrwI1DE.js.map → Table-M5UsBfFs.js.map} +1 -1
  169. package/dist/admin/{TokenTypeSelect-Vsm3x9aT.mjs → TokenTypeSelect-5o9mvFd7.mjs} +2 -2
  170. package/dist/admin/{TokenTypeSelect-Vsm3x9aT.mjs.map → TokenTypeSelect-5o9mvFd7.mjs.map} +1 -1
  171. package/dist/admin/{TokenTypeSelect-nSM_sCJb.js → TokenTypeSelect-ZBDI26vJ.js} +2 -2
  172. package/dist/admin/{TokenTypeSelect-nSM_sCJb.js.map → TokenTypeSelect-ZBDI26vJ.js.map} +1 -1
  173. package/dist/admin/{UseCasePage-LDFlFUgh.mjs → UseCasePage-e7rn-aW-.mjs} +2 -2
  174. package/dist/admin/{UseCasePage-LDFlFUgh.mjs.map → UseCasePage-e7rn-aW-.mjs.map} +1 -1
  175. package/dist/admin/{UseCasePage-lb8KTjmb.js → UseCasePage-q3u-xs7F.js} +2 -2
  176. package/dist/admin/{UseCasePage-lb8KTjmb.js.map → UseCasePage-q3u-xs7F.js.map} +1 -1
  177. package/dist/admin/{constants-aUUP-q78.js → constants-6E1OwHx7.js} +3 -3
  178. package/dist/admin/{constants-aUUP-q78.js.map → constants-6E1OwHx7.js.map} +1 -1
  179. package/dist/admin/{constants--TURFsEh.mjs → constants-AdKxCt0x.mjs} +2 -2
  180. package/dist/admin/{constants--TURFsEh.mjs.map → constants-AdKxCt0x.mjs.map} +1 -1
  181. package/dist/admin/{constants--6hi2sq7.mjs → constants-D6NLEhwu.mjs} +3 -3
  182. package/dist/admin/{constants--6hi2sq7.mjs.map → constants-D6NLEhwu.mjs.map} +1 -1
  183. package/dist/admin/{constants-yG6U1h1n.js → constants-ZZWbRAQT.js} +2 -2
  184. package/dist/admin/{constants-yG6U1h1n.js.map → constants-ZZWbRAQT.js.map} +1 -1
  185. package/dist/admin/{index-oXhvt6Nv.mjs → index-1NFAbkxM.mjs} +36 -36
  186. package/dist/admin/{index-oXhvt6Nv.mjs.map → index-1NFAbkxM.mjs.map} +1 -1
  187. package/dist/admin/{index-lSQdx61-.js → index-mQQPK-ix.js} +36 -36
  188. package/dist/admin/{index-lSQdx61-.js.map → index-mQQPK-ix.js.map} +1 -1
  189. package/dist/admin/index.js +1 -1
  190. package/dist/admin/index.mjs +1 -1
  191. package/dist/admin/{useAdminRoles-bTVTWj4N.mjs → useAdminRoles-BG7b996L.mjs} +2 -2
  192. package/dist/admin/{useAdminRoles-bTVTWj4N.mjs.map → useAdminRoles-BG7b996L.mjs.map} +1 -1
  193. package/dist/admin/{useAdminRoles-efJpe2jv.js → useAdminRoles-THWXour6.js} +2 -2
  194. package/dist/admin/{useAdminRoles-efJpe2jv.js.map → useAdminRoles-THWXour6.js.map} +1 -1
  195. package/dist/admin/{useLicenseLimitNotification-4B6SglGc.mjs → useLicenseLimitNotification-9DqSZuyc.mjs} +2 -2
  196. package/dist/admin/{useLicenseLimitNotification-4B6SglGc.mjs.map → useLicenseLimitNotification-9DqSZuyc.mjs.map} +1 -1
  197. package/dist/admin/{useLicenseLimitNotification-lLyTIkNR.js → useLicenseLimitNotification-SiWQ5LGo.js} +2 -2
  198. package/dist/admin/{useLicenseLimitNotification-lLyTIkNR.js.map → useLicenseLimitNotification-SiWQ5LGo.js.map} +1 -1
  199. package/dist/admin/{useReviewWorkflows-KJq-ld3U.js → useReviewWorkflows-0ty4mwQd.js} +2 -2
  200. package/dist/admin/{useReviewWorkflows-KJq-ld3U.js.map → useReviewWorkflows-0ty4mwQd.js.map} +1 -1
  201. package/dist/admin/{useReviewWorkflows-1IXSO8ml.mjs → useReviewWorkflows-HwyFyit7.mjs} +2 -2
  202. package/dist/admin/{useReviewWorkflows-1IXSO8ml.mjs.map → useReviewWorkflows-HwyFyit7.mjs.map} +1 -1
  203. package/dist/admin/{validateWorkflow-1RnC2GKb.js → validateWorkflow-99y3bkNx.js} +2 -2
  204. package/dist/admin/{validateWorkflow-1RnC2GKb.js.map → validateWorkflow-99y3bkNx.js.map} +1 -1
  205. package/dist/admin/{validateWorkflow-BOHXHGsM.mjs → validateWorkflow-ubLwZqCK.mjs} +2 -2
  206. package/dist/admin/{validateWorkflow-BOHXHGsM.mjs.map → validateWorkflow-ubLwZqCK.mjs.map} +1 -1
  207. package/dist/package.json.d.ts +1 -1
  208. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-3SBMJVop.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 { 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 { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\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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"}
1
+ {"version":3,"file":"EditPage-NrM8ZRAf.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 { 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 { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\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,14 +10,14 @@ const formik = require('formik');
10
10
  const reactIntl = require('react-intl');
11
11
  const reactRedux = require('react-redux');
12
12
  const reactRouterDom = require('react-router-dom');
13
- const index = require('./index-lSQdx61-.js');
13
+ const index = require('./index-mQQPK-ix.js');
14
14
  const layout = require('./reducers-wZUQqmNX.js');
15
- const useAdminRoles = require('./useAdminRoles-efJpe2jv.js');
15
+ const useAdminRoles = require('./useAdminRoles-THWXour6.js');
16
16
  const useContentTypes = require('./useContentTypes-RoSvxizj.js');
17
17
  const selectors = require('./selectors-PTHjHMQi.js');
18
- const validateWorkflow = require('./validateWorkflow-1RnC2GKb.js');
19
- const Layout = require('./Layout-T0g-F0J1.js');
20
- const useReviewWorkflows = require('./useReviewWorkflows-KJq-ld3U.js');
18
+ const validateWorkflow = require('./validateWorkflow-99y3bkNx.js');
19
+ const Layout = require('./Layout-tPXv8ts4.js');
20
+ const useReviewWorkflows = require('./useReviewWorkflows-0ty4mwQd.js');
21
21
 
22
22
  function _interopNamespace(e) {
23
23
  if (e && e.__esModule) return e;
@@ -324,4 +324,4 @@ const ReviewWorkflowsEditPage = () => {
324
324
  };
325
325
 
326
326
  exports.ReviewWorkflowsEditPage = ReviewWorkflowsEditPage;
327
- //# sourceMappingURL=EditPage-ZB_Kwtk6.js.map
327
+ //# sourceMappingURL=EditPage-ci9fcWte.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-ZB_Kwtk6.js","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 { 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 { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\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":["useParams","useSelector","selectAdminPermissions","useIntl","useDispatch","useAPIErrorHandler","useNotification","useReviewWorkflows","useContentTypes","selectServerState","selectIsWorkflowDirty","selectCurrentWorkflow","selectHasDeletedServerStages","selectRoles","selectIsLoading","useRBAC","React","useLicenseLimits","useAdminRoles","workflow","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","useUpdateWorkflowMutation","serverStage","isBaseQueryError","formik","useFormik","validateWorkflow","useInjectReducer","REDUX_NAMESPACE","reducer","setWorkflow","setWorkflows","setContentTypes","setRoles","setIsLoading","resetWorkflow","jsxs","Fragment","jsx","Layout.DragLayerRendered","FormikProvider","Form","Layout.Header","BackButton","Button","Check","Layout.Root","Flex","Loader","WorkflowAttributes","Stages","ConfirmDialog","Typography","LimitsModal"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage-ci9fcWte.js","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 { 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 { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\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":["useParams","useSelector","selectAdminPermissions","useIntl","useDispatch","useAPIErrorHandler","useNotification","useReviewWorkflows","useContentTypes","selectServerState","selectIsWorkflowDirty","selectCurrentWorkflow","selectHasDeletedServerStages","selectRoles","selectIsLoading","useRBAC","React","useLicenseLimits","useAdminRoles","workflow","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","useUpdateWorkflowMutation","serverStage","isBaseQueryError","formik","useFormik","validateWorkflow","useInjectReducer","REDUX_NAMESPACE","reducer","setWorkflow","setWorkflows","setContentTypes","setRoles","setIsLoading","resetWorkflow","jsxs","Fragment","jsx","Layout.DragLayerRendered","FormikProvider","Form","Layout.Header","BackButton","Button","Check","Layout.Root","Flex","Loader","WorkflowAttributes","Stages","ConfirmDialog","Typography","LimitsModal"],"mappings":"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"}
@@ -7,8 +7,8 @@ import { useIntl } from 'react-intl';
7
7
  import { useMatch, Navigate } from 'react-router-dom';
8
8
  import * as yup from 'yup';
9
9
  import { _ as errorsTrads, h as useTypedSelector, P as Page, j as useNotification, o as useTracking, i as useAPIErrorHandler, H as isBaseQueryError } from './reducers-IQWvK_9L.mjs';
10
- import { Y as useGetRolePermissionLayoutQuery, Z as useGetRolePermissionsQuery, a0 as useUpdateRoleMutation, $ as useUpdateRolePermissionsMutation, B as BackButton } from './index-oXhvt6Nv.mjs';
11
- import { u as useAdminRoles } from './useAdminRoles-bTVTWj4N.mjs';
10
+ import { Y as useGetRolePermissionLayoutQuery, Z as useGetRolePermissionsQuery, a0 as useUpdateRoleMutation, $ as useUpdateRolePermissionsMutation, B as BackButton } from './index-1NFAbkxM.mjs';
11
+ import { u as useAdminRoles } from './useAdminRoles-BG7b996L.mjs';
12
12
  import { P as Permissions } from './Permissions-v99MLjbi.mjs';
13
13
 
14
14
  const RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {
@@ -257,4 +257,4 @@ const ProtectedEditPage = () => {
257
257
  };
258
258
 
259
259
  export { EditPage, ProtectedEditPage };
260
- //# sourceMappingURL=EditPage-cCyAao8t.mjs.map
260
+ //# sourceMappingURL=EditPage-fT6nuOwT.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-cCyAao8t.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', defaultMessage: 'An error occurred' }),\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":";;;;;;;;;;;;;AAuBA,MAAM,QAAA,GAAW,CAAC,EAAE,QAAA,EAAU,MAAM,MAAQ,EAAA,MAAA,EAAQ,QAAU,EAAA,MAAA,EAA4B,KAAA;AACxF,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAElC,EAAA,2BACG,GAAI,EAAA,EAAA,UAAA,EAAW,UAAW,EAAA,OAAA,EAAS,GAAG,MAAO,EAAA,cAAA,EAAe,SAAS,EAAA,IAAA,EACpE,+BAAC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,oBAAC,IAAA,CAAA,IAAA,EAAA,EAAK,gBAAe,eACnB,EAAA,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,GAAA,EAAA,EACC,8BAAC,UAAW,EAAA,EAAA,UAAA,EAAW,QACpB,QACG,EAAA,IAAA,GAAA,IAAA,CAAK,OACL,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,gBAAA;AAAA,UACJ,cAAgB,EAAA,SAAA;AAAA,SACjB,GACP,CACF,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,GACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA,OAAA,EAAQ,IACxC,EAAA,QAAA,EAAA,IAAA,GACG,IAAK,CAAA,WAAA,GACL,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,iCAAA;AAAA,UACJ,cAAgB,EAAA,kCAAA;AAAA,SACjB,GACP,CACF,EAAA,CAAA;AAAA,OACF,EAAA,CAAA;AAAA,sBACC,GAAA,CAAA,MAAA,EAAA,EAAO,QAAQ,EAAA,IAAA,EAAC,SAAQ,WACtB,EAAA,QAAA,EAAA,aAAA;AAAA,QACC;AAAA,UACE,EAAI,EAAA,4CAAA;AAAA,UACJ,cACE,EAAA,4EAAA;AAAA,SACJ;AAAA,QACA,EAAE,MAAQ,EAAA,IAAA,CAAK,UAAW,EAAA;AAAA,OAE9B,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,oBACA,IAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,QAAA,EAAA,EAAS,KAAK,CACb,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,IAAK,EAAA,MAAA;AAAA,UACL,KAAA,EAAO,OAAO,IAAQ,IAAA,aAAA,CAAc,EAAE,EAAI,EAAA,MAAA,CAAO,MAAM,CAAA;AAAA,UACvD,OAAO,aAAc,CAAA;AAAA,YACnB,EAAI,EAAA,aAAA;AAAA,YACJ,cAAgB,EAAA,MAAA;AAAA,WACjB,CAAA;AAAA,UACD,QAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAQ,EAAA,IAAA;AAAA,UACR,KAAA,EAAO,OAAO,IAAQ,IAAA,EAAA;AAAA,SAAA;AAAA,OAE1B,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,QAAS,EAAA,EAAA,GAAA,EAAK,CACb,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,OAAO,aAAc,CAAA;AAAA,YACnB,EAAI,EAAA,oBAAA;AAAA,YACJ,cAAgB,EAAA,aAAA;AAAA,WACjB,CAAA;AAAA,UACD,EAAG,EAAA,aAAA;AAAA,UACH,KAAA,EAAO,OAAO,IAAQ,IAAA,aAAA,CAAc,EAAE,EAAI,EAAA,MAAA,CAAO,MAAM,CAAA;AAAA,UACvD,QAAA;AAAA,UACA,MAAA;AAAA,UAEC,iBAAO,WAAe,IAAA,EAAA;AAAA,SAAA;AAAA,OAE3B,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACtEA,MAAM,gBAAmB,GAAA,GAAA,CAAI,MAAO,EAAA,CAAE,KAAM,CAAA;AAAA,EAC1C,MAAM,GAAI,CAAA,MAAA,GAAS,QAAS,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AAAA,EACxD,WAAa,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,QAAS,EAAA;AACrC,CAAC,CAAA,CAAA;AAUD,MAAM,WAAW,MAAM;AACrB,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA,CAAA;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,SAAS,qBAAqB,CAAA,CAAA;AAC5C,EAAM,MAAA,EAAA,GAAK,OAAO,MAAO,CAAA,EAAA,CAAA;AACzB,EAAM,MAAA,cAAA,GAAiB,KAAM,CAAA,MAAA,CAAuB,IAAI,CAAA,CAAA;AACxD,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,WAAY,EAAA,CAAA;AACnC,EAAM,MAAA;AAAA,IACJ,uBAAyB,EAAA,cAAA;AAAA,IACzB,+BAAiC,EAAA,sBAAA;AAAA,MAC/B,kBAAmB,EAAA,CAAA;AAEvB,EAAA,MAAM,EAAE,SAAW,EAAA,0BAAA,EAA4B,IAAM,EAAA,iBAAA,KACnD,+BAAgC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAK9B,MAAM,EAAM,IAAA,EAAA;AAAA,GACb,CAAA,CAAA;AAEH,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,SAAW,EAAA,aAAA;AAAA,IACX,OAAS,EAAA,WAAA;AAAA,GACP,GAAA,aAAA;AAAA,IACF,EAAE,EAAG,EAAA;AAAA,IACL;AAAA,MACE,yBAA2B,EAAA,IAAA;AAAA,KAC7B;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,CAAC,CAAA,IAAK,EAAC,CAAA;AAE1B,EAAA,MAAM,EAAE,IAAA,EAAM,WAAa,EAAA,SAAA,EAAW,sBAAyB,GAAA,0BAAA;AAAA,IAC7D;AAAA,MACE,EAAA;AAAA,KACF;AAAA,IACA;AAAA,MACE,MAAM,CAAC,EAAA;AAAA,MACP,yBAA2B,EAAA,IAAA;AAAA,KAC7B;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,CAAC,UAAU,CAAA,GAAI,qBAAsB,EAAA,CAAA;AAC3C,EAAM,MAAA,CAAC,qBAAqB,CAAA,GAAI,gCAAiC,EAAA,CAAA;AAEjE,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAO,uBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,EAAA,EAAG,iBAAkB,EAAA,CAAA,CAAA;AAAA,GACxC;AAEA,EAAM,MAAA,oBAAA,GAAuB,OAC3B,IAAA,EACA,MACG,KAAA;AACH,IAAI,IAAA;AACF,MAAM,MAAA,EAAE,mBAAmB,mBAAoB,EAAA,GAC7C,eAAe,OAAS,EAAA,cAAA,MAAoB,EAAC,CAAA;AAE/C,MAAM,MAAA,GAAA,GAAM,MAAM,UAAW,CAAA;AAAA,QAC3B,EAAA;AAAA,QACA,GAAG,IAAA;AAAA,OACJ,CAAA,CAAA;AAED,MAAA,IAAI,WAAW,GAAK,EAAA;AAClB,QAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,UAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,SAC7C,MAAA;AACL,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,QAAA;AAAA,YACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA,WAClC,CAAA,CAAA;AAAA,SACH;AAEA,QAAA,OAAA;AAAA,OACF;AAEA,MAAI,IAAA,IAAA,CAAK,IAAS,KAAA,oBAAA,IAAwB,iBAAmB,EAAA;AAC3D,QAAM,MAAA,SAAA,GAAY,MAAM,qBAAsB,CAAA;AAAA,UAC5C,EAAA,EAAI,IAAI,IAAK,CAAA,EAAA;AAAA,UACb,WAAa,EAAA,iBAAA;AAAA,SACd,CAAA,CAAA;AAED,QAAA,IAAI,WAAW,SAAW,EAAA;AACxB,UAAA,IAAI,iBAAiB,SAAU,CAAA,KAAK,KAAK,SAAU,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACnF,YAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,SAAU,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,WACnD,MAAA;AACL,YAAmB,kBAAA,CAAA;AAAA,cACjB,IAAM,EAAA,QAAA;AAAA,cACN,OAAA,EAAS,cAAe,CAAA,SAAA,CAAU,KAAK,CAAA;AAAA,aACxC,CAAA,CAAA;AAAA,WACH;AAEA,UAAA,OAAA;AAAA,SACF;AAEA,QAAA,IAAI,mBAAqB,EAAA;AACvB,UAAA,UAAA,CAAW,qBAAqB,CAAA,CAAA;AAAA,SAClC;AAAA,OACF;AAEA,MAAA,cAAA,CAAe,SAAS,kBAAmB,EAAA,CAAA;AAE3C,MAAA,MAAM,WAAY,EAAA,CAAA;AAElB,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,SAAA;AAAA,QACN,OAAS,EAAA,aAAA,CAAc,EAAE,EAAA,EAAI,8BAA8B,CAAA;AAAA,OAC5D,CAAA,CAAA;AAAA,aACM,KAAO,EAAA;AACd,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,SAAS,aAAc,CAAA,EAAE,IAAI,oBAAsB,EAAA,cAAA,EAAgB,qBAAqB,CAAA;AAAA,OACzF,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAiB,GAAA,CAAC,aAAiB,IAAA,IAAA,CAAK,IAAS,KAAA,oBAAA,CAAA;AAEvD,EAAA,IAAI,0BAA8B,IAAA,aAAA,IAAiB,oBAAwB,IAAA,CAAC,iBAAmB,EAAA;AAC7F,IAAO,uBAAA,GAAA,CAAC,IAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,aAAA;AAAA,UACL,EAAE,EAAA,EAAI,oBAAsB,EAAA,cAAA,EAAgB,mBAAoB,EAAA;AAAA,UAChE;AAAA,YACE,IAAM,EAAA,OAAA;AAAA,WACR;AAAA,SACF;AAAA,OAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,kBAAkB,EAAA,IAAA;AAAA,QAClB,aACE,EAAA;AAAA,UACE,IAAA,EAAM,KAAK,IAAQ,IAAA,EAAA;AAAA,UACnB,WAAA,EAAa,KAAK,WAAe,IAAA,EAAA;AAAA,SACnC;AAAA,QAEF,QAAU,EAAA,oBAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,QAEjB,QAAC,EAAA,CAAA,EAAE,YAAc,EAAA,MAAA,EAAQ,MAAQ,EAAA,YAAA,EAAc,UAAY,EAAA,YAAA,EAC1D,qBAAA,IAAA,CAAC,MAAK,EAAA,EAAA,QAAA,EAAU,YACd,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,aACE,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,kBAAA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,IAAK,EAAA,QAAA;AAAA,kBACL,QAAA,EAAU,KAAK,IAAS,KAAA,oBAAA;AAAA,kBACxB,OAAS,EAAA,YAAA;AAAA,kBACT,IAAK,EAAA,GAAA;AAAA,kBAEJ,QAAc,EAAA,aAAA,CAAA;AAAA,oBACb,EAAI,EAAA,aAAA;AAAA,oBACJ,cAAgB,EAAA,MAAA;AAAA,mBACjB,CAAA;AAAA,iBAAA;AAAA,eAEL,EAAA,CAAA;AAAA,cAEF,OAAO,aAAc,CAAA;AAAA,gBACnB,EAAI,EAAA,2BAAA;AAAA,gBACJ,cAAgB,EAAA,aAAA;AAAA,eACjB,CAAA;AAAA,cACD,UAAU,aAAc,CAAA;AAAA,gBACtB,EAAI,EAAA,mCAAA;AAAA,gBACJ,cAAgB,EAAA,qCAAA;AAAA,eACjB,CAAA;AAAA,cACD,gBAAA,sBAAmB,UAAW,EAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAChC;AAAA,0BACA,GAAA,CAAC,iBACC,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,WAAU,QAAS,EAAA,UAAA,EAAW,SAAU,EAAA,GAAA,EAAK,CACjD,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,QAAU,EAAA,cAAA;AAAA,gBACV,MAAA;AAAA,gBACA,MAAA;AAAA,gBACA,QAAU,EAAA,YAAA;AAAA,gBACV,MAAQ,EAAA,UAAA;AAAA,gBACR,IAAA;AAAA,eAAA;AAAA,aACF;AAAA,4BACC,GAAA,CAAA,GAAA,EAAA,EAAI,MAAO,EAAA,cAAA,EAAe,WAAS,IAClC,EAAA,QAAA,kBAAA,GAAA;AAAA,cAAC,WAAA;AAAA,cAAA;AAAA,gBACC,cAAA;AAAA,gBACA,WAAA;AAAA,gBACA,GAAK,EAAA,cAAA;AAAA,gBACL,MAAQ,EAAA,iBAAA;AAAA,eAAA;AAAA,aAEZ,EAAA,CAAA;AAAA,WAAA,EACF,CACF,EAAA,CAAA;AAAA,SACF,EAAA,CAAA;AAAA,OAAA;AAAA,KAEJ;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAEA,MAAM,oBAAoB,MAAM;AAC9B,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,SAAU,CAAA,WAAA,CAAY,UAAU,KAAM,CAAA,MAAA;AAAA,GACzD,CAAA;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"EditPage-fT6nuOwT.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', defaultMessage: 'An error occurred' }),\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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"}
@@ -11,7 +11,7 @@ const selectors = require('./selectors-PTHjHMQi.js');
11
11
  const Icons = require('@strapi/icons');
12
12
  const formik = require('formik');
13
13
  const yup = require('yup');
14
- const index = require('./index-lSQdx61-.js');
14
+ const index = require('./index-mQQPK-ix.js');
15
15
  const styled = require('styled-components');
16
16
  const useWebhooks = require('./useWebhooks-DmGNXCdi.js');
17
17
 
@@ -499,7 +499,7 @@ const WebhookForm = ({
499
499
  const [showTriggerResponse, setShowTriggerResponse] = React__namespace.useState(false);
500
500
  const EventTable = index.useEnterprise(
501
501
  EventTableCE,
502
- async () => (await Promise.resolve().then(() => require('./EventsTable-LHOhvL6b.js'))).EventsTableEE
502
+ async () => (await Promise.resolve().then(() => require('./EventsTable-bm16Pj4a.js'))).EventsTableEE
503
503
  );
504
504
  const mapHeaders = (headers) => {
505
505
  if (!Object.keys(headers).length) {
@@ -819,4 +819,4 @@ const EditPage$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty
819
819
  exports.EditPage = EditPage;
820
820
  exports.EditPage$1 = EditPage$1;
821
821
  exports.Events = Events;
822
- //# sourceMappingURL=EditPage--MbF06mK.js.map
822
+ //# sourceMappingURL=EditPage-hEDFGDcC.js.map