@strapi/admin 5.0.0-alpha.0 → 5.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js → AdminSeatInfo-JtsYpBbO.js} +3 -3
- package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js.map → AdminSeatInfo-JtsYpBbO.js.map} +1 -1
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs → AdminSeatInfo-ZZsKxX-S.mjs} +3 -3
- package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs.map → AdminSeatInfo-ZZsKxX-S.mjs.map} +1 -1
- package/dist/_chunks/{ApplicationInfoPage-Zn5JU2zd.mjs → ApplicationInfoPage-NhhWzHF1.mjs} +7 -8
- package/dist/_chunks/ApplicationInfoPage-NhhWzHF1.mjs.map +1 -0
- package/dist/_chunks/{ApplicationInfoPage-PHLA1Ysy.js → ApplicationInfoPage-xj1SCaSR.js} +5 -6
- package/dist/_chunks/ApplicationInfoPage-xj1SCaSR.js.map +1 -0
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs → AuthResponse-jIqWZLMh.mjs} +2 -2
- package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs.map → AuthResponse-jIqWZLMh.mjs.map} +1 -1
- package/dist/_chunks/{AuthResponse-7NG3smr6.js → AuthResponse-maUe9KWA.js} +2 -2
- package/dist/_chunks/{AuthResponse-7NG3smr6.js.map → AuthResponse-maUe9KWA.js.map} +1 -1
- package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs → AuthenticatedLayout-Ffy6uoNF.mjs} +22 -15
- package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs.map → AuthenticatedLayout-Ffy6uoNF.mjs.map} +1 -1
- package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js → AuthenticatedLayout-kxORHKAl.js} +22 -15
- package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js.map → AuthenticatedLayout-kxORHKAl.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js → ComponentConfigurationPage-JMCc1P7r.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js.map → ComponentConfigurationPage-JMCc1P7r.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs → ComponentConfigurationPage-oiBCHXQO.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs.map → ComponentConfigurationPage-oiBCHXQO.mjs.map} +1 -1
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js → CreateActionEE-ThopeFZP.js} +2 -2
- package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js.map → CreateActionEE-ThopeFZP.js.map} +1 -1
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs → CreateActionEE-VMKfXSGW.mjs} +2 -2
- package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs.map → CreateActionEE-VMKfXSGW.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-Bil0egZ1.mjs → CreatePage-6AeIanOF.mjs} +7 -7
- package/dist/_chunks/{CreatePage-Bil0egZ1.mjs.map → CreatePage-6AeIanOF.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-h5L6QP47.mjs → CreatePage-Gh5xb10f.mjs} +3 -3
- package/dist/_chunks/{CreatePage-h5L6QP47.mjs.map → CreatePage-Gh5xb10f.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-MAI6XyNg.js → CreatePage-JIHfFWS7.js} +3 -3
- package/dist/_chunks/{CreatePage-MAI6XyNg.js.map → CreatePage-JIHfFWS7.js.map} +1 -1
- package/dist/_chunks/{CreatePage-nl6zKkKT.js → CreatePage-WWKaoNH7.js} +7 -7
- package/dist/_chunks/{CreatePage-nl6zKkKT.js.map → CreatePage-WWKaoNH7.js.map} +1 -1
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs → CreatePage-hxFhldpL.mjs} +3 -3
- package/dist/_chunks/{CreatePage-UC4uBFUR.mjs.map → CreatePage-hxFhldpL.mjs.map} +1 -1
- package/dist/_chunks/{CreatePage-NSKUL8l4.js → CreatePage-yjmy0z57.js} +3 -3
- package/dist/_chunks/{CreatePage-NSKUL8l4.js.map → CreatePage-yjmy0z57.js.map} +1 -1
- package/dist/_chunks/{CreateView-kc0iM0LS.js → CreateView-J48m0lSL.js} +3 -3
- package/dist/_chunks/{CreateView-kc0iM0LS.js.map → CreateView-J48m0lSL.js.map} +1 -1
- package/dist/_chunks/{CreateView-3DMhoCPN.js → CreateView-Vqd1PVrJ.js} +3 -3
- package/dist/_chunks/{CreateView-3DMhoCPN.js.map → CreateView-Vqd1PVrJ.js.map} +1 -1
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs → CreateView-oBp0NzJx.mjs} +3 -3
- package/dist/_chunks/{CreateView-RVrFxAFt.mjs.map → CreateView-oBp0NzJx.mjs.map} +1 -1
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs → CreateView-qzpeDBvR.mjs} +3 -3
- package/dist/_chunks/{CreateView-DuSt3AcE.mjs.map → CreateView-qzpeDBvR.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs → EditConfigurationPage-MAUfMzG6.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs.map → EditConfigurationPage-MAUfMzG6.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js → EditConfigurationPage-PKHUVKGD.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js.map → EditConfigurationPage-PKHUVKGD.js.map} +1 -1
- package/dist/_chunks/{EditPage-9aK8IFXY.js → EditPage-7bVupT7n.js} +8 -8
- package/dist/_chunks/{EditPage-9aK8IFXY.js.map → EditPage-7bVupT7n.js.map} +1 -1
- package/dist/_chunks/{EditPage-VoRR5DCQ.mjs → EditPage-DQUZsl8H.mjs} +9 -10
- package/dist/_chunks/EditPage-DQUZsl8H.mjs.map +1 -0
- package/dist/_chunks/{EditPage-PpBP7TBo.js → EditPage-Hxt5uBXk.js} +4 -4
- package/dist/_chunks/{EditPage-PpBP7TBo.js.map → EditPage-Hxt5uBXk.js.map} +1 -1
- package/dist/_chunks/{EditPage-fDVAYmuS.mjs → EditPage-Izmz7bdh.mjs} +8 -8
- package/dist/_chunks/{EditPage-fDVAYmuS.mjs.map → EditPage-Izmz7bdh.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-A6olBfVm.js → EditPage-QA0-S3kV.js} +7 -8
- package/dist/_chunks/EditPage-QA0-S3kV.js.map +1 -0
- package/dist/_chunks/{EditPage-_swY0Hy-.mjs → EditPage-THSaM4-0.mjs} +4 -4
- package/dist/_chunks/{EditPage-_swY0Hy-.mjs.map → EditPage-THSaM4-0.mjs.map} +1 -1
- package/dist/_chunks/{EditPage-QoDSqYYq.js → EditPage-vUQIn3OJ.js} +5 -5
- package/dist/_chunks/{EditPage-QoDSqYYq.js.map → EditPage-vUQIn3OJ.js.map} +1 -1
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs → EditPage-zpnfFOjc.mjs} +5 -5
- package/dist/_chunks/{EditPage-wfPrhkA7.mjs.map → EditPage-zpnfFOjc.mjs.map} +1 -1
- package/dist/_chunks/{EditView-C_ynfmtW.js → EditView-63ynF0vf.js} +5 -6
- package/dist/_chunks/EditView-63ynF0vf.js.map +1 -0
- package/dist/_chunks/{EditView-EuUw_2zc.mjs → EditView-cfOpTlAi.mjs} +7 -8
- package/dist/_chunks/EditView-cfOpTlAi.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-Z_e1dpbU.js → EditViewPage--SujdXIG.js} +5 -6
- package/dist/_chunks/EditViewPage--SujdXIG.js.map +1 -0
- package/dist/_chunks/{EditViewPage-xYzUSAwS.mjs → EditViewPage-JFzIJClS.mjs} +4 -5
- package/dist/_chunks/EditViewPage-JFzIJClS.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-XtJmgPi5.js → EditViewPage-kkCJlZyh.js} +6 -7
- package/dist/_chunks/EditViewPage-kkCJlZyh.js.map +1 -0
- package/dist/_chunks/{EditViewPage-8uPO5GWR.mjs → EditViewPage-vz8UJ4U_.mjs} +7 -8
- package/dist/_chunks/EditViewPage-vz8UJ4U_.mjs.map +1 -0
- package/dist/_chunks/{EventsTable-hI0aV29K.js → EventsTable-1X4uyY8J.js} +2 -2
- package/dist/_chunks/{EventsTable-hI0aV29K.js.map → EventsTable-1X4uyY8J.js.map} +1 -1
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs → EventsTable-dN2MNNFu.mjs} +2 -2
- package/dist/_chunks/{EventsTable-WP7PUujH.mjs.map → EventsTable-dN2MNNFu.mjs.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs → FieldTypeIcon-4-UZzZla.mjs} +2 -2
- package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs.map → FieldTypeIcon-4-UZzZla.mjs.map} +1 -1
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js → FieldTypeIcon-wxfhExw2.js} +2 -2
- package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js.map → FieldTypeIcon-wxfhExw2.js.map} +1 -1
- package/dist/_chunks/{Filters-tMd2Q5jg.mjs → Filters--lh-i85A.mjs} +2 -3
- package/dist/_chunks/Filters--lh-i85A.mjs.map +1 -0
- package/dist/_chunks/{Filters-xVuf1kg6.js → Filters-V0VODaNk.js} +4 -5
- package/dist/_chunks/Filters-V0VODaNk.js.map +1 -0
- package/dist/_chunks/{Form-EiK_H9BI.js → Form-6QJjWK34.js} +3 -3
- package/dist/_chunks/{Form-EiK_H9BI.js.map → Form-6QJjWK34.js.map} +1 -1
- package/dist/_chunks/{Form-sZKjSFQC.mjs → Form-HXiNxSZi.mjs} +3 -3
- package/dist/_chunks/{Form-sZKjSFQC.mjs.map → Form-HXiNxSZi.mjs.map} +1 -1
- package/dist/_chunks/{History-1AF4LH3c.mjs → History-CRGqDfHr.mjs} +4 -5
- package/dist/_chunks/History-CRGqDfHr.mjs.map +1 -0
- package/dist/_chunks/{History-V_ik1IL0.js → History-R_4lEy01.js} +9 -10
- package/dist/_chunks/History-R_4lEy01.js.map +1 -0
- package/dist/_chunks/{HomePage-7Xva17wM.mjs → HomePage-GJRtRqAj.mjs} +3 -3
- package/dist/_chunks/{HomePage-7Xva17wM.mjs.map → HomePage-GJRtRqAj.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-C6Ivli1q.mjs → HomePage-Si17pjt5.mjs} +4 -4
- package/dist/_chunks/{HomePage-C6Ivli1q.mjs.map → HomePage-Si17pjt5.mjs.map} +1 -1
- package/dist/_chunks/{HomePage-yrIp1-eG.js → HomePage-oiaJD-JE.js} +4 -4
- package/dist/_chunks/{HomePage-yrIp1-eG.js.map → HomePage-oiaJD-JE.js.map} +1 -1
- package/dist/_chunks/{HomePage-zL7HPV7A.js → HomePage-rEW7Jpww.js} +3 -3
- package/dist/_chunks/{HomePage-zL7HPV7A.js.map → HomePage-rEW7Jpww.js.map} +1 -1
- package/dist/_chunks/{InputRenderer-iP1kRki4.mjs → InputRenderer-JfwBoJk0.mjs} +23 -8
- package/dist/_chunks/InputRenderer-JfwBoJk0.mjs.map +1 -0
- package/dist/_chunks/{InputRenderer-RMnWnPI4.js → InputRenderer-hWILsDgK.js} +25 -10
- package/dist/_chunks/InputRenderer-hWILsDgK.js.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-7m_FfOGl.mjs → InstalledPluginsPage-XqzfeZgq.mjs} +5 -7
- package/dist/_chunks/InstalledPluginsPage-XqzfeZgq.mjs.map +1 -0
- package/dist/_chunks/{InstalledPluginsPage-PrMyistN.js → InstalledPluginsPage-ao6yYe7N.js} +4 -6
- package/dist/_chunks/InstalledPluginsPage-ao6yYe7N.js.map +1 -0
- package/dist/_chunks/{Layout-tDfvrUZo.mjs → Layout-2dctwEHz.mjs} +2 -2
- package/dist/_chunks/{Layout-tDfvrUZo.mjs.map → Layout-2dctwEHz.mjs.map} +1 -1
- package/dist/_chunks/{Layout-EDS3Yv8X.mjs → Layout-3sYAgWn4.mjs} +4 -4
- package/dist/_chunks/{Layout-EDS3Yv8X.mjs.map → Layout-3sYAgWn4.mjs.map} +1 -1
- package/dist/_chunks/{Layout-DC68R0Fa.js → Layout-4vMUN0Ez.js} +2 -2
- package/dist/_chunks/{Layout-DC68R0Fa.js.map → Layout-4vMUN0Ez.js.map} +1 -1
- package/dist/_chunks/{Layout-9Li8e-qi.js → Layout-kbqdKkiF.js} +4 -4
- package/dist/_chunks/{Layout-9Li8e-qi.js.map → Layout-kbqdKkiF.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js → ListConfigurationPage-BXuW_9Wt.js} +3 -3
- package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js.map → ListConfigurationPage-BXuW_9Wt.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs → ListConfigurationPage-lPILAPkW.mjs} +3 -3
- package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs.map → ListConfigurationPage-lPILAPkW.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-_i7RNkUF.js → ListPage-02WM7Pt9.js} +6 -7
- package/dist/_chunks/ListPage-02WM7Pt9.js.map +1 -0
- package/dist/_chunks/{ListPage-em8KMoKx.js → ListPage-7TAp-q4k.js} +8 -9
- package/dist/_chunks/ListPage-7TAp-q4k.js.map +1 -0
- package/dist/_chunks/{ListPage-RlY1nro4.mjs → ListPage-EdOy02-v.mjs} +6 -7
- package/dist/_chunks/ListPage-EdOy02-v.mjs.map +1 -0
- package/dist/_chunks/{ListPage-1q5Fi4W9.mjs → ListPage-OaldiDCh.mjs} +50 -51
- package/dist/_chunks/ListPage-OaldiDCh.mjs.map +1 -0
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs → ListPage-R8Qs69v7.mjs} +3 -3
- package/dist/_chunks/{ListPage-cBvO_gYR.mjs.map → ListPage-R8Qs69v7.mjs.map} +1 -1
- package/dist/_chunks/{ListPage-DZBRIMkE.mjs → ListPage-SCTNGhhO.mjs} +6 -7
- package/dist/_chunks/ListPage-SCTNGhhO.mjs.map +1 -0
- package/dist/_chunks/{ListPage-God7L19W.mjs → ListPage-YZ45BiMe.mjs} +10 -11
- package/dist/_chunks/ListPage-YZ45BiMe.mjs.map +1 -0
- package/dist/_chunks/{ListPage-skKuhRrN.js → ListPage-ZWUo77nT.js} +49 -49
- package/dist/_chunks/ListPage-ZWUo77nT.js.map +1 -0
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js → ListPage-bE4a6YkV.js} +3 -3
- package/dist/_chunks/{ListPage-0eDZZ7Zw.js.map → ListPage-bE4a6YkV.js.map} +1 -1
- package/dist/_chunks/{ListPage-Ky2tG2bd.mjs → ListPage-p17R2Gql.mjs} +10 -14
- package/dist/_chunks/ListPage-p17R2Gql.mjs.map +1 -0
- package/dist/_chunks/{ListPage-NdzVJ_Ed.js → ListPage-rCVvOLlD.js} +9 -13
- package/dist/_chunks/ListPage-rCVvOLlD.js.map +1 -0
- package/dist/_chunks/{ListPage-aElBcYPH.js → ListPage-u6uVacPz.js} +4 -5
- package/dist/_chunks/ListPage-u6uVacPz.js.map +1 -0
- package/dist/_chunks/{ListView-hm-mjZ8N.mjs → ListView--O7X6dMw.mjs} +7 -8
- package/dist/_chunks/ListView--O7X6dMw.mjs.map +1 -0
- package/dist/_chunks/{ListView--mxDKrnG.js → ListView-SsUn5vcn.js} +5 -6
- package/dist/_chunks/ListView-SsUn5vcn.js.map +1 -0
- package/dist/_chunks/{ListView-vP-PjR4p.js → ListView-ZkjwQBXQ.js} +5 -6
- package/dist/_chunks/ListView-ZkjwQBXQ.js.map +1 -0
- package/dist/_chunks/{ListView-QEgFV6dm.mjs → ListView-oP-C8SCR.mjs} +7 -8
- package/dist/_chunks/ListView-oP-C8SCR.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-xOVa04T_.mjs → ListViewPage-1VNVP9Rw.mjs} +10 -11
- package/dist/_chunks/ListViewPage-1VNVP9Rw.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-NiwpwxBR.js → ListViewPage-idgrhBAP.js} +14 -15
- package/dist/_chunks/ListViewPage-idgrhBAP.js.map +1 -0
- package/dist/_chunks/{Login-0FtP5Ck_.js → Login-4Igrm6CC.js} +2 -2
- package/dist/_chunks/{Login-0FtP5Ck_.js.map → Login-4Igrm6CC.js.map} +1 -1
- package/dist/_chunks/{Login-IFCsIrab.mjs → Login-B55AM-7k.mjs} +2 -2
- package/dist/_chunks/{Login-IFCsIrab.mjs.map → Login-B55AM-7k.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs → MagicLinkEE-Zy_9ZZ7y.mjs} +3 -3
- package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs.map → MagicLinkEE-Zy_9ZZ7y.mjs.map} +1 -1
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js → MagicLinkEE-v7xTuVEA.js} +3 -3
- package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js.map → MagicLinkEE-v7xTuVEA.js.map} +1 -1
- package/dist/_chunks/{MarketplacePage-f0ZrC_p8.mjs → MarketplacePage-UGys0LVN.mjs} +3 -5
- package/dist/_chunks/MarketplacePage-UGys0LVN.mjs.map +1 -0
- package/dist/_chunks/{MarketplacePage-zSQ_GRnZ.js → MarketplacePage-tWKM5xe8.js} +5 -7
- package/dist/_chunks/MarketplacePage-tWKM5xe8.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs → NoContentTypePage-BaaTD5uB.mjs} +4 -6
- package/dist/_chunks/NoContentTypePage-BaaTD5uB.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js → NoContentTypePage-Lbuve_Uu.js} +3 -5
- package/dist/_chunks/NoContentTypePage-Lbuve_Uu.js.map +1 -0
- package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs → NoPermissionsPage--Oa97N7k.mjs} +5 -7
- package/dist/_chunks/NoPermissionsPage--Oa97N7k.mjs.map +1 -0
- package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js → NoPermissionsPage-q44k5VFX.js} +3 -5
- package/dist/_chunks/NoPermissionsPage-q44k5VFX.js.map +1 -0
- package/dist/_chunks/{Permissions--rdF1ZKQ.js → Permissions-CFuwI0Ni.js} +2 -2
- package/dist/_chunks/{Permissions--rdF1ZKQ.js.map → Permissions-CFuwI0Ni.js.map} +1 -1
- package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs → Permissions-NbmBkSB4.mjs} +2 -2
- package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs.map → Permissions-NbmBkSB4.mjs.map} +1 -1
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs → PrivateRoute-YN_98pM_.mjs} +2 -2
- package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs.map → PrivateRoute-YN_98pM_.mjs.map} +1 -1
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js → PrivateRoute-avlq1MEy.js} +2 -2
- package/dist/_chunks/{PrivateRoute-GLTcdbu8.js.map → PrivateRoute-avlq1MEy.js.map} +1 -1
- package/dist/_chunks/{ProfilePage-EEcNKnGH.js → ProfilePage-brPbqDP1.js} +4 -6
- package/dist/_chunks/ProfilePage-brPbqDP1.js.map +1 -0
- package/dist/_chunks/{ProfilePage-bE7txhNu.mjs → ProfilePage-eCIvxxJY.mjs} +5 -7
- package/dist/_chunks/ProfilePage-eCIvxxJY.mjs.map +1 -0
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js → ReviewWorkflowsColumn-HfjzpLFU.js} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js.map → ReviewWorkflowsColumn-HfjzpLFU.js.map} +1 -1
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs → ReviewWorkflowsColumn-sPZxvFUd.mjs} +2 -2
- package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs.map → ReviewWorkflowsColumn-sPZxvFUd.mjs.map} +1 -1
- package/dist/_chunks/{SelectRoles-XK5HcBdP.js → SelectRoles-BmNzL0q5.js} +4 -5
- package/dist/_chunks/SelectRoles-BmNzL0q5.js.map +1 -0
- package/dist/_chunks/{SelectRoles-Iih1yeTu.mjs → SelectRoles-jvH4WUf6.mjs} +3 -4
- package/dist/_chunks/SelectRoles-jvH4WUf6.mjs.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-uURRsIxP.js → SingleSignOnPage-ZyiHtZxJ.js} +4 -5
- package/dist/_chunks/SingleSignOnPage-ZyiHtZxJ.js.map +1 -0
- package/dist/_chunks/{SingleSignOnPage-vOeDxBfa.mjs → SingleSignOnPage-aMd3wcAh.mjs} +6 -7
- package/dist/_chunks/SingleSignOnPage-aMd3wcAh.mjs.map +1 -0
- package/dist/_chunks/{Table-k6gVR2KH.mjs → Table-591I_RMU.mjs} +2 -3
- package/dist/_chunks/Table-591I_RMU.mjs.map +1 -0
- package/dist/_chunks/{Table-VsNr4Mha.js → Table-aUfykqgd.js} +3 -4
- package/dist/_chunks/Table-aUfykqgd.js.map +1 -0
- package/dist/_chunks/{TokenTypeSelect-Z9iyoteG.mjs → TokenTypeSelect-vIBdBE9t.mjs} +2 -3
- package/dist/_chunks/TokenTypeSelect-vIBdBE9t.mjs.map +1 -0
- package/dist/_chunks/{TokenTypeSelect-QN_bDdss.js → TokenTypeSelect-vp-54yBv.js} +3 -4
- package/dist/_chunks/TokenTypeSelect-vp-54yBv.js.map +1 -0
- package/dist/_chunks/{UseCasePage-xAlTWOcX.js → UseCasePage-0_alQEc9.js} +3 -3
- package/dist/_chunks/{UseCasePage-xAlTWOcX.js.map → UseCasePage-0_alQEc9.js.map} +1 -1
- package/dist/_chunks/{UseCasePage-qJwKBweD.mjs → UseCasePage-Cxu2FeWo.mjs} +3 -3
- package/dist/_chunks/{UseCasePage-qJwKBweD.mjs.map → UseCasePage-Cxu2FeWo.mjs.map} +1 -1
- package/dist/_chunks/{apiTokens-b3w4qO8B.js → apiTokens-IG3rF-G2.js} +2 -2
- package/dist/_chunks/{apiTokens-b3w4qO8B.js.map → apiTokens-IG3rF-G2.js.map} +1 -1
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs → apiTokens-wLmJ3Liv.mjs} +2 -2
- package/dist/_chunks/{apiTokens-dGGyJI-w.mjs.map → apiTokens-wLmJ3Liv.mjs.map} +1 -1
- package/dist/_chunks/{constants-WjN6I3sL.mjs → constants-0OGkpIzK.mjs} +3 -3
- package/dist/_chunks/{constants-WjN6I3sL.mjs.map → constants-0OGkpIzK.mjs.map} +1 -1
- package/dist/_chunks/{constants-PHXhIuUs.js → constants-7yqqXq3r.js} +2 -2
- package/dist/_chunks/{constants-PHXhIuUs.js.map → constants-7yqqXq3r.js.map} +1 -1
- package/dist/_chunks/{constants-ruIkLWCb.mjs → constants-JgR8CVx2.mjs} +2 -2
- package/dist/_chunks/{constants-ruIkLWCb.mjs.map → constants-JgR8CVx2.mjs.map} +1 -1
- package/dist/_chunks/{constants-IZEgEoW9.js → constants-XJLrl2Tl.js} +3 -3
- package/dist/_chunks/{constants-IZEgEoW9.js.map → constants-XJLrl2Tl.js.map} +1 -1
- package/dist/_chunks/{index-5ZvCaCyY.mjs → index-GIVuHJgC.mjs} +347 -188
- package/dist/_chunks/index-GIVuHJgC.mjs.map +1 -0
- package/dist/_chunks/{index-ibtz273H.js → index-haHGOQMJ.js} +270 -110
- package/dist/_chunks/index-haHGOQMJ.js.map +1 -0
- package/dist/_chunks/{selectors-JBxTdRJK.mjs → selectors--2Vzk8PA.mjs} +2 -2
- package/dist/_chunks/{selectors-JBxTdRJK.mjs.map → selectors--2Vzk8PA.mjs.map} +1 -1
- package/dist/_chunks/{selectors-TFKI8arF.js → selectors-NSSzzIzx.js} +2 -2
- package/dist/_chunks/{selectors-TFKI8arF.js.map → selectors-NSSzzIzx.js.map} +1 -1
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs → transferTokens-WIsWKVbF.mjs} +2 -2
- package/dist/_chunks/{transferTokens-4KlyXDql.mjs.map → transferTokens-WIsWKVbF.mjs.map} +1 -1
- package/dist/_chunks/{transferTokens-G-suI4pp.js → transferTokens-xL4mlopP.js} +2 -2
- package/dist/_chunks/{transferTokens-G-suI4pp.js.map → transferTokens-xL4mlopP.js.map} +1 -1
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs → useAdminRoles--ozrdfW_.mjs} +2 -2
- package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs.map → useAdminRoles--ozrdfW_.mjs.map} +1 -1
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js → useAdminRoles-Y25Pjlcy.js} +2 -2
- package/dist/_chunks/{useAdminRoles-o4dxsCcY.js.map → useAdminRoles-Y25Pjlcy.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-dRoMxL8c.js → useContentTypes-Vr8jkHQL.js} +2 -2
- package/dist/_chunks/{useContentTypes-dRoMxL8c.js.map → useContentTypes-Vr8jkHQL.js.map} +1 -1
- package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs → useContentTypes-ralhLmpD.mjs} +2 -2
- package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs.map → useContentTypes-ralhLmpD.mjs.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs → useLicenseLimitNotification-RSTkqcfW.mjs} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs.map → useLicenseLimitNotification-RSTkqcfW.mjs.map} +1 -1
- package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js → useLicenseLimitNotification-fSsffVh-.js} +2 -2
- package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js.map → useLicenseLimitNotification-fSsffVh-.js.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs → useReviewWorkflows--7WPIykR.mjs} +2 -2
- package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs.map → useReviewWorkflows--7WPIykR.mjs.map} +1 -1
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js → useReviewWorkflows-4t3eVbDa.js} +2 -2
- package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js.map → useReviewWorkflows-4t3eVbDa.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js → useSyncRbac-Fw5UPeMQ.js} +2 -2
- package/dist/_chunks/{useSyncRbac-f7CCq_yt.js.map → useSyncRbac-Fw5UPeMQ.js.map} +1 -1
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs → useSyncRbac-JNQibLFa.mjs} +2 -2
- package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs.map → useSyncRbac-JNQibLFa.mjs.map} +1 -1
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js → useWebhooks-IXb4Ks8E.js} +2 -2
- package/dist/_chunks/{useWebhooks-Fhm21I_2.js.map → useWebhooks-IXb4Ks8E.js.map} +1 -1
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs → useWebhooks-sfNt0r3v.mjs} +2 -2
- package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs.map → useWebhooks-sfNt0r3v.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs → validateWorkflow-YRBggwod.mjs} +2 -2
- package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs.map → validateWorkflow-YRBggwod.mjs.map} +1 -1
- package/dist/_chunks/{validateWorkflow-1g4fl4e7.js → validateWorkflow-akFNValJ.js} +2 -2
- package/dist/_chunks/{validateWorkflow-1g4fl4e7.js.map → validateWorkflow-akFNValJ.js.map} +1 -1
- package/dist/_chunks/{validation-NckIpCgz.js → validation--QPWqn0e.js} +2 -2
- package/dist/_chunks/{validation-NckIpCgz.js.map → validation--QPWqn0e.js.map} +1 -1
- package/dist/_chunks/{validation-aaWzg0nE.mjs → validation-hlioQ0PO.mjs} +2 -2
- package/dist/_chunks/{validation-aaWzg0nE.mjs.map → validation-hlioQ0PO.mjs.map} +1 -1
- package/dist/admin/index.js +4 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +21 -18
- package/dist/admin/src/components/PageHelpers.d.ts +6 -2
- package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/content-manager/history/tests/mockData.d.ts +692 -0
- package/dist/admin/src/content-manager/history/tests/server.d.ts +3 -0
- package/dist/admin/src/content-manager/services/api.d.ts +1 -1
- package/dist/admin/src/content-manager/services/components.d.ts +2 -2
- package/dist/admin/src/content-manager/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/content-manager/services/documents.d.ts +17 -20
- package/dist/admin/src/content-manager/services/init.d.ts +1 -1
- package/dist/admin/src/content-manager/services/relations.d.ts +2 -2
- package/dist/admin/src/content-manager/services/uid.d.ts +3 -3
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +3 -3
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -1
- package/dist/admin/src/hooks/useClipboard.d.ts +4 -0
- package/dist/admin/src/hooks/useFetchClient.d.ts +43 -0
- package/dist/admin/src/hooks/useFocusInputField.d.ts +20 -0
- package/dist/admin/src/hooks/useQueryParams.d.ts +5 -0
- package/dist/admin/src/index.d.ts +8 -6
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/utils/baseQuery.d.ts +1 -1
- package/dist/admin/src/utils/getFetchClient.d.ts +30 -0
- package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -2
- package/dist/admin/tests/index.js +49173 -0
- package/dist/admin/tests/index.js.map +1 -0
- package/dist/admin/tests/index.mjs +49135 -0
- package/dist/admin/tests/index.mjs.map +1 -0
- package/dist/admin/tests/mockData.d.ts +2053 -0
- package/dist/admin/tests/server.d.ts +2 -0
- package/dist/admin/tests/setup.d.ts +1 -0
- package/dist/admin/tests/store.d.ts +468 -0
- package/dist/admin/tests/utils.d.ts +511 -0
- 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/EditPage-A6olBfVm.js.map +0 -1
- package/dist/_chunks/EditPage-VoRR5DCQ.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/Filters-tMd2Q5jg.mjs.map +0 -1
- package/dist/_chunks/Filters-xVuf1kg6.js.map +0 -1
- package/dist/_chunks/History-1AF4LH3c.mjs.map +0 -1
- package/dist/_chunks/History-V_ik1IL0.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/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/NoContentTypePage-ER4yVLjV.mjs.map +0 -1
- package/dist/_chunks/NoContentTypePage-_XU8B8oQ.js.map +0 -1
- package/dist/_chunks/NoPermissionsPage-5A4Hwjad.js.map +0 -1
- package/dist/_chunks/NoPermissionsPage-DcFRsCHz.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/Table-VsNr4Mha.js.map +0 -1
- package/dist/_chunks/Table-k6gVR2KH.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/index-5ZvCaCyY.mjs.map +0 -1
- package/dist/_chunks/index-ibtz273H.js.map +0 -1
- package/dist/admin/src/types/errors.d.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-02WM7Pt9.js","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n {\n name: 'actions',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.actions',\n defaultMessage: 'Actions',\n }),\n sortable: false,\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <ContentLayout>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n case 'actions':\n return null;\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...auditLogs?.pagination} defaultPageSize={24}>\n <Pagination.PageSize options={['12', '24', '50', '100']} />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["adminApi","useIntl","parseISO","useNotification","useAPIErrorHandler","React","jsxs","ModalLayout","jsx","ModalHeader","Breadcrumbs","Crumb","ModalBody","Flex","Loader","Fragment","Box","Typography","Grid","JSONInput","useQueryParams","useAdminUsers","useField","Combobox","ComboboxOption","getDisplayName","useTypedSelector","useRBAC","Page","Helmet","HeaderLayout","ActionLayout","Filters","ContentLayout","Table","IconButton","Eye","Pagination"],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ const qs = require("qs");
|
|
|
9
9
|
const reactHelmet = require("react-helmet");
|
|
10
10
|
const reactIntl = require("react-intl");
|
|
11
11
|
const reactRouterDom = require("react-router-dom");
|
|
12
|
-
const Filters = require("./Filters-
|
|
13
|
-
const index = require("./index-
|
|
12
|
+
const Filters = require("./Filters-V0VODaNk.js");
|
|
13
|
+
const index = require("./index-haHGOQMJ.js");
|
|
14
14
|
const v2 = require("@strapi/design-system/v2");
|
|
15
15
|
const yup = require("yup");
|
|
16
|
-
const SelectRoles = require("./SelectRoles-
|
|
16
|
+
const SelectRoles = require("./SelectRoles-BmNzL0q5.js");
|
|
17
17
|
function _interopNamespace(e) {
|
|
18
18
|
if (e && e.__esModule)
|
|
19
19
|
return e;
|
|
@@ -76,7 +76,7 @@ const ModalForm = ({ onToggle }) => {
|
|
|
76
76
|
);
|
|
77
77
|
const MagicLink = index.useEnterprise(
|
|
78
78
|
SelectRoles.MagicLinkCE,
|
|
79
|
-
async () => (await Promise.resolve().then(() => require("./MagicLinkEE-
|
|
79
|
+
async () => (await Promise.resolve().then(() => require("./MagicLinkEE-v7xTuVEA.js"))).MagicLinkEE
|
|
80
80
|
);
|
|
81
81
|
const [createUser] = index.useCreateUserMutation();
|
|
82
82
|
const headerTitle = formatMessage({
|
|
@@ -289,12 +289,11 @@ const ListPageCE = () => {
|
|
|
289
289
|
const { toggleNotification } = index.useNotification();
|
|
290
290
|
const { formatMessage } = reactIntl.useIntl();
|
|
291
291
|
const { search } = reactRouterDom.useLocation();
|
|
292
|
-
helperPlugin.useFocusWhenNavigate();
|
|
293
292
|
const { data, isError, isLoading } = index.useAdminUsers(qs__namespace.parse(search, { ignoreQueryPrefix: true }));
|
|
294
293
|
const { pagination, users = [] } = data ?? {};
|
|
295
294
|
const CreateAction = index.useEnterprise(
|
|
296
295
|
CreateActionCE,
|
|
297
|
-
async () => (await Promise.resolve().then(() => require("./CreateActionEE-
|
|
296
|
+
async () => (await Promise.resolve().then(() => require("./CreateActionEE-ThopeFZP.js"))).CreateActionEE
|
|
298
297
|
);
|
|
299
298
|
const headers = TABLE_HEADERS.map((header) => ({
|
|
300
299
|
...header,
|
|
@@ -340,7 +339,7 @@ const ListPageCE = () => {
|
|
|
340
339
|
if (isError) {
|
|
341
340
|
return /* @__PURE__ */ jsxRuntime.jsx(index.Page.Error, {});
|
|
342
341
|
}
|
|
343
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
342
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(index.Page.Main, { "aria-busy": isLoading, children: [
|
|
344
343
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
345
344
|
reactHelmet.Helmet,
|
|
346
345
|
{
|
|
@@ -543,7 +542,7 @@ const ListPage = () => {
|
|
|
543
542
|
ListPageCE,
|
|
544
543
|
async () => (
|
|
545
544
|
// eslint-disable-next-line import/no-cycle
|
|
546
|
-
(await Promise.resolve().then(() => require("./ListPage-
|
|
545
|
+
(await Promise.resolve().then(() => require("./ListPage-bE4a6YkV.js"))).UserListPageEE
|
|
547
546
|
)
|
|
548
547
|
);
|
|
549
548
|
if (!UsersListPage) {
|
|
@@ -558,4 +557,4 @@ const ProtectedListPage = () => {
|
|
|
558
557
|
exports.ListPage = ListPage;
|
|
559
558
|
exports.ListPageCE = ListPageCE;
|
|
560
559
|
exports.ProtectedListPage = ProtectedListPage;
|
|
561
|
-
//# sourceMappingURL=ListPage-
|
|
560
|
+
//# sourceMappingURL=ListPage-7TAp-q4k.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-7TAp-q4k.js","sources":["../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { Entity } from '@strapi/types';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n\n goNext();\n } else {\n // This shouldn't happen, but just incase.\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles disabled={isDisabled} />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )\n }\n />\n </>\n );\n }}\n </Form>\n </ModalLayout>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Entity.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n ContentLayout,\n HeaderLayout,\n Flex,\n Typography,\n Status,\n IconButton,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { Filters } from '../../../../components/Filters';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n console.error(err);\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () =>\n await handleDeleteAll([id]);\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <ActionLayout\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <ContentLayout>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n forwardedAs={NavLink}\n // @ts-expect-error – This is an issue in the DS with the as prop not adding the inferred props to the component.\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user, formatMessage) }\n )}\n noBorder\n icon={<Pencil />}\n />\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user, formatMessage) }\n )}\n noBorder\n icon={<Trash />}\n />\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n {isActive ? 'Active' : 'Inactive'}\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["useIntl","jsx","Button","Envelop","React","useNotification","useAPIErrorHandler","useEnterprise","MagicLinkCE","useCreateUserMutation","isBaseQueryError","jsxs","ModalLayout","ModalHeader","Breadcrumbs","Crumb","Form","Fragment","ModalBody","Flex","Box","Typography","Grid","GridItem","InputRenderer","SelectRoles","ModalFooter","yup","translatedErrors","useTypedSelector","useRBAC","useNavigate","useLocation","useAdminUsers","qs","useDeleteManyUsersMutation","Page","Helmet","HeaderLayout","ActionLayout","SearchInput","Filters","ContentLayout","Table","IconButton","NavLink","getDisplayName","Pencil","Trash","Pagination","Status"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { ModalLayout, ModalHeader, ModalBody, Flex, Loader, Box, Typography, Grid, JSONInput, Combobox, ComboboxOption,
|
|
3
|
-
import {
|
|
2
|
+
import { ModalLayout, ModalHeader, ModalBody, Flex, Loader, Box, Typography, Grid, JSONInput, Combobox, ComboboxOption, HeaderLayout, ActionLayout, ContentLayout, IconButton } from "@strapi/design-system";
|
|
3
|
+
import { useRBAC } 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 { n as adminApi, u as useNotification, o as useAPIErrorHandler,
|
|
7
|
+
import { F as Filters } from "./Filters--lh-i85A.mjs";
|
|
8
|
+
import { n as adminApi, u as useNotification, o as useAPIErrorHandler, z as useQueryParams, D as useAdminUsers, E as useField, g as getDisplayName, q as useTypedSelector, P as Page, T as Table, B as Pagination } from "./index-GIVuHJgC.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";
|
|
@@ -341,7 +341,6 @@ const ListPage = () => {
|
|
|
341
341
|
canReadAuditLogs,
|
|
342
342
|
canReadUsers
|
|
343
343
|
});
|
|
344
|
-
useFocusWhenNavigate();
|
|
345
344
|
const formatTimeStamp = useFormatTimeStamp();
|
|
346
345
|
const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });
|
|
347
346
|
const headers = [
|
|
@@ -385,7 +384,7 @@ const ListPage = () => {
|
|
|
385
384
|
}
|
|
386
385
|
const isLoading = isLoadingData || isLoadingRBAC;
|
|
387
386
|
const { results = [] } = auditLogs ?? {};
|
|
388
|
-
return /* @__PURE__ */ jsxs(Main, { "aria-busy": isLoading, children: [
|
|
387
|
+
return /* @__PURE__ */ jsxs(Page.Main, { "aria-busy": isLoading, children: [
|
|
389
388
|
/* @__PURE__ */ jsx(
|
|
390
389
|
Helmet,
|
|
391
390
|
{
|
|
@@ -483,4 +482,4 @@ export {
|
|
|
483
482
|
ListPage,
|
|
484
483
|
ProtectedListPage
|
|
485
484
|
};
|
|
486
|
-
//# sourceMappingURL=ListPage-
|
|
485
|
+
//# sourceMappingURL=ListPage-EdOy02-v.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-EdOy02-v.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { useRBAC } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n {\n name: 'actions',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.actions',\n defaultMessage: 'Actions',\n }),\n sortable: false,\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <ContentLayout>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n case 'actions':\n return null;\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...auditLogs?.pagination} defaultPageSize={24}>\n <Pagination.PageSize options={['12', '24', '50', '100']} />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.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,17 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { createElement } from "react";
|
|
4
3
|
import { Flex, Loader, Table, TFooter, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
|
|
5
4
|
import { Link, LinkButton } from "@strapi/design-system/v2";
|
|
6
|
-
import { useRBAC
|
|
5
|
+
import { useRBAC } from "@strapi/helper-plugin";
|
|
7
6
|
import { Plus, Pencil, Trash } from "@strapi/icons";
|
|
8
7
|
import { useIntl } from "react-intl";
|
|
9
8
|
import { useNavigate } from "react-router-dom";
|
|
10
9
|
import styled from "styled-components";
|
|
11
|
-
import { q as useTypedSelector, P as Page, d as useTracking, o as useAPIErrorHandler, u as useNotification,
|
|
12
|
-
import { u as useContentTypes } from "./useContentTypes-
|
|
13
|
-
import { H as Header, R as Root } from "./Layout-
|
|
14
|
-
import { u as useReviewWorkflows } from "./useReviewWorkflows
|
|
10
|
+
import { q as useTypedSelector, P as Page, d as useTracking, o as useAPIErrorHandler, u as useNotification, J as useLicenseLimits, K as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, M as ConfirmDialog, O as LimitsModal } from "./index-GIVuHJgC.mjs";
|
|
11
|
+
import { u as useContentTypes } from "./useContentTypes-ralhLmpD.mjs";
|
|
12
|
+
import { H as Header, R as Root } from "./Layout-2dctwEHz.mjs";
|
|
13
|
+
import { u as useReviewWorkflows } from "./useReviewWorkflows--7WPIykR.mjs";
|
|
15
14
|
const ActionLink = styled(Link)`
|
|
16
15
|
align-items: center;
|
|
17
16
|
height: ${32 / 16}rem;
|
|
@@ -186,56 +185,56 @@ const ReviewWorkflowsListView = () => {
|
|
|
186
185
|
defaultMessage: "Actions"
|
|
187
186
|
}) }) })
|
|
188
187
|
] }) }),
|
|
189
|
-
/* @__PURE__ */ jsx(Tbody, { children: workflows?.map((workflow) => /* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ jsx(Tbody, { children: workflows?.map((workflow) => /* @__PURE__ */ jsxs(
|
|
190
189
|
Tr,
|
|
191
190
|
{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
navigate(`/settings/review-workflows/${workflow.id}`);
|
|
191
|
+
onClick: (event) => {
|
|
192
|
+
const el = event.target;
|
|
193
|
+
if (el.nodeName === "BUTTON") {
|
|
194
|
+
return;
|
|
199
195
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
{
|
|
210
|
-
to: `/settings/review-workflows/${workflow.id}`,
|
|
211
|
-
"aria-label": formatMessage(
|
|
196
|
+
navigate(`/settings/review-workflows/${workflow.id}`);
|
|
197
|
+
},
|
|
198
|
+
children: [
|
|
199
|
+
/* @__PURE__ */ jsx(Td, { width: `${250 / 16}rem`, children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", fontWeight: "bold", ellipsis: true, children: workflow.name }) }),
|
|
200
|
+
/* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: workflow.stages.length }) }),
|
|
201
|
+
/* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: (workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(", ") }) }),
|
|
202
|
+
/* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", justifyContent: "end", children: [
|
|
203
|
+
/* @__PURE__ */ jsx(
|
|
204
|
+
ActionLink,
|
|
212
205
|
{
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
206
|
+
to: `/settings/review-workflows/${workflow.id}`,
|
|
207
|
+
"aria-label": formatMessage(
|
|
208
|
+
{
|
|
209
|
+
id: "Settings.review-workflows.list.page.list.column.actions.edit.label",
|
|
210
|
+
defaultMessage: "Edit {name}"
|
|
211
|
+
},
|
|
212
|
+
{ name: workflow.name }
|
|
213
|
+
),
|
|
214
|
+
children: /* @__PURE__ */ jsx(Pencil, {})
|
|
215
|
+
}
|
|
217
216
|
),
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
),
|
|
221
|
-
workflows.length > 1 && canDelete && /* @__PURE__ */ jsx(
|
|
222
|
-
IconButton,
|
|
223
|
-
{
|
|
224
|
-
"aria-label": formatMessage(
|
|
217
|
+
workflows.length > 1 && canDelete && /* @__PURE__ */ jsx(
|
|
218
|
+
IconButton,
|
|
225
219
|
{
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
220
|
+
"aria-label": formatMessage(
|
|
221
|
+
{
|
|
222
|
+
id: "Settings.review-workflows.list.page.list.column.actions.delete.label",
|
|
223
|
+
defaultMessage: "Delete {name}"
|
|
224
|
+
},
|
|
225
|
+
{ name: "Default workflow" }
|
|
226
|
+
),
|
|
227
|
+
icon: /* @__PURE__ */ jsx(Trash, {}),
|
|
228
|
+
noBorder: true,
|
|
229
|
+
onClick: () => {
|
|
230
|
+
handleDeleteWorkflow(String(workflow.id));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
] }) })
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
`workflow-${workflow.id}`
|
|
239
238
|
)) })
|
|
240
239
|
]
|
|
241
240
|
}
|
|
@@ -275,4 +274,4 @@ export {
|
|
|
275
274
|
ProtectedReviewWorkflowsPage,
|
|
276
275
|
ReviewWorkflowsListView
|
|
277
276
|
};
|
|
278
|
-
//# sourceMappingURL=ListPage-
|
|
277
|
+
//# sourceMappingURL=ListPage-OaldiDCh.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-OaldiDCh.mjs","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 { useRBAC } from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { 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 { useNotification } from '../../../../../../../admin/src/features/Notifications';\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: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWorkflowToDelete(null);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.deleted', defaultMessage: 'Deleted' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\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 // @ts-expect-error - types are not inferred correctly through the as prop.\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 onClick={(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 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":["contentType","Layout.Header","Layout.Root"],"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-YZ45BiMe.mjs";
|
|
3
|
+
import { u as useLicenseLimitNotification } from "./useLicenseLimitNotification-RSTkqcfW.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-R8Qs69v7.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage-
|
|
1
|
+
{"version":3,"file":"ListPage-R8Qs69v7.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;"}
|