@strapi/admin 5.4.2 → 5.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal.js.map +1 -1
- package/dist/_internal.mjs.map +1 -1
- package/dist/admin/{AdminSeatInfo-BVns5hqY.mjs → AdminSeatInfo-CfbjPdSS.mjs} +4 -4
- package/dist/admin/{AdminSeatInfo-BVns5hqY.mjs.map → AdminSeatInfo-CfbjPdSS.mjs.map} +1 -1
- package/dist/admin/{AdminSeatInfo-YZSkpqTQ.js → AdminSeatInfo-DJY5XfV1.js} +4 -4
- package/dist/admin/{AdminSeatInfo-YZSkpqTQ.js.map → AdminSeatInfo-DJY5XfV1.js.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-fGmhKAEH.js → ApplicationInfoPage-C8Js51px.js} +5 -5
- package/dist/admin/{ApplicationInfoPage-fGmhKAEH.js.map → ApplicationInfoPage-C8Js51px.js.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-rMRwA77j.mjs → ApplicationInfoPage-IKNw1l3b.mjs} +5 -5
- package/dist/admin/{ApplicationInfoPage-rMRwA77j.mjs.map → ApplicationInfoPage-IKNw1l3b.mjs.map} +1 -1
- package/dist/admin/{AuthResponse-B8hxRyao.js → AuthResponse-4S-gAOdq.js} +2 -2
- package/dist/admin/{AuthResponse-B8hxRyao.js.map → AuthResponse-4S-gAOdq.js.map} +1 -1
- package/dist/admin/{AuthResponse-CU7dtQY6.mjs → AuthResponse-CWs8VL81.mjs} +2 -2
- package/dist/admin/{AuthResponse-CU7dtQY6.mjs.map → AuthResponse-CWs8VL81.mjs.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-6zPHuS0W.js → AuthenticatedLayout-BS8WApcc.js} +18 -20
- package/dist/admin/{AuthenticatedLayout-6zPHuS0W.js.map → AuthenticatedLayout-BS8WApcc.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-NZYgRFcl.mjs → AuthenticatedLayout-CUCcjQYz.mjs} +18 -20
- package/dist/admin/{AuthenticatedLayout-NZYgRFcl.mjs.map → AuthenticatedLayout-CUCcjQYz.mjs.map} +1 -1
- package/dist/admin/{CreateActionEE-BnGBSrSz.js → CreateActionEE-CRTFGenF.js} +2 -2
- package/dist/admin/{CreateActionEE-BnGBSrSz.js.map → CreateActionEE-CRTFGenF.js.map} +1 -1
- package/dist/admin/{CreateActionEE-Bz3zvzzy.mjs → CreateActionEE-JUvyeAny.mjs} +2 -2
- package/dist/admin/{CreateActionEE-Bz3zvzzy.mjs.map → CreateActionEE-JUvyeAny.mjs.map} +1 -1
- package/dist/admin/{CreatePage-CsZSWXwB.mjs → CreatePage-B7adJJTS.mjs} +3 -3
- package/dist/admin/{CreatePage-CsZSWXwB.mjs.map → CreatePage-B7adJJTS.mjs.map} +1 -1
- package/dist/admin/{CreatePage-DPB9ir6r.mjs → CreatePage-Ho2L832V.mjs} +5 -5
- package/dist/admin/{CreatePage-DPB9ir6r.mjs.map → CreatePage-Ho2L832V.mjs.map} +1 -1
- package/dist/admin/{CreatePage-VY2xm9Wa.js → CreatePage-X40MsEu9.js} +5 -5
- package/dist/admin/{CreatePage-VY2xm9Wa.js.map → CreatePage-X40MsEu9.js.map} +1 -1
- package/dist/admin/{CreatePage-Cpb66rVt.js → CreatePage-r-ZRvum0.js} +3 -3
- package/dist/admin/{CreatePage-Cpb66rVt.js.map → CreatePage-r-ZRvum0.js.map} +1 -1
- package/dist/admin/{CreateView-B5J76SJD.mjs → CreateView-BhtF8q5d.mjs} +3 -3
- package/dist/admin/{CreateView-B5J76SJD.mjs.map → CreateView-BhtF8q5d.mjs.map} +1 -1
- package/dist/admin/{CreateView-BXug7isO.js → CreateView-Bz00BS8b.js} +3 -3
- package/dist/admin/{CreateView-BXug7isO.js.map → CreateView-Bz00BS8b.js.map} +1 -1
- package/dist/admin/{CreateView-DnHNPboX.js → CreateView-DJgGSvqH.js} +3 -3
- package/dist/admin/{CreateView-DnHNPboX.js.map → CreateView-DJgGSvqH.js.map} +1 -1
- package/dist/admin/{CreateView-CMI17CIi.mjs → CreateView-DkA_AV__.mjs} +3 -3
- package/dist/admin/{CreateView-CMI17CIi.mjs.map → CreateView-DkA_AV__.mjs.map} +1 -1
- package/dist/admin/{EditPage-Bgvwsmih.js → EditPage-BNx574ls.js} +6 -6
- package/dist/admin/{EditPage-Bgvwsmih.js.map → EditPage-BNx574ls.js.map} +1 -1
- package/dist/admin/{EditPage-DevrDzXh.mjs → EditPage-BzG6Tnyz.mjs} +8 -8
- package/dist/admin/{EditPage-DevrDzXh.mjs.map → EditPage-BzG6Tnyz.mjs.map} +1 -1
- package/dist/admin/{EditPage-Zat17CsY.js → EditPage-Ct1G9w6R.js} +7 -7
- package/dist/admin/{EditPage-Zat17CsY.js.map → EditPage-Ct1G9w6R.js.map} +1 -1
- package/dist/admin/{EditPage-BuWy13_w.js → EditPage-DU0xZ5NS.js} +8 -8
- package/dist/admin/{EditPage-BuWy13_w.js.map → EditPage-DU0xZ5NS.js.map} +1 -1
- package/dist/admin/{EditPage-BruskLzK.mjs → EditPage-K8FVv06l.mjs} +6 -6
- package/dist/admin/{EditPage-BruskLzK.mjs.map → EditPage-K8FVv06l.mjs.map} +1 -1
- package/dist/admin/{EditPage-DcSPQTtt.mjs → EditPage-kL54-F2l.mjs} +7 -7
- package/dist/admin/{EditPage-DcSPQTtt.mjs.map → EditPage-kL54-F2l.mjs.map} +1 -1
- package/dist/admin/{EditView-BUKYxFyW.mjs → EditView-CqNmM6VS.mjs} +6 -6
- package/dist/admin/{EditView-BUKYxFyW.mjs.map → EditView-CqNmM6VS.mjs.map} +1 -1
- package/dist/admin/{EditView-CWhNhhQk.js → EditView-DUjICSdC.js} +6 -6
- package/dist/admin/{EditView-CWhNhhQk.js.map → EditView-DUjICSdC.js.map} +1 -1
- package/dist/admin/{EditViewPage-CnJ4ZooO.js → EditViewPage-B0D0S4Ne.js} +6 -6
- package/dist/admin/{EditViewPage-CnJ4ZooO.js.map → EditViewPage-B0D0S4Ne.js.map} +1 -1
- package/dist/admin/{EditViewPage-DtZCPpEa.mjs → EditViewPage-CpbgcsSJ.mjs} +6 -6
- package/dist/admin/{EditViewPage-DtZCPpEa.mjs.map → EditViewPage-CpbgcsSJ.mjs.map} +1 -1
- package/dist/admin/{EventsTable-B5JJMPA2.js → EventsTable-4orDAPit.js} +2 -2
- package/dist/admin/{EventsTable-B5JJMPA2.js.map → EventsTable-4orDAPit.js.map} +1 -1
- package/dist/admin/{EventsTable-BlzuD4LC.mjs → EventsTable-Tpl3_Njy.mjs} +2 -2
- package/dist/admin/{EventsTable-BlzuD4LC.mjs.map → EventsTable-Tpl3_Njy.mjs.map} +1 -1
- package/dist/admin/{HomePage-AvpauwXM.js → HomePage-C6cnCK0L.js} +3 -3
- package/dist/admin/{HomePage-AvpauwXM.js.map → HomePage-C6cnCK0L.js.map} +1 -1
- package/dist/admin/{HomePage-B21w_wNq.mjs → HomePage-D4XOzGPD.mjs} +3 -3
- package/dist/admin/{HomePage-B21w_wNq.mjs.map → HomePage-D4XOzGPD.mjs.map} +1 -1
- package/dist/admin/{HomePage-Dpuv_jq4.js → HomePage-DuO_Lyap.js} +5 -5
- package/dist/admin/{HomePage-Dpuv_jq4.js.map → HomePage-DuO_Lyap.js.map} +1 -1
- package/dist/admin/{HomePage-qJC8TTq6.mjs → HomePage-UcvSRaJ8.mjs} +5 -5
- package/dist/admin/{HomePage-qJC8TTq6.mjs.map → HomePage-UcvSRaJ8.mjs.map} +1 -1
- package/dist/admin/{InstalledPlugins-DEceX9Cg.mjs → InstalledPlugins-BjooHFn5.mjs} +4 -4
- package/dist/admin/{InstalledPlugins-DEceX9Cg.mjs.map → InstalledPlugins-BjooHFn5.mjs.map} +1 -1
- package/dist/admin/{InstalledPlugins-9r6y2kyr.js → InstalledPlugins-CXf9b9Py.js} +4 -4
- package/dist/admin/{InstalledPlugins-9r6y2kyr.js.map → InstalledPlugins-CXf9b9Py.js.map} +1 -1
- package/dist/admin/{Layout-CIroFchB.mjs → Layout-BkjD8iXK.mjs} +5 -5
- package/dist/admin/{Layout-CIroFchB.mjs.map → Layout-BkjD8iXK.mjs.map} +1 -1
- package/dist/admin/{Layout-C_RH1apu.js → Layout-CqSpT2BF.js} +5 -5
- package/dist/admin/{Layout-C_RH1apu.js.map → Layout-CqSpT2BF.js.map} +1 -1
- package/dist/admin/{ListPage-BWHVcy4q.js → ListPage-BVlR57Rv.js} +4 -4
- package/dist/admin/{ListPage-BWHVcy4q.js.map → ListPage-BVlR57Rv.js.map} +1 -1
- package/dist/admin/{ListPage-ZOKLnTJp.mjs → ListPage-BxdlFLUJ.mjs} +4 -4
- package/dist/admin/{ListPage-ZOKLnTJp.mjs.map → ListPage-BxdlFLUJ.mjs.map} +1 -1
- package/dist/admin/{ListPage-DK-JhVGo.js → ListPage-CDytavBP.js} +8 -8
- package/dist/admin/{ListPage-DK-JhVGo.js.map → ListPage-CDytavBP.js.map} +1 -1
- package/dist/admin/{ListPage-BMfkg16H.mjs → ListPage-CaONZ3ZV.mjs} +4 -4
- package/dist/admin/{ListPage-BMfkg16H.mjs.map → ListPage-CaONZ3ZV.mjs.map} +1 -1
- package/dist/admin/{ListPage-Bqd_yAEb.mjs → ListPage-Cd2_Tzmd.mjs} +3 -3
- package/dist/admin/{ListPage-Bqd_yAEb.mjs.map → ListPage-Cd2_Tzmd.mjs.map} +1 -1
- package/dist/admin/{ListPage-CS7tHdAz.js → ListPage-Cq3FpjYT.js} +4 -4
- package/dist/admin/{ListPage-CS7tHdAz.js.map → ListPage-Cq3FpjYT.js.map} +1 -1
- package/dist/admin/{ListPage-DfyyMyn7.mjs → ListPage-DFMpRUMg.mjs} +11 -8
- package/dist/admin/ListPage-DFMpRUMg.mjs.map +1 -0
- package/dist/admin/{ListPage-BxrPVSl5.mjs → ListPage-DO8N50PC.mjs} +8 -8
- package/dist/admin/{ListPage-BxrPVSl5.mjs.map → ListPage-DO8N50PC.mjs.map} +1 -1
- package/dist/admin/{ListPage-ChMiuYyL.js → ListPage-DW64cMCC.js} +3 -3
- package/dist/admin/{ListPage-ChMiuYyL.js.map → ListPage-DW64cMCC.js.map} +1 -1
- package/dist/admin/{ListPage-DRmrKeZ4.js → ListPage-JwoE5tdU.js} +11 -8
- package/dist/admin/ListPage-JwoE5tdU.js.map +1 -0
- package/dist/admin/{ListView-Bjy7mOBN.mjs → ListView-BOk67lWz.mjs} +5 -5
- package/dist/admin/{ListView-Bjy7mOBN.mjs.map → ListView-BOk67lWz.mjs.map} +1 -1
- package/dist/admin/{ListView-BwLr86nb.mjs → ListView-BZG6Bd61.mjs} +5 -5
- package/dist/admin/{ListView-BwLr86nb.mjs.map → ListView-BZG6Bd61.mjs.map} +1 -1
- package/dist/admin/{ListView-BeuDKXi2.js → ListView-Cfi0gSDJ.js} +5 -5
- package/dist/admin/{ListView-BeuDKXi2.js.map → ListView-Cfi0gSDJ.js.map} +1 -1
- package/dist/admin/{ListView-B9_D-i55.js → ListView-F0R1le7c.js} +5 -5
- package/dist/admin/{ListView-B9_D-i55.js.map → ListView-F0R1le7c.js.map} +1 -1
- package/dist/admin/{Login-DsIpK3bD.mjs → Login-BI8AYLAL.mjs} +3 -3
- package/dist/admin/{Login-DsIpK3bD.mjs.map → Login-BI8AYLAL.mjs.map} +1 -1
- package/dist/admin/{Login-xV0kqX0X.js → Login-DUETxKFs.js} +3 -3
- package/dist/admin/{Login-xV0kqX0X.js.map → Login-DUETxKFs.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-CsJGWKhy.mjs → MagicLinkEE-CFs77BqE.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-CsJGWKhy.mjs.map → MagicLinkEE-CFs77BqE.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-CQXTo_i9.js → MagicLinkEE-CeU7fCGW.js} +3 -3
- package/dist/admin/{MagicLinkEE-CQXTo_i9.js.map → MagicLinkEE-CeU7fCGW.js.map} +1 -1
- package/dist/admin/{MarketplacePage-DeHyp7y1.js → MarketplacePage-CnmY7V8p.js} +3 -3
- package/dist/admin/{MarketplacePage-DeHyp7y1.js.map → MarketplacePage-CnmY7V8p.js.map} +1 -1
- package/dist/admin/{MarketplacePage-qbedpjBD.mjs → MarketplacePage-DCpLvpPa.mjs} +3 -3
- package/dist/admin/{MarketplacePage-qbedpjBD.mjs.map → MarketplacePage-DCpLvpPa.mjs.map} +1 -1
- package/dist/admin/ModalForm-B9SUkQ1l.mjs.map +1 -1
- package/dist/admin/ModalForm-DukjfMMw.js.map +1 -1
- package/dist/admin/Ornaments-BFThxr2U.mjs.map +1 -1
- package/dist/admin/Ornaments-CID1aaLv.js.map +1 -1
- package/dist/admin/{Permissions-DII2emCe.js → Permissions-Cmimrby0.js} +2 -2
- package/dist/admin/{Permissions-DII2emCe.js.map → Permissions-Cmimrby0.js.map} +1 -1
- package/dist/admin/{Permissions-lDPhNvFl.mjs → Permissions-CqkJcZdu.mjs} +2 -2
- package/dist/admin/{Permissions-lDPhNvFl.mjs.map → Permissions-CqkJcZdu.mjs.map} +1 -1
- package/dist/admin/{PrivateRoute-KBnpPkup.mjs → PrivateRoute-CzKixo0E.mjs} +2 -2
- package/dist/admin/{PrivateRoute-KBnpPkup.mjs.map → PrivateRoute-CzKixo0E.mjs.map} +1 -1
- package/dist/admin/{PrivateRoute-D7Y029Yb.js → PrivateRoute-qahg_uiu.js} +2 -2
- package/dist/admin/{PrivateRoute-D7Y029Yb.js.map → PrivateRoute-qahg_uiu.js.map} +1 -1
- package/dist/admin/{ProfilePage-DRvD3GIN.mjs → ProfilePage-D7nCJ8Sq.mjs} +5 -5
- package/dist/admin/{ProfilePage-DRvD3GIN.mjs.map → ProfilePage-D7nCJ8Sq.mjs.map} +1 -1
- package/dist/admin/{ProfilePage--a3BOCVY.js → ProfilePage-DxtUqQT4.js} +5 -5
- package/dist/admin/{ProfilePage--a3BOCVY.js.map → ProfilePage-DxtUqQT4.js.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-BVvceWTE.mjs → PurchaseAuditLogs-CjPI_sTk.mjs} +3 -3
- package/dist/admin/{PurchaseAuditLogs-BVvceWTE.mjs.map → PurchaseAuditLogs-CjPI_sTk.mjs.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-C2RIeJGf.js → PurchaseAuditLogs-Dxt7tGVT.js} +3 -3
- package/dist/admin/{PurchaseAuditLogs-C2RIeJGf.js.map → PurchaseAuditLogs-Dxt7tGVT.js.map} +1 -1
- package/dist/admin/PurchaseContentHistory-72XrP1Nx.js +56 -0
- package/dist/admin/PurchaseContentHistory-72XrP1Nx.js.map +1 -0
- package/dist/admin/PurchaseContentHistory-BRDGlI9D.mjs +52 -0
- package/dist/admin/PurchaseContentHistory-BRDGlI9D.mjs.map +1 -0
- package/dist/admin/{PurchaseSingleSignOn-nEzAlPxk.mjs → PurchaseSingleSignOn-B4tdCkZt.mjs} +3 -3
- package/dist/admin/PurchaseSingleSignOn-B4tdCkZt.mjs.map +1 -0
- package/dist/admin/{PurchaseSingleSignOn-DU1UqoVl.js → PurchaseSingleSignOn-CSXRFbEE.js} +3 -3
- package/dist/admin/PurchaseSingleSignOn-CSXRFbEE.js.map +1 -0
- package/dist/admin/SSOProviders-BD7LHrkI.mjs.map +1 -1
- package/dist/admin/SSOProviders-nCeEldEQ.js.map +1 -1
- package/dist/admin/{SelectRoles-mnUhsABJ.js → SelectRoles-BiMOdYqa.js} +4 -4
- package/dist/admin/{SelectRoles-mnUhsABJ.js.map → SelectRoles-BiMOdYqa.js.map} +1 -1
- package/dist/admin/{SelectRoles-Bs9u04uj.mjs → SelectRoles-CYiNmROx.mjs} +4 -4
- package/dist/admin/{SelectRoles-Bs9u04uj.mjs.map → SelectRoles-CYiNmROx.mjs.map} +1 -1
- package/dist/admin/{SingleSignOnPage-cV4vLp_a.js → SingleSignOnPage-DbYL7y2F.js} +5 -5
- package/dist/admin/{SingleSignOnPage-cV4vLp_a.js.map → SingleSignOnPage-DbYL7y2F.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-3zjvpu53.mjs → SingleSignOnPage-feJugnXU.mjs} +5 -5
- package/dist/admin/{SingleSignOnPage-3zjvpu53.mjs.map → SingleSignOnPage-feJugnXU.mjs.map} +1 -1
- package/dist/admin/{Table-tIZ8sJm6.mjs → Table-BC-eAWXR.mjs} +3 -3
- package/dist/admin/{Table-tIZ8sJm6.mjs.map → Table-BC-eAWXR.mjs.map} +1 -1
- package/dist/admin/{Table-DZNHvug-.js → Table-By3QmrLE.js} +3 -3
- package/dist/admin/{Table-DZNHvug-.js.map → Table-By3QmrLE.js.map} +1 -1
- package/dist/admin/{Theme-CLIXCqhU.mjs → Theme-5Y8Pi0Wm.mjs} +3 -3
- package/dist/admin/{Theme-CLIXCqhU.mjs.map → Theme-5Y8Pi0Wm.mjs.map} +1 -1
- package/dist/admin/{Theme-CV_l77KL.js → Theme-DWGZX5tv.js} +2 -2
- package/dist/admin/{Theme-CV_l77KL.js.map → Theme-DWGZX5tv.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-JQ4xkd6g.mjs → TokenTypeSelect-BZ9m_SK0.mjs} +4 -4
- package/dist/admin/{TokenTypeSelect-JQ4xkd6g.mjs.map → TokenTypeSelect-BZ9m_SK0.mjs.map} +1 -1
- package/dist/admin/{TokenTypeSelect-CgZvnPsJ.js → TokenTypeSelect-DMM7sXvu.js} +4 -4
- package/dist/admin/{TokenTypeSelect-CgZvnPsJ.js.map → TokenTypeSelect-DMM7sXvu.js.map} +1 -1
- package/dist/admin/{UseCasePage-fdZFNaFz.js → UseCasePage-Cp6Y3ATZ.js} +4 -4
- package/dist/admin/{UseCasePage-fdZFNaFz.js.map → UseCasePage-Cp6Y3ATZ.js.map} +1 -1
- package/dist/admin/{UseCasePage-Crn_GyDw.mjs → UseCasePage-DgjCWiMb.mjs} +4 -4
- package/dist/admin/{UseCasePage-Crn_GyDw.mjs.map → UseCasePage-DgjCWiMb.mjs.map} +1 -1
- package/dist/admin/{admin-CuE4OEl1.mjs → admin-DOzK8yjX.mjs} +3 -2
- package/dist/admin/admin-DOzK8yjX.mjs.map +1 -0
- package/dist/admin/{admin-CoWMk1La.js → admin-DRnq5SAg.js} +4 -2
- package/dist/admin/admin-DRnq5SAg.js.map +1 -0
- package/dist/admin/{apiTokens-BbGEd8hG.mjs → apiTokens-ByCd8ZnO.mjs} +2 -2
- package/dist/admin/{apiTokens-BbGEd8hG.mjs.map → apiTokens-ByCd8ZnO.mjs.map} +1 -1
- package/dist/admin/{apiTokens-rxLmW4xI.js → apiTokens-rbJHW5Y2.js} +2 -2
- package/dist/admin/{apiTokens-rxLmW4xI.js.map → apiTokens-rbJHW5Y2.js.map} +1 -1
- package/dist/admin/constants-CRj0ViV1.mjs.map +1 -1
- package/dist/admin/constants-DF68OPrs.js.map +1 -1
- package/dist/admin/{constants-DAPlN6Ts.js → constants-Diu3_Krs.js} +3 -3
- package/dist/admin/{constants-DAPlN6Ts.js.map → constants-Diu3_Krs.js.map} +1 -1
- package/dist/admin/{constants-DGb02Psr.mjs → constants-wpt-ey4P.mjs} +3 -3
- package/dist/admin/{constants-DGb02Psr.mjs.map → constants-wpt-ey4P.mjs.map} +1 -1
- package/dist/admin/ee.js +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/{en-B_M3cPYZ.js → en-CJdNdwAe.js} +7 -3
- package/dist/admin/{en-B_M3cPYZ.js.map → en-CJdNdwAe.js.map} +1 -1
- package/dist/admin/{en-BwH0BITJ.mjs → en-DOZzjg_v.mjs} +7 -4
- package/dist/admin/{en-BwH0BITJ.mjs.map → en-DOZzjg_v.mjs.map} +1 -1
- package/dist/admin/{en-GB-CemeJNao.js → en-GB-BjOvFjLX.js} +2 -2
- package/dist/admin/en-GB-BjOvFjLX.js.map +1 -0
- package/dist/admin/en-GB-Ceyy7cF8.mjs +6 -0
- package/dist/admin/en-GB-Ceyy7cF8.mjs.map +1 -0
- package/dist/admin/{es-C-MB13Am.js → es-CeFZcM6R.js} +9 -2
- package/dist/admin/{es-C-MB13Am.js.map → es-CeFZcM6R.js.map} +1 -1
- package/dist/admin/{es-t8XFZqIM.mjs → es-XEfESBGO.mjs} +9 -2
- package/dist/admin/{es-t8XFZqIM.mjs.map → es-XEfESBGO.mjs.map} +1 -1
- package/dist/admin/{fr-ClHlHI4r.js → fr-BMaOPAWr.js} +32 -2
- package/dist/admin/{fr-ClHlHI4r.js.map → fr-BMaOPAWr.js.map} +1 -1
- package/dist/admin/{fr-CKlZ-5Zr.mjs → fr-CndUnB7j.mjs} +32 -3
- package/dist/admin/{fr-CKlZ-5Zr.mjs.map → fr-CndUnB7j.mjs.map} +1 -1
- package/dist/admin/{index-D9wwwbid.js → index-OBwI3kaz.js} +67 -37
- package/dist/admin/index-OBwI3kaz.js.map +1 -0
- package/dist/admin/{index-BnX71_B4.mjs → index-UvlzzkEs.mjs} +68 -38
- package/dist/admin/index-UvlzzkEs.mjs.map +1 -0
- package/dist/admin/index.js +3 -3
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{selectors-D9-d7hGq.mjs → selectors-BUDjU_0m.mjs} +2 -2
- package/dist/admin/{selectors-D9-d7hGq.mjs.map → selectors-BUDjU_0m.mjs.map} +1 -1
- package/dist/admin/{selectors-CM2KPWni.js → selectors-BhMLvxvP.js} +2 -2
- package/dist/admin/{selectors-CM2KPWni.js.map → selectors-BhMLvxvP.js.map} +1 -1
- package/dist/admin/src/App.d.ts +2 -2
- package/dist/admin/src/StrapiApp.d.ts +2 -2
- package/dist/admin/src/components/ConfirmDialog.d.ts +1 -1
- package/dist/admin/src/components/DragLayer.d.ts +1 -1
- package/dist/admin/src/components/Filters.d.ts +1 -1
- package/dist/admin/src/components/Form.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/Date.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/Email.d.ts +2 -3
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/Json.d.ts +1 -1
- package/dist/admin/src/components/FormInputs/Number.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/Password.d.ts +2 -3
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +2 -3
- package/dist/admin/src/components/FormInputs/String.d.ts +2 -3
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +2 -3
- package/dist/admin/src/components/FormInputs/Time.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/types.d.ts +2 -2
- package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
- package/dist/admin/src/components/Layouts/Layout.d.ts +5 -5
- package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
- package/dist/admin/src/components/PageHelpers.d.ts +2 -2
- package/dist/admin/src/components/Pagination.d.ts +1 -1
- package/dist/admin/src/components/Providers.d.ts +2 -2
- package/dist/admin/src/components/RelativeTime.d.ts +1 -1
- package/dist/admin/src/components/Table.d.ts +1 -1
- package/dist/admin/src/components/Theme.d.ts +1 -1
- package/dist/admin/src/constants/filters.d.ts +2 -2
- package/dist/admin/src/constants.d.ts +1 -1
- package/dist/admin/src/core/apis/CustomFields.d.ts +2 -2
- package/dist/admin/src/core/apis/rbac.d.ts +1 -1
- package/dist/admin/src/core/apis/router.d.ts +2 -2
- package/dist/admin/src/core/store/configure.d.ts +5 -5
- package/dist/admin/src/core/store/hooks.d.ts +8 -8
- package/dist/admin/src/core/utils/createHook.d.ts +1 -1
- package/dist/admin/src/features/AppInfo.d.ts +1 -1
- package/dist/admin/src/features/Auth.d.ts +2 -2
- package/dist/admin/src/features/BackButton.d.ts +2 -2
- package/dist/admin/src/features/Configuration.d.ts +2 -2
- package/dist/admin/src/features/StrapiApp.d.ts +2 -3
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
- package/dist/admin/src/hooks/useContentTypes.d.ts +1 -1
- package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
- package/dist/admin/src/hooks/usePersistentState.d.ts +1 -1
- package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -2
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
- package/dist/admin/src/pages/Auth/components/ForgotPassword.d.ts +1 -1
- package/dist/admin/src/pages/Auth/components/Login.d.ts +1 -1
- package/dist/admin/src/pages/Auth/constants.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +2 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +2 -2
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +1 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +1 -1
- package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +1 -1
- package/dist/admin/src/pages/Settings/components/Tokens/LifeSpanInput.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +1 -1
- package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +12 -12
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/PurchaseContentHistory.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +3 -4
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/RoleForm.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +3 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +2 -3
- package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +3 -3
- package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Users/utils/validation.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +6 -6
- package/dist/admin/src/reducer.d.ts +2 -2
- package/dist/admin/src/render.d.ts +1 -1
- package/dist/admin/src/selectors.d.ts +6 -6
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +22 -22
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +2 -6
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +12 -12
- package/dist/admin/src/services/webhooks.d.ts +3 -3
- package/dist/admin/src/types/adminConfiguration.d.ts +1 -1
- package/dist/admin/src/types/forms.d.ts +3 -3
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/admin/src/utils/baseQuery.d.ts +2 -2
- package/dist/admin/src/utils/getFetchClient.d.ts +1 -1
- package/dist/admin/src/utils/normalizeAPIError.d.ts +1 -1
- package/dist/admin/src/utils/users.d.ts +1 -1
- package/dist/admin/test.js +30604 -45
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +30596 -44
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/tests/server.d.ts +1 -1
- package/dist/admin/tests/utils.d.ts +5 -5
- package/dist/admin/{transferTokens-CeXBOv8T.js → transferTokens-AcbwoJPr.js} +2 -2
- package/dist/admin/{transferTokens-CeXBOv8T.js.map → transferTokens-AcbwoJPr.js.map} +1 -1
- package/dist/admin/{transferTokens-DRhm3E2K.mjs → transferTokens-CQP13miB.mjs} +2 -2
- package/dist/admin/{transferTokens-DRhm3E2K.mjs.map → transferTokens-CQP13miB.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-H1TFksyF.mjs → useAdminRoles-CkR0jcwl.mjs} +2 -2
- package/dist/admin/{useAdminRoles-H1TFksyF.mjs.map → useAdminRoles-CkR0jcwl.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-hnMykCZo.js → useAdminRoles-soH1aqS1.js} +2 -2
- package/dist/admin/{useAdminRoles-hnMykCZo.js.map → useAdminRoles-soH1aqS1.js.map} +1 -1
- package/dist/admin/useEnterprise-BGzVPL4w.mjs.map +1 -1
- package/dist/admin/useEnterprise-ijNnK53J.js.map +1 -1
- package/dist/admin/{useLicenseLimitNotification-BEKK4zym.mjs → useLicenseLimitNotification-DQKWFvvl.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-BEKK4zym.mjs.map → useLicenseLimitNotification-DQKWFvvl.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-B6SNDncg.js → useLicenseLimitNotification-bcc8RZRX.js} +3 -3
- package/dist/admin/{useLicenseLimitNotification-B6SNDncg.js.map → useLicenseLimitNotification-bcc8RZRX.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-JFp6koHQ.js → useLicenseLimits-73hrs_pV.js} +2 -2
- package/dist/admin/{useLicenseLimits-JFp6koHQ.js.map → useLicenseLimits-73hrs_pV.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-BsqWmbk9.mjs → useLicenseLimits-CcOoSJ8p.mjs} +2 -2
- package/dist/admin/{useLicenseLimits-BsqWmbk9.mjs.map → useLicenseLimits-CcOoSJ8p.mjs.map} +1 -1
- package/dist/admin/useOnce-C7EQufL3.js.map +1 -1
- package/dist/admin/useOnce-NHeEacbN.mjs.map +1 -1
- package/dist/admin/{useWebhooks-ChRqPd68.mjs → useWebhooks-PMmtSF2F.mjs} +2 -2
- package/dist/admin/{useWebhooks-ChRqPd68.mjs.map → useWebhooks-PMmtSF2F.mjs.map} +1 -1
- package/dist/admin/{useWebhooks-CeQ6X5FT.js → useWebhooks-oYy_qRlY.js} +2 -2
- package/dist/admin/{useWebhooks-CeQ6X5FT.js.map → useWebhooks-oYy_qRlY.js.map} +1 -1
- package/dist/admin/users-8N93LH7R.mjs.map +1 -1
- package/dist/admin/users-DaPfjlwf.js.map +1 -1
- package/dist/admin/{validation-BqckJ_66.mjs → validation--G09jBta.mjs} +2 -2
- package/dist/admin/{validation-BqckJ_66.mjs.map → validation--G09jBta.mjs.map} +1 -1
- package/dist/admin/{validation-Ct0GJF3v.js → validation-k0MUuBCQ.js} +2 -2
- package/dist/admin/{validation-Ct0GJF3v.js.map → validation-k0MUuBCQ.js.map} +1 -1
- package/dist/ee/admin/src/constants.d.ts +2 -2
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.d.ts +1 -1
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/package.json.d.ts +13 -14
- package/dist/server/index.js +6 -12
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +5 -10
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -1
- package/dist/shared/contracts/api-token.d.ts +1 -1
- package/dist/shared/contracts/authentication.d.ts +2 -2
- package/dist/shared/contracts/content-api.d.ts +2 -2
- package/dist/shared/contracts/content-types.d.ts +1 -1
- package/dist/shared/contracts/permissions.d.ts +1 -1
- package/dist/shared/contracts/roles.d.ts +2 -2
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/dist/shared/contracts/user.d.ts +2 -2
- package/dist/shared/contracts/users.d.ts +2 -2
- package/dist/shared/contracts/webhooks.d.ts +1 -1
- package/package.json +13 -14
- package/dist/admin/ListPage-DRmrKeZ4.js.map +0 -1
- package/dist/admin/ListPage-DfyyMyn7.mjs.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-DU1UqoVl.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-nEzAlPxk.mjs.map +0 -1
- package/dist/admin/admin-CoWMk1La.js.map +0 -1
- package/dist/admin/admin-CuE4OEl1.mjs.map +0 -1
- package/dist/admin/en-GB-CemeJNao.js.map +0 -1
- package/dist/admin/en-GB-D81NWpkp.mjs +0 -6
- package/dist/admin/en-GB-D81NWpkp.mjs.map +0 -1
- package/dist/admin/index-BnX71_B4.mjs.map +0 -1
- package/dist/admin/index-D9wwwbid.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table-tIZ8sJm6.mjs","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["TableImpl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table-BC-eAWXR.mjs","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["TableImpl"],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ const icons = require('@strapi/icons');
|
|
|
6
6
|
const reactIntl = require('react-intl');
|
|
7
7
|
const reactRouterDom = require('react-router-dom');
|
|
8
8
|
const styledComponents = require('styled-components');
|
|
9
|
-
const index = require('./index-
|
|
9
|
+
const index = require('./index-OBwI3kaz.js');
|
|
10
10
|
const React = require('react');
|
|
11
11
|
const dateFns = require('date-fns');
|
|
12
|
-
const Theme = require('./Theme-
|
|
12
|
+
const Theme = require('./Theme-DWGZX5tv.js');
|
|
13
13
|
|
|
14
14
|
function _interopNamespace(e) {
|
|
15
15
|
if (e && e.__esModule) return e;
|
|
@@ -196,4 +196,4 @@ const UpdateButton = ({ tokenName, tokenId }) => {
|
|
|
196
196
|
};
|
|
197
197
|
|
|
198
198
|
exports.Table = Table;
|
|
199
|
-
//# sourceMappingURL=Table-
|
|
199
|
+
//# sourceMappingURL=Table-By3QmrLE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table-DZNHvug-.js","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["React","useIntl","intervalToDuration","isPast","jsx","useQueryParams","useNavigate","useTracking","useCollator","TableImpl","jsxs","Typography","Flex","NavLink","styled","LinkButton","Dialog","Box","IconButton","Trash","ConfirmDialog","Pencil"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table-By3QmrLE.js","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Dialog,\n LinkButton,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkButtonStyled\n tag={NavLink}\n to={tokenId.toString()}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n variant=\"ghost\"\n size=\"S\"\n >\n {children}\n </LinkButtonStyled>\n );\n};\n\nconst LinkButtonStyled = styled(LinkButton)`\n padding: 0.7rem;\n\n & > span {\n display: flex;\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["React","useIntl","intervalToDuration","isPast","jsx","useQueryParams","useNavigate","useTracking","useCollator","TableImpl","jsxs","Typography","Flex","NavLink","styled","LinkButton","Dialog","Box","IconButton","Trash","ConfirmDialog","Pencil"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { WarningCircle } from '@strapi/icons';
|
|
|
8
8
|
import { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';
|
|
9
9
|
import { useLocation, useNavigate } from 'react-router-dom';
|
|
10
10
|
import { parse, stringify } from 'qs';
|
|
11
|
-
import { a as adminApi, e as useInitQuery, f as useTelemetryPropertiesQuery, g as useProjectSettingsQuery, h as useUpdateProjectSettingsMutation } from './admin-
|
|
11
|
+
import { a as adminApi, e as useInitQuery, f as useTelemetryPropertiesQuery, g as useProjectSettingsQuery, h as useUpdateProjectSettingsMutation } from './admin-DOzK8yjX.mjs';
|
|
12
12
|
import clone from 'lodash/clone';
|
|
13
13
|
import toPath from 'lodash/toPath';
|
|
14
14
|
import isEqual from 'lodash/isEqual';
|
|
@@ -1430,5 +1430,5 @@ const GlobalStyle = createGlobalStyle`
|
|
|
1430
1430
|
}
|
|
1431
1431
|
`;
|
|
1432
1432
|
|
|
1433
|
-
export {
|
|
1434
|
-
//# sourceMappingURL=Theme-
|
|
1433
|
+
export { AppInfoProvider as A, getIn as B, ConfigurationProvider as C, setIn as D, setLocale as E, useForgotPasswordMutation as F, GuidedTourProvider as G, useGetRegistrationInfoQuery as H, useRegisterAdminMutation as I, useRegisterUserMutation as J, useResetPasswordMutation as K, LanguageProvider as L, reducer$1 as M, NotificationsProvider as N, logout as O, Page as P, THEME_LOCAL_STORAGE_KEY as Q, RBAC as R, StrapiAppProvider as S, Theme as T, getStoredToken as U, useTypedStore as V, ConfigurationContextProvider as W, useNotification as a, useTypedSelector as b, useTracking as c, useTypedDispatch as d, useAPIErrorHandler as e, useUpdateMeMutation as f, useIsSSOLockedQuery as g, createTypedSelector as h, useGetProviderOptionsQuery as i, useUpdateProviderOptionsMutation as j, useRBAC as k, useGetProvidersQuery as l, useGuidedTour as m, login as n, useQueryParams as o, useAppInfo as p, useStrapiApp as q, useConfiguration as r, setAppTheme as s, isObject as t, useAuth as u, capitalise as v, createContext as w, AuthProvider as x, TrackingProvider as y, LANGUAGE_LOCAL_STORAGE_KEY as z };
|
|
1434
|
+
//# sourceMappingURL=Theme-5Y8Pi0Wm.mjs.map
|