@strapi/admin 4.25.19 → 4.25.21
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-DijdIU67.mjs → AdminSeatInfo-fNh9AVPj.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-DijdIU67.mjs.map → AdminSeatInfo-fNh9AVPj.mjs.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-vN-v6v7Z.js → AdminSeatInfo-n9_ckklX.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-vN-v6v7Z.js.map → AdminSeatInfo-n9_ckklX.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-POklphsM.mjs → AuthenticatedApp-JlSCDE9m.mjs} +21 -21
- package/dist/_chunks/{AuthenticatedApp-POklphsM.mjs.map → AuthenticatedApp-JlSCDE9m.mjs.map} +1 -1
- package/dist/_chunks/{AuthenticatedApp-RZbMUOlP.js → AuthenticatedApp-QDCywiaA.js} +21 -21
- package/dist/_chunks/{AuthenticatedApp-RZbMUOlP.js.map → AuthenticatedApp-QDCywiaA.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-0u9oivIs.js → CreateActionEE-41ZkOmsl.js} +2 -2
- package/dist/_chunks/{CreateActionEE-0u9oivIs.js.map → CreateActionEE-41ZkOmsl.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-47_TN7AN.mjs → CreateActionEE-j5RHQGR1.mjs} +2 -2
- package/dist/_chunks/{CreateActionEE-47_TN7AN.mjs.map → CreateActionEE-j5RHQGR1.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-xAGUPluB.mjs → CreatePage-9yf08Hvr.mjs} +3 -3
- package/dist/_chunks/{CreatePage-xAGUPluB.mjs.map → CreatePage-9yf08Hvr.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-enkuHP3D.mjs → CreatePage-ApXmZ6hv.mjs} +8 -8
- package/dist/_chunks/{CreatePage-enkuHP3D.mjs.map → CreatePage-ApXmZ6hv.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-cnbUXD3q.js → CreatePage-eEbDUiWT.js} +3 -3
- package/dist/_chunks/{CreatePage-cnbUXD3q.js.map → CreatePage-eEbDUiWT.js.map} +1 -1
- package/dist/_chunks/{CreatePage-EBL_5Bsa.mjs → CreatePage-hqu9LQBD.mjs} +6 -6
- package/dist/_chunks/{CreatePage-EBL_5Bsa.mjs.map → CreatePage-hqu9LQBD.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-ZGluYbbj.js → CreatePage-pZqlUQYD.js} +8 -8
- package/dist/_chunks/{CreatePage-ZGluYbbj.js.map → CreatePage-pZqlUQYD.js.map} +1 -1
- package/dist/_chunks/{CreatePage-JdGtpBIG.js → CreatePage-w8DFLtB6.js} +6 -6
- package/dist/_chunks/{CreatePage-JdGtpBIG.js.map → CreatePage-w8DFLtB6.js.map} +1 -1
- package/dist/_chunks/{CreateView-D5tBKtXM.js → CreateView-63oNUfVH.js} +6 -6
- package/dist/_chunks/{CreateView-D5tBKtXM.js.map → CreateView-63oNUfVH.js.map} +1 -1
- package/dist/_chunks/{CreateView-BLfhp5Ni.mjs → CreateView-EiUPL71p.mjs} +6 -6
- package/dist/_chunks/{CreateView-BLfhp5Ni.mjs.map → CreateView-EiUPL71p.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-b7_9aFwg.js → CreateView-KVMv7s3s.js} +6 -6
- package/dist/_chunks/{CreateView-b7_9aFwg.js.map → CreateView-KVMv7s3s.js.map} +1 -1
- package/dist/_chunks/{CreateView-y8lXzAdy.mjs → CreateView-kbmC1gMS.mjs} +6 -6
- package/dist/_chunks/{CreateView-y8lXzAdy.mjs.map → CreateView-kbmC1gMS.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-S-CUOQ1e.js → EditPage--b9DJdw5.js} +9 -9
- package/dist/_chunks/{EditPage-S-CUOQ1e.js.map → EditPage--b9DJdw5.js.map} +1 -1
- package/dist/_chunks/{EditPage-aukk992V.mjs → EditPage-0SD5FvMy.mjs} +6 -6
- package/dist/_chunks/{EditPage-aukk992V.mjs.map → EditPage-0SD5FvMy.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-MYa8LSN-.js → EditPage-4QW2drFe.js} +4 -4
- package/dist/_chunks/{EditPage-MYa8LSN-.js.map → EditPage-4QW2drFe.js.map} +1 -1
- package/dist/_chunks/{EditPage-43f3bvCf.mjs → EditPage-Dfh_a9re.mjs} +9 -9
- package/dist/_chunks/{EditPage-43f3bvCf.mjs.map → EditPage-Dfh_a9re.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-AeTcFbtm.mjs → EditPage-IKP7kDDd.mjs} +4 -4
- package/dist/_chunks/{EditPage-AeTcFbtm.mjs.map → EditPage-IKP7kDDd.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-eexvguyp.js → EditPage-S32_MPZV.js} +6 -6
- package/dist/_chunks/{EditPage-eexvguyp.js.map → EditPage-S32_MPZV.js.map} +1 -1
- package/dist/_chunks/{EditPage-R1ZwO2m0.mjs → EditPage-ys_BuVge.mjs} +6 -6
- package/dist/_chunks/{EditPage-R1ZwO2m0.mjs.map → EditPage-ys_BuVge.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-7zTqR-cR.js → EditPage-zla6CY-n.js} +6 -6
- package/dist/_chunks/{EditPage-7zTqR-cR.js.map → EditPage-zla6CY-n.js.map} +1 -1
- package/dist/_chunks/{EditView-aDRUWtNW.mjs → EditView-DEchhGSy.mjs} +4 -4
- package/dist/_chunks/{EditView-aDRUWtNW.mjs.map → EditView-DEchhGSy.mjs.map} +1 -1
- package/dist/_chunks/{EditView-xMYwCGnx.js → EditView-Z0k2PFIW.js} +4 -4
- package/dist/_chunks/{EditView-xMYwCGnx.js.map → EditView-Z0k2PFIW.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-lIwT7m_a.mjs → EditViewPage-66vkBGnE.mjs} +4 -4
- package/dist/_chunks/{EditViewPage-lIwT7m_a.mjs.map → EditViewPage-66vkBGnE.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-8LadZF6O.js → EditViewPage-FaZ9DTP-.js} +4 -4
- package/dist/_chunks/{EditViewPage-8LadZF6O.js.map → EditViewPage-FaZ9DTP-.js.map} +1 -1
- package/dist/_chunks/{EventsTable-OMdntLFF.js → EventsTable-Mp4lY2AJ.js} +6 -6
- package/dist/_chunks/{EventsTable-OMdntLFF.js.map → EventsTable-Mp4lY2AJ.js.map} +1 -1
- package/dist/_chunks/{EventsTable-5jp23c57.mjs → EventsTable-wVl5KPcq.mjs} +6 -6
- package/dist/_chunks/{EventsTable-5jp23c57.mjs.map → EventsTable-wVl5KPcq.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-wk-EdfhK.js → HomePage-J_qLEedO.js} +5 -5
- package/dist/_chunks/{HomePage-wk-EdfhK.js.map → HomePage-J_qLEedO.js.map} +1 -1
- package/dist/_chunks/{HomePage-HSFMi8no.mjs → HomePage-NgMfBDG1.mjs} +6 -6
- package/dist/_chunks/{HomePage-HSFMi8no.mjs.map → HomePage-NgMfBDG1.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-gzyEJh6c.mjs → HomePage-Uzw2Zg0c.mjs} +5 -5
- package/dist/_chunks/{HomePage-gzyEJh6c.mjs.map → HomePage-Uzw2Zg0c.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-5AzsOqJY.js → HomePage-dHbUIjx9.js} +6 -6
- package/dist/_chunks/{HomePage-5AzsOqJY.js.map → HomePage-dHbUIjx9.js.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-8Z46UiIZ.mjs → InformationBoxEE-L8BBbY5q.mjs} +3 -3
- package/dist/_chunks/{InformationBoxEE-8Z46UiIZ.mjs.map → InformationBoxEE-L8BBbY5q.mjs.map} +1 -1
- package/dist/_chunks/{InformationBoxEE-VXXejvAN.js → InformationBoxEE-QnIjVrwB.js} +3 -3
- package/dist/_chunks/{InformationBoxEE-VXXejvAN.js.map → InformationBoxEE-QnIjVrwB.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-ynee1mkC.js → InstalledPluginsPage-5FMbbylg.js} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-ynee1mkC.js.map → InstalledPluginsPage-5FMbbylg.js.map} +1 -1
- package/dist/_chunks/{InstalledPluginsPage-4VePhHUz.mjs → InstalledPluginsPage-9wzLhUvI.mjs} +3 -3
- package/dist/_chunks/{InstalledPluginsPage-4VePhHUz.mjs.map → InstalledPluginsPage-9wzLhUvI.mjs.map} +1 -1
- package/dist/_chunks/{Layout-LJoVD2XH.js → Layout--0fQX_O4.js} +2 -2
- package/dist/_chunks/{Layout-LJoVD2XH.js.map → Layout--0fQX_O4.js.map} +1 -1
- package/dist/_chunks/{Layout-a9KIT2YG.mjs → Layout-QMOA8ZMB.mjs} +2 -2
- package/dist/_chunks/{Layout-a9KIT2YG.mjs.map → Layout-QMOA8ZMB.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-30YvAjLR.js → ListPage-4ewT-BZW.js} +4 -4
- package/dist/_chunks/{ListPage-30YvAjLR.js.map → ListPage-4ewT-BZW.js.map} +1 -1
- package/dist/_chunks/{ListPage-1_PoHBzW.mjs → ListPage-98s5i8Xi.mjs} +4 -4
- package/dist/_chunks/{ListPage-1_PoHBzW.mjs.map → ListPage-98s5i8Xi.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-aj11J7KI.mjs → ListPage-HZokVhqs.mjs} +7 -7
- package/dist/_chunks/{ListPage-aj11J7KI.mjs.map → ListPage-HZokVhqs.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-mFBiftIQ.mjs → ListPage-NW6Jib2e.mjs} +2 -2
- package/dist/_chunks/{ListPage-mFBiftIQ.mjs.map → ListPage-NW6Jib2e.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-pfjbkUOz.mjs → ListPage-OQ2ywwby.mjs} +3 -3
- package/dist/_chunks/{ListPage-pfjbkUOz.mjs.map → ListPage-OQ2ywwby.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-PFiwToSs.js → ListPage-RhTdol-1.js} +3 -3
- package/dist/_chunks/{ListPage-PFiwToSs.js.map → ListPage-RhTdol-1.js.map} +1 -1
- package/dist/_chunks/{ListPage-u7Fl1ZgT.js → ListPage-WYdwtsqM.js} +8 -8
- package/dist/_chunks/{ListPage-u7Fl1ZgT.js.map → ListPage-WYdwtsqM.js.map} +1 -1
- package/dist/_chunks/{ListPage-ucdDfi1K.js → ListPage-_lgSe68W.js} +2 -2
- package/dist/_chunks/{ListPage-ucdDfi1K.js.map → ListPage-_lgSe68W.js.map} +1 -1
- package/dist/_chunks/{ListPage-IJiV9rMT.mjs → ListPage-cznp__Dv.mjs} +8 -8
- package/dist/_chunks/{ListPage-IJiV9rMT.mjs.map → ListPage-cznp__Dv.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-yjiZ56ww.js → ListPage-m6p6QnZU.js} +7 -7
- package/dist/_chunks/{ListPage-yjiZ56ww.js.map → ListPage-m6p6QnZU.js.map} +1 -1
- package/dist/_chunks/{ListPage-W5bGvC6k.js → ListPage-mauu1_HA.js} +6 -6
- package/dist/_chunks/{ListPage-W5bGvC6k.js.map → ListPage-mauu1_HA.js.map} +1 -1
- package/dist/_chunks/{ListPage-z0y9FJS-.mjs → ListPage-vnDwKizz.mjs} +6 -6
- package/dist/_chunks/{ListPage-z0y9FJS-.mjs.map → ListPage-vnDwKizz.mjs.map} +1 -1
- package/dist/_chunks/{ListView-4qpj-WG0.mjs → ListView-7ZJcAipg.mjs} +3 -3
- package/dist/_chunks/{ListView-4qpj-WG0.mjs.map → ListView-7ZJcAipg.mjs.map} +1 -1
- package/dist/_chunks/{ListView-e4uUj3o9.mjs → ListView-Z7ammGeJ.mjs} +3 -3
- package/dist/_chunks/{ListView-e4uUj3o9.mjs.map → ListView-Z7ammGeJ.mjs.map} +1 -1
- package/dist/_chunks/{ListView-ieixMP4v.js → ListView-hoXRhYAF.js} +3 -3
- package/dist/_chunks/{ListView-ieixMP4v.js.map → ListView-hoXRhYAF.js.map} +1 -1
- package/dist/_chunks/{ListView-R9RK2O9T.js → ListView-lkCViZHB.js} +3 -3
- package/dist/_chunks/{ListView-R9RK2O9T.js.map → ListView-lkCViZHB.js.map} +1 -1
- package/dist/_chunks/{Login-om5dap0k.mjs → Login-Ky9EqaPl.mjs} +2 -2
- package/dist/_chunks/{Login-om5dap0k.mjs.map → Login-Ky9EqaPl.mjs.map} +1 -1
- package/dist/_chunks/{Login-2DO6klZz.js → Login-l_qX3rqd.js} +2 -2
- package/dist/_chunks/{Login-2DO6klZz.js.map → Login-l_qX3rqd.js.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-nffJb8Ps.js → MagicLinkEE-Zsz76VJd.js} +4 -4
- package/dist/_chunks/{MagicLinkEE-nffJb8Ps.js.map → MagicLinkEE-Zsz76VJd.js.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-m2MZTTBZ.mjs → MagicLinkEE-b5oKEMhb.mjs} +4 -4
- package/dist/_chunks/{MagicLinkEE-m2MZTTBZ.mjs.map → MagicLinkEE-b5oKEMhb.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-euyC5krv.mjs → MarketplacePage-bEBY0oMW.mjs} +3 -3
- package/dist/_chunks/{MarketplacePage-euyC5krv.mjs.map → MarketplacePage-bEBY0oMW.mjs.map} +1 -1
- package/dist/_chunks/{MarketplacePage-yunapA3q.js → MarketplacePage-p3jDY32K.js} +3 -3
- package/dist/_chunks/{MarketplacePage-yunapA3q.js.map → MarketplacePage-p3jDY32K.js.map} +1 -1
- package/dist/_chunks/{Permissions-Orjat2k_.js → Permissions-KmDO0rYL.js} +2 -2
- package/dist/_chunks/{Permissions-Orjat2k_.js.map → Permissions-KmDO0rYL.js.map} +1 -1
- package/dist/_chunks/{Permissions-QoA8P8xL.mjs → Permissions-kUXaT_FG.mjs} +2 -2
- package/dist/_chunks/{Permissions-QoA8P8xL.mjs.map → Permissions-kUXaT_FG.mjs.map} +1 -1
- package/dist/_chunks/{ProfilePage-TCTvfJ8W.js → ProfilePage-RAAMg9Wq.js} +3 -3
- package/dist/_chunks/{ProfilePage-TCTvfJ8W.js.map → ProfilePage-RAAMg9Wq.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-xB-FnnXe.mjs → ProfilePage-UKafmIQU.mjs} +3 -3
- package/dist/_chunks/{ProfilePage-xB-FnnXe.mjs.map → ProfilePage-UKafmIQU.mjs.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-SK7lw72u.js → ReviewWorkflowsColumn-4k7WyvRr.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-SK7lw72u.js.map → ReviewWorkflowsColumn-4k7WyvRr.js.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-oBj-VhtZ.mjs → ReviewWorkflowsColumn-8SKxr3qC.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-oBj-VhtZ.mjs.map → ReviewWorkflowsColumn-8SKxr3qC.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-3vCZXVWH.mjs → SelectRoles-_XSAf07G.mjs} +3 -3
- package/dist/_chunks/{SelectRoles-3vCZXVWH.mjs.map → SelectRoles-_XSAf07G.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-DdPPGU3T.js → SelectRoles-cdkdfqin.js} +3 -3
- package/dist/_chunks/{SelectRoles-DdPPGU3T.js.map → SelectRoles-cdkdfqin.js.map} +1 -1
- package/dist/_chunks/{SettingsPage-3E_9V00x.mjs → SettingsPage-N9zitd6U.mjs} +21 -21
- package/dist/_chunks/{SettingsPage-3E_9V00x.mjs.map → SettingsPage-N9zitd6U.mjs.map} +1 -1
- package/dist/_chunks/{SettingsPage-ibXF5Z7B.js → SettingsPage-TWrwoiEG.js} +21 -21
- package/dist/_chunks/{SettingsPage-ibXF5Z7B.js.map → SettingsPage-TWrwoiEG.js.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-hEzDiNO5.mjs → SingleSignOnPage-WS3ulauT.mjs} +3 -3
- package/dist/_chunks/{SingleSignOnPage-hEzDiNO5.mjs.map → SingleSignOnPage-WS3ulauT.mjs.map} +1 -1
- package/dist/_chunks/{SingleSignOnPage-nIBhdtAY.js → SingleSignOnPage-sxTphba9.js} +3 -3
- package/dist/_chunks/{SingleSignOnPage-nIBhdtAY.js.map → SingleSignOnPage-sxTphba9.js.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect-4Kh9CDq9.mjs → TokenTypeSelect--3ay_72E.mjs} +2 -2
- package/dist/_chunks/{TokenTypeSelect-4Kh9CDq9.mjs.map → TokenTypeSelect--3ay_72E.mjs.map} +1 -1
- package/dist/_chunks/{TokenTypeSelect--502wWKV.js → TokenTypeSelect-Poj87TVd.js} +2 -2
- package/dist/_chunks/{TokenTypeSelect--502wWKV.js.map → TokenTypeSelect-Poj87TVd.js.map} +1 -1
- package/dist/_chunks/{apiTokens-7j0FXElZ.mjs → apiTokens-1-g1z-xk.mjs} +2 -2
- package/dist/_chunks/{apiTokens-7j0FXElZ.mjs.map → apiTokens-1-g1z-xk.mjs.map} +1 -1
- package/dist/_chunks/{apiTokens-mL8NbSgw.js → apiTokens-f5VdDehM.js} +2 -2
- package/dist/_chunks/{apiTokens-mL8NbSgw.js.map → apiTokens-f5VdDehM.js.map} +1 -1
- package/dist/_chunks/{constants-ororYiFv.js → constants-9hTO8CqH.js} +2 -2
- package/dist/_chunks/{constants-ororYiFv.js.map → constants-9hTO8CqH.js.map} +1 -1
- package/dist/_chunks/{constants-esAvznzX.mjs → constants-EKhu9sSP.mjs} +6 -6
- package/dist/_chunks/{constants-esAvznzX.mjs.map → constants-EKhu9sSP.mjs.map} +1 -1
- package/dist/_chunks/{constants-ZMoSqIs_.mjs → constants-Ldyt_eKu.mjs} +4 -4
- package/dist/_chunks/{constants-ZMoSqIs_.mjs.map → constants-Ldyt_eKu.mjs.map} +1 -1
- package/dist/_chunks/{constants-N8s4Vfy7.mjs → constants-WADLbNZe.mjs} +2 -2
- package/dist/_chunks/{constants-N8s4Vfy7.mjs.map → constants-WADLbNZe.mjs.map} +1 -1
- package/dist/_chunks/{constants-5WWLFsl8.js → constants-aqbguIyK.js} +2 -2
- package/dist/_chunks/{constants-5WWLFsl8.js.map → constants-aqbguIyK.js.map} +1 -1
- package/dist/_chunks/{constants-tvQqAwGQ.mjs → constants-dWFltCWB.mjs} +2 -2
- package/dist/_chunks/{constants-tvQqAwGQ.mjs.map → constants-dWFltCWB.mjs.map} +1 -1
- package/dist/_chunks/{constants-1TPaW7YQ.js → constants-htFUWDmA.js} +4 -4
- package/dist/_chunks/{constants-1TPaW7YQ.js.map → constants-htFUWDmA.js.map} +1 -1
- package/dist/_chunks/{constants-hwXdckaB.js → constants-oz9VRBgp.js} +6 -6
- package/dist/_chunks/{constants-hwXdckaB.js.map → constants-oz9VRBgp.js.map} +1 -1
- package/dist/_chunks/{index-PfmByeLh.js → index-Fnq9LxjS.js} +10 -10
- package/dist/_chunks/{index-PfmByeLh.js.map → index-Fnq9LxjS.js.map} +1 -1
- package/dist/_chunks/{index-3L2hpEDi.mjs → index-Go7rNONx.mjs} +10 -10
- package/dist/_chunks/{index-3L2hpEDi.mjs.map → index-Go7rNONx.mjs.map} +1 -1
- package/dist/_chunks/{reviewWorkflows-mBpI9Jne.js → reviewWorkflows-3LqmbaWU.js} +2 -2
- package/dist/_chunks/{reviewWorkflows-mBpI9Jne.js.map → reviewWorkflows-3LqmbaWU.js.map} +1 -1
- package/dist/_chunks/{reviewWorkflows-E8cPmPwn.mjs → reviewWorkflows-UTFLiCQ7.mjs} +2 -2
- package/dist/_chunks/{reviewWorkflows-E8cPmPwn.mjs.map → reviewWorkflows-UTFLiCQ7.mjs.map} +1 -1
- package/dist/_chunks/{transferTokens-v4BkhpeB.js → transferTokens-rl4cws_7.js} +2 -2
- package/dist/_chunks/{transferTokens-v4BkhpeB.js.map → transferTokens-rl4cws_7.js.map} +1 -1
- package/dist/_chunks/{transferTokens-3q0p3L-p.mjs → transferTokens-vvFnOhfY.mjs} +2 -2
- package/dist/_chunks/{transferTokens-3q0p3L-p.mjs.map → transferTokens-vvFnOhfY.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-Puckn7sd.js → useAdminRoles-eeaWQ2Rw.js} +2 -2
- package/dist/_chunks/{useAdminRoles-Puckn7sd.js.map → useAdminRoles-eeaWQ2Rw.js.map} +1 -1
- package/dist/_chunks/{useAdminRoles-SF86kKrJ.mjs → useAdminRoles-jYK0Lxgt.mjs} +2 -2
- package/dist/_chunks/{useAdminRoles-SF86kKrJ.mjs.map → useAdminRoles-jYK0Lxgt.mjs.map} +1 -1
- package/dist/_chunks/{useContentTypes-75WMv1c1.mjs → useContentTypes-0aVH8324.mjs} +2 -2
- package/dist/_chunks/{useContentTypes-75WMv1c1.mjs.map → useContentTypes-0aVH8324.mjs.map} +1 -1
- package/dist/_chunks/{useContentTypes-GWoChtmj.js → useContentTypes-i8rQ45xv.js} +2 -2
- package/dist/_chunks/{useContentTypes-GWoChtmj.js.map → useContentTypes-i8rQ45xv.js.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-JTT4D2Nc.js → useLicenseLimitNotification-CetQFd8w.js} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-JTT4D2Nc.js.map → useLicenseLimitNotification-CetQFd8w.js.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-uM7Bnf2T.mjs → useLicenseLimitNotification-HiIBpsf0.mjs} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-uM7Bnf2T.mjs.map → useLicenseLimitNotification-HiIBpsf0.mjs.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-1FdLHw4-.js → useReviewWorkflows-3V4AXqOe.js} +2 -2
- package/dist/_chunks/{useReviewWorkflows-1FdLHw4-.js.map → useReviewWorkflows-3V4AXqOe.js.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-jvAXCv3f.mjs → useReviewWorkflows-FmX2X--T.mjs} +2 -2
- package/dist/_chunks/{useReviewWorkflows-jvAXCv3f.mjs.map → useReviewWorkflows-FmX2X--T.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-TtnULIf5.mjs → useWebhooks-2WUKsATN.mjs} +2 -2
- package/dist/_chunks/{useWebhooks-TtnULIf5.mjs.map → useWebhooks-2WUKsATN.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-hCnyz7th.js → useWebhooks-mLbKEm8B.js} +2 -2
- package/dist/_chunks/{useWebhooks-hCnyz7th.js.map → useWebhooks-mLbKEm8B.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-Og2D7xE1.js → validateWorkflow-6UTLT992.js} +2 -2
- package/dist/_chunks/{validateWorkflow-Og2D7xE1.js.map → validateWorkflow-6UTLT992.js.map} +1 -1
- package/dist/_chunks/{validateWorkflow-bFrs4n2O.mjs → validateWorkflow-ENE3UKDG.mjs} +2 -2
- package/dist/_chunks/{validateWorkflow-bFrs4n2O.mjs.map → validateWorkflow-ENE3UKDG.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs.map +1 -1
- package/package.json +13 -13
package/dist/_chunks/{InstalledPluginsPage-ynee1mkC.js.map → InstalledPluginsPage-5FMbbylg.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstalledPluginsPage-
|
|
1
|
+
{"version":3,"file":"InstalledPluginsPage-5FMbbylg.js","sources":["../../admin/src/pages/InstalledPluginsPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../selectors';\nimport { useGetPluginsQuery } from '../services/admin';\n\nconst InstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n useFocusWhenNavigate();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return (\n <Layout>\n <Main aria-busy>\n <LoadingIndicatorPage />\n </Main>\n </Layout>\n );\n }\n\n return (\n <Layout>\n <Main>\n <HeaderLayout\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <ContentLayout>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\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 </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </ContentLayout>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedInstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.marketplace?.main}>\n <Helmet\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n />\n <InstalledPluginsPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedInstalledPluginsPage, InstalledPluginsPage };\n"],"names":["useIntl","useNotifyAT","useNotification","useAPIErrorHandler","useFocusWhenNavigate","useGetPluginsQuery","React","jsx","Layout","Main","LoadingIndicatorPage","jsxs","HeaderLayout","ContentLayout","Table","Thead","Tr","Th","Typography","Tbody","Td","useSelector","selectAdminPermissions","CheckPagePermissions","Helmet"],"mappings":"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"}
|
package/dist/_chunks/{InstalledPluginsPage-4VePhHUz.mjs → InstalledPluginsPage-9wzLhUvI.mjs}
RENAMED
|
@@ -5,8 +5,8 @@ import { useNotification, useAPIErrorHandler, useFocusWhenNavigate, LoadingIndic
|
|
|
5
5
|
import { Helmet } from "react-helmet";
|
|
6
6
|
import { useIntl } from "react-intl";
|
|
7
7
|
import { useSelector } from "react-redux";
|
|
8
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
9
|
-
import { q as useGetPluginsQuery } from "./index-
|
|
8
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-JlSCDE9m.mjs";
|
|
9
|
+
import { q as useGetPluginsQuery } from "./index-Go7rNONx.mjs";
|
|
10
10
|
import "semver/functions/lt";
|
|
11
11
|
import "semver/functions/valid";
|
|
12
12
|
import "immer";
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
InstalledPluginsPage,
|
|
167
167
|
ProtectedInstalledPluginsPage
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=InstalledPluginsPage-
|
|
169
|
+
//# sourceMappingURL=InstalledPluginsPage-9wzLhUvI.mjs.map
|
package/dist/_chunks/{InstalledPluginsPage-4VePhHUz.mjs.map → InstalledPluginsPage-9wzLhUvI.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstalledPluginsPage-
|
|
1
|
+
{"version":3,"file":"InstalledPluginsPage-9wzLhUvI.mjs","sources":["../../admin/src/pages/InstalledPluginsPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../selectors';\nimport { useGetPluginsQuery } from '../services/admin';\n\nconst InstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n useFocusWhenNavigate();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return (\n <Layout>\n <Main aria-busy>\n <LoadingIndicatorPage />\n </Main>\n </Layout>\n );\n }\n\n return (\n <Layout>\n <Main>\n <HeaderLayout\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <ContentLayout>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\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 </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </ContentLayout>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedInstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.marketplace?.main}>\n <Helmet\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n />\n <InstalledPluginsPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedInstalledPluginsPage, InstalledPluginsPage };\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ const designSystem = require("@strapi/design-system");
|
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const Icons = require("@strapi/icons");
|
|
6
6
|
const reactIntl = require("react-intl");
|
|
7
|
-
const index = require("./index-
|
|
7
|
+
const index = require("./index-Fnq9LxjS.js");
|
|
8
8
|
const constants = require("./constants-L1I-Y-RJ.js");
|
|
9
9
|
const styled = require("styled-components");
|
|
10
10
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
@@ -85,4 +85,4 @@ exports.Back = Back;
|
|
|
85
85
|
exports.DragLayerRendered = DragLayerRendered;
|
|
86
86
|
exports.Header = Header;
|
|
87
87
|
exports.Root = Root;
|
|
88
|
-
//# sourceMappingURL=Layout
|
|
88
|
+
//# sourceMappingURL=Layout--0fQX_O4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layout
|
|
1
|
+
{"version":3,"file":"Layout--0fQX_O4.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":["styled","Flex","jsxs","pxToRem","jsx","CarretDown","Typography","DragLayer","DRAG_DROP_TYPES","Layout","Main","ContentLayout","useIntl","Link","ArrowLeft","Fragment","SettingsPageTitle","HeaderLayout"],"mappings":";;;;;;;;;;;AAKA,MAAM,SAASA,gBAAAA,QAAOC,aAAAA,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAAC,2BAAA;AAAA,IAACD,aAAA;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAOE,qBAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAAC,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,yCAACC,MAAW,YAAA,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAECD,2BAAA,IAAAE,aAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAAF,2BAAA;AAAA,IAACG,MAAA;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAASC,UAAA,gBAAgB,OAAO;AAChC,iBAAAJ,+BAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAAA,2BAAAA,IAACK,aAAAA,QACC,EAAA,UAAAL,2BAAAA,IAACM,aAAAA,MAAK,EAAA,UAAU,IACd,UAACN,2BAAA,IAAAO,4BAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkBC,UAAAA;AAGxB,SAAAR,+BAACS,aAAAA,QAAK,WAAWT,2BAAAA,IAACU,MAAAA,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEIZ,2BAAA,KAAAa,qBAAA,EAAA,UAAA;AAAA,IAACX,2BAAAA,IAAAY,aAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChCZ,2BAAA;AAAA,MAACa,aAAA;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { Flex, Typography, Layout, Main, ContentLayout, HeaderLayout } from "@st
|
|
|
3
3
|
import { pxToRem, Link, SettingsPageTitle } from "@strapi/helper-plugin";
|
|
4
4
|
import { CarretDown, ArrowLeft } from "@strapi/icons";
|
|
5
5
|
import { useIntl } from "react-intl";
|
|
6
|
-
import { P as DragLayer } from "./index-
|
|
6
|
+
import { P as DragLayer } from "./index-Go7rNONx.mjs";
|
|
7
7
|
import { D as DRAG_DROP_TYPES } from "./constants-8sAt6dKz.mjs";
|
|
8
8
|
import styled from "styled-components";
|
|
9
9
|
const Toggle = styled(Flex)`
|
|
@@ -84,4 +84,4 @@ export {
|
|
|
84
84
|
Header as H,
|
|
85
85
|
Root as R
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=Layout-
|
|
87
|
+
//# sourceMappingURL=Layout-QMOA8ZMB.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layout-
|
|
1
|
+
{"version":3,"file":"Layout-QMOA8ZMB.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,SAAS,OAAO,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAO,QAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,8BAAC,YAAW,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAEC,oBAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAAS,gBAAgB,OAAO;AAChC,iBAAA,oBAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAA,oBAAC,QACC,EAAA,UAAA,oBAAC,MAAK,EAAA,UAAU,IACd,UAAC,oBAAA,eAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkB;AAGxB,SAAA,oBAAC,QAAK,WAAW,oBAAC,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
@@ -9,9 +9,9 @@ const axios = require("axios");
|
|
|
9
9
|
const produce = require("immer");
|
|
10
10
|
const reactIntl = require("react-intl");
|
|
11
11
|
const reactRouterDom = require("react-router-dom");
|
|
12
|
-
const index = require("./index-
|
|
13
|
-
const useAdminRoles = require("./useAdminRoles-
|
|
14
|
-
const AuthenticatedApp = require("./AuthenticatedApp-
|
|
12
|
+
const index = require("./index-Fnq9LxjS.js");
|
|
13
|
+
const useAdminRoles = require("./useAdminRoles-eeaWQ2Rw.js");
|
|
14
|
+
const AuthenticatedApp = require("./AuthenticatedApp-QDCywiaA.js");
|
|
15
15
|
require("react-dom/client");
|
|
16
16
|
require("invariant");
|
|
17
17
|
require("lodash/isFunction");
|
|
@@ -366,4 +366,4 @@ const ProtectedListPage = () => {
|
|
|
366
366
|
};
|
|
367
367
|
exports.ListPage = ListPage;
|
|
368
368
|
exports.ProtectedListPage = ProtectedListPage;
|
|
369
|
-
//# sourceMappingURL=ListPage-
|
|
369
|
+
//# sourceMappingURL=ListPage-4ewT-BZW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-30YvAjLR.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, pxToRem, 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={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\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 ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\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 { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\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 = () => push('/settings/roles/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 push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\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 <SearchURLQuery\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: () => push(`/settings/roles/${role.id}`),\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 isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={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(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["useIntl","jsxs","Tr","onRowClick","jsx","Td","pxToRem","Typography","Flex","stopPropagation","Box","IconButton","useFocusWhenNavigate","useTypedSelector","selectAdminPermissions","useAPIErrorHandler","useNotification","React","useQueryParams","useRBAC","useAdminRoles","useHistory","getFetchClient","AxiosError","Main","LoadingIndicatorPage","SettingsPageTitle","HeaderLayout","Button","Plus","ActionLayout","SearchURLQuery","ContentLayout","Table","TFooter","Thead","Th","VisuallyHidden","Tbody","index","Duplicate","Pencil","Trash","ConfirmDialog","produce","CheckPagePermissions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage-4ewT-BZW.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, pxToRem, 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={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\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 ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\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 { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\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 = () => push('/settings/roles/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 push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\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 <SearchURLQuery\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: () => push(`/settings/roles/${role.id}`),\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 isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={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(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["useIntl","jsxs","Tr","onRowClick","jsx","Td","pxToRem","Typography","Flex","stopPropagation","Box","IconButton","useFocusWhenNavigate","useTypedSelector","selectAdminPermissions","useAPIErrorHandler","useNotification","React","useQueryParams","useRBAC","useAdminRoles","useHistory","getFetchClient","AxiosError","Main","LoadingIndicatorPage","SettingsPageTitle","HeaderLayout","Button","Plus","ActionLayout","SearchURLQuery","ContentLayout","Table","TFooter","Thead","Th","VisuallyHidden","Tbody","index","Duplicate","Pencil","Trash","ConfirmDialog","produce","CheckPagePermissions"],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@ import { AxiosError } from "axios";
|
|
|
7
7
|
import produce from "immer";
|
|
8
8
|
import { useIntl } from "react-intl";
|
|
9
9
|
import { useHistory } from "react-router-dom";
|
|
10
|
-
import { j as useTypedSelector } from "./index-
|
|
11
|
-
import { u as useAdminRoles } from "./useAdminRoles-
|
|
12
|
-
import { s as selectAdminPermissions } from "./AuthenticatedApp-
|
|
10
|
+
import { j as useTypedSelector } from "./index-Go7rNONx.mjs";
|
|
11
|
+
import { u as useAdminRoles } from "./useAdminRoles-jYK0Lxgt.mjs";
|
|
12
|
+
import { s as selectAdminPermissions } from "./AuthenticatedApp-JlSCDE9m.mjs";
|
|
13
13
|
import "react-dom/client";
|
|
14
14
|
import "invariant";
|
|
15
15
|
import "lodash/isFunction";
|
|
@@ -345,4 +345,4 @@ export {
|
|
|
345
345
|
ListPage,
|
|
346
346
|
ProtectedListPage
|
|
347
347
|
};
|
|
348
|
-
//# sourceMappingURL=ListPage-
|
|
348
|
+
//# sourceMappingURL=ListPage-98s5i8Xi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-1_PoHBzW.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, pxToRem, 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={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\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 ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\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 { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\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 = () => push('/settings/roles/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 push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\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 <SearchURLQuery\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: () => push(`/settings/roles/${role.id}`),\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 isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={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(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage-98s5i8Xi.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, pxToRem, 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={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\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 ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\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 { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\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 = () => push('/settings/roles/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 push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\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 <SearchURLQuery\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: () => push(`/settings/roles/${role.id}`),\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 isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={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(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
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-cznp__Dv.mjs";
|
|
3
|
+
import { u as useLicenseLimitNotification } from "./useLicenseLimitNotification-HiIBpsf0.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import "@strapi/design-system";
|
|
6
6
|
import "@strapi/helper-plugin";
|
|
7
7
|
import "qs";
|
|
8
8
|
import "react-intl";
|
|
9
9
|
import "react-router-dom";
|
|
10
|
-
import "./index-
|
|
10
|
+
import "./index-Go7rNONx.mjs";
|
|
11
11
|
import "react-dom/client";
|
|
12
12
|
import "invariant";
|
|
13
13
|
import "lodash/isFunction";
|
|
@@ -72,9 +72,9 @@ import "lodash/unset";
|
|
|
72
72
|
import "lodash/isArray";
|
|
73
73
|
import "date-fns/parseISO";
|
|
74
74
|
import "./Filters-dLXfVnI0.mjs";
|
|
75
|
-
import "./SelectRoles-
|
|
76
|
-
import "./useAdminRoles-
|
|
77
|
-
import "./AuthenticatedApp-
|
|
75
|
+
import "./SelectRoles-_XSAf07G.mjs";
|
|
76
|
+
import "./useAdminRoles-jYK0Lxgt.mjs";
|
|
77
|
+
import "./AuthenticatedApp-JlSCDE9m.mjs";
|
|
78
78
|
import "semver/functions/lt";
|
|
79
79
|
import "semver/functions/valid";
|
|
80
80
|
import "lodash/isNil";
|
|
@@ -85,4 +85,4 @@ const UserListPageEE = () => {
|
|
|
85
85
|
export {
|
|
86
86
|
UserListPageEE
|
|
87
87
|
};
|
|
88
|
-
//# sourceMappingURL=ListPage-
|
|
88
|
+
//# sourceMappingURL=ListPage-HZokVhqs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-
|
|
1
|
+
{"version":3,"file":"ListPage-HZokVhqs.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;"}
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import { ModalLayout, ModalHeader, ModalBody, Flex, Loader, Box, Typography, Grid, JSONInput, Tbody, Tr, Td, IconButton, Combobox, ComboboxOption, Layout, ContentLayout, Main, HeaderLayout, ActionLayout } from "@strapi/design-system";
|
|
3
3
|
import { useNotification, useAPIErrorHandler, PageSizeURLQuery, PaginationURLQuery, onRowClick, stopPropagation, useQueryParams, CheckPagePermissions, useRBAC, useFocusWhenNavigate, AnErrorOccurred, SettingsPageTitle, DynamicTable } from "@strapi/helper-plugin";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
|
-
import { n as adminApi, k as useAdminUsers, j as useTypedSelector } from "./index-
|
|
5
|
+
import { n as adminApi, k as useAdminUsers, j as useTypedSelector } from "./index-Go7rNONx.mjs";
|
|
6
6
|
import { F as Filters } from "./Filters-dLXfVnI0.mjs";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
|
|
@@ -592,4 +592,4 @@ export {
|
|
|
592
592
|
ListPage,
|
|
593
593
|
ProtectedListPage
|
|
594
594
|
};
|
|
595
|
-
//# sourceMappingURL=ListPage-
|
|
595
|
+
//# sourceMappingURL=ListPage-NW6Jib2e.mjs.map
|