@strapi/admin 5.0.0-alpha.0 → 5.0.0-alpha.1
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.
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs → AdminSeatInfo-20pkL95U.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs.map → AdminSeatInfo-20pkL95U.mjs.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js → AdminSeatInfo-TjK5LW2b.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js.map → AdminSeatInfo-TjK5LW2b.js.map} +1 -1
- package/dist/_chunks/{ApplicationInfoPage-PHLA1Ysy.js → ApplicationInfoPage-1OdKMDYH.js} +11 -12
- package/dist/_chunks/ApplicationInfoPage-1OdKMDYH.js.map +1 -0
- package/dist/_chunks/{ApplicationInfoPage-Zn5JU2zd.mjs → ApplicationInfoPage-ed6y9Q-B.mjs} +12 -13
- package/dist/_chunks/ApplicationInfoPage-ed6y9Q-B.mjs.map +1 -0
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs → AuthResponse-Hxop00n-.mjs} +2 -2
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs.map → AuthResponse-Hxop00n-.mjs.map} +1 -1
- package/dist/_chunks/{AuthResponse-7NG3smr6.js → AuthResponse-sca_wjIN.js} +2 -2
- package/dist/_chunks/{AuthResponse-7NG3smr6.js.map → AuthResponse-sca_wjIN.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js → AuthenticatedLayout-PPlOm7kb.js} +14 -11
- package/dist/_chunks/AuthenticatedLayout-PPlOm7kb.js.map +1 -0
- package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs → AuthenticatedLayout-knXNB2i2.mjs} +11 -9
- package/dist/_chunks/AuthenticatedLayout-knXNB2i2.mjs.map +1 -0
- package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs → ComponentConfigurationPage-okd3XovW.mjs} +11 -12
- package/dist/_chunks/ComponentConfigurationPage-okd3XovW.mjs.map +1 -0
- package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js → ComponentConfigurationPage-xZMDjeVf.js} +11 -12
- package/dist/_chunks/ComponentConfigurationPage-xZMDjeVf.js.map +1 -0
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js → CreateActionEE-E6YNdAVx.js} +2 -2
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js.map → CreateActionEE-E6YNdAVx.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs → CreateActionEE-PaZYJ410.mjs} +2 -2
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs.map → CreateActionEE-PaZYJ410.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-nl6zKkKT.js → CreatePage-1Oi4-aR6.js} +17 -16
- package/dist/_chunks/CreatePage-1Oi4-aR6.js.map +1 -0
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs → CreatePage-6458K0l9.mjs} +3 -3
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs.map → CreatePage-6458K0l9.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-NSKUL8l4.js → CreatePage-DmNFNVN9.js} +10 -9
- package/dist/_chunks/CreatePage-DmNFNVN9.js.map +1 -0
- package/dist/_chunks/{CreatePage-Bil0egZ1.mjs → CreatePage-P1F3dkB3.mjs} +17 -16
- package/dist/_chunks/CreatePage-P1F3dkB3.mjs.map +1 -0
- package/dist/_chunks/{CreatePage-h5L6QP47.mjs → CreatePage-PM_r99U5.mjs} +10 -9
- package/dist/_chunks/CreatePage-PM_r99U5.mjs.map +1 -0
- package/dist/_chunks/{CreatePage-MAI6XyNg.js → CreatePage-hlkPO2Cv.js} +3 -3
- package/dist/_chunks/{CreatePage-MAI6XyNg.js.map → CreatePage-hlkPO2Cv.js.map} +1 -1
- package/dist/_chunks/{CreateView-kc0iM0LS.js → CreateView-AWmN1xWJ.js} +3 -3
- package/dist/_chunks/{CreateView-kc0iM0LS.js.map → CreateView-AWmN1xWJ.js.map} +1 -1
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs → CreateView-cTvLLIgu.mjs} +3 -3
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs.map → CreateView-cTvLLIgu.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-3DMhoCPN.js → CreateView-hUH4bf5k.js} +3 -3
- package/dist/_chunks/{CreateView-3DMhoCPN.js.map → CreateView-hUH4bf5k.js.map} +1 -1
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs → CreateView-pBI75ZwZ.mjs} +3 -3
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs.map → CreateView-pBI75ZwZ.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs → EditConfigurationPage-LItt0mJo.mjs} +10 -11
- package/dist/_chunks/EditConfigurationPage-LItt0mJo.mjs.map +1 -0
- package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js → EditConfigurationPage-PZ4yq1bM.js} +10 -11
- package/dist/_chunks/EditConfigurationPage-PZ4yq1bM.js.map +1 -0
- package/dist/_chunks/{EditPage-_swY0Hy-.mjs → EditPage--EPGgPNr.mjs} +11 -10
- package/dist/_chunks/EditPage--EPGgPNr.mjs.map +1 -0
- package/dist/_chunks/{EditPage-fDVAYmuS.mjs → EditPage-30rqjB1d.mjs} +16 -16
- package/dist/_chunks/EditPage-30rqjB1d.mjs.map +1 -0
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs → EditPage-GRIZWtGz.mjs} +19 -18
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs.map → EditPage-GRIZWtGz.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-VoRR5DCQ.mjs → EditPage-MPNLCYgQ.mjs} +14 -14
- package/dist/_chunks/EditPage-MPNLCYgQ.mjs.map +1 -0
- package/dist/_chunks/{EditPage-QoDSqYYq.js → EditPage-RpzlPkkU.js} +19 -18
- package/dist/_chunks/{EditPage-QoDSqYYq.js.map → EditPage-RpzlPkkU.js.map} +1 -1
- package/dist/_chunks/{EditPage-9aK8IFXY.js → EditPage-W6hncyNY.js} +15 -15
- package/dist/_chunks/EditPage-W6hncyNY.js.map +1 -0
- package/dist/_chunks/{EditPage-A6olBfVm.js → EditPage-_N_lm93z.js} +13 -13
- package/dist/_chunks/EditPage-_N_lm93z.js.map +1 -0
- package/dist/_chunks/{EditPage-PpBP7TBo.js → EditPage-mU2WAH0F.js} +11 -10
- package/dist/_chunks/EditPage-mU2WAH0F.js.map +1 -0
- package/dist/_chunks/{EditView-EuUw_2zc.mjs → EditView-0lXpbgG0.mjs} +12 -12
- package/dist/_chunks/EditView-0lXpbgG0.mjs.map +1 -0
- package/dist/_chunks/{EditView-C_ynfmtW.js → EditView-wDP9PNQY.js} +11 -11
- package/dist/_chunks/EditView-wDP9PNQY.js.map +1 -0
- package/dist/_chunks/{EditViewPage-Z_e1dpbU.js → EditViewPage-0Pd8zBi7.js} +16 -15
- package/dist/_chunks/EditViewPage-0Pd8zBi7.js.map +1 -0
- package/dist/_chunks/{EditViewPage-xYzUSAwS.mjs → EditViewPage-R6diW-gL.mjs} +7 -7
- package/dist/_chunks/EditViewPage-R6diW-gL.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-XtJmgPi5.js → EditViewPage-ed0-10GO.js} +6 -6
- package/dist/_chunks/EditViewPage-ed0-10GO.js.map +1 -0
- package/dist/_chunks/{EditViewPage-8uPO5GWR.mjs → EditViewPage-uWYR_o8w.mjs} +15 -15
- package/dist/_chunks/EditViewPage-uWYR_o8w.mjs.map +1 -0
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs → EventsTable-CqN6AzV9.mjs} +2 -2
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs.map → EventsTable-CqN6AzV9.mjs.map} +1 -1
- package/dist/_chunks/{EventsTable-hI0aV29K.js → EventsTable-R_AHW6Z4.js} +2 -2
- package/dist/_chunks/{EventsTable-hI0aV29K.js.map → EventsTable-R_AHW6Z4.js.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js → FieldTypeIcon-1WDWx0cR.js} +2 -2
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js.map → FieldTypeIcon-1WDWx0cR.js.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs → FieldTypeIcon-rAK1gg9p.mjs} +2 -2
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs.map → FieldTypeIcon-rAK1gg9p.mjs.map} +1 -1
- package/dist/_chunks/{Filters-xVuf1kg6.js → Filters-f6ghLf0Z.js} +2 -2
- package/dist/_chunks/{Filters-xVuf1kg6.js.map → Filters-f6ghLf0Z.js.map} +1 -1
- package/dist/_chunks/{Filters-tMd2Q5jg.mjs → Filters-rPaxqj4F.mjs} +2 -2
- package/dist/_chunks/{Filters-tMd2Q5jg.mjs.map → Filters-rPaxqj4F.mjs.map} +1 -1
- package/dist/_chunks/{Form-sZKjSFQC.mjs → Form-QOZA9Aq6.mjs} +6 -5
- package/dist/_chunks/Form-QOZA9Aq6.mjs.map +1 -0
- package/dist/_chunks/{Form-EiK_H9BI.js → Form-eqzCPjSo.js} +6 -5
- package/dist/_chunks/Form-eqzCPjSo.js.map +1 -0
- package/dist/_chunks/{History-1AF4LH3c.mjs → History-Eq4_WQPf.mjs} +4 -4
- package/dist/_chunks/{History-1AF4LH3c.mjs.map → History-Eq4_WQPf.mjs.map} +1 -1
- package/dist/_chunks/{History-V_ik1IL0.js → History-j00hpmXV.js} +4 -4
- package/dist/_chunks/{History-V_ik1IL0.js.map → History-j00hpmXV.js.map} +1 -1
- package/dist/_chunks/{HomePage-yrIp1-eG.js → HomePage-3IVOMrYf.js} +6 -5
- package/dist/_chunks/HomePage-3IVOMrYf.js.map +1 -0
- package/dist/_chunks/{HomePage-zL7HPV7A.js → HomePage-79fqDlve.js} +3 -3
- package/dist/_chunks/{HomePage-zL7HPV7A.js.map → HomePage-79fqDlve.js.map} +1 -1
- package/dist/_chunks/{HomePage-C6Ivli1q.mjs → HomePage-O-TRGX5T.mjs} +6 -5
- package/dist/_chunks/HomePage-O-TRGX5T.mjs.map +1 -0
- package/dist/_chunks/{HomePage-7Xva17wM.mjs → HomePage-gTElgmEK.mjs} +3 -3
- package/dist/_chunks/{HomePage-7Xva17wM.mjs.map → HomePage-gTElgmEK.mjs.map} +1 -1
- package/dist/_chunks/{InputRenderer-RMnWnPI4.js → InputRenderer-AVDw8MeU.js} +12 -19
- package/dist/_chunks/InputRenderer-AVDw8MeU.js.map +1 -0
- package/dist/_chunks/{InputRenderer-iP1kRki4.mjs → InputRenderer-bJwYq9ga.mjs} +13 -20
- package/dist/_chunks/InputRenderer-bJwYq9ga.mjs.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-PrMyistN.js → InstalledPluginsPage-FkR2xkQz.js} +5 -5
- package/dist/_chunks/InstalledPluginsPage-FkR2xkQz.js.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-7m_FfOGl.mjs → InstalledPluginsPage-R2hVFPZl.mjs} +6 -6
- package/dist/_chunks/InstalledPluginsPage-R2hVFPZl.mjs.map +1 -0
- package/dist/_chunks/{Layout-9Li8e-qi.js → Layout-G49-Vc5u.js} +5 -5
- package/dist/_chunks/Layout-G49-Vc5u.js.map +1 -0
- package/dist/_chunks/{Layout-EDS3Yv8X.mjs → Layout-cV6Se3U9.mjs} +6 -6
- package/dist/_chunks/Layout-cV6Se3U9.mjs.map +1 -0
- package/dist/_chunks/{Layout-DC68R0Fa.js → Layout-jweb3cF3.js} +2 -2
- package/dist/_chunks/{Layout-DC68R0Fa.js.map → Layout-jweb3cF3.js.map} +1 -1
- package/dist/_chunks/{Layout-tDfvrUZo.mjs → Layout-omCNy92r.mjs} +2 -2
- package/dist/_chunks/{Layout-tDfvrUZo.mjs.map → Layout-omCNy92r.mjs.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js → ListConfigurationPage-70qtv4Ci.js} +11 -10
- package/dist/_chunks/ListConfigurationPage-70qtv4Ci.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs → ListConfigurationPage-PrJNO_6y.mjs} +11 -10
- package/dist/_chunks/ListConfigurationPage-PrJNO_6y.mjs.map +1 -0
- package/dist/_chunks/{ListPage-em8KMoKx.js → ListPage-2lswUYQN.js} +14 -14
- package/dist/_chunks/ListPage-2lswUYQN.js.map +1 -0
- package/dist/_chunks/{ListPage-_i7RNkUF.js → ListPage-78Cv8Vfq.js} +8 -8
- package/dist/_chunks/ListPage-78Cv8Vfq.js.map +1 -0
- package/dist/_chunks/{ListPage-skKuhRrN.js → ListPage-7dZ3nYvc.js} +12 -11
- package/dist/_chunks/ListPage-7dZ3nYvc.js.map +1 -0
- package/dist/_chunks/{ListPage-DZBRIMkE.mjs → ListPage-Cvn3WbMH.mjs} +14 -14
- package/dist/_chunks/ListPage-Cvn3WbMH.mjs.map +1 -0
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js → ListPage-Ms6egnF5.js} +3 -3
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js.map → ListPage-Ms6egnF5.js.map} +1 -1
- package/dist/_chunks/{ListPage-Ky2tG2bd.mjs → ListPage-NmUS_cOz.mjs} +9 -9
- package/dist/_chunks/ListPage-NmUS_cOz.mjs.map +1 -0
- package/dist/_chunks/{ListPage-NdzVJ_Ed.js → ListPage-Pf5LxUYn.js} +11 -9
- package/dist/_chunks/ListPage-Pf5LxUYn.js.map +1 -0
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs → ListPage-Q81SX0vA.mjs} +3 -3
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs.map → ListPage-Q81SX0vA.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-RlY1nro4.mjs → ListPage-edro79m2.mjs} +9 -9
- package/dist/_chunks/ListPage-edro79m2.mjs.map +1 -0
- package/dist/_chunks/{ListPage-1q5Fi4W9.mjs → ListPage-mAUCZIg8.mjs} +14 -13
- package/dist/_chunks/ListPage-mAUCZIg8.mjs.map +1 -0
- package/dist/_chunks/{ListPage-God7L19W.mjs → ListPage-xFkcmM1b.mjs} +15 -15
- package/dist/_chunks/ListPage-xFkcmM1b.mjs.map +1 -0
- package/dist/_chunks/{ListPage-aElBcYPH.js → ListPage-yymh17qi.js} +13 -13
- package/dist/_chunks/ListPage-yymh17qi.js.map +1 -0
- package/dist/_chunks/{ListView-hm-mjZ8N.mjs → ListView--43zLiHW.mjs} +11 -11
- package/dist/_chunks/ListView--43zLiHW.mjs.map +1 -0
- package/dist/_chunks/{ListView--mxDKrnG.js → ListView-YtMAQnXL.js} +10 -10
- package/dist/_chunks/ListView-YtMAQnXL.js.map +1 -0
- package/dist/_chunks/{ListView-vP-PjR4p.js → ListView-nfA6o3qO.js} +9 -9
- package/dist/_chunks/ListView-nfA6o3qO.js.map +1 -0
- package/dist/_chunks/{ListView-QEgFV6dm.mjs → ListView-qPiKeCxj.mjs} +10 -10
- package/dist/_chunks/ListView-qPiKeCxj.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-NiwpwxBR.js → ListViewPage-Ys7-G2XX.js} +9 -9
- package/dist/_chunks/ListViewPage-Ys7-G2XX.js.map +1 -0
- package/dist/_chunks/{ListViewPage-xOVa04T_.mjs → ListViewPage-fPFonK_X.mjs} +10 -10
- package/dist/_chunks/ListViewPage-fPFonK_X.mjs.map +1 -0
- package/dist/_chunks/{Login-IFCsIrab.mjs → Login-6kXI90Vy.mjs} +2 -2
- package/dist/_chunks/{Login-IFCsIrab.mjs.map → Login-6kXI90Vy.mjs.map} +1 -1
- package/dist/_chunks/{Login-0FtP5Ck_.js → Login-Ge3DZEpr.js} +2 -2
- package/dist/_chunks/{Login-0FtP5Ck_.js.map → Login-Ge3DZEpr.js.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs → MagicLinkEE-HXWaLr0K.mjs} +3 -3
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs.map → MagicLinkEE-HXWaLr0K.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js → MagicLinkEE-sXtA2gUK.js} +3 -3
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js.map → MagicLinkEE-sXtA2gUK.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-f0ZrC_p8.mjs → MarketplacePage-hVOJ9_0k.mjs} +15 -20
- package/dist/_chunks/MarketplacePage-hVOJ9_0k.mjs.map +1 -0
- package/dist/_chunks/{MarketplacePage-zSQ_GRnZ.js → MarketplacePage-s8KDwNwK.js} +14 -19
- package/dist/_chunks/MarketplacePage-s8KDwNwK.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js → NoContentTypePage-7YEcgsE3.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js.map → NoContentTypePage-7YEcgsE3.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs → NoContentTypePage-szvJnQKF.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs.map → NoContentTypePage-szvJnQKF.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js → NoPermissionsPage-UX-5msLb.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js.map → NoPermissionsPage-UX-5msLb.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs → NoPermissionsPage-pqQFFlXa.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs.map → NoPermissionsPage-pqQFFlXa.mjs.map} +1 -1
- package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs → Permissions-NUaDxULo.mjs} +3 -3
- package/dist/_chunks/Permissions-NUaDxULo.mjs.map +1 -0
- package/dist/_chunks/{Permissions--rdF1ZKQ.js → Permissions-a0IZJ8dM.js} +6 -5
- package/dist/_chunks/Permissions-a0IZJ8dM.js.map +1 -0
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js → PrivateRoute-KGxyTa5b.js} +2 -2
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js.map → PrivateRoute-KGxyTa5b.js.map} +1 -1
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs → PrivateRoute-eP4-pBby.mjs} +2 -2
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs.map → PrivateRoute-eP4-pBby.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-bE7txhNu.mjs → ProfilePage-LXB-_EZ8.mjs} +14 -14
- package/dist/_chunks/ProfilePage-LXB-_EZ8.mjs.map +1 -0
- package/dist/_chunks/{ProfilePage-EEcNKnGH.js → ProfilePage-MBCGqbc_.js} +13 -13
- package/dist/_chunks/ProfilePage-MBCGqbc_.js.map +1 -0
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js → ReviewWorkflowsColumn-Ancp7-x3.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js.map → ReviewWorkflowsColumn-Ancp7-x3.js.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs → ReviewWorkflowsColumn-WzYpj2O3.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs.map → ReviewWorkflowsColumn-WzYpj2O3.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-Iih1yeTu.mjs → SelectRoles-Dxz_rAaT.mjs} +6 -9
- package/dist/_chunks/SelectRoles-Dxz_rAaT.mjs.map +1 -0
- package/dist/_chunks/{SelectRoles-XK5HcBdP.js → SelectRoles-Pr2wqehq.js} +5 -8
- package/dist/_chunks/SelectRoles-Pr2wqehq.js.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-uURRsIxP.js → SingleSignOnPage-4dK4id8H.js} +9 -9
- package/dist/_chunks/SingleSignOnPage-4dK4id8H.js.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-vOeDxBfa.mjs → SingleSignOnPage-gxgIeURz.mjs} +10 -10
- package/dist/_chunks/SingleSignOnPage-gxgIeURz.mjs.map +1 -0
- package/dist/_chunks/{Table-k6gVR2KH.mjs → Table-NiTkS4IC.mjs} +2 -2
- package/dist/_chunks/{Table-k6gVR2KH.mjs.map → Table-NiTkS4IC.mjs.map} +1 -1
- package/dist/_chunks/{Table-VsNr4Mha.js → Table-_9gVkGGi.js} +2 -2
- package/dist/_chunks/{Table-VsNr4Mha.js.map → Table-_9gVkGGi.js.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect-QN_bDdss.js → TokenTypeSelect-3aWUm1cW.js} +10 -10
- package/dist/_chunks/TokenTypeSelect-3aWUm1cW.js.map +1 -0
- package/dist/_chunks/{TokenTypeSelect-Z9iyoteG.mjs → TokenTypeSelect-jtfCyMMZ.mjs} +10 -10
- package/dist/_chunks/TokenTypeSelect-jtfCyMMZ.mjs.map +1 -0
- package/dist/_chunks/{UseCasePage-qJwKBweD.mjs → UseCasePage-0qXYZ8kt.mjs} +7 -6
- package/dist/_chunks/UseCasePage-0qXYZ8kt.mjs.map +1 -0
- package/dist/_chunks/{UseCasePage-xAlTWOcX.js → UseCasePage-QK-B8FfM.js} +7 -6
- package/dist/_chunks/UseCasePage-QK-B8FfM.js.map +1 -0
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs → apiTokens-DO6vkoyd.mjs} +2 -2
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs.map → apiTokens-DO6vkoyd.mjs.map} +1 -1
- package/dist/_chunks/{apiTokens-b3w4qO8B.js → apiTokens-TayNdk_V.js} +2 -2
- package/dist/_chunks/{apiTokens-b3w4qO8B.js.map → apiTokens-TayNdk_V.js.map} +1 -1
- package/dist/_chunks/{constants-ruIkLWCb.mjs → constants-FEW7x2Od.mjs} +2 -2
- package/dist/_chunks/{constants-ruIkLWCb.mjs.map → constants-FEW7x2Od.mjs.map} +1 -1
- package/dist/_chunks/{constants-PHXhIuUs.js → constants-RZp8o_c4.js} +2 -2
- package/dist/_chunks/{constants-PHXhIuUs.js.map → constants-RZp8o_c4.js.map} +1 -1
- package/dist/_chunks/{constants-IZEgEoW9.js → constants-Xd-X3SCR.js} +3 -3
- package/dist/_chunks/{constants-IZEgEoW9.js.map → constants-Xd-X3SCR.js.map} +1 -1
- package/dist/_chunks/{constants-WjN6I3sL.mjs → constants-_T5uxsuv.mjs} +3 -3
- package/dist/_chunks/{constants-WjN6I3sL.mjs.map → constants-_T5uxsuv.mjs.map} +1 -1
- package/dist/_chunks/{index-ibtz273H.js → index-ejSDPT-T.js} +151 -326
- package/dist/_chunks/index-ejSDPT-T.js.map +1 -0
- package/dist/_chunks/{index-5ZvCaCyY.mjs → index-hjUhNUvw.mjs} +279 -455
- package/dist/_chunks/index-hjUhNUvw.mjs.map +1 -0
- package/dist/_chunks/{selectors-TFKI8arF.js → selectors-T2YIN4Fb.js} +2 -2
- package/dist/_chunks/{selectors-TFKI8arF.js.map → selectors-T2YIN4Fb.js.map} +1 -1
- package/dist/_chunks/{selectors-JBxTdRJK.mjs → selectors-uLWxH-jN.mjs} +2 -2
- package/dist/_chunks/{selectors-JBxTdRJK.mjs.map → selectors-uLWxH-jN.mjs.map} +1 -1
- package/dist/_chunks/{transferTokens-G-suI4pp.js → transferTokens-T-kGMb3U.js} +2 -2
- package/dist/_chunks/{transferTokens-G-suI4pp.js.map → transferTokens-T-kGMb3U.js.map} +1 -1
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs → transferTokens-jdkk-sPx.mjs} +2 -2
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs.map → transferTokens-jdkk-sPx.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs → useAdminRoles-QJQS1BCd.mjs} +2 -2
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs.map → useAdminRoles-QJQS1BCd.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js → useAdminRoles-SnzC_mvy.js} +2 -2
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js.map → useAdminRoles-SnzC_mvy.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-dRoMxL8c.js → useContentTypes-Lpg-eJmK.js} +5 -4
- package/dist/_chunks/useContentTypes-Lpg-eJmK.js.map +1 -0
- package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs → useContentTypes-U-n1-lz0.mjs} +5 -4
- package/dist/_chunks/useContentTypes-U-n1-lz0.mjs.map +1 -0
- package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js → useLicenseLimitNotification-Hjv_LKmp.js} +6 -5
- package/dist/_chunks/useLicenseLimitNotification-Hjv_LKmp.js.map +1 -0
- package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs → useLicenseLimitNotification-yJHxF4YO.mjs} +6 -5
- package/dist/_chunks/useLicenseLimitNotification-yJHxF4YO.mjs.map +1 -0
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs → useReviewWorkflows-0rQx2KxS.mjs} +2 -2
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs.map → useReviewWorkflows-0rQx2KxS.mjs.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js → useReviewWorkflows-QoSEilRp.js} +2 -2
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js.map → useReviewWorkflows-QoSEilRp.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js → useSyncRbac-hZJWbmmY.js} +2 -2
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js.map → useSyncRbac-hZJWbmmY.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs → useSyncRbac-wVgN6XIc.mjs} +2 -2
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs.map → useSyncRbac-wVgN6XIc.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js → useWebhooks-1ZG0V0Mc.js} +2 -2
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js.map → useWebhooks-1ZG0V0Mc.js.map} +1 -1
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs → useWebhooks-WBwti5Jl.mjs} +2 -2
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs.map → useWebhooks-WBwti5Jl.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs → validateWorkflow-23kb45Oa.mjs} +6 -5
- package/dist/_chunks/validateWorkflow-23kb45Oa.mjs.map +1 -0
- package/dist/_chunks/{validateWorkflow-1g4fl4e7.js → validateWorkflow-MaEpFiHz.js} +9 -8
- package/dist/_chunks/validateWorkflow-MaEpFiHz.js.map +1 -0
- package/dist/_chunks/{validation-NckIpCgz.js → validation-7cD0kJHF.js} +2 -2
- package/dist/_chunks/{validation-NckIpCgz.js.map → validation-7cD0kJHF.js.map} +1 -1
- package/dist/_chunks/{validation-aaWzg0nE.mjs → validation-rilbXPnt.mjs} +2 -2
- package/dist/_chunks/{validation-aaWzg0nE.mjs.map → validation-rilbXPnt.mjs.map} +1 -1
- package/dist/admin/index.js +1 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +22 -25
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +1 -2
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -2
- package/dist/admin/src/index.d.ts +0 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/utils/users.d.ts +1 -1
- package/dist/server/src/validation/api-tokens.d.ts +27 -4
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +8 -2
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +53 -4
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
- package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts +23 -6
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +23 -4
- package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
- package/dist/server/src/validation/user.d.ts +56 -8
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/package.json +19 -12
- package/dist/_chunks/ApplicationInfoPage-PHLA1Ysy.js.map +0 -1
- package/dist/_chunks/ApplicationInfoPage-Zn5JU2zd.mjs.map +0 -1
- package/dist/_chunks/AuthenticatedLayout-5r4rzKeb.js.map +0 -1
- package/dist/_chunks/AuthenticatedLayout-a7KNOdln.mjs.map +0 -1
- package/dist/_chunks/ComponentConfigurationPage-R3qV_iCR.js.map +0 -1
- package/dist/_chunks/ComponentConfigurationPage-pb8HhFAg.mjs.map +0 -1
- package/dist/_chunks/CreatePage-Bil0egZ1.mjs.map +0 -1
- package/dist/_chunks/CreatePage-NSKUL8l4.js.map +0 -1
- package/dist/_chunks/CreatePage-h5L6QP47.mjs.map +0 -1
- package/dist/_chunks/CreatePage-nl6zKkKT.js.map +0 -1
- package/dist/_chunks/EditConfigurationPage-OpEZOvAG.js.map +0 -1
- package/dist/_chunks/EditConfigurationPage-y_TvxjZM.mjs.map +0 -1
- package/dist/_chunks/EditPage-9aK8IFXY.js.map +0 -1
- package/dist/_chunks/EditPage-A6olBfVm.js.map +0 -1
- package/dist/_chunks/EditPage-PpBP7TBo.js.map +0 -1
- package/dist/_chunks/EditPage-VoRR5DCQ.mjs.map +0 -1
- package/dist/_chunks/EditPage-_swY0Hy-.mjs.map +0 -1
- package/dist/_chunks/EditPage-fDVAYmuS.mjs.map +0 -1
- package/dist/_chunks/EditView-C_ynfmtW.js.map +0 -1
- package/dist/_chunks/EditView-EuUw_2zc.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-8uPO5GWR.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-XtJmgPi5.js.map +0 -1
- package/dist/_chunks/EditViewPage-Z_e1dpbU.js.map +0 -1
- package/dist/_chunks/EditViewPage-xYzUSAwS.mjs.map +0 -1
- package/dist/_chunks/Form-EiK_H9BI.js.map +0 -1
- package/dist/_chunks/Form-sZKjSFQC.mjs.map +0 -1
- package/dist/_chunks/HomePage-C6Ivli1q.mjs.map +0 -1
- package/dist/_chunks/HomePage-yrIp1-eG.js.map +0 -1
- package/dist/_chunks/InputRenderer-RMnWnPI4.js.map +0 -1
- package/dist/_chunks/InputRenderer-iP1kRki4.mjs.map +0 -1
- package/dist/_chunks/InstalledPluginsPage-7m_FfOGl.mjs.map +0 -1
- package/dist/_chunks/InstalledPluginsPage-PrMyistN.js.map +0 -1
- package/dist/_chunks/Layout-9Li8e-qi.js.map +0 -1
- package/dist/_chunks/Layout-EDS3Yv8X.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-7O7HiJjG.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-Gl8AA-2t.js.map +0 -1
- package/dist/_chunks/ListPage-1q5Fi4W9.mjs.map +0 -1
- package/dist/_chunks/ListPage-DZBRIMkE.mjs.map +0 -1
- package/dist/_chunks/ListPage-God7L19W.mjs.map +0 -1
- package/dist/_chunks/ListPage-Ky2tG2bd.mjs.map +0 -1
- package/dist/_chunks/ListPage-NdzVJ_Ed.js.map +0 -1
- package/dist/_chunks/ListPage-RlY1nro4.mjs.map +0 -1
- package/dist/_chunks/ListPage-_i7RNkUF.js.map +0 -1
- package/dist/_chunks/ListPage-aElBcYPH.js.map +0 -1
- package/dist/_chunks/ListPage-em8KMoKx.js.map +0 -1
- package/dist/_chunks/ListPage-skKuhRrN.js.map +0 -1
- package/dist/_chunks/ListView--mxDKrnG.js.map +0 -1
- package/dist/_chunks/ListView-QEgFV6dm.mjs.map +0 -1
- package/dist/_chunks/ListView-hm-mjZ8N.mjs.map +0 -1
- package/dist/_chunks/ListView-vP-PjR4p.js.map +0 -1
- package/dist/_chunks/ListViewPage-NiwpwxBR.js.map +0 -1
- package/dist/_chunks/ListViewPage-xOVa04T_.mjs.map +0 -1
- package/dist/_chunks/MarketplacePage-f0ZrC_p8.mjs.map +0 -1
- package/dist/_chunks/MarketplacePage-zSQ_GRnZ.js.map +0 -1
- package/dist/_chunks/Permissions--rdF1ZKQ.js.map +0 -1
- package/dist/_chunks/Permissions-Ke5fqSQ2.mjs.map +0 -1
- package/dist/_chunks/ProfilePage-EEcNKnGH.js.map +0 -1
- package/dist/_chunks/ProfilePage-bE7txhNu.mjs.map +0 -1
- package/dist/_chunks/SelectRoles-Iih1yeTu.mjs.map +0 -1
- package/dist/_chunks/SelectRoles-XK5HcBdP.js.map +0 -1
- package/dist/_chunks/SingleSignOnPage-uURRsIxP.js.map +0 -1
- package/dist/_chunks/SingleSignOnPage-vOeDxBfa.mjs.map +0 -1
- package/dist/_chunks/TokenTypeSelect-QN_bDdss.js.map +0 -1
- package/dist/_chunks/TokenTypeSelect-Z9iyoteG.mjs.map +0 -1
- package/dist/_chunks/UseCasePage-qJwKBweD.mjs.map +0 -1
- package/dist/_chunks/UseCasePage-xAlTWOcX.js.map +0 -1
- package/dist/_chunks/index-5ZvCaCyY.mjs.map +0 -1
- package/dist/_chunks/index-ibtz273H.js.map +0 -1
- package/dist/_chunks/useContentTypes-dRoMxL8c.js.map +0 -1
- package/dist/_chunks/useContentTypes-x6OLbsWe.mjs.map +0 -1
- package/dist/_chunks/useLicenseLimitNotification-BaSsY40x.js.map +0 -1
- package/dist/_chunks/useLicenseLimitNotification-wzvrsJoL.mjs.map +0 -1
- package/dist/_chunks/validateWorkflow-1g4fl4e7.js.map +0 -1
- package/dist/_chunks/validateWorkflow-DlwU9a4N.mjs.map +0 -1
- package/dist/admin/src/features/AppInfo.d.ts +0 -22
- package/dist/admin/src/features/Notifications.d.ts +0 -47
- package/dist/admin/src/utils/getYupInnerErrors.d.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-7dZ3nYvc.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Link, LinkButton } from '@strapi/design-system/v2';\nimport { onRowClick, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ConfirmDialog } from '../../../../../../../admin/src/components/ConfirmDialog';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useTracking } from '../../../../../../../admin/src/features/Tracking';\nimport { useAPIErrorHandler } from '../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useContentTypes } from '../../../../../../../admin/src/hooks/useContentTypes';\nimport { useLicenseLimits } from '../../../../hooks/useLicenseLimits';\n\nimport * as Layout from './components/Layout';\nimport { LimitsModal } from './components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from './constants';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${32 / 16}rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${32 / 16}rem;\n\n svg {\n height: ${12 / 16}rem;\n width: ${12 / 16}rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport const ReviewWorkflowsListView = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const [workflowToDelete, setWorkflowToDelete] = React.useState<string | null>(null);\n const [showLimitModal, setShowLimitModal] = React.useState<boolean>(false);\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, deleteWorkflow } = useReviewWorkflows();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']\n );\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions);\n\n const limits = getFeature('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] as string;\n\n const getContentTypeDisplayName = (uid: string) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType?.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId: string) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n if (!workflowToDelete) return;\n\n try {\n const res = await deleteWorkflow({ id: workflowToDelete });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWorkflowToDelete(null);\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.unexpected',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (numberOfWorkflows && meta && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, meta, meta?.workflowCount, numberOfWorkflows]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n as={NavLink}\n // @ts-expect-error – the `as` prop does not correctly infer the props of it's component\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n numberOfWorkflows &&\n meta &&\n meta?.workflowCount >= parseInt(numberOfWorkflows, 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n numberOfWorkflows &&\n meta &&\n meta?.workflowCount >= parseInt(numberOfWorkflows, 10)\n ) {\n setShowLimitModal(true);\n } else {\n navigate('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows?.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n const el = event.target as HTMLElement;\n // Abort row onClick event when the user click on the delete button\n if (el.nodeName === 'BUTTON') {\n return;\n }\n\n navigate(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n // @ts-expect-error – the `as` prop does not correctly infer the props of it's component\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(String(workflow.id));\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n isOpen={!!workflowToDelete}\n onClose={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n })}\n </ConfirmDialog>\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n};\n\nexport const ProtectedReviewWorkflowsPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReviewWorkflowsListView />\n </Page.Protect>\n );\n};\n"],"names":["styled","Link","useIntl","useNavigate","useTracking","React","useContentTypes","useReviewWorkflows","useAPIErrorHandler","useNotification","useLicenseLimits","useTypedSelector","useRBAC","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","contentType","jsxs","Fragment","jsx","Layout.Header","LinkButton","Plus","NavLink","Layout.Root","Flex","Loader","Table","TFooter","Thead","Tr","Th","Typography","VisuallyHidden","Tbody","createElement","onRowClick","Td","Pencil","IconButton","Trash","ConfirmDialog","LimitsModal","Page"],"mappings":"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"}
|
|
@@ -2,20 +2,20 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { useNotifyAT, Layout, Main, HeaderLayout, ActionLayout, Typography, Button, ContentLayout, Table, TFooter, Thead, Tr, Th, BaseCheckbox, VisuallyHidden, Tbody, Td, Flex, Switch, IconButton, EmptyStateLayout } from "@strapi/design-system";
|
|
4
4
|
import { LinkButton } from "@strapi/design-system/v2";
|
|
5
|
-
import { useFocusWhenNavigate, useRBAC } from "@strapi/helper-plugin";
|
|
5
|
+
import { useNotification, useFocusWhenNavigate, useRBAC } from "@strapi/helper-plugin";
|
|
6
6
|
import { Plus, Trash, Pencil, EmptyDocuments } from "@strapi/icons";
|
|
7
7
|
import { Helmet } from "react-helmet";
|
|
8
8
|
import { useIntl } from "react-intl";
|
|
9
9
|
import { useNavigate, NavLink } from "react-router-dom";
|
|
10
|
-
import {
|
|
11
|
-
import { u as useWebhooks } from "./useWebhooks-
|
|
10
|
+
import { o as useTypedSelector, P as Page, m as useAPIErrorHandler, E as ConfirmDialog } from "./index-hjUhNUvw.mjs";
|
|
11
|
+
import { u as useWebhooks } from "./useWebhooks-WBwti5Jl.mjs";
|
|
12
12
|
const ListPage = () => {
|
|
13
13
|
const [showModal, setShowModal] = React.useState(false);
|
|
14
14
|
const [webhooksToDelete, setWebhooksToDelete] = React.useState([]);
|
|
15
15
|
const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);
|
|
16
16
|
const { formatMessage } = useIntl();
|
|
17
17
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
18
|
-
const
|
|
18
|
+
const toggleNotification = useNotification();
|
|
19
19
|
useFocusWhenNavigate();
|
|
20
20
|
const navigate = useNavigate();
|
|
21
21
|
const {
|
|
@@ -33,7 +33,7 @@ const ListPage = () => {
|
|
|
33
33
|
React.useEffect(() => {
|
|
34
34
|
if (webhooksError) {
|
|
35
35
|
toggleNotification({
|
|
36
|
-
type: "
|
|
36
|
+
type: "warning",
|
|
37
37
|
message: formatAPIError(webhooksError)
|
|
38
38
|
});
|
|
39
39
|
return;
|
|
@@ -52,17 +52,17 @@ const ListPage = () => {
|
|
|
52
52
|
const res = await updateWebhook(body);
|
|
53
53
|
if ("error" in res) {
|
|
54
54
|
toggleNotification({
|
|
55
|
-
type: "
|
|
55
|
+
type: "warning",
|
|
56
56
|
message: formatAPIError(res.error)
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
} catch {
|
|
60
60
|
toggleNotification({
|
|
61
|
-
type: "
|
|
62
|
-
message:
|
|
61
|
+
type: "warning",
|
|
62
|
+
message: {
|
|
63
63
|
id: "notification.error",
|
|
64
64
|
defaultMessage: "An error occurred"
|
|
65
|
-
}
|
|
65
|
+
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
};
|
|
@@ -73,7 +73,7 @@ const ListPage = () => {
|
|
|
73
73
|
});
|
|
74
74
|
if ("error" in res) {
|
|
75
75
|
toggleNotification({
|
|
76
|
-
type: "
|
|
76
|
+
type: "warning",
|
|
77
77
|
message: formatAPIError(res.error)
|
|
78
78
|
});
|
|
79
79
|
return;
|
|
@@ -81,11 +81,11 @@ const ListPage = () => {
|
|
|
81
81
|
setWebhooksToDelete([]);
|
|
82
82
|
} catch {
|
|
83
83
|
toggleNotification({
|
|
84
|
-
type: "
|
|
85
|
-
message:
|
|
84
|
+
type: "warning",
|
|
85
|
+
message: {
|
|
86
86
|
id: "notification.error",
|
|
87
87
|
defaultMessage: "An error occurred"
|
|
88
|
-
}
|
|
88
|
+
}
|
|
89
89
|
});
|
|
90
90
|
} finally {
|
|
91
91
|
setShowModal(false);
|
|
@@ -337,4 +337,4 @@ export {
|
|
|
337
337
|
ListPage,
|
|
338
338
|
ProtectedListPage
|
|
339
339
|
};
|
|
340
|
-
//# sourceMappingURL=ListPage-
|
|
340
|
+
//# sourceMappingURL=ListPage-Cvn3WbMH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-Cvn3WbMH.mjs","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layout>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to=\"create\"\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n <LinkButton variant=\"secondary\" startIcon={<Plus />} as={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onClose={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const ListPage = require("./ListPage-
|
|
5
|
-
const useLicenseLimitNotification = require("./useLicenseLimitNotification-
|
|
4
|
+
const ListPage = require("./ListPage-2lswUYQN.js");
|
|
5
|
+
const useLicenseLimitNotification = require("./useLicenseLimitNotification-Hjv_LKmp.js");
|
|
6
6
|
const UserListPageEE = () => {
|
|
7
7
|
useLicenseLimitNotification.useLicenseLimitNotification();
|
|
8
8
|
return /* @__PURE__ */ jsxRuntime.jsx(ListPage.ListPageCE, {});
|
|
9
9
|
};
|
|
10
10
|
exports.UserListPageEE = UserListPageEE;
|
|
11
|
-
//# sourceMappingURL=ListPage-
|
|
11
|
+
//# sourceMappingURL=ListPage-Ms6egnF5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-
|
|
1
|
+
{"version":3,"file":"ListPage-Ms6egnF5.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":["useLicenseLimitNotification","ListPageCE"],"mappings":";;;;;AAGO,MAAM,iBAAiB,MAAM;AACNA,8BAAAA;AAE5B,wCAAQC,qBAAW,CAAA,CAAA;AACrB;;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { Tr, Td, Typography, Flex, Box, IconButton, Main, HeaderLayout, Button, ActionLayout, ContentLayout, Table, TFooter, Thead, Th, VisuallyHidden, Tbody } from "@strapi/design-system";
|
|
4
|
-
import { onRowClick, stopPropagation, useFocusWhenNavigate, useQueryParams, useRBAC, getFetchClient } from "@strapi/helper-plugin";
|
|
4
|
+
import { onRowClick, stopPropagation, useFocusWhenNavigate, useNotification, useQueryParams, useRBAC, getFetchClient } from "@strapi/helper-plugin";
|
|
5
5
|
import { Plus, Duplicate, Pencil, Trash } from "@strapi/icons";
|
|
6
6
|
import { AxiosError } from "axios";
|
|
7
|
-
import
|
|
7
|
+
import produce from "immer";
|
|
8
8
|
import { Helmet } from "react-helmet";
|
|
9
9
|
import { useIntl } from "react-intl";
|
|
10
10
|
import { useNavigate } from "react-router-dom";
|
|
11
|
-
import {
|
|
12
|
-
import { u as useAdminRoles } from "./useAdminRoles-
|
|
13
|
-
import { s as selectAdminPermissions } from "./selectors-
|
|
11
|
+
import { o as useTypedSelector, P as Page, m as useAPIErrorHandler, aO as SearchInput, E as ConfirmDialog } from "./index-hjUhNUvw.mjs";
|
|
12
|
+
import { u as useAdminRoles } from "./useAdminRoles-QJQS1BCd.mjs";
|
|
13
|
+
import { s as selectAdminPermissions } from "./selectors-uLWxH-jN.mjs";
|
|
14
14
|
const RoleRow = ({
|
|
15
15
|
id,
|
|
16
16
|
name,
|
|
@@ -62,7 +62,7 @@ const ListPage = () => {
|
|
|
62
62
|
useFocusWhenNavigate();
|
|
63
63
|
const permissions = useTypedSelector(selectAdminPermissions);
|
|
64
64
|
const { formatAPIError } = useAPIErrorHandler();
|
|
65
|
-
const
|
|
65
|
+
const toggleNotification = useNotification();
|
|
66
66
|
const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);
|
|
67
67
|
const [{ query }] = useQueryParams();
|
|
68
68
|
const {
|
|
@@ -94,7 +94,7 @@ const ListPage = () => {
|
|
|
94
94
|
} catch (error) {
|
|
95
95
|
if (error instanceof AxiosError) {
|
|
96
96
|
toggleNotification({
|
|
97
|
-
type: "
|
|
97
|
+
type: "warning",
|
|
98
98
|
message: formatAPIError(error)
|
|
99
99
|
});
|
|
100
100
|
}
|
|
@@ -109,7 +109,7 @@ const ListPage = () => {
|
|
|
109
109
|
if (role.usersCount) {
|
|
110
110
|
toggleNotification({
|
|
111
111
|
type: "info",
|
|
112
|
-
message:
|
|
112
|
+
message: { id: "Roles.ListPage.notification.delete-not-allowed" }
|
|
113
113
|
});
|
|
114
114
|
} else {
|
|
115
115
|
dispatch({
|
|
@@ -289,4 +289,4 @@ export {
|
|
|
289
289
|
ListPage,
|
|
290
290
|
ProtectedListPage
|
|
291
291
|
};
|
|
292
|
-
//# sourceMappingURL=ListPage-
|
|
292
|
+
//# sourceMappingURL=ListPage-NmUS_cOz.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-NmUS_cOz.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'icon' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={`${130 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`${250 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton\n onClick={icon.onClick}\n label={icon.label}\n borderWidth={0}\n icon={icon.icon}\n />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n getFetchClient,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (error instanceof AxiosError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }\n handleToggleModal();\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\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 <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n icon: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n onClose={handleToggleModal}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,14 @@ const designSystem = require("@strapi/design-system");
|
|
|
6
6
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
7
7
|
const Icons = require("@strapi/icons");
|
|
8
8
|
const axios = require("axios");
|
|
9
|
-
const
|
|
9
|
+
const produce = require("immer");
|
|
10
10
|
const reactHelmet = require("react-helmet");
|
|
11
11
|
const reactIntl = require("react-intl");
|
|
12
12
|
const reactRouterDom = require("react-router-dom");
|
|
13
|
-
const index = require("./index-
|
|
14
|
-
const useAdminRoles = require("./useAdminRoles-
|
|
15
|
-
const selectors = require("./selectors-
|
|
13
|
+
const index = require("./index-ejSDPT-T.js");
|
|
14
|
+
const useAdminRoles = require("./useAdminRoles-SnzC_mvy.js");
|
|
15
|
+
const selectors = require("./selectors-T2YIN4Fb.js");
|
|
16
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
16
17
|
function _interopNamespace(e) {
|
|
17
18
|
if (e && e.__esModule)
|
|
18
19
|
return e;
|
|
@@ -32,6 +33,7 @@ function _interopNamespace(e) {
|
|
|
32
33
|
return Object.freeze(n);
|
|
33
34
|
}
|
|
34
35
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
36
|
+
const produce__default = /* @__PURE__ */ _interopDefault(produce);
|
|
35
37
|
const RoleRow = ({
|
|
36
38
|
id,
|
|
37
39
|
name,
|
|
@@ -83,7 +85,7 @@ const ListPage = () => {
|
|
|
83
85
|
helperPlugin.useFocusWhenNavigate();
|
|
84
86
|
const permissions = index.useTypedSelector(selectors.selectAdminPermissions);
|
|
85
87
|
const { formatAPIError } = index.useAPIErrorHandler();
|
|
86
|
-
const
|
|
88
|
+
const toggleNotification = helperPlugin.useNotification();
|
|
87
89
|
const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React__namespace.useState(false);
|
|
88
90
|
const [{ query }] = helperPlugin.useQueryParams();
|
|
89
91
|
const {
|
|
@@ -115,7 +117,7 @@ const ListPage = () => {
|
|
|
115
117
|
} catch (error) {
|
|
116
118
|
if (error instanceof axios.AxiosError) {
|
|
117
119
|
toggleNotification({
|
|
118
|
-
type: "
|
|
120
|
+
type: "warning",
|
|
119
121
|
message: formatAPIError(error)
|
|
120
122
|
});
|
|
121
123
|
}
|
|
@@ -130,7 +132,7 @@ const ListPage = () => {
|
|
|
130
132
|
if (role.usersCount) {
|
|
131
133
|
toggleNotification({
|
|
132
134
|
type: "info",
|
|
133
|
-
message:
|
|
135
|
+
message: { id: "Roles.ListPage.notification.delete-not-allowed" }
|
|
134
136
|
});
|
|
135
137
|
} else {
|
|
136
138
|
dispatch({
|
|
@@ -277,7 +279,7 @@ const initialState = {
|
|
|
277
279
|
showModalConfirmButtonLoading: false,
|
|
278
280
|
shouldRefetchData: false
|
|
279
281
|
};
|
|
280
|
-
const reducer = (state, action) =>
|
|
282
|
+
const reducer = (state, action) => produce__default.default(state, (draftState) => {
|
|
281
283
|
switch (action.type) {
|
|
282
284
|
case "ON_REMOVE_ROLES": {
|
|
283
285
|
draftState.showModalConfirmButtonLoading = true;
|
|
@@ -308,4 +310,4 @@ const ProtectedListPage = () => {
|
|
|
308
310
|
};
|
|
309
311
|
exports.ListPage = ListPage;
|
|
310
312
|
exports.ProtectedListPage = ProtectedListPage;
|
|
311
|
-
//# sourceMappingURL=ListPage-
|
|
313
|
+
//# sourceMappingURL=ListPage-Pf5LxUYn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-Pf5LxUYn.js","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'icon' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={`${130 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`${250 / 16}rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton\n onClick={icon.onClick}\n label={icon.label}\n borderWidth={0}\n icon={icon.icon}\n />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n getFetchClient,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (error instanceof AxiosError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }\n handleToggleModal();\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\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 <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n icon: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n onClose={handleToggleModal}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["useIntl","jsxs","Tr","onRowClick","jsx","Td","Typography","Flex","stopPropagation","Box","IconButton","useFocusWhenNavigate","useTypedSelector","selectAdminPermissions","useAPIErrorHandler","useNotification","React","useQueryParams","useRBAC","useAdminRoles","useNavigate","getFetchClient","AxiosError","Page","Main","Helmet","HeaderLayout","Button","Plus","ActionLayout","SearchInput","ContentLayout","Table","TFooter","Thead","Th","VisuallyHidden","Tbody","index","Duplicate","Pencil","Trash","ConfirmDialog","produce"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { ListPageCE } from "./ListPage-
|
|
3
|
-
import { u as useLicenseLimitNotification } from "./useLicenseLimitNotification-
|
|
2
|
+
import { ListPageCE } from "./ListPage-xFkcmM1b.mjs";
|
|
3
|
+
import { u as useLicenseLimitNotification } from "./useLicenseLimitNotification-yJHxF4YO.mjs";
|
|
4
4
|
const UserListPageEE = () => {
|
|
5
5
|
useLicenseLimitNotification();
|
|
6
6
|
return /* @__PURE__ */ jsx(ListPageCE, {});
|
|
@@ -8,4 +8,4 @@ const UserListPageEE = () => {
|
|
|
8
8
|
export {
|
|
9
9
|
UserListPageEE
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=ListPage-
|
|
11
|
+
//# sourceMappingURL=ListPage-Q81SX0vA.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-
|
|
1
|
+
{"version":3,"file":"ListPage-Q81SX0vA.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,MAAM;AACN;AAE5B,6BAAQ,YAAW,CAAA,CAAA;AACrB;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { ModalLayout, ModalHeader, ModalBody, Flex, Loader, Box, Typography, Grid, JSONInput, Combobox, ComboboxOption, Main, HeaderLayout, ActionLayout, ContentLayout, IconButton } from "@strapi/design-system";
|
|
3
|
-
import { useQueryParams, useRBAC, useFocusWhenNavigate } from "@strapi/helper-plugin";
|
|
3
|
+
import { useNotification, useQueryParams, useRBAC, useFocusWhenNavigate } from "@strapi/helper-plugin";
|
|
4
4
|
import { Eye } from "@strapi/icons";
|
|
5
5
|
import { Helmet } from "react-helmet";
|
|
6
6
|
import { useIntl } from "react-intl";
|
|
7
|
-
import { F as Filters } from "./Filters-
|
|
8
|
-
import {
|
|
7
|
+
import { F as Filters } from "./Filters-rPaxqj4F.mjs";
|
|
8
|
+
import { l as adminApi, m as useAPIErrorHandler, y as useAdminUsers, z as useField, i as getDisplayName, o as useTypedSelector, P as Page, T as Table, w as Pagination } from "./index-hjUhNUvw.mjs";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
|
|
11
11
|
import parseISO from "date-fns/parseISO";
|
|
@@ -75,13 +75,13 @@ const getDefaultMessage = (value) => {
|
|
|
75
75
|
return actionTypes[value] || value;
|
|
76
76
|
};
|
|
77
77
|
const Modal = ({ handleClose, logId }) => {
|
|
78
|
-
const
|
|
78
|
+
const toggleNotification = useNotification();
|
|
79
79
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
80
80
|
const { data, error, isLoading } = useGetAuditLogQuery(logId);
|
|
81
81
|
React.useEffect(() => {
|
|
82
82
|
if (error) {
|
|
83
83
|
toggleNotification({
|
|
84
|
-
type: "
|
|
84
|
+
type: "warning",
|
|
85
85
|
message: formatAPIError(error)
|
|
86
86
|
});
|
|
87
87
|
handleClose();
|
|
@@ -191,7 +191,7 @@ const useAuditLogsData = ({
|
|
|
191
191
|
canReadAuditLogs,
|
|
192
192
|
canReadUsers
|
|
193
193
|
}) => {
|
|
194
|
-
const
|
|
194
|
+
const toggleNotification = useNotification();
|
|
195
195
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
|
196
196
|
const [{ query }] = useQueryParams();
|
|
197
197
|
const {
|
|
@@ -208,7 +208,7 @@ const useAuditLogsData = ({
|
|
|
208
208
|
);
|
|
209
209
|
React.useEffect(() => {
|
|
210
210
|
if (error) {
|
|
211
|
-
toggleNotification({ type: "
|
|
211
|
+
toggleNotification({ type: "warning", message: formatAPIError(error) });
|
|
212
212
|
}
|
|
213
213
|
}, [error, toggleNotification, formatAPIError]);
|
|
214
214
|
const {
|
|
@@ -222,7 +222,7 @@ const useAuditLogsData = ({
|
|
|
222
222
|
});
|
|
223
223
|
React.useEffect(() => {
|
|
224
224
|
if (auditLogsError) {
|
|
225
|
-
toggleNotification({ type: "
|
|
225
|
+
toggleNotification({ type: "warning", message: formatAPIError(auditLogsError) });
|
|
226
226
|
}
|
|
227
227
|
}, [auditLogsError, toggleNotification, formatAPIError]);
|
|
228
228
|
return {
|
|
@@ -483,4 +483,4 @@ export {
|
|
|
483
483
|
ListPage,
|
|
484
484
|
ProtectedListPage
|
|
485
485
|
};
|
|
486
|
-
//# sourceMappingURL=ListPage-
|
|
486
|
+
//# sourceMappingURL=ListPage-edro79m2.mjs.map
|