@strapi/admin 5.0.4 → 5.0.6
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/admin/{AdminSeatInfo-DJpF8PS1.js → AdminSeatInfo-8vtNB3ck.js} +4 -4
- package/dist/admin/{AdminSeatInfo-DJpF8PS1.js.map → AdminSeatInfo-8vtNB3ck.js.map} +1 -1
- package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs → AdminSeatInfo-qIgh5-QA.mjs} +4 -4
- package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs.map → AdminSeatInfo-qIgh5-QA.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-CbMAEtrk.mjs → ApplicationInfoPage-FPcBalFr.mjs} +6 -6
- package/dist/admin/{ApplicationInfoPage-CbMAEtrk.mjs.map → ApplicationInfoPage-FPcBalFr.mjs.map} +1 -1
- package/dist/admin/{ApplicationInfoPage-DQzEOnQt.js → ApplicationInfoPage-hY4yez-z.js} +6 -6
- package/dist/admin/{ApplicationInfoPage-DQzEOnQt.js.map → ApplicationInfoPage-hY4yez-z.js.map} +1 -1
- package/dist/admin/{AuthResponse-BKpQdQAD.mjs → AuthResponse-HYXVuTDF.mjs} +2 -2
- package/dist/admin/{AuthResponse-BKpQdQAD.mjs.map → AuthResponse-HYXVuTDF.mjs.map} +1 -1
- package/dist/admin/{AuthResponse-tnFAm9fD.js → AuthResponse-R8kR_yqS.js} +2 -2
- package/dist/admin/{AuthResponse-tnFAm9fD.js.map → AuthResponse-R8kR_yqS.js.map} +1 -1
- package/dist/admin/{AuthenticatedLayout-B5MLuW72.mjs → AuthenticatedLayout-WfWtk2vt.mjs} +13 -13
- package/dist/admin/AuthenticatedLayout-WfWtk2vt.mjs.map +1 -0
- package/dist/admin/{AuthenticatedLayout-DN6dsAAZ.js → AuthenticatedLayout-_fHeS86w.js} +13 -13
- package/dist/admin/AuthenticatedLayout-_fHeS86w.js.map +1 -0
- package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs → CreateActionEE-X2nnG2dm.mjs} +2 -2
- package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs.map → CreateActionEE-X2nnG2dm.mjs.map} +1 -1
- package/dist/admin/{CreateActionEE-BAbsDj_W.js → CreateActionEE-uqyKLxwI.js} +2 -2
- package/dist/admin/{CreateActionEE-BAbsDj_W.js.map → CreateActionEE-uqyKLxwI.js.map} +1 -1
- package/dist/admin/{CreatePage-DAIxpYPr.js → CreatePage-2iQ7FkkX.js} +3 -3
- package/dist/admin/{CreatePage-DAIxpYPr.js.map → CreatePage-2iQ7FkkX.js.map} +1 -1
- package/dist/admin/{CreatePage-2aG6dsmv.js → CreatePage-60fNdNfa.js} +7 -7
- package/dist/admin/CreatePage-60fNdNfa.js.map +1 -0
- package/dist/admin/{CreatePage-bxXyk86q.mjs → CreatePage-pPnHpatu.mjs} +7 -7
- package/dist/admin/CreatePage-pPnHpatu.mjs.map +1 -0
- package/dist/admin/{CreatePage-CXwAW4_7.mjs → CreatePage-z6N1v5X5.mjs} +3 -3
- package/dist/admin/{CreatePage-CXwAW4_7.mjs.map → CreatePage-z6N1v5X5.mjs.map} +1 -1
- package/dist/admin/{CreateView-Bhkq7NnH.js → CreateView-18WQPz4-.js} +3 -3
- package/dist/admin/{CreateView-Bhkq7NnH.js.map → CreateView-18WQPz4-.js.map} +1 -1
- package/dist/admin/{CreateView-B7CRxROf.mjs → CreateView-4UcrE6vq.mjs} +3 -3
- package/dist/admin/{CreateView-B7CRxROf.mjs.map → CreateView-4UcrE6vq.mjs.map} +1 -1
- package/dist/admin/{CreateView-BA6R0LUW.mjs → CreateView-8k0KvpoK.mjs} +3 -3
- package/dist/admin/{CreateView-BA6R0LUW.mjs.map → CreateView-8k0KvpoK.mjs.map} +1 -1
- package/dist/admin/{CreateView-CZe81AfF.js → CreateView-YbqcAK_f.js} +3 -3
- package/dist/admin/{CreateView-CZe81AfF.js.map → CreateView-YbqcAK_f.js.map} +1 -1
- package/dist/admin/{EditPage-DajIbvUn.mjs → EditPage-Fu5aqX9h.mjs} +7 -8
- package/dist/admin/EditPage-Fu5aqX9h.mjs.map +1 -0
- package/dist/admin/{EditPage-D5C8IcN5.js → EditPage-H3D08t-N.js} +7 -8
- package/dist/admin/EditPage-H3D08t-N.js.map +1 -0
- package/dist/admin/{EditPage-BSbmg6cK.mjs → EditPage-K8aawKOf.mjs} +10 -8
- package/dist/admin/EditPage-K8aawKOf.mjs.map +1 -0
- package/dist/admin/{EditPage-Bwr5atev.js → EditPage-U4UN4MeE.js} +11 -10
- package/dist/admin/EditPage-U4UN4MeE.js.map +1 -0
- package/dist/admin/{EditPage-B12sx5VK.mjs → EditPage-dZLyVDGx.mjs} +11 -10
- package/dist/admin/EditPage-dZLyVDGx.mjs.map +1 -0
- package/dist/admin/{EditPage-CfUH6TKr.js → EditPage-ewduoYpT.js} +10 -8
- package/dist/admin/EditPage-ewduoYpT.js.map +1 -0
- package/dist/admin/{EditView-BDmR1g6s.js → EditView-1TEk6oaL.js} +7 -7
- package/dist/admin/{EditView-BDmR1g6s.js.map → EditView-1TEk6oaL.js.map} +1 -1
- package/dist/admin/{EditView-CapjT42r.mjs → EditView-xgk-lEu1.mjs} +7 -7
- package/dist/admin/{EditView-CapjT42r.mjs.map → EditView-xgk-lEu1.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-C001NF8V.mjs → EditViewPage-2CHLYZlY.mjs} +7 -7
- package/dist/admin/{EditViewPage-C001NF8V.mjs.map → EditViewPage-2CHLYZlY.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-CLOQjjXU.js → EditViewPage-R2kud83M.js} +7 -7
- package/dist/admin/{EditViewPage-CLOQjjXU.js.map → EditViewPage-R2kud83M.js.map} +1 -1
- package/dist/admin/{EventsTable-BKqSexd5.mjs → EventsTable-JJ16vr2h.mjs} +2 -2
- package/dist/admin/{EventsTable-BKqSexd5.mjs.map → EventsTable-JJ16vr2h.mjs.map} +1 -1
- package/dist/admin/{EventsTable-CNqTgZHu.js → EventsTable-fzeOe9NB.js} +2 -2
- package/dist/admin/{EventsTable-CNqTgZHu.js.map → EventsTable-fzeOe9NB.js.map} +1 -1
- package/dist/admin/{HomePage-qefoje-q.js → HomePage-DB00H9y5.js} +8 -8
- package/dist/admin/{HomePage-qefoje-q.js.map → HomePage-DB00H9y5.js.map} +1 -1
- package/dist/admin/{HomePage-C2SaAmTV.mjs → HomePage-EDHzBAy8.mjs} +3 -3
- package/dist/admin/{HomePage-C2SaAmTV.mjs.map → HomePage-EDHzBAy8.mjs.map} +1 -1
- package/dist/admin/{HomePage-yCi2iB63.js → HomePage-GsLJ4j4f.js} +3 -3
- package/dist/admin/{HomePage-yCi2iB63.js.map → HomePage-GsLJ4j4f.js.map} +1 -1
- package/dist/admin/{HomePage-t2BVAVjN.mjs → HomePage-oz8OSt1B.mjs} +8 -8
- package/dist/admin/{HomePage-t2BVAVjN.mjs.map → HomePage-oz8OSt1B.mjs.map} +1 -1
- package/dist/admin/{InstalledPlugins-D7eFm37x.js → InstalledPlugins-T0ds5aOe.js} +4 -4
- package/dist/admin/{InstalledPlugins-D7eFm37x.js.map → InstalledPlugins-T0ds5aOe.js.map} +1 -1
- package/dist/admin/{InstalledPlugins-Dk9ETyZK.mjs → InstalledPlugins-ngsQKZBi.mjs} +4 -4
- package/dist/admin/{InstalledPlugins-Dk9ETyZK.mjs.map → InstalledPlugins-ngsQKZBi.mjs.map} +1 -1
- package/dist/admin/{Layout-DZZIx3rr.js → Layout-LTVvoQIP.js} +6 -6
- package/dist/admin/{Layout-DZZIx3rr.js.map → Layout-LTVvoQIP.js.map} +1 -1
- package/dist/admin/{Layout-D6qWR-Hx.mjs → Layout-dlsF2jYh.mjs} +6 -6
- package/dist/admin/{Layout-D6qWR-Hx.mjs.map → Layout-dlsF2jYh.mjs.map} +1 -1
- package/dist/admin/{ListPage-Toghd_h5.mjs → ListPage-4VAaMuov.mjs} +4 -4
- package/dist/admin/{ListPage-Toghd_h5.mjs.map → ListPage-4VAaMuov.mjs.map} +1 -1
- package/dist/admin/{ListPage-CaG5dTb6.mjs → ListPage-CAAa_iYD.mjs} +6 -6
- package/dist/admin/{ListPage-CaG5dTb6.mjs.map → ListPage-CAAa_iYD.mjs.map} +1 -1
- package/dist/admin/{ListPage-npcwkikL.mjs → ListPage-HjeCNXIL.mjs} +3 -3
- package/dist/admin/{ListPage-npcwkikL.mjs.map → ListPage-HjeCNXIL.mjs.map} +1 -1
- package/dist/admin/{ListPage-sY1sYoqk.js → ListPage-J_zameoY.js} +4 -4
- package/dist/admin/{ListPage-sY1sYoqk.js.map → ListPage-J_zameoY.js.map} +1 -1
- package/dist/admin/{ListPage-BMGaW5_R.js → ListPage-W_j2UV6e.js} +3 -3
- package/dist/admin/{ListPage-BMGaW5_R.js.map → ListPage-W_j2UV6e.js.map} +1 -1
- package/dist/admin/{ListPage-CyH51ZTY.mjs → ListPage-cMqf3hxn.mjs} +12 -12
- package/dist/admin/{ListPage-CyH51ZTY.mjs.map → ListPage-cMqf3hxn.mjs.map} +1 -1
- package/dist/admin/{ListPage-DNolNDsf.js → ListPage-e_XhqWy-.js} +6 -6
- package/dist/admin/{ListPage-DNolNDsf.js.map → ListPage-e_XhqWy-.js.map} +1 -1
- package/dist/admin/{ListPage-DOC6rUKN.mjs → ListPage-fE9R8ZE1.mjs} +5 -5
- package/dist/admin/{ListPage-DOC6rUKN.mjs.map → ListPage-fE9R8ZE1.mjs.map} +1 -1
- package/dist/admin/{ListPage-CFYTQTG3.js → ListPage-kv14w7sy.js} +5 -5
- package/dist/admin/{ListPage-CFYTQTG3.js.map → ListPage-kv14w7sy.js.map} +1 -1
- package/dist/admin/{ListPage-7UwaWRhq.js → ListPage-qj3M7V0W.js} +12 -12
- package/dist/admin/{ListPage-7UwaWRhq.js.map → ListPage-qj3M7V0W.js.map} +1 -1
- package/dist/admin/{ListView-CDnCc4hD.js → ListView-J3Bd1ZAj.js} +7 -7
- package/dist/admin/{ListView-CDnCc4hD.js.map → ListView-J3Bd1ZAj.js.map} +1 -1
- package/dist/admin/{ListView-rpYxcjHi.mjs → ListView-JTtPuayE.mjs} +7 -7
- package/dist/admin/{ListView-rpYxcjHi.mjs.map → ListView-JTtPuayE.mjs.map} +1 -1
- package/dist/admin/{ListView-B-ueSAcP.js → ListView-e_rZH3km.js} +7 -7
- package/dist/admin/{ListView-B-ueSAcP.js.map → ListView-e_rZH3km.js.map} +1 -1
- package/dist/admin/{ListView-Db9WuSOT.mjs → ListView-ziItL2Hn.mjs} +7 -7
- package/dist/admin/{ListView-Db9WuSOT.mjs.map → ListView-ziItL2Hn.mjs.map} +1 -1
- package/dist/admin/{Login-BIV3yT6A.js → Login-B5mc1U2m.js} +4 -4
- package/dist/admin/{Login-BIV3yT6A.js.map → Login-B5mc1U2m.js.map} +1 -1
- package/dist/admin/{Login-D0yBRhYs.mjs → Login-STwy4gIQ.mjs} +4 -4
- package/dist/admin/{Login-D0yBRhYs.mjs.map → Login-STwy4gIQ.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-DbCndhoH.js → MagicLinkEE-3PSvKNEX.js} +3 -3
- package/dist/admin/{MagicLinkEE-DbCndhoH.js.map → MagicLinkEE-3PSvKNEX.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-DUaY_bBj.mjs → MagicLinkEE-oXcvyO9m.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-DUaY_bBj.mjs.map → MagicLinkEE-oXcvyO9m.mjs.map} +1 -1
- package/dist/admin/{MarketplacePage-DWx2-1k6.js → MarketplacePage-XkcAwVQL.js} +11 -5
- package/dist/admin/MarketplacePage-XkcAwVQL.js.map +1 -0
- package/dist/admin/{MarketplacePage-whaapwwK.mjs → MarketplacePage-s3TgP0pj.mjs} +11 -5
- package/dist/admin/MarketplacePage-s3TgP0pj.mjs.map +1 -0
- package/dist/admin/{ModalForm-B9SUkQ1l.mjs → ModalForm-Gh2063zZ.mjs} +1 -1
- package/dist/admin/{ModalForm-B9SUkQ1l.mjs.map → ModalForm-Gh2063zZ.mjs.map} +1 -1
- package/dist/admin/{ModalForm-DukjfMMw.js → ModalForm-wXXenEdW.js} +1 -1
- package/dist/admin/{ModalForm-DukjfMMw.js.map → ModalForm-wXXenEdW.js.map} +1 -1
- package/dist/admin/{Ornaments-BFThxr2U.mjs → Ornaments-jAwgQeK0.mjs} +1 -1
- package/dist/admin/{Ornaments-BFThxr2U.mjs.map → Ornaments-jAwgQeK0.mjs.map} +1 -1
- package/dist/admin/{Ornaments-CID1aaLv.js → Ornaments-sFPQPOtb.js} +1 -1
- package/dist/admin/{Ornaments-CID1aaLv.js.map → Ornaments-sFPQPOtb.js.map} +1 -1
- package/dist/admin/{Permissions-p_cREK0b.mjs → Permissions-aSGK8VGG.mjs} +2 -2
- package/dist/admin/{Permissions-p_cREK0b.mjs.map → Permissions-aSGK8VGG.mjs.map} +1 -1
- package/dist/admin/{Permissions-DvL1ZCzq.js → Permissions-bmMBmcv7.js} +2 -2
- package/dist/admin/{Permissions-DvL1ZCzq.js.map → Permissions-bmMBmcv7.js.map} +1 -1
- package/dist/admin/{PrivateRoute-C1dP5ye6.js → PrivateRoute-LO9G_pCJ.js} +2 -2
- package/dist/admin/{PrivateRoute-C1dP5ye6.js.map → PrivateRoute-LO9G_pCJ.js.map} +1 -1
- package/dist/admin/{PrivateRoute-gjOsMUaF.mjs → PrivateRoute-S4Lol0B9.mjs} +2 -2
- package/dist/admin/{PrivateRoute-gjOsMUaF.mjs.map → PrivateRoute-S4Lol0B9.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-Byu9mAXE.mjs → ProfilePage-EPvpBxko.mjs} +6 -6
- package/dist/admin/{ProfilePage-Byu9mAXE.mjs.map → ProfilePage-EPvpBxko.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-B16jMAW-.js → ProfilePage-TMGpOFkt.js} +6 -6
- package/dist/admin/{ProfilePage-B16jMAW-.js.map → ProfilePage-TMGpOFkt.js.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-DiSznpA0.js → PurchaseAuditLogs-HcdrHEM2.js} +2 -2
- package/dist/admin/{PurchaseAuditLogs-DiSznpA0.js.map → PurchaseAuditLogs-HcdrHEM2.js.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-DapnbCCX.mjs → PurchaseAuditLogs-K2YmR4Il.mjs} +2 -2
- package/dist/admin/{PurchaseAuditLogs-DapnbCCX.mjs.map → PurchaseAuditLogs-K2YmR4Il.mjs.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-CCRXwI7U.mjs → PurchaseSingleSignOn-sxd54apY.mjs} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-CCRXwI7U.mjs.map → PurchaseSingleSignOn-sxd54apY.mjs.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-CK3fblVl.js → PurchaseSingleSignOn-y7p3yZ-b.js} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-CK3fblVl.js.map → PurchaseSingleSignOn-y7p3yZ-b.js.map} +1 -1
- package/dist/admin/{SSOProviders-nCeEldEQ.js → SSOProviders-9-d1vYXb.js} +1 -1
- package/dist/admin/{SSOProviders-nCeEldEQ.js.map → SSOProviders-9-d1vYXb.js.map} +1 -1
- package/dist/admin/{SSOProviders-BD7LHrkI.mjs → SSOProviders-sy3Xon2A.mjs} +1 -1
- package/dist/admin/{SSOProviders-BD7LHrkI.mjs.map → SSOProviders-sy3Xon2A.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-C2B0ctyi.js → SelectRoles-L8dRONb-.js} +4 -4
- package/dist/admin/{SelectRoles-C2B0ctyi.js.map → SelectRoles-L8dRONb-.js.map} +1 -1
- package/dist/admin/{SelectRoles-DFAZPQk5.mjs → SelectRoles-esk6LySb.mjs} +4 -4
- package/dist/admin/{SelectRoles-DFAZPQk5.mjs.map → SelectRoles-esk6LySb.mjs.map} +1 -1
- package/dist/admin/{SingleSignOnPage-DK_4uDTr.js → SingleSignOnPage-cih5-oBZ.js} +6 -5
- package/dist/admin/SingleSignOnPage-cih5-oBZ.js.map +1 -0
- package/dist/admin/{SingleSignOnPage-DtLncLSG.mjs → SingleSignOnPage-idMTZOuN.mjs} +6 -5
- package/dist/admin/SingleSignOnPage-idMTZOuN.mjs.map +1 -0
- package/dist/admin/{Table-DDgICp5-.js → Table-1mVE67Cd.js} +3 -3
- package/dist/admin/{Table-DDgICp5-.js.map → Table-1mVE67Cd.js.map} +1 -1
- package/dist/admin/{Table-CylwfWGU.mjs → Table-wZgpqMG3.mjs} +3 -3
- package/dist/admin/{Table-CylwfWGU.mjs.map → Table-wZgpqMG3.mjs.map} +1 -1
- package/dist/admin/{Theme-NAd2H4cV.mjs → Theme-frC82ceE.mjs} +2 -2
- package/dist/admin/{Theme-NAd2H4cV.mjs.map → Theme-frC82ceE.mjs.map} +1 -1
- package/dist/admin/{Theme-K6zNL3JT.js → Theme-y_rWTknM.js} +2 -2
- package/dist/admin/{Theme-K6zNL3JT.js.map → Theme-y_rWTknM.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-CliQv1Ei.mjs → TokenTypeSelect-GplqVrbt.mjs} +4 -4
- package/dist/admin/{TokenTypeSelect-CliQv1Ei.mjs.map → TokenTypeSelect-GplqVrbt.mjs.map} +1 -1
- package/dist/admin/{TokenTypeSelect-Cmdvlwp3.js → TokenTypeSelect-Itk7isiz.js} +4 -4
- package/dist/admin/{TokenTypeSelect-Cmdvlwp3.js.map → TokenTypeSelect-Itk7isiz.js.map} +1 -1
- package/dist/admin/{UseCasePage-DyBJ4O_W.js → UseCasePage-1SuyjC6w.js} +4 -4
- package/dist/admin/{UseCasePage-DyBJ4O_W.js.map → UseCasePage-1SuyjC6w.js.map} +1 -1
- package/dist/admin/{UseCasePage-DE51MfBE.mjs → UseCasePage-QPnZOFrC.mjs} +4 -4
- package/dist/admin/{UseCasePage-DE51MfBE.mjs.map → UseCasePage-QPnZOFrC.mjs.map} +1 -1
- package/dist/admin/{admin-DIy_Bn_0.mjs → admin-GZ-AP2T0.mjs} +1 -1
- package/dist/admin/{admin-DIy_Bn_0.mjs.map → admin-GZ-AP2T0.mjs.map} +1 -1
- package/dist/admin/{admin-3FVGSNUT.js → admin-p0djr5G6.js} +1 -1
- package/dist/admin/{admin-3FVGSNUT.js.map → admin-p0djr5G6.js.map} +1 -1
- package/dist/admin/{apiTokens-BOJ6JDtg.mjs → apiTokens-GQe-GqwZ.mjs} +2 -2
- package/dist/admin/{apiTokens-BOJ6JDtg.mjs.map → apiTokens-GQe-GqwZ.mjs.map} +1 -1
- package/dist/admin/{apiTokens-CcgEvJ9L.js → apiTokens-YxfAnO7_.js} +2 -2
- package/dist/admin/{apiTokens-CcgEvJ9L.js.map → apiTokens-YxfAnO7_.js.map} +1 -1
- package/dist/admin/{ar-BX4l-gGG.js → ar-74XpZHjA.js} +1 -1
- package/dist/admin/{ar-BX4l-gGG.js.map → ar-74XpZHjA.js.map} +1 -1
- package/dist/admin/{ar-7vbwrPth.mjs → ar-gTQs8p7A.mjs} +1 -1
- package/dist/admin/{ar-7vbwrPth.mjs.map → ar-gTQs8p7A.mjs.map} +1 -1
- package/dist/admin/{ca-f06Q0InB.mjs → ca-A-U5stlG.mjs} +1 -1
- package/dist/admin/{ca-f06Q0InB.mjs.map → ca-A-U5stlG.mjs.map} +1 -1
- package/dist/admin/{ca-lypqY0nt.js → ca-tfhzbe_0.js} +1 -1
- package/dist/admin/{ca-lypqY0nt.js.map → ca-tfhzbe_0.js.map} +1 -1
- package/dist/admin/{constants-DF68OPrs.js → constants-8PhEUZTR.js} +1 -1
- package/dist/admin/{constants-DF68OPrs.js.map → constants-8PhEUZTR.js.map} +1 -1
- package/dist/admin/{constants-CRj0ViV1.mjs → constants-EoEtSd4i.mjs} +1 -1
- package/dist/admin/{constants-CRj0ViV1.mjs.map → constants-EoEtSd4i.mjs.map} +1 -1
- package/dist/admin/{constants-DEdTopJs.js → constants-K5ARNpfV.js} +4 -4
- package/dist/admin/{constants-DEdTopJs.js.map → constants-K5ARNpfV.js.map} +1 -1
- package/dist/admin/{constants-BNqLfJa0.mjs → constants-T5y8alpG.mjs} +4 -4
- package/dist/admin/{constants-BNqLfJa0.mjs.map → constants-T5y8alpG.mjs.map} +1 -1
- package/dist/admin/{cs-DrRkodPD.mjs → cs-iYqoHUVt.mjs} +1 -1
- package/dist/admin/{cs-DrRkodPD.mjs.map → cs-iYqoHUVt.mjs.map} +1 -1
- package/dist/admin/{cs-DeS9DzIq.js → cs-sS-228vY.js} +1 -1
- package/dist/admin/{cs-DeS9DzIq.js.map → cs-sS-228vY.js.map} +1 -1
- package/dist/admin/{de-CxVS71Os.js → de-og0YSnla.js} +1 -1
- package/dist/admin/{de-CxVS71Os.js.map → de-og0YSnla.js.map} +1 -1
- package/dist/admin/{de-D0NA2abW.mjs → de-uZBjRd6a.mjs} +1 -1
- package/dist/admin/{de-D0NA2abW.mjs.map → de-uZBjRd6a.mjs.map} +1 -1
- package/dist/admin/{dk-Dy9JFy9v.js → dk-GtDhDxRc.js} +1 -1
- package/dist/admin/{dk-Dy9JFy9v.js.map → dk-GtDhDxRc.js.map} +1 -1
- package/dist/admin/{dk-Cv0jDfcZ.mjs → dk-nXAO32DE.mjs} +1 -1
- package/dist/admin/{ja-Cc9Dg_QK.mjs.map → dk-nXAO32DE.mjs.map} +1 -1
- package/dist/admin/ee.js +2 -2
- package/dist/admin/ee.mjs +2 -2
- package/dist/admin/en-GB-8ipWI3xp.mjs +6 -0
- package/dist/admin/en-GB-8ipWI3xp.mjs.map +1 -0
- package/dist/admin/{en-GB-CemeJNao.js → en-GB-vRfq_FQ3.js} +2 -2
- package/dist/admin/en-GB-vRfq_FQ3.js.map +1 -0
- package/dist/admin/{en-B_M3cPYZ.js → en-_1-Nn7iH.js} +1 -1
- package/dist/admin/{en-B_M3cPYZ.js.map → en-_1-Nn7iH.js.map} +1 -1
- package/dist/admin/{en-BwH0BITJ.mjs → en-lDO5lPD0.mjs} +1 -1
- package/dist/admin/{en-BwH0BITJ.mjs.map → en-lDO5lPD0.mjs.map} +1 -1
- package/dist/admin/{es-C-MB13Am.js → es-TQtY4G8X.js} +1 -1
- package/dist/admin/{es-C-MB13Am.js.map → es-TQtY4G8X.js.map} +1 -1
- package/dist/admin/{es-t8XFZqIM.mjs → es-i0dEHPPQ.mjs} +1 -1
- package/dist/admin/{es-t8XFZqIM.mjs.map → es-i0dEHPPQ.mjs.map} +1 -1
- package/dist/admin/{eu-CTGdmY94.js → eu-SRdPRyQu.js} +1 -1
- package/dist/admin/{hu-lwp6bYbA.js.map → eu-SRdPRyQu.js.map} +1 -1
- package/dist/admin/{eu-CDMMTSys.mjs → eu-wFmYHERY.mjs} +1 -1
- package/dist/admin/{hu-DaDd6FHR.mjs.map → eu-wFmYHERY.mjs.map} +1 -1
- package/dist/admin/{fr-ClHlHI4r.js → fr-GW5-kEO9.js} +1 -1
- package/dist/admin/{fr-ClHlHI4r.js.map → fr-GW5-kEO9.js.map} +1 -1
- package/dist/admin/{fr-CKlZ-5Zr.mjs → fr-OI7VyC_k.mjs} +1 -1
- package/dist/admin/{fr-CKlZ-5Zr.mjs.map → fr-OI7VyC_k.mjs.map} +1 -1
- package/dist/admin/{gu-Hc5YzUuw.js → gu-z6qqOLRh.js} +1 -1
- package/dist/admin/{gu-Hc5YzUuw.js.map → gu-z6qqOLRh.js.map} +1 -1
- package/dist/admin/{gu-CSS25C49.mjs → gu-zSaMc-a6.mjs} +1 -1
- package/dist/admin/{gu-CSS25C49.mjs.map → gu-zSaMc-a6.mjs.map} +1 -1
- package/dist/admin/{he-kuscdOPI.js → he-CLdZZ_n1.js} +1 -1
- package/dist/admin/{he-kuscdOPI.js.map → he-CLdZZ_n1.js.map} +1 -1
- package/dist/admin/{he-C3w9omDw.mjs → he-YzAGShlQ.mjs} +1 -1
- package/dist/admin/{he-C3w9omDw.mjs.map → he-YzAGShlQ.mjs.map} +1 -1
- package/dist/admin/{hi-ChZ-xy57.js → hi-3pMoYe6q.js} +1 -1
- package/dist/admin/{hi-ChZ-xy57.js.map → hi-3pMoYe6q.js.map} +1 -1
- package/dist/admin/{hi-DW2CutdA.mjs → hi-ZQ4t6UdY.mjs} +1 -1
- package/dist/admin/{hi-DW2CutdA.mjs.map → hi-ZQ4t6UdY.mjs.map} +1 -1
- package/dist/admin/{hu-DaDd6FHR.mjs → hu-O1FJoY8c.mjs} +1 -1
- package/dist/admin/{eu-CDMMTSys.mjs.map → hu-O1FJoY8c.mjs.map} +1 -1
- package/dist/admin/{hu-lwp6bYbA.js → hu-VxIqV1X0.js} +1 -1
- package/dist/admin/{eu-CTGdmY94.js.map → hu-VxIqV1X0.js.map} +1 -1
- package/dist/admin/{id-cH3Ovozx.mjs → id-Lb_0kPQU.mjs} +1 -1
- package/dist/admin/{id-cH3Ovozx.mjs.map → id-Lb_0kPQU.mjs.map} +1 -1
- package/dist/admin/{id-BX77nhRG.js → id-cUUpuxZO.js} +1 -1
- package/dist/admin/{id-BX77nhRG.js.map → id-cUUpuxZO.js.map} +1 -1
- package/dist/admin/{index-BJvNbZJA.mjs → index-QPUYgtlo.mjs} +39 -43
- package/dist/admin/{index-BJvNbZJA.mjs.map → index-QPUYgtlo.mjs.map} +1 -1
- package/dist/admin/{index-Bj3CXdEV.js → index-YMz7KziV.js} +39 -43
- package/dist/admin/{index-Bj3CXdEV.js.map → index-YMz7KziV.js.map} +1 -1
- package/dist/admin/index.js +3 -3
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/{it-T1rZP3NX.mjs → it-136monzD.mjs} +1 -1
- package/dist/admin/{it-T1rZP3NX.mjs.map → it-136monzD.mjs.map} +1 -1
- package/dist/admin/{it-Br3eqqDa.js → it-m8H0rXTP.js} +1 -1
- package/dist/admin/{it-Br3eqqDa.js.map → it-m8H0rXTP.js.map} +1 -1
- package/dist/admin/{ja-Cc9Dg_QK.mjs → ja-0-FUC0T4.mjs} +1 -1
- package/dist/admin/{dk-Cv0jDfcZ.mjs.map → ja-0-FUC0T4.mjs.map} +1 -1
- package/dist/admin/{ja-CmifbkZD.js → ja-jhqUhh7F.js} +1 -1
- package/dist/admin/{ja-CmifbkZD.js.map → ja-jhqUhh7F.js.map} +1 -1
- package/dist/admin/{ko-CS08pZ0z.js → ko-Fq49QS3z.js} +1 -1
- package/dist/admin/{ko-CS08pZ0z.js.map → ko-Fq49QS3z.js.map} +1 -1
- package/dist/admin/{ko-D1e-SMHS.mjs → ko-H3Y8GpnD.mjs} +1 -1
- package/dist/admin/{ko-D1e-SMHS.mjs.map → ko-H3Y8GpnD.mjs.map} +1 -1
- package/dist/admin/{ml-FLft_QIc.mjs → ml-NPdcpJoN.mjs} +1 -1
- package/dist/admin/{pl-B0hZgHvQ.mjs.map → ml-NPdcpJoN.mjs.map} +1 -1
- package/dist/admin/{ml-CzFKbt9H.js → ml-mLJM4sQP.js} +1 -1
- package/dist/admin/{ml-CzFKbt9H.js.map → ml-mLJM4sQP.js.map} +1 -1
- package/dist/admin/{ms-C-JB0-h1.js → ms-NDmpSkMY.js} +1 -1
- package/dist/admin/{ms-C-JB0-h1.js.map → ms-NDmpSkMY.js.map} +1 -1
- package/dist/admin/{ms-eMDSLvhl.mjs → ms-v9c434YI.mjs} +1 -1
- package/dist/admin/{pt-8dwKSOn3.mjs.map → ms-v9c434YI.mjs.map} +1 -1
- package/dist/admin/{nl-gUEC_dKT.js → nl-RREi1JAg.js} +1 -1
- package/dist/admin/{nl-gUEC_dKT.js.map → nl-RREi1JAg.js.map} +1 -1
- package/dist/admin/{nl-CubaFTJw.mjs → nl-qHmOt3d1.mjs} +1 -1
- package/dist/admin/{nl-CubaFTJw.mjs.map → nl-qHmOt3d1.mjs.map} +1 -1
- package/dist/admin/{no-DU4xtEmk.js → no-2wT9Jd9n.js} +1 -1
- package/dist/admin/{no-DU4xtEmk.js.map → no-2wT9Jd9n.js.map} +1 -1
- package/dist/admin/{no-9TbSG07o.mjs → no-XGZQN-Ji.mjs} +1 -1
- package/dist/admin/{no-9TbSG07o.mjs.map → no-XGZQN-Ji.mjs.map} +1 -1
- package/dist/admin/{pl-B0hZgHvQ.mjs → pl-Id5YX-Pw.mjs} +1 -1
- package/dist/admin/{ml-FLft_QIc.mjs.map → pl-Id5YX-Pw.mjs.map} +1 -1
- package/dist/admin/{pl-Bf4D5Q8_.js → pl-kU2npCRO.js} +1 -1
- package/dist/admin/{pl-Bf4D5Q8_.js.map → pl-kU2npCRO.js.map} +1 -1
- package/dist/admin/{pt-BR-BDpWvCrQ.mjs → pt-BR-0o0Gf-P8.mjs} +1 -1
- package/dist/admin/{pt-BR-BDpWvCrQ.mjs.map → pt-BR-0o0Gf-P8.mjs.map} +1 -1
- package/dist/admin/{pt-BR-BFq-a8-C.js → pt-BR-R-dMJxPL.js} +1 -1
- package/dist/admin/{pt-BR-BFq-a8-C.js.map → pt-BR-R-dMJxPL.js.map} +1 -1
- package/dist/admin/{pt-CEcd6cjN.js → pt-IygqsPYv.js} +1 -1
- package/dist/admin/{pt-CEcd6cjN.js.map → pt-IygqsPYv.js.map} +1 -1
- package/dist/admin/{pt-8dwKSOn3.mjs → pt-f52AXrxz.mjs} +1 -1
- package/dist/admin/{ms-eMDSLvhl.mjs.map → pt-f52AXrxz.mjs.map} +1 -1
- package/dist/admin/{ru-Dwf09uUc.js → ru-5TBoMH_2.js} +1 -1
- package/dist/admin/{ru-Dwf09uUc.js.map → ru-5TBoMH_2.js.map} +1 -1
- package/dist/admin/{ru-C34i9wJx.mjs → ru-FpmG9SEf.mjs} +1 -1
- package/dist/admin/{ru-C34i9wJx.mjs.map → ru-FpmG9SEf.mjs.map} +1 -1
- package/dist/admin/{sa-CHD-r_h-.mjs → sa-KUwV8aRB.mjs} +1 -1
- package/dist/admin/sa-KUwV8aRB.mjs.map +1 -0
- package/dist/admin/{sa--UlKNdfY.js → sa-KmwTiEO5.js} +1 -1
- package/dist/admin/sa-KmwTiEO5.js.map +1 -0
- package/dist/admin/{selectors-ZSFBgSp8.mjs → selectors--muHmKGe.mjs} +2 -2
- package/dist/admin/{selectors-ZSFBgSp8.mjs.map → selectors--muHmKGe.mjs.map} +1 -1
- package/dist/admin/{selectors-DYNXQ1tD.js → selectors-1ySxKbos.js} +2 -2
- package/dist/admin/{selectors-DYNXQ1tD.js.map → selectors-1ySxKbos.js.map} +1 -1
- package/dist/admin/{sk-CbJVofN-.js → sk-IV2uPmXo.js} +1 -1
- package/dist/admin/{sk-CbJVofN-.js.map → sk-IV2uPmXo.js.map} +1 -1
- package/dist/admin/{sk-DQ2qpsG2.mjs → sk-g_1C955P.mjs} +1 -1
- package/dist/admin/{sk-DQ2qpsG2.mjs.map → sk-g_1C955P.mjs.map} +1 -1
- package/dist/admin/{sv-BqRXfruc.js → sv-Uv9nW9cN.js} +1 -1
- package/dist/admin/{sv-BqRXfruc.js.map → sv-Uv9nW9cN.js.map} +1 -1
- package/dist/admin/{sv-D0vPVUAT.mjs → sv-lzyY1dsz.mjs} +1 -1
- package/dist/admin/{sv-D0vPVUAT.mjs.map → sv-lzyY1dsz.mjs.map} +1 -1
- package/dist/admin/test.js +2 -2
- package/dist/admin/test.mjs +2 -2
- package/dist/admin/{th-BG3IOCqV.mjs → th-7LJ9Y8EL.mjs} +1 -1
- package/dist/admin/{th-BG3IOCqV.mjs.map → th-7LJ9Y8EL.mjs.map} +1 -1
- package/dist/admin/{th-CPx6wf0M.js → th-SXQwWjv6.js} +1 -1
- package/dist/admin/{th-CPx6wf0M.js.map → th-SXQwWjv6.js.map} +1 -1
- package/dist/admin/{tr-Dq45DRRZ.mjs → tr-09v-DLMg.mjs} +1 -1
- package/dist/admin/{tr-Dq45DRRZ.mjs.map → tr-09v-DLMg.mjs.map} +1 -1
- package/dist/admin/{tr-hC_m0V8Q.js → tr-RBQM-Vq5.js} +1 -1
- package/dist/admin/{tr-hC_m0V8Q.js.map → tr-RBQM-Vq5.js.map} +1 -1
- package/dist/admin/{transferTokens-CTsVFvMK.js → transferTokens-HcVXmOrq.js} +2 -2
- package/dist/admin/{transferTokens-CTsVFvMK.js.map → transferTokens-HcVXmOrq.js.map} +1 -1
- package/dist/admin/{transferTokens-CXTFej3W.mjs → transferTokens-v8tNpI_l.mjs} +2 -2
- package/dist/admin/{transferTokens-CXTFej3W.mjs.map → transferTokens-v8tNpI_l.mjs.map} +1 -1
- package/dist/admin/{uk-Ud9QNfkB.mjs → uk-38IblmOr.mjs} +1 -1
- package/dist/admin/{uk-Ud9QNfkB.mjs.map → uk-38IblmOr.mjs.map} +1 -1
- package/dist/admin/{uk-DHmepDW6.js → uk-5T4XFIKm.js} +1 -1
- package/dist/admin/{uk-DHmepDW6.js.map → uk-5T4XFIKm.js.map} +1 -1
- package/dist/admin/{useAdminRoles-DxSEPhq4.mjs → useAdminRoles-DX1MOKC9.mjs} +2 -2
- package/dist/admin/{useAdminRoles-DxSEPhq4.mjs.map → useAdminRoles-DX1MOKC9.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-CY2M9kuj.js → useAdminRoles-nNC9r0dz.js} +2 -2
- package/dist/admin/{useAdminRoles-CY2M9kuj.js.map → useAdminRoles-nNC9r0dz.js.map} +1 -1
- package/dist/admin/{useEnterprise-ijNnK53J.js → useEnterprise-DUs6BYlP.js} +1 -1
- package/dist/admin/{useEnterprise-ijNnK53J.js.map → useEnterprise-DUs6BYlP.js.map} +1 -1
- package/dist/admin/{useEnterprise-BGzVPL4w.mjs → useEnterprise-jpsYZWzn.mjs} +1 -1
- package/dist/admin/{useEnterprise-BGzVPL4w.mjs.map → useEnterprise-jpsYZWzn.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs → useLicenseLimitNotification-Qx_rSpUQ.mjs} +3 -3
- package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs.map → useLicenseLimitNotification-Qx_rSpUQ.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js → useLicenseLimitNotification-eau4ja6h.js} +3 -3
- package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js.map → useLicenseLimitNotification-eau4ja6h.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-D1oogU-K.js → useLicenseLimits-FtmLXkwK.js} +2 -2
- package/dist/admin/{useLicenseLimits-D1oogU-K.js.map → useLicenseLimits-FtmLXkwK.js.map} +1 -1
- package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs → useLicenseLimits-j5znikzW.mjs} +2 -2
- package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs.map → useLicenseLimits-j5znikzW.mjs.map} +1 -1
- package/dist/admin/{useOnce-C7EQufL3.js → useOnce--ZSbXFh3.js} +1 -1
- package/dist/admin/{useOnce-C7EQufL3.js.map → useOnce--ZSbXFh3.js.map} +1 -1
- package/dist/admin/{useOnce-NHeEacbN.mjs → useOnce-GJ2Ta2mZ.mjs} +1 -1
- package/dist/admin/{useOnce-NHeEacbN.mjs.map → useOnce-GJ2Ta2mZ.mjs.map} +1 -1
- package/dist/admin/{useWebhooks-CkRHgTl_.js → useWebhooks-0RUEkKAV.js} +2 -2
- package/dist/admin/{useWebhooks-CkRHgTl_.js.map → useWebhooks-0RUEkKAV.js.map} +1 -1
- package/dist/admin/{useWebhooks-C2yEtiSU.mjs → useWebhooks-upF7mgdZ.mjs} +2 -2
- package/dist/admin/{useWebhooks-C2yEtiSU.mjs.map → useWebhooks-upF7mgdZ.mjs.map} +1 -1
- package/dist/admin/{users-DaPfjlwf.js → users-R5A0kUOV.js} +1 -1
- package/dist/admin/{users-DaPfjlwf.js.map → users-R5A0kUOV.js.map} +1 -1
- package/dist/admin/{users-8N93LH7R.mjs → users-a4KTyEyc.mjs} +1 -1
- package/dist/admin/{users-8N93LH7R.mjs.map → users-a4KTyEyc.mjs.map} +1 -1
- package/dist/admin/{validation-CWSrsC2Q.js → validation-AQCTfU6y.js} +2 -2
- package/dist/admin/{validation-CWSrsC2Q.js.map → validation-AQCTfU6y.js.map} +1 -1
- package/dist/admin/{validation-Cd6i4v8r.mjs → validation-tnv2QISi.mjs} +2 -2
- package/dist/admin/{validation-Cd6i4v8r.mjs.map → validation-tnv2QISi.mjs.map} +1 -1
- package/dist/admin/{vi-UeRpPdvI.js → vi-mj-Smy3d.js} +1 -1
- package/dist/admin/{vi-UeRpPdvI.js.map → vi-mj-Smy3d.js.map} +1 -1
- package/dist/admin/{vi-CGrr4ioy.mjs → vi-ryNZtXtk.mjs} +1 -1
- package/dist/admin/{vi-CGrr4ioy.mjs.map → vi-ryNZtXtk.mjs.map} +1 -1
- package/dist/admin/{zh-Bhpup4vu.js → zh-6qF5HCOo.js} +1 -1
- package/dist/admin/{zh-Bhpup4vu.js.map → zh-6qF5HCOo.js.map} +1 -1
- package/dist/admin/{zh-Hans-C44LvcXE.mjs → zh-Hans-HlxDUeVA.mjs} +1 -1
- package/dist/admin/{zh-Hans-C44LvcXE.mjs.map → zh-Hans-HlxDUeVA.mjs.map} +1 -1
- package/dist/admin/{zh-Hans-BlfT-iYf.js → zh-Hans-eWSoi9-X.js} +1 -1
- package/dist/admin/{zh-Hans-BlfT-iYf.js.map → zh-Hans-eWSoi9-X.js.map} +1 -1
- package/dist/admin/{zh-LqPg8hbL.mjs → zh-WEteLuNm.mjs} +1 -1
- package/dist/admin/{zh-LqPg8hbL.mjs.map → zh-WEteLuNm.mjs.map} +1 -1
- package/dist/package.json.d.ts +3 -3
- package/dist/server/src/domain/action/index.d.ts +6 -71
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +3 -23
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/admin/AuthenticatedLayout-B5MLuW72.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-DN6dsAAZ.js.map +0 -1
- package/dist/admin/CreatePage-2aG6dsmv.js.map +0 -1
- package/dist/admin/CreatePage-bxXyk86q.mjs.map +0 -1
- package/dist/admin/EditPage-B12sx5VK.mjs.map +0 -1
- package/dist/admin/EditPage-BSbmg6cK.mjs.map +0 -1
- package/dist/admin/EditPage-Bwr5atev.js.map +0 -1
- package/dist/admin/EditPage-CfUH6TKr.js.map +0 -1
- package/dist/admin/EditPage-D5C8IcN5.js.map +0 -1
- package/dist/admin/EditPage-DajIbvUn.mjs.map +0 -1
- package/dist/admin/MarketplacePage-DWx2-1k6.js.map +0 -1
- package/dist/admin/MarketplacePage-whaapwwK.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-DK_4uDTr.js.map +0 -1
- package/dist/admin/SingleSignOnPage-DtLncLSG.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/sa--UlKNdfY.js.map +0 -1
- package/dist/admin/sa-CHD-r_h-.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSOProviders-
|
|
1
|
+
{"version":3,"file":"SSOProviders-sy3Xon2A.mjs","sources":["../../ee/admin/src/pages/AuthPage/components/SSOProviders.tsx"],"sourcesContent":["import { Flex, Grid, Tooltip, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetProviders } from '../../../../../../shared/contracts/providers';\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviders\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProvidersProps {\n providers: GetProviders.Response;\n displayAllProviders?: boolean;\n}\n\nconst SSOProviders = ({ providers, displayAllProviders }: SSOProvidersProps) => {\n const { formatMessage } = useIntl();\n\n if (displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n }\n\n if (providers.length > 2 && !displayAllProviders) {\n return (\n <Grid.Root gap={4}>\n {providers.slice(0, 2).map((provider) => (\n <Grid.Item key={provider.uid} col={4} direction=\"column\" alignItems=\"stretch\">\n <SSOProviderButton provider={provider} />\n </Grid.Item>\n ))}\n <Grid.Item col={4} direction=\"column\" alignItems=\"stretch\">\n <Tooltip\n label={formatMessage({\n id: 'global.see-more',\n })}\n >\n <SSOButton as={Link} to=\"/auth/providers\">\n <span aria-hidden>•••</span>\n </SSOButton>\n </Tooltip>\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <SSOProvidersWrapper justifyContent=\"center\">\n {providers.map((provider) => (\n <SSOProviderButton key={provider.uid} provider={provider} />\n ))}\n </SSOProvidersWrapper>\n );\n};\n\nconst SSOProvidersWrapper = styled(Flex)`\n & a:not(:first-child):not(:last-child) {\n margin: 0 ${({ theme }) => theme.spaces[2]};\n }\n & a:first-child {\n margin-right: ${({ theme }) => theme.spaces[2]};\n }\n & a:last-child {\n margin-left: ${({ theme }) => theme.spaces[2]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * SSOProviderButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SSOProviderButtonProps {\n provider: GetProviders.Response[number];\n}\n\nconst SSOProviderButton = ({ provider }: SSOProviderButtonProps) => {\n return (\n <Tooltip label={provider.displayName}>\n <SSOButton href={`${window.strapi.backendURL}/admin/connect/${provider.uid}`}>\n {provider.icon ? (\n <img src={provider.icon} aria-hidden alt=\"\" height=\"32px\" />\n ) : (\n <Typography>{provider.displayName}</Typography>\n )}\n </SSOButton>\n </Tooltip>\n );\n};\n\nconst SSOButton = styled.a`\n width: 13.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 4.8rem;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n text-decoration: inherit;\n &:link {\n text-decoration: none;\n }\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nexport { SSOProviders };\nexport type { SSOProvidersProps };\n"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const reactIntl = require('react-intl');
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-YMz7KziV.js');
|
|
6
6
|
const designSystem = require('@strapi/design-system');
|
|
7
7
|
const icons = require('@strapi/icons');
|
|
8
|
-
const Theme = require('./Theme-
|
|
8
|
+
const Theme = require('./Theme-y_rWTknM.js');
|
|
9
9
|
const styledComponents = require('styled-components');
|
|
10
|
-
const useAdminRoles = require('./useAdminRoles-
|
|
10
|
+
const useAdminRoles = require('./useAdminRoles-nNC9r0dz.js');
|
|
11
11
|
|
|
12
12
|
const MagicLinkWrapper = ({ children, target }) => {
|
|
13
13
|
const { toggleNotification } = Theme.useNotification();
|
|
@@ -112,4 +112,4 @@ const Loader = () => /* @__PURE__ */ jsxRuntime.jsx(LoadingWrapper, { children:
|
|
|
112
112
|
exports.MagicLinkCE = MagicLinkCE;
|
|
113
113
|
exports.MagicLinkWrapper = MagicLinkWrapper;
|
|
114
114
|
exports.SelectRoles = SelectRoles;
|
|
115
|
-
//# sourceMappingURL=SelectRoles-
|
|
115
|
+
//# sourceMappingURL=SelectRoles-L8dRONb-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectRoles-
|
|
1
|
+
{"version":3,"file":"SelectRoles-L8dRONb-.js","sources":["../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.tsx","../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx","../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { IconButton } from '@strapi/design-system';\nimport { Duplicate } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../../components/ContentBox';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useClipboard } from '../../../../../hooks/useClipboard';\n\ninterface MagicLinkWrapperProps {\n children: string;\n target: string;\n}\n\nconst MagicLinkWrapper = ({ children, target }: MagicLinkWrapperProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'notification.link-copied' }),\n });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} variant=\"ghost\" onClick={handleClick}>\n <Duplicate />\n </IconButton>\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nexport { MagicLinkWrapper };\nexport type { MagicLinkWrapperProps };\n","import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n","import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["useNotification","useIntl","useClipboard","jsx","ContentBox","IconButton","Duplicate","getBasename","useAdminRoles","useField","jsxs","Field","MultiSelect","MultiSelectOption","keyframes","styled","LoadingIcon"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
|
-
import { t as useClipboard, v as ContentBox, l as getBasename, u as useField } from './index-
|
|
3
|
+
import { t as useClipboard, v as ContentBox, l as getBasename, u as useField } from './index-QPUYgtlo.mjs';
|
|
4
4
|
import { IconButton, Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';
|
|
5
5
|
import { Duplicate, Loader as Loader$1 } from '@strapi/icons';
|
|
6
|
-
import { a as useNotification } from './Theme-
|
|
6
|
+
import { a as useNotification } from './Theme-frC82ceE.mjs';
|
|
7
7
|
import { keyframes, styled } from 'styled-components';
|
|
8
|
-
import { u as useAdminRoles } from './useAdminRoles-
|
|
8
|
+
import { u as useAdminRoles } from './useAdminRoles-DX1MOKC9.mjs';
|
|
9
9
|
|
|
10
10
|
const MagicLinkWrapper = ({ children, target }) => {
|
|
11
11
|
const { toggleNotification } = useNotification();
|
|
@@ -108,4 +108,4 @@ const LoadingWrapper = styled.div`
|
|
|
108
108
|
const Loader = () => /* @__PURE__ */ jsx(LoadingWrapper, { children: /* @__PURE__ */ jsx(Loader$1, {}) });
|
|
109
109
|
|
|
110
110
|
export { MagicLinkCE as M, SelectRoles as S, MagicLinkWrapper as a };
|
|
111
|
-
//# sourceMappingURL=SelectRoles-
|
|
111
|
+
//# sourceMappingURL=SelectRoles-esk6LySb.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectRoles-
|
|
1
|
+
{"version":3,"file":"SelectRoles-esk6LySb.mjs","sources":["../../admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.tsx","../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx","../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { IconButton } from '@strapi/design-system';\nimport { Duplicate } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../../components/ContentBox';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useClipboard } from '../../../../../hooks/useClipboard';\n\ninterface MagicLinkWrapperProps {\n children: string;\n target: string;\n}\n\nconst MagicLinkWrapper = ({ children, target }: MagicLinkWrapperProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const copyLabel = formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n });\n\n const handleClick = async (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n const didCopy = await copy(target);\n\n if (didCopy) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'notification.link-copied' }),\n });\n }\n };\n\n return (\n <ContentBox\n endAction={\n <IconButton label={copyLabel} variant=\"ghost\" onClick={handleClick}>\n <Duplicate />\n </IconButton>\n }\n title={target}\n titleEllipsis\n subtitle={children}\n icon={<span style={{ fontSize: 32 }}>✉️</span>}\n iconBackground=\"neutral100\"\n />\n );\n};\n\nexport { MagicLinkWrapper };\nexport type { MagicLinkWrapperProps };\n","import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n","import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["LoadingIcon"],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ const designSystem = require('@strapi/design-system');
|
|
|
7
7
|
const icons = require('@strapi/icons');
|
|
8
8
|
const reactIntl = require('react-intl');
|
|
9
9
|
const yup = require('yup');
|
|
10
|
-
const index = require('./index-
|
|
11
|
-
const Theme = require('./Theme-
|
|
12
|
-
const useAdminRoles = require('./useAdminRoles-
|
|
13
|
-
const admin = require('./admin-
|
|
10
|
+
const index = require('./index-YMz7KziV.js');
|
|
11
|
+
const Theme = require('./Theme-y_rWTknM.js');
|
|
12
|
+
const useAdminRoles = require('./useAdminRoles-nNC9r0dz.js');
|
|
13
|
+
const admin = require('./admin-p0djr5G6.js');
|
|
14
14
|
|
|
15
15
|
function _interopNamespace(e) {
|
|
16
16
|
if (e && e.__esModule) return e;
|
|
@@ -122,6 +122,7 @@ const SingleSignOnPage = () => {
|
|
|
122
122
|
loading: isSubmitting,
|
|
123
123
|
startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
|
|
124
124
|
type: "submit",
|
|
125
|
+
size: "L",
|
|
125
126
|
children: formatMessage({
|
|
126
127
|
id: "global.save",
|
|
127
128
|
defaultMessage: "Save"
|
|
@@ -261,4 +262,4 @@ const ProtectedSSO = () => {
|
|
|
261
262
|
|
|
262
263
|
exports.ProtectedSSO = ProtectedSSO;
|
|
263
264
|
exports.SingleSignOnPage = SingleSignOnPage;
|
|
264
|
-
//# sourceMappingURL=SingleSignOnPage-
|
|
265
|
+
//# sourceMappingURL=SingleSignOnPage-cih5-oBZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage-cih5-oBZ.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["yup","translatedErrors","useIntl","useTypedSelector","useNotification","useAPIErrorHandler","useGetProviderOptionsQuery","useUpdateProviderOptionsMutation","useRBAC","useAdminRoles","isBaseQueryError","jsxs","Layouts","jsx","Page","Form","Fragment","Button","Check","Flex","Typography","Grid","InputRenderer","useField","Field","MultiSelect","label","MultiSelectOption"],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { Button, Flex, Typography, Grid, Field, MultiSelect, MultiSelectOption }
|
|
|
3
3
|
import { Check } from '@strapi/icons';
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
5
|
import * as yup from 'yup';
|
|
6
|
-
import { e as errorsTrads, b as Layouts, F as Form, M as MemoizedInputRenderer, u as useField } from './index-
|
|
7
|
-
import { b as useTypedSelector, P as Page, a as useNotification, e as useAPIErrorHandler, i as useGetProviderOptionsQuery, j as useUpdateProviderOptionsMutation, k as useRBAC } from './Theme-
|
|
8
|
-
import { u as useAdminRoles } from './useAdminRoles-
|
|
9
|
-
import { i as isBaseQueryError } from './admin-
|
|
6
|
+
import { e as errorsTrads, b as Layouts, F as Form, M as MemoizedInputRenderer, u as useField } from './index-QPUYgtlo.mjs';
|
|
7
|
+
import { b as useTypedSelector, P as Page, a as useNotification, e as useAPIErrorHandler, i as useGetProviderOptionsQuery, j as useUpdateProviderOptionsMutation, k as useRBAC } from './Theme-frC82ceE.mjs';
|
|
8
|
+
import { u as useAdminRoles } from './useAdminRoles-DX1MOKC9.mjs';
|
|
9
|
+
import { i as isBaseQueryError } from './admin-GZ-AP2T0.mjs';
|
|
10
10
|
|
|
11
11
|
const SCHEMA = yup.object().shape({
|
|
12
12
|
autoRegister: yup.bool().required(errorsTrads.required),
|
|
@@ -98,6 +98,7 @@ const SingleSignOnPage = () => {
|
|
|
98
98
|
loading: isSubmitting,
|
|
99
99
|
startIcon: /* @__PURE__ */ jsx(Check, {}),
|
|
100
100
|
type: "submit",
|
|
101
|
+
size: "L",
|
|
101
102
|
children: formatMessage({
|
|
102
103
|
id: "global.save",
|
|
103
104
|
defaultMessage: "Save"
|
|
@@ -236,4 +237,4 @@ const ProtectedSSO = () => {
|
|
|
236
237
|
};
|
|
237
238
|
|
|
238
239
|
export { ProtectedSSO, SingleSignOnPage };
|
|
239
|
-
//# sourceMappingURL=SingleSignOnPage-
|
|
240
|
+
//# sourceMappingURL=SingleSignOnPage-idMTZOuN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleSignOnPage-idMTZOuN.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.tsx"],"sourcesContent":["import {\n Button,\n Flex,\n Grid,\n MultiSelect,\n MultiSelectOption,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport {\n Form,\n FormHelpers,\n InputProps,\n useField,\n} from '../../../../../../admin/src/components/Form';\nimport { InputRenderer } from '../../../../../../admin/src/components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../admin/src/core/store/hooks';\nimport { useNotification } from '../../../../../../admin/src/features/Notifications';\nimport { useAdminRoles } from '../../../../../../admin/src/hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../../../admin/src/hooks/useRBAC';\nimport {\n useGetProviderOptionsQuery,\n useUpdateProviderOptionsMutation,\n} from '../../../../../../admin/src/services/auth';\nimport { isBaseQueryError } from '../../../../../../admin/src/utils/baseQuery';\nimport { translatedErrors } from '../../../../../../admin/src/utils/translatedErrors';\nimport { ProvidersOptions } from '../../../../../../shared/contracts/admin';\n\nconst SCHEMA = yup.object().shape({\n autoRegister: yup.bool().required(translatedErrors.required),\n defaultRole: yup.mixed().when('autoRegister', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n }),\n ssoLockedRoles: yup\n .array()\n .nullable()\n .of(\n yup.mixed().when('ssoLockedRoles', (value, initSchema) => {\n return value ? initSchema.required(translatedErrors.required) : initSchema.nullable();\n })\n ),\n});\n\nexport const SingleSignOnPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingProviderOptions, data } = useGetProviderOptionsQuery();\n\n const [updateProviderOptions, { isLoading: isSubmittingForm }] =\n useUpdateProviderOptionsMutation();\n\n const {\n isLoading: isLoadingPermissions,\n allowedActions: { canUpdate, canRead: canReadRoles },\n } = useRBAC({\n ...permissions.settings?.sso,\n readRoles: permissions.settings?.roles.read ?? [],\n });\n\n const { roles, isLoading: isLoadingRoles } = useAdminRoles(undefined, {\n skip: !canReadRoles,\n });\n\n const handleSubmit = async (\n body: ProvidersOptions.Request['body'],\n helpers: FormHelpers<ProvidersOptions.Request['body']>\n ) => {\n try {\n const res = await updateProviderOptions(body);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again.',\n }),\n });\n }\n };\n\n const isLoadingData = isLoadingRoles || isLoadingPermissions || isLoadingProviderOptions;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'SSO',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isSubmittingForm || isLoadingData} tabIndex={-1}>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n validationSchema={SCHEMA}\n disabled={!canUpdate}\n initialValues={\n data || {\n autoRegister: false,\n defaultRole: null,\n ssoLockedRoles: null,\n }\n }\n >\n {({ modified, isSubmitting }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={!modified}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n title={formatMessage({\n id: 'Settings.sso.title',\n defaultMessage: 'Single Sign-On',\n })}\n subtitle={formatMessage({\n id: 'Settings.sso.description',\n defaultMessage: 'Configure the settings for the Single Sign-On feature.',\n })}\n />\n <Layouts.Content>\n {isSubmitting || isLoadingData ? (\n <Page.Loading />\n ) : (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n background=\"neutral0\"\n padding={6}\n shadow=\"filterShadow\"\n hasRadius\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n {[\n {\n hint: formatMessage({\n id: 'Settings.sso.form.registration.description',\n defaultMessage: 'Create new user on SSO login if no account exists',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.registration.label',\n defaultMessage: 'Auto-registration',\n }),\n name: 'autoRegister',\n size: 6,\n type: 'boolean' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.defaultRole.description',\n defaultMessage:\n 'It will attach the new authenticated user to the selected role',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.defaultRole.label',\n defaultMessage: 'Default role',\n }),\n name: 'defaultRole',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.description',\n defaultMessage:\n 'Select the roles for which you want to disable the local authentication',\n }),\n label: formatMessage({\n id: 'Settings.sso.form.localAuthenticationLock.label',\n defaultMessage: 'Local authentication lock-out',\n }),\n name: 'ssoLockedRoles',\n options: roles.map(({ id, name }) => ({\n label: name,\n value: id.toString(),\n })),\n placeholder: formatMessage({\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n }),\n size: 6,\n type: 'multi' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FormInputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n )}\n </Layouts.Content>\n </>\n )}\n </Form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\ntype FormInputProps = InputProps | MultiSelectInputProps;\n\nconst FormInputRenderer = (props: FormInputProps) => {\n switch (props.type) {\n case 'multi':\n return <MultiSelectInput {...props} />;\n default:\n return <InputRenderer {...props} />;\n }\n};\n\ntype MultiSelectInputProps = Omit<Extract<InputProps, { type: 'enumeration' }>, 'type'> & {\n type: 'multi';\n};\n\nconst MultiSelectInput = ({ hint, label, name, options, ...props }: MultiSelectInputProps) => {\n const field = useField(name);\n\n return (\n <Field.Root name={name} hint={hint} error={field.error}>\n <Field.Label>{label}</Field.Label>\n <MultiSelect\n onChange={(value) => field.onChange('ssoLockedRoles', value)}\n onClear={() => field.onChange('ssoLockedRoles', [])}\n value={field.value ?? []}\n withTags\n {...props}\n >\n {options.map(({ label, value }) => (\n <MultiSelectOption key={value} value={value}>\n {label}\n </MultiSelectOption>\n ))}\n </MultiSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport const ProtectedSSO = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.sso?.main);\n\n return (\n <Page.Protect permissions={permissions}>\n <SingleSignOnPage />\n </Page.Protect>\n );\n};\n"],"names":["translatedErrors","InputRenderer","label"],"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-YMz7KziV.js');
|
|
10
10
|
const React = require('react');
|
|
11
11
|
const dateFns = require('date-fns');
|
|
12
|
-
const Theme = require('./Theme-
|
|
12
|
+
const Theme = require('./Theme-y_rWTknM.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-1mVE67Cd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table-DDgICp5-.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,YAAmC,CAAC,OAAA,EAAS,UAAU,MAAQ,EAAA,OAAA,EAAS,WAAW,SAAS,CAAA,CAAA;AA2BlG,MAAM,eAAeA,gBAAM,CAAA,UAAA;AAAA,EACzB,CAAC,EAAE,SAAW,EAAA,eAAA,GAAkB,EAAI,EAAA,GAAG,SAAU,EAAA,EAAG,YAAiB,KAAA;AACnE,IAAA,MAAM,EAAE,kBAAA,EAAoB,UAAY,EAAA,UAAA,KAAeC,iBAAQ,EAAA,CAAA;AAK/D,IAAA,MAAM,WAAWC,0BAAmB,CAAA;AAAA,MAClC,KAAO,EAAA,SAAA;AAAA,MACP,GAAA,EAAK,KAAK,GAAI,EAAA;AAAA;AAAA,KAEf,CAAA,CAAA;AAED,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,IAAK,CAAA,CAAC,YAAiB,KAAA;AAC5C,MAAO,OAAA,QAAA,CAAS,YAAY,CAAI,GAAA,CAAA,IAAK,OAAO,IAAK,CAAA,QAAQ,CAAE,CAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AAAA,KACjF,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAeC,eAAO,SAAS,CAAA,GAAI,CAAC,QAAS,CAAA,IAAI,CAAI,GAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAGxE,IAAA,MAAM,iBAAiB,eAAgB,CAAA,IAAA;AAAA,MACrC,CAAC,MAAW,KAAA,QAAA,CAAS,MAAO,CAAA,IAAI,IAAI,MAAO,CAAA,SAAA;AAAA,KAC7C,CAAA;AAEA,IAAM,MAAA,WAAA,GAAc,cAChB,GAAA,cAAA,CAAe,IACf,GAAA,kBAAA,CAAmB,cAAc,IAAM,EAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,CAAA,CAAA;AAE9D,IACE,uBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,YAAA;AAAA,QACL,QAAA,EAAU,UAAU,WAAY,EAAA;AAAA,QAChC,IAAK,EAAA,MAAA;AAAA,QACL,KAAA,EAAO,GAAG,UAAW,CAAA,SAAS,CAAC,CAAI,CAAA,EAAA,UAAA,CAAW,SAAS,CAAC,CAAA,CAAA;AAAA,QACvD,GAAG,SAAA;AAAA,QAEH,QAAA,EAAA,WAAA;AAAA,OAAA;AAAA,KACH,CAAA;AAAA,GAEJ;AACF,CAAA;;AC9BA,MAAM,QAAQ,CAAC;AAAA,EACb,WAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX,SAAY,GAAA,KAAA;AAAA,EACZ,SAAS,EAAC;AAAA,EACV,eAAA;AAAA,EACA,SAAA;AACF,CAAkB,KAAA;AAChB,EAAA,MAAM,CAAC,EAAE,KAAM,EAAC,IAAIC,oBAAkC,EAAA,CAAA;AACtD,EAAA,MAAM,EAAE,aAAA,EAAe,MAAO,EAAA,GAAIJ,iBAAQ,EAAA,CAAA;AAC1C,EAAA,MAAM,GAAG,SAAS,CAAA,GAAI,SAAS,KAAM,CAAA,IAAA,GAAO,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,GAAG,CAAI,GAAA,CAAC,QAAW,KAAK,CAAA,CAAA;AACrF,EAAA,MAAM,WAAWK,0BAAY,EAAA,CAAA;AAC7B,EAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,iBAAY,EAAA,CAAA;AACnC,EAAM,MAAA,SAAA,GAAYC,yBAAY,MAAM,CAAA,CAAA;AAEpC,EAAM,MAAA,YAAA,GAAe,CAAC,GAAG,MAAM,EAAE,IAAK,CAAA,CAAC,GAAG,CAAM,KAAA;AAC9C,IAAA,OAAO,SAAc,KAAA,MAAA,GACjB,SAAU,CAAA,OAAA,CAAQ,EAAE,IAAM,EAAA,CAAA,CAAE,IAAI,CAAA,GAChC,SAAU,CAAA,OAAA,CAAQ,CAAE,CAAA,IAAA,EAAM,EAAE,IAAI,CAAA,CAAA;AAAA,GACrC,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,SAAA,EAAW,SAAW,EAAA,OAAA,EAAY,GAAA,WAAA,CAAA;AAE1C,EAAM,MAAA,cAAA,GAAiB,CAAC,EAAA,KAAgB,MAAM;AAC5C,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,UAAA,CAAW,uBAAyB,EAAA;AAAA,QAClC,SAAA;AAAA,OACD,CAAA,CAAA;AACD,MAAS,QAAA,CAAA,EAAA,CAAG,UAAU,CAAA,CAAA;AAAA,KACxB;AAAA,GACF,CAAA;AAEA,EACE,uBAAAJ,cAAA,CAACK,WAAU,CAAA,IAAA,EAAV,EAAe,OAAA,EAAkB,IAAM,EAAA,YAAA,EAAc,SACpD,EAAA,QAAA,kBAAAC,eAAA,CAACD,WAAU,CAAA,OAAA,EAAV,EACC,QAAA,EAAA;AAAA,oBAAAL,cAAA,CAACK,YAAU,IAAV,EAAA,EACE,QAAQ,EAAA,OAAA,CAAA,GAAA,CAAI,CAAC,MACZ,qBAAAL,cAAA,CAACK,WAAU,CAAA,UAAA,EAAV,EAAwC,GAAG,MAAA,EAAA,EAAjB,MAAO,CAAA,IAAkB,CACrD,CACH,EAAA,CAAA;AAAA,oBACAL,cAAA,CAACK,WAAU,CAAA,KAAA,EAAV,EAAgB,CAAA;AAAA,oBACjBL,cAAA,CAACK,WAAU,CAAA,OAAA,EAAV,EAAkB,CAAA;AAAA,mCAClBA,WAAU,CAAA,IAAA,EAAV,EACE,QAAA,EAAA,YAAA,CAAa,IAAI,CAAC,KAAA,qBAChBC,eAAA,CAAAD,WAAA,CAAU,KAAV,EAA6B,OAAA,EAAS,cAAe,CAAA,KAAA,CAAM,EAAE,CAC5D,EAAA,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAACK,WAAU,CAAA,IAAA,EAAV,EAAe,QAAA,EAAS,SACvB,QAAC,kBAAAL,cAAA,CAAAO,uBAAA,EAAA,EAAW,SAAU,EAAA,YAAA,EAAa,YAAW,MAAO,EAAA,QAAA,EAAQ,IAC1D,EAAA,QAAA,EAAA,KAAA,CAAM,MACT,CACF,EAAA,CAAA;AAAA,sBACCP,cAAA,CAAAK,WAAA,CAAU,IAAV,EAAA,EAAe,UAAS,OACvB,EAAA,QAAA,kBAAAL,cAAA,CAACO,uBAAW,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA,QAAA,EAAQ,IACxC,EAAA,QAAA,EAAA,KAAA,CAAM,aACT,CACF,EAAA,CAAA;AAAA,qCACCF,WAAU,CAAA,IAAA,EAAV,EACC,QAAA,kBAAAL,cAAA,CAACO,2BAAW,SAAU,EAAA,YAAA,EAEpB,QAAC,kBAAAP,cAAA,CAAA,YAAA,EAAA,EAAa,WAAW,IAAI,IAAA,CAAK,MAAM,SAAS,CAAA,EAAG,GACtD,CACF,EAAA,CAAA;AAAA,sBACAA,cAAA,CAACK,YAAU,IAAV,EAAA,EACE,gBAAM,UACL,oBAAAL,cAAA,CAACO,uBAAW,EAAA,EAAA,SAAA,EAAU,YACpB,EAAA,QAAA,kBAAAP,cAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,SAAW,EAAA,IAAI,IAAK,CAAA,KAAA,CAAM,UAAU,CAAA;AAAA,UACpC,eAAiB,EAAA;AAAA,YACf;AAAA,cACE,IAAM,EAAA,OAAA;AAAA,cACN,SAAW,EAAA,CAAA;AAAA,cACX,MAAM,aAAc,CAAA;AAAA,gBAClB,EAAI,EAAA,6BAAA;AAAA,gBACJ,cAAgB,EAAA,WAAA;AAAA,eACjB,CAAA;AAAA,aACH;AAAA,WACF;AAAA,SAAA;AAAA,SAEJ,CAEJ,EAAA,CAAA;AAAA,MACC,SAAA,IAAa,OAAW,IAAA,SAAA,mBACtBA,cAAA,CAAAK,WAAA,CAAU,MAAV,EACC,QAAA,kBAAAC,eAAA,CAACE,iBAAK,EAAA,EAAA,cAAA,EAAe,KAClB,EAAA,QAAA,EAAA;AAAA,QAAA,SAAA,mCAAc,YAAa,EAAA,EAAA,SAAA,EAAW,MAAM,IAAM,EAAA,OAAA,EAAS,MAAM,EAAI,EAAA,CAAA;AAAA,QACrE,SACC,oBAAAR,cAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,WAAW,KAAM,CAAA,IAAA;AAAA,YACjB,aAAe,EAAA,MAAM,eAAkB,GAAA,KAAA,CAAM,EAAE,CAAA;AAAA,YAC/C,SAAA;AAAA,WAAA;AAAA,SACF;AAAA,OAAA,EAEJ,GACF,CACE,GAAA,IAAA;AAAA,KAjDc,EAAA,EAAA,KAAA,CAAM,EAkD1B,CACD,CACH,EAAA,CAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA,CAAA;AAEJ,EAAA;AAMA,MAAM,YAAe,GAAA;AAAA,EACnB,IAAM,EAAA;AAAA,IACJ,EAAI,EAAA,0BAAA;AAAA,IACJ,cAAgB,EAAA,eAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,EAAI,EAAA,0BAAA;AAAA,IACJ,cAAgB,EAAA,eAAA;AAAA,GAClB;AACF,CAAA,CAAA;AASA,MAAM,gBAAgB,CAAC;AAAA,EACrB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAa,GAAA,MAAA;AAAA,EACb,QAAA;AACF,CAA0B,KAAA;AACxB,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIH,iBAAQ,EAAA,CAAA;AAElC,EACE,uBAAAG,cAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAAS,sBAAA;AAAA,MACL,EAAA,EAAI,QAAQ,QAAS,EAAA;AAAA,MACrB,OAAS,EAAA,CAAC,CAAwB,KAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,MACpD,KAAA,EAAO,cAAc,YAAa,CAAA,UAAU,GAAG,EAAE,MAAA,EAAQ,WAAW,CAAA;AAAA,MACpE,OAAQ,EAAA,OAAA;AAAA,MACR,IAAK,EAAA,GAAA;AAAA,MAEJ,QAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,gBAAA,GAAmBC,wBAAOC,uBAAU,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAY1C,MAAM,eAAe,CAAC,EAAE,SAAW,EAAA,aAAA,EAAe,WAAmC,KAAA;AACnF,EAAM,MAAA,EAAE,aAAc,EAAA,GAAId,iBAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,UAAW,EAAA,GAAIM,iBAAY,EAAA,CAAA;AACnC,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,UAAA,CAAW,iBAAmB,EAAA;AAAA,MAC5B,SAAA;AAAA,KACD,CAAA,CAAA;AACD,IAAc,aAAA,EAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,uBACGH,cAAA,CAAAY,mBAAA,CAAO,IAAP,EAAA,EACC,QAAC,kBAAAN,eAAA,CAAAO,gBAAA,EAAA,EAAW,WAAa,EAAA,CAAA,EAAG,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,iBAC5C,EAAA,QAAA,EAAA;AAAA,oBAACb,cAAA,CAAAY,mBAAA,CAAO,SAAP,EACC,QAAA,kBAAAZ,cAAA;AAAA,MAACc,uBAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,aAAA;AAAA,UACL;AAAA,YACE,EAAI,EAAA,sBAAA;AAAA,YACJ,cAAgB,EAAA,iBAAA;AAAA,WAClB;AAAA,UACA,EAAE,MAAA,EAAQ,CAAG,EAAA,SAAS,CAAG,CAAA,EAAA;AAAA,SAC3B;AAAA,QACA,IAAK,EAAA,QAAA;AAAA,QACL,OAAQ,EAAA,OAAA;AAAA,QAER,yCAACC,WAAM,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAEX,EAAA,CAAA;AAAA,oBACAf,cAAA,CAACgB,mBAAc,EAAA,EAAA,SAAA,EAAW,iBAAmB,EAAA,CAAA;AAAA,GAAA,EAC/C,CACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAOA,MAAM,YAAe,GAAA,CAAC,EAAE,SAAA,EAAW,SAA2B,KAAA;AAC5D,EAAA,sCACG,aAAc,EAAA,EAAA,SAAA,EAAsB,OACnC,EAAA,QAAA,kBAAAhB,cAAA,CAACiB,gBAAO,CACV,EAAA,CAAA,CAAA;AAEJ,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Table-1mVE67Cd.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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"}
|
|
@@ -4,10 +4,10 @@ import { Trash, Pencil } from '@strapi/icons';
|
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
5
|
import { useNavigate, NavLink } from 'react-router-dom';
|
|
6
6
|
import { styled } from 'styled-components';
|
|
7
|
-
import { T as Table$1, C as ConfirmDialog } from './index-
|
|
7
|
+
import { T as Table$1, C as ConfirmDialog } from './index-QPUYgtlo.mjs';
|
|
8
8
|
import * as React from 'react';
|
|
9
9
|
import { intervalToDuration, isPast } from 'date-fns';
|
|
10
|
-
import { o as useQueryParams, c as useTracking } from './Theme-
|
|
10
|
+
import { o as useQueryParams, c as useTracking } from './Theme-frC82ceE.mjs';
|
|
11
11
|
|
|
12
12
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
|
13
13
|
const RelativeTime = React.forwardRef(
|
|
@@ -174,4 +174,4 @@ const UpdateButton = ({ tokenName, tokenId }) => {
|
|
|
174
174
|
};
|
|
175
175
|
|
|
176
176
|
export { Table as T };
|
|
177
|
-
//# sourceMappingURL=Table-
|
|
177
|
+
//# sourceMappingURL=Table-wZgpqMG3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table-CylwfWGU.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-wZgpqMG3.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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"}
|
|
@@ -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-GZ-AP2T0.mjs';
|
|
12
12
|
import clone from 'lodash/clone';
|
|
13
13
|
import toPath from 'lodash/toPath';
|
|
14
14
|
import isEqual from 'lodash/isEqual';
|
|
@@ -1431,4 +1431,4 @@ const GlobalStyle = createGlobalStyle`
|
|
|
1431
1431
|
`;
|
|
1432
1432
|
|
|
1433
1433
|
export { AuthProvider as A, TrackingProvider as B, ConfigurationContextProvider as C, ConfigurationProvider as D, LANGUAGE_LOCAL_STORAGE_KEY as E, getIn as F, GuidedTourProvider as G, setIn as H, setLocale as I, useForgotPasswordMutation as J, useGetRegistrationInfoQuery as K, LanguageProvider as L, useRegisterAdminMutation as M, NotificationsProvider as N, useRegisterUserMutation as O, Page as P, useResetPasswordMutation as Q, RBAC as R, StrapiAppProvider as S, Theme as T, logout as U, THEME_LOCAL_STORAGE_KEY as V, useTypedStore 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, getStoredToken as t, useAuth as u, reducer$1 as v, AppInfoProvider as w, isObject as x, capitalise as y, createContext as z };
|
|
1434
|
-
//# sourceMappingURL=Theme-
|
|
1434
|
+
//# sourceMappingURL=Theme-frC82ceE.mjs.map
|