@strapi/admin 5.10.2 → 5.10.4
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/chunks/{AdminSeatInfo-Cw1ujAsZ.mjs → AdminSeatInfo-CQ4w8a3g.mjs} +3 -3
- package/dist/admin/chunks/{AdminSeatInfo-Cw1ujAsZ.mjs.map → AdminSeatInfo-CQ4w8a3g.mjs.map} +1 -1
- package/dist/admin/chunks/{AdminSeatInfo-BfPqdNN0.js → AdminSeatInfo-DZ4hBesy.js} +3 -3
- package/dist/admin/chunks/{AdminSeatInfo-BfPqdNN0.js.map → AdminSeatInfo-DZ4hBesy.js.map} +1 -1
- package/dist/admin/chunks/{ApplicationInfoPage-DIiAE-tT.js → ApplicationInfoPage-CsBvES_c.js} +5 -5
- package/dist/admin/chunks/{ApplicationInfoPage-DIiAE-tT.js.map → ApplicationInfoPage-CsBvES_c.js.map} +1 -1
- package/dist/admin/chunks/{ApplicationInfoPage-Ch6hKH4Y.mjs → ApplicationInfoPage-DiEcqVEU.mjs} +5 -5
- package/dist/admin/chunks/{ApplicationInfoPage-Ch6hKH4Y.mjs.map → ApplicationInfoPage-DiEcqVEU.mjs.map} +1 -1
- package/dist/admin/chunks/{AuthResponse-DI-Q1kQL.js → AuthResponse-Ch0hurir.js} +2 -2
- package/dist/admin/chunks/{AuthResponse-DI-Q1kQL.js.map → AuthResponse-Ch0hurir.js.map} +1 -1
- package/dist/admin/chunks/{AuthResponse-DFS6gVO4.mjs → AuthResponse-Cu7HgPEK.mjs} +2 -2
- package/dist/admin/chunks/{AuthResponse-DFS6gVO4.mjs.map → AuthResponse-Cu7HgPEK.mjs.map} +1 -1
- package/dist/admin/chunks/{AuthenticatedLayout-BNWCtSH2.mjs → AuthenticatedLayout-C9eZ12Ue.mjs} +10 -291
- package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +1 -0
- package/dist/admin/chunks/{AuthenticatedLayout-D067wUoO.js → AuthenticatedLayout-D_VSoB1l.js} +5 -286
- package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +1 -0
- package/dist/admin/chunks/{CreatePage-DojcQqvH.mjs → CreatePage-Cb-ETkOn.mjs} +5 -5
- package/dist/admin/chunks/{CreatePage-DojcQqvH.mjs.map → CreatePage-Cb-ETkOn.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-0PdN9Fyc.mjs → CreatePage-DQDa78K3.mjs} +4 -4
- package/dist/admin/chunks/{CreatePage-0PdN9Fyc.mjs.map → CreatePage-DQDa78K3.mjs.map} +1 -1
- package/dist/admin/chunks/{CreatePage-BK_ivKDk.js → CreatePage-DbmpFjHt.js} +4 -4
- package/dist/admin/chunks/{CreatePage-BK_ivKDk.js.map → CreatePage-DbmpFjHt.js.map} +1 -1
- package/dist/admin/chunks/{CreatePage-C8PMNi_P.js → CreatePage-DkzHz0zk.js} +5 -5
- package/dist/admin/chunks/{CreatePage-C8PMNi_P.js.map → CreatePage-DkzHz0zk.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-DtccbWiR.js → CreateView-CE4-drK6.js} +5 -5
- package/dist/admin/chunks/{CreateView-DtccbWiR.js.map → CreateView-CE4-drK6.js.map} +1 -1
- package/dist/admin/chunks/{CreateView-BuN2a7bo.mjs → CreateView-CmubtWzn.mjs} +5 -5
- package/dist/admin/chunks/{CreateView-BuN2a7bo.mjs.map → CreateView-CmubtWzn.mjs.map} +1 -1
- package/dist/admin/chunks/{CreateView-DB0xD4f5.mjs → CreateView-DZaIevIB.mjs} +5 -5
- package/dist/admin/chunks/{CreateView-DB0xD4f5.mjs.map → CreateView-DZaIevIB.mjs.map} +1 -1
- package/dist/admin/chunks/{CreateView-ITRNGoQ6.js → CreateView-yjsS9KUJ.js} +5 -5
- package/dist/admin/chunks/{CreateView-ITRNGoQ6.js.map → CreateView-yjsS9KUJ.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-BazkPM17.mjs → EditPage-Bjr4f1Bs.mjs} +5 -5
- package/dist/admin/chunks/{EditPage-BazkPM17.mjs.map → EditPage-Bjr4f1Bs.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-ibh8EtSv.js → EditPage-BrMhV8aB.js} +8 -8
- package/dist/admin/chunks/{EditPage-ibh8EtSv.js.map → EditPage-BrMhV8aB.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-BNZ90ISm.mjs → EditPage-C44OaxjN.mjs} +5 -5
- package/dist/admin/chunks/{EditPage-BNZ90ISm.mjs.map → EditPage-C44OaxjN.mjs.map} +1 -1
- package/dist/admin/chunks/{EditPage-r043NYgB.js → EditPage-CNaAuT5C.js} +5 -5
- package/dist/admin/chunks/{EditPage-r043NYgB.js.map → EditPage-CNaAuT5C.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-DiDSR0tz.js → EditPage-CycQlsFL.js} +5 -5
- package/dist/admin/chunks/{EditPage-DiDSR0tz.js.map → EditPage-CycQlsFL.js.map} +1 -1
- package/dist/admin/chunks/{EditPage-LRn1-C88.mjs → EditPage-MmQQ4hWc.mjs} +8 -8
- package/dist/admin/chunks/{EditPage-LRn1-C88.mjs.map → EditPage-MmQQ4hWc.mjs.map} +1 -1
- package/dist/admin/chunks/{EditView-DxmJI6e0.js → EditView-C9cKaoY1.js} +4 -4
- package/dist/admin/chunks/{EditView-DxmJI6e0.js.map → EditView-C9cKaoY1.js.map} +1 -1
- package/dist/admin/chunks/{EditView-CgMgqsza.mjs → EditView-CFIkvFrt.mjs} +4 -4
- package/dist/admin/chunks/{EditView-CgMgqsza.mjs.map → EditView-CFIkvFrt.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-BE_u8pQP.mjs → EditViewPage-CwdhHAuX.mjs} +4 -4
- package/dist/admin/chunks/{EditViewPage-BE_u8pQP.mjs.map → EditViewPage-CwdhHAuX.mjs.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-Bz4GEIsc.js → EditViewPage-DBga-70A.js} +4 -4
- package/dist/admin/chunks/{EditViewPage-Bz4GEIsc.js.map → EditViewPage-DBga-70A.js.map} +1 -1
- package/dist/admin/chunks/{EventsTable-CsFf4rOj.mjs → EventsTable-CeqMb1jP.mjs} +5 -5
- package/dist/admin/chunks/{EventsTable-CsFf4rOj.mjs.map → EventsTable-CeqMb1jP.mjs.map} +1 -1
- package/dist/admin/chunks/{EventsTable-CZY0aI5G.js → EventsTable-fkWvAMuL.js} +5 -5
- package/dist/admin/chunks/{EventsTable-CZY0aI5G.js.map → EventsTable-fkWvAMuL.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-ebJLhO6a.js → HomePage-B2skN1xt.js} +5 -5
- package/dist/admin/chunks/{HomePage-ebJLhO6a.js.map → HomePage-B2skN1xt.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-Df0YSqNE.js → HomePage-CVc0RfvD.js} +4 -4
- package/dist/admin/chunks/{HomePage-Df0YSqNE.js.map → HomePage-CVc0RfvD.js.map} +1 -1
- package/dist/admin/chunks/{HomePage-CFTx_SgI.mjs → HomePage-DGTeFboL.mjs} +4 -4
- package/dist/admin/chunks/{HomePage-CFTx_SgI.mjs.map → HomePage-DGTeFboL.mjs.map} +1 -1
- package/dist/admin/chunks/{HomePage-C2Sue0eX.mjs → HomePage-MfOqcIag.mjs} +5 -5
- package/dist/admin/chunks/{HomePage-C2Sue0eX.mjs.map → HomePage-MfOqcIag.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-B4gyKUHh.mjs → InstalledPlugins-5j7xjDqh.mjs} +3 -3
- package/dist/admin/chunks/{InstalledPlugins-B4gyKUHh.mjs.map → InstalledPlugins-5j7xjDqh.mjs.map} +1 -1
- package/dist/admin/chunks/{InstalledPlugins-BtwwVsQ_.js → InstalledPlugins-BXM3i3xr.js} +3 -3
- package/dist/admin/chunks/{InstalledPlugins-BtwwVsQ_.js.map → InstalledPlugins-BXM3i3xr.js.map} +1 -1
- package/dist/admin/chunks/{Layout-BZTqa7oj.js → Layout-DST1PxaO.js} +5 -5
- package/dist/admin/chunks/{Layout-BZTqa7oj.js.map → Layout-DST1PxaO.js.map} +1 -1
- package/dist/admin/chunks/{Layout-B_xkPr1q.mjs → Layout-DYjtK6iP.mjs} +5 -5
- package/dist/admin/chunks/{Layout-B_xkPr1q.mjs.map → Layout-DYjtK6iP.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-BtMdu1eQ.mjs → ListPage-B5Hb8BA-.mjs} +7 -7
- package/dist/admin/chunks/{ListPage-BtMdu1eQ.mjs.map → ListPage-B5Hb8BA-.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-Beh8uBDE.mjs → ListPage-BVI0O8bq.mjs} +3 -3
- package/dist/admin/chunks/{ListPage-Beh8uBDE.mjs.map → ListPage-BVI0O8bq.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-YW-UVjk3.js → ListPage-BgyypnOM.js} +7 -7
- package/dist/admin/chunks/{ListPage-YW-UVjk3.js.map → ListPage-BgyypnOM.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-CENQarKY.mjs → ListPage-BhGt3EBQ.mjs} +3 -3
- package/dist/admin/chunks/{ListPage-CENQarKY.mjs.map → ListPage-BhGt3EBQ.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-gKsEm3Px.js → ListPage-CLXy5r60.js} +5 -5
- package/dist/admin/chunks/{ListPage-gKsEm3Px.js.map → ListPage-CLXy5r60.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-Du6Jt5wY.js → ListPage-CWINpwfS.js} +7 -7
- package/dist/admin/chunks/{ListPage-Du6Jt5wY.js.map → ListPage-CWINpwfS.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-DgmOJv7H.js → ListPage-D21yUih2.js} +3 -3
- package/dist/admin/chunks/{ListPage-DgmOJv7H.js.map → ListPage-D21yUih2.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-LqcmQd_Q.js → ListPage-DbfL2rpi.js} +3 -3
- package/dist/admin/chunks/{ListPage-LqcmQd_Q.js.map → ListPage-DbfL2rpi.js.map} +1 -1
- package/dist/admin/chunks/{ListPage-r9rW__R8.mjs → ListPage-PwzVjSsA.mjs} +7 -7
- package/dist/admin/chunks/{ListPage-r9rW__R8.mjs.map → ListPage-PwzVjSsA.mjs.map} +1 -1
- package/dist/admin/chunks/{ListPage-Czwak48Z.mjs → ListPage-srJutHdv.mjs} +5 -5
- package/dist/admin/chunks/{ListPage-Czwak48Z.mjs.map → ListPage-srJutHdv.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-Q2AO0JSX.mjs → ListView--KzJiQiO.mjs} +4 -4
- package/dist/admin/chunks/{ListView-Q2AO0JSX.mjs.map → ListView--KzJiQiO.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-CajksON_.mjs → ListView-CoGoDDiF.mjs} +4 -4
- package/dist/admin/chunks/{ListView-CajksON_.mjs.map → ListView-CoGoDDiF.mjs.map} +1 -1
- package/dist/admin/chunks/{ListView-Bys8EN-y.js → ListView-DGfxO89i.js} +4 -4
- package/dist/admin/chunks/{ListView-Bys8EN-y.js.map → ListView-DGfxO89i.js.map} +1 -1
- package/dist/admin/chunks/{ListView-BfwBUxHL.js → ListView-DzwvQ8nW.js} +4 -4
- package/dist/admin/chunks/{ListView-BfwBUxHL.js.map → ListView-DzwvQ8nW.js.map} +1 -1
- package/dist/admin/chunks/{Login-5ByBaKI3.mjs → Login-Dtkhd0GV.mjs} +3 -3
- package/dist/admin/chunks/{Login-5ByBaKI3.mjs.map → Login-Dtkhd0GV.mjs.map} +1 -1
- package/dist/admin/chunks/{Login-BpEOnVbU.js → Login-Iw84AH9L.js} +3 -3
- package/dist/admin/chunks/{Login-BpEOnVbU.js.map → Login-Iw84AH9L.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-a-AbOB4s.js → MagicLinkEE-C5K8p8Rk.js} +5 -5
- package/dist/admin/chunks/{MagicLinkEE-a-AbOB4s.js.map → MagicLinkEE-C5K8p8Rk.js.map} +1 -1
- package/dist/admin/chunks/{MagicLinkEE-CiQG7NL3.mjs → MagicLinkEE-EcyHC46Y.mjs} +5 -5
- package/dist/admin/chunks/{MagicLinkEE-CiQG7NL3.mjs.map → MagicLinkEE-EcyHC46Y.mjs.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-my1nDaHy.js → MarketplacePage-BmqfuAvB.js} +3 -3
- package/dist/admin/chunks/{MarketplacePage-my1nDaHy.js.map → MarketplacePage-BmqfuAvB.js.map} +1 -1
- package/dist/admin/chunks/{MarketplacePage-BrHNQ8SG.mjs → MarketplacePage-CcAYozK2.mjs} +3 -3
- package/dist/admin/chunks/{MarketplacePage-BrHNQ8SG.mjs.map → MarketplacePage-CcAYozK2.mjs.map} +1 -1
- package/dist/admin/chunks/{Permissions-C7FA_7J9.js → Permissions-D6qH78lN.js} +2 -2
- package/dist/admin/chunks/{Permissions-C7FA_7J9.js.map → Permissions-D6qH78lN.js.map} +1 -1
- package/dist/admin/chunks/{Permissions-CuLck8vw.mjs → Permissions-rJmE3qb1.mjs} +2 -2
- package/dist/admin/chunks/{Permissions-CuLck8vw.mjs.map → Permissions-rJmE3qb1.mjs.map} +1 -1
- package/dist/admin/chunks/{PrivateRoute-BnxIlIDb.js → PrivateRoute-DvGSyomB.js} +2 -2
- package/dist/admin/chunks/{PrivateRoute-BnxIlIDb.js.map → PrivateRoute-DvGSyomB.js.map} +1 -1
- package/dist/admin/chunks/{PrivateRoute-BYKd2yE4.mjs → PrivateRoute-KL_RhoV8.mjs} +2 -2
- package/dist/admin/chunks/{PrivateRoute-BYKd2yE4.mjs.map → PrivateRoute-KL_RhoV8.mjs.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-Do6nPMsx.mjs → ProfilePage-CN8SAQ9w.mjs} +4 -4
- package/dist/admin/chunks/{ProfilePage-Do6nPMsx.mjs.map → ProfilePage-CN8SAQ9w.mjs.map} +1 -1
- package/dist/admin/chunks/{ProfilePage-C8zWtYzY.js → ProfilePage-DiGV7o6c.js} +4 -4
- package/dist/admin/chunks/{ProfilePage-C8zWtYzY.js.map → ProfilePage-DiGV7o6c.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-McvZESGI.mjs → PurchaseAuditLogs-BI41XTBD.mjs} +3 -3
- package/dist/admin/chunks/{PurchaseAuditLogs-McvZESGI.mjs.map → PurchaseAuditLogs-BI41XTBD.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseAuditLogs-BTAi887h.js → PurchaseAuditLogs-DnWVbru3.js} +3 -3
- package/dist/admin/chunks/{PurchaseAuditLogs-BTAi887h.js.map → PurchaseAuditLogs-DnWVbru3.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-pb7RDvhZ.mjs → PurchaseContentHistory-BzC2C4Pv.mjs} +3 -3
- package/dist/admin/chunks/{PurchaseContentHistory-pb7RDvhZ.mjs.map → PurchaseContentHistory-BzC2C4Pv.mjs.map} +1 -1
- package/dist/admin/chunks/{PurchaseContentHistory-dfepsahq.js → PurchaseContentHistory-DUk7otrp.js} +3 -3
- package/dist/admin/chunks/{PurchaseContentHistory-dfepsahq.js.map → PurchaseContentHistory-DUk7otrp.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-Dgal5RnY.js → PurchaseSingleSignOn-Bq0YHAHt.js} +3 -3
- package/dist/admin/chunks/{PurchaseSingleSignOn-Dgal5RnY.js.map → PurchaseSingleSignOn-Bq0YHAHt.js.map} +1 -1
- package/dist/admin/chunks/{PurchaseSingleSignOn-BUB9Irlt.mjs → PurchaseSingleSignOn-G1TKPP15.mjs} +3 -3
- package/dist/admin/chunks/{PurchaseSingleSignOn-BUB9Irlt.mjs.map → PurchaseSingleSignOn-G1TKPP15.mjs.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-Clx1_4zB.js → SelectRoles-CKInlnSd.js} +4 -4
- package/dist/admin/chunks/{SelectRoles-Clx1_4zB.js.map → SelectRoles-CKInlnSd.js.map} +1 -1
- package/dist/admin/chunks/{SelectRoles-CG3Czm0u.mjs → SelectRoles-DR4KBZkw.mjs} +4 -4
- package/dist/admin/chunks/{SelectRoles-CG3Czm0u.mjs.map → SelectRoles-DR4KBZkw.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-Bqn13t3u.mjs → SingleSignOnPage-CRzrEUGp.mjs} +4 -4
- package/dist/admin/chunks/{SingleSignOnPage-Bqn13t3u.mjs.map → SingleSignOnPage-CRzrEUGp.mjs.map} +1 -1
- package/dist/admin/chunks/{SingleSignOnPage-DqHWnXWQ.js → SingleSignOnPage-DtRVlrGP.js} +4 -4
- package/dist/admin/chunks/{SingleSignOnPage-DqHWnXWQ.js.map → SingleSignOnPage-DtRVlrGP.js.map} +1 -1
- package/dist/admin/chunks/{Table-Ra6bYcx7.mjs → Table-BohVeu0r.mjs} +3 -3
- package/dist/admin/chunks/{Table-Ra6bYcx7.mjs.map → Table-BohVeu0r.mjs.map} +1 -1
- package/dist/admin/chunks/{Table-BHi0q5It.js → Table-CBZnqMuN.js} +3 -3
- package/dist/admin/chunks/{Table-BHi0q5It.js.map → Table-CBZnqMuN.js.map} +1 -1
- package/dist/admin/chunks/{Theme-CDaBfQ-7.mjs → Theme-C3oHrQcy.mjs} +6 -4
- package/dist/admin/chunks/Theme-C3oHrQcy.mjs.map +1 -0
- package/dist/admin/chunks/{Theme-CFGbtvHi.js → Theme-DDlJz91O.js} +6 -3
- package/dist/admin/chunks/Theme-DDlJz91O.js.map +1 -0
- package/dist/admin/chunks/{TokenTypeSelect-EY1WftKo.js → TokenTypeSelect-BV_ZNiY_.js} +3 -3
- package/dist/admin/chunks/{TokenTypeSelect-EY1WftKo.js.map → TokenTypeSelect-BV_ZNiY_.js.map} +1 -1
- package/dist/admin/chunks/{TokenTypeSelect-BIRgChNx.mjs → TokenTypeSelect-CpEAVZ_b.mjs} +3 -3
- package/dist/admin/chunks/{TokenTypeSelect-BIRgChNx.mjs.map → TokenTypeSelect-CpEAVZ_b.mjs.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-Y_h0Fbiv.mjs → UseCasePage-Bro5fyP3.mjs} +4 -4
- package/dist/admin/chunks/{UseCasePage-Y_h0Fbiv.mjs.map → UseCasePage-Bro5fyP3.mjs.map} +1 -1
- package/dist/admin/chunks/{UseCasePage-Dl-WfgYc.js → UseCasePage-CipG2GC4.js} +4 -4
- package/dist/admin/chunks/{UseCasePage-Dl-WfgYc.js.map → UseCasePage-CipG2GC4.js.map} +1 -1
- package/dist/admin/chunks/{constants-DoArvzRr.mjs → constants-BddeukI7.mjs} +3 -3
- package/dist/admin/chunks/{constants-DoArvzRr.mjs.map → constants-BddeukI7.mjs.map} +1 -1
- package/dist/admin/chunks/{constants-DClZ3JYF.js → constants-CaerHoe3.js} +3 -3
- package/dist/admin/chunks/{constants-DClZ3JYF.js.map → constants-CaerHoe3.js.map} +1 -1
- package/dist/admin/chunks/en-GB-3SrHvAFz.mjs +6 -0
- package/dist/admin/chunks/en-GB-3SrHvAFz.mjs.map +1 -0
- package/dist/admin/chunks/en-GB-Cc-PTeUP.js +8 -0
- package/dist/admin/chunks/en-GB-Cc-PTeUP.js.map +1 -0
- package/dist/admin/chunks/{en-CRu3-kTC.mjs → en-n340Bke8.mjs} +2 -1
- package/dist/admin/chunks/{en-CRu3-kTC.mjs.map → en-n340Bke8.mjs.map} +1 -1
- package/dist/admin/chunks/{en-CJjqxA2Q.js → en-rWmm12oE.js} +2 -1
- package/dist/admin/chunks/{en-CJjqxA2Q.js.map → en-rWmm12oE.js.map} +1 -1
- package/dist/admin/chunks/{index-BUGouNML.mjs → index-BM8-DG5K.mjs} +56 -36
- package/dist/admin/chunks/index-BM8-DG5K.mjs.map +1 -0
- package/dist/admin/chunks/{index-D7OmC33R.js → index-HGaughzt.js} +56 -36
- package/dist/admin/chunks/index-HGaughzt.js.map +1 -0
- package/dist/admin/chunks/{selectors-2ohXQx5g.js → selectors-Bf-6Fmez.js} +2 -2
- package/dist/admin/chunks/{selectors-2ohXQx5g.js.map → selectors-Bf-6Fmez.js.map} +1 -1
- package/dist/admin/chunks/{selectors-PQdhPmzv.mjs → selectors-Dej_6h4x.mjs} +2 -2
- package/dist/admin/chunks/{selectors-PQdhPmzv.mjs.map → selectors-Dej_6h4x.mjs.map} +1 -1
- package/dist/admin/chunks/{useAdminRoles-BEmkB0uj.mjs → useAdminRoles-C6Es4UUq.mjs} +2 -2
- package/dist/admin/chunks/{useAdminRoles-BEmkB0uj.mjs.map → useAdminRoles-C6Es4UUq.mjs.map} +1 -1
- package/dist/admin/chunks/{useAdminRoles-DwDqOIvp.js → useAdminRoles-_4HKisJz.js} +2 -2
- package/dist/admin/chunks/{useAdminRoles-DwDqOIvp.js.map → useAdminRoles-_4HKisJz.js.map} +1 -1
- package/dist/admin/chunks/{useLicenseLimitNotification-CGkazzao.mjs → useLicenseLimitNotification-DbPhRccK.mjs} +2 -2
- package/dist/admin/chunks/{useLicenseLimitNotification-CGkazzao.mjs.map → useLicenseLimitNotification-DbPhRccK.mjs.map} +1 -1
- package/dist/admin/chunks/{useLicenseLimitNotification-BMCQ8obE.js → useLicenseLimitNotification-iuozPic9.js} +2 -2
- package/dist/admin/chunks/{useLicenseLimitNotification-BMCQ8obE.js.map → useLicenseLimitNotification-iuozPic9.js.map} +1 -1
- package/dist/admin/chunks/{validation-DOQs6_Ay.mjs → validation-Dmvl0gZQ.mjs} +8 -2
- package/dist/admin/chunks/validation-Dmvl0gZQ.mjs.map +1 -0
- package/dist/admin/chunks/{validation-ECrFbJ6K.js → validation-dPl3P7dv.js} +8 -2
- package/dist/admin/chunks/validation-dPl3P7dv.js.map +1 -0
- package/dist/admin/index.js +2 -2
- package/dist/admin/index.mjs +2 -2
- package/dist/admin/src/features/Configuration.d.ts +1 -3
- package/dist/admin/src/utils/strings.d.ts +2 -1
- package/dist/admin/test.js +1 -2
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +1 -2
- package/dist/admin/test.mjs.map +1 -1
- package/dist/server/index.js +23 -9
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +23 -9
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/routes/authentication.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +0 -1
- package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +0 -1
- package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +0 -1
- package/dist/admin/chunks/Theme-CFGbtvHi.js.map +0 -1
- package/dist/admin/chunks/en-GB-CMP_CCZs.js +0 -8
- package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +0 -1
- package/dist/admin/chunks/en-GB-DZyWkup_.mjs +0 -6
- package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +0 -1
- package/dist/admin/chunks/index-BUGouNML.mjs.map +0 -1
- package/dist/admin/chunks/index-D7OmC33R.js.map +0 -1
- package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +0 -1
- package/dist/admin/chunks/validation-ECrFbJ6K.js.map +0 -1
- package/dist/admin/src/components/Onboarding.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationInfoPage-Ch6hKH4Y.mjs","sources":["../../../admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.ts","../../../admin/src/pages/Settings/pages/ApplicationInfo/utils/files.ts","../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx","../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["export const DIMENSION = 750;\nexport const SIZE = 100;\nexport const ACCEPTED_FORMAT = ['image/jpeg', 'image/png', 'image/svg+xml'];\n","import { ACCEPTED_FORMAT, DIMENSION, SIZE } from './constants';\n\nimport type { MessageDescriptor } from 'react-intl';\n\nconst FILE_FORMAT_ERROR_MESSAGE = {\n id: 'Settings.application.customization.modal.upload.error-format',\n defaultMessage: 'Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg).',\n};\n\nconst FILE_SIZING_ERROR_MESSAGE = {\n id: 'Settings.application.customization.modal.upload.error-size',\n defaultMessage:\n 'The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)',\n};\n\ninterface ImageDimensions {\n height: number;\n width: number;\n}\n\ninterface ImageAsset extends ImageDimensions {\n ext: string | undefined;\n size: number;\n name: string;\n url: string;\n rawFile: File;\n}\n\nconst parseFileMetadatas = async (file: File): Promise<ImageAsset> => {\n const isFormatAuthorized = ACCEPTED_FORMAT.includes(file.type);\n\n if (!isFormatAuthorized) {\n throw new ParsingFileError('File format', FILE_FORMAT_ERROR_MESSAGE);\n }\n\n const fileDimensions = await new Promise<ImageDimensions>((resolve) => {\n const reader = new FileReader();\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.width, height: img.height });\n };\n img.src = reader.result as string;\n };\n reader.readAsDataURL(file);\n });\n\n const areDimensionsAuthorized =\n fileDimensions.width <= DIMENSION && fileDimensions.height <= DIMENSION;\n\n if (!areDimensionsAuthorized) {\n throw new ParsingFileError('File sizing', FILE_SIZING_ERROR_MESSAGE);\n }\n\n const asset = {\n ext: file.name.split('.').pop(),\n size: file.size / 1000,\n name: file.name,\n url: URL.createObjectURL(file),\n rawFile: file,\n width: fileDimensions.width,\n height: fileDimensions.height,\n };\n\n const isSizeAuthorized = asset.size <= SIZE;\n\n if (!isSizeAuthorized) {\n throw new ParsingFileError('File sizing', FILE_SIZING_ERROR_MESSAGE);\n }\n\n return asset;\n};\n\nclass ParsingFileError extends Error {\n displayMessage: MessageDescriptor;\n\n constructor(message: string, displayMessage: MessageDescriptor, options?: ErrorOptions) {\n super(message, options);\n this.displayMessage = displayMessage;\n }\n}\n\nexport { parseFileMetadatas, ParsingFileError };\nexport type { ImageAsset };\n","import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n const file = new File([res.data], res.config.url ?? '', {\n type: res.headers['content-type'],\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link href=\"https://strapi.io/pricing-self-hosted\" endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["DIMENSION","SIZE","ACCEPTED_FORMAT","FILE_FORMAT_ERROR_MESSAGE","id","defaultMessage","FILE_SIZING_ERROR_MESSAGE","parseFileMetadatas","file","isFormatAuthorized","includes","type","ParsingFileError","fileDimensions","Promise","resolve","reader","FileReader","onload","img","Image","width","height","src","result","readAsDataURL","areDimensionsAuthorized","asset","ext","name","split","pop","size","url","URL","createObjectURL","rawFile","isSizeAuthorized","Error","constructor","message","displayMessage","options","LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","actions","CarouselActions","Trigger","IconButton","disabled","onClick","Plus","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","File","config","headers","err","AxiosError","dimension","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","aria-hidden","Typography","htmlFor","FileInput","accept","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","toUpperCase","CardBadge","AdminSeatInfoCE","ApplicationInfoPage","trackUsage","useTracking","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","allowedActions","canRead","useRBAC","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","Layouts","Page","Main","title","subtitle","primaryAction","startIcon","Check","shadow","Grid","Item","col","s","Link","href","endIcon","ExternalLink","default"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApplicationInfoPage-DiEcqVEU.mjs","sources":["../../../admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.ts","../../../admin/src/pages/Settings/pages/ApplicationInfo/utils/files.ts","../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx","../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["export const DIMENSION = 750;\nexport const SIZE = 100;\nexport const ACCEPTED_FORMAT = ['image/jpeg', 'image/png', 'image/svg+xml'];\n","import { ACCEPTED_FORMAT, DIMENSION, SIZE } from './constants';\n\nimport type { MessageDescriptor } from 'react-intl';\n\nconst FILE_FORMAT_ERROR_MESSAGE = {\n id: 'Settings.application.customization.modal.upload.error-format',\n defaultMessage: 'Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg).',\n};\n\nconst FILE_SIZING_ERROR_MESSAGE = {\n id: 'Settings.application.customization.modal.upload.error-size',\n defaultMessage:\n 'The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)',\n};\n\ninterface ImageDimensions {\n height: number;\n width: number;\n}\n\ninterface ImageAsset extends ImageDimensions {\n ext: string | undefined;\n size: number;\n name: string;\n url: string;\n rawFile: File;\n}\n\nconst parseFileMetadatas = async (file: File): Promise<ImageAsset> => {\n const isFormatAuthorized = ACCEPTED_FORMAT.includes(file.type);\n\n if (!isFormatAuthorized) {\n throw new ParsingFileError('File format', FILE_FORMAT_ERROR_MESSAGE);\n }\n\n const fileDimensions = await new Promise<ImageDimensions>((resolve) => {\n const reader = new FileReader();\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.width, height: img.height });\n };\n img.src = reader.result as string;\n };\n reader.readAsDataURL(file);\n });\n\n const areDimensionsAuthorized =\n fileDimensions.width <= DIMENSION && fileDimensions.height <= DIMENSION;\n\n if (!areDimensionsAuthorized) {\n throw new ParsingFileError('File sizing', FILE_SIZING_ERROR_MESSAGE);\n }\n\n const asset = {\n ext: file.name.split('.').pop(),\n size: file.size / 1000,\n name: file.name,\n url: URL.createObjectURL(file),\n rawFile: file,\n width: fileDimensions.width,\n height: fileDimensions.height,\n };\n\n const isSizeAuthorized = asset.size <= SIZE;\n\n if (!isSizeAuthorized) {\n throw new ParsingFileError('File sizing', FILE_SIZING_ERROR_MESSAGE);\n }\n\n return asset;\n};\n\nclass ParsingFileError extends Error {\n displayMessage: MessageDescriptor;\n\n constructor(message: string, displayMessage: MessageDescriptor, options?: ErrorOptions) {\n super(message, options);\n this.displayMessage = displayMessage;\n }\n}\n\nexport { parseFileMetadatas, ParsingFileError };\nexport type { ImageAsset };\n","import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n const file = new File([res.data], res.config.url ?? '', {\n type: res.headers['content-type'],\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link href=\"https://strapi.io/pricing-self-hosted\" endIcon={<ExternalLink />}>\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </Layouts.Root>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["DIMENSION","SIZE","ACCEPTED_FORMAT","FILE_FORMAT_ERROR_MESSAGE","id","defaultMessage","FILE_SIZING_ERROR_MESSAGE","parseFileMetadatas","file","isFormatAuthorized","includes","type","ParsingFileError","fileDimensions","Promise","resolve","reader","FileReader","onload","img","Image","width","height","src","result","readAsDataURL","areDimensionsAuthorized","asset","ext","name","split","pop","size","url","URL","createObjectURL","rawFile","isSizeAuthorized","Error","constructor","message","displayMessage","options","LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","actions","CarouselActions","Trigger","IconButton","disabled","onClick","Plus","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","File","config","headers","err","AxiosError","dimension","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","aria-hidden","Typography","htmlFor","FileInput","accept","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","toUpperCase","CardBadge","AdminSeatInfoCE","ApplicationInfoPage","trackUsage","useTracking","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","allowedActions","canRead","useRBAC","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","Layouts","Page","Main","title","subtitle","primaryAction","startIcon","Check","shadow","Grid","Item","col","s","Link","href","endIcon","ExternalLink","default"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var reactIntl = require('react-intl');
|
|
6
6
|
var reactRouterDom = require('react-router-dom');
|
|
7
|
-
var Theme = require('./Theme-
|
|
7
|
+
var Theme = require('./Theme-DDlJz91O.js');
|
|
8
8
|
require('@radix-ui/react-context');
|
|
9
9
|
require('@strapi/design-system');
|
|
10
10
|
require('@strapi/icons');
|
|
@@ -105,4 +105,4 @@ const AuthResponse = ()=>{
|
|
|
105
105
|
};
|
|
106
106
|
|
|
107
107
|
exports.AuthResponse = AuthResponse;
|
|
108
|
-
//# sourceMappingURL=AuthResponse-
|
|
108
|
+
//# sourceMappingURL=AuthResponse-Ch0hurir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthResponse-
|
|
1
|
+
{"version":3,"file":"AuthResponse-Ch0hurir.js","sources":["../../../ee/admin/src/utils/cookies.ts","../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["export const getCookieValue = (name: string) => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key.trim() === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\nexport const deleteCookie = (name: string) => {\n // Set the cookie to expire in the past\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n};\n","import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue, deleteCookie } from '../utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n deleteCookie('jwtToken');\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["getCookieValue","name","result","cookieArray","document","cookie","split","forEach","key","value","map","item","trim","decodeURIComponent","deleteCookie","AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,iBAAiB,CAACC,IAAAA,GAAAA;AAC7B,IAAA,IAAIC,MAAS,GAAA,IAAA;AACb,IAAA,MAAMC,WAAcC,GAAAA,QAAAA,CAASC,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA;IAC1CH,WAAYI,CAAAA,OAAO,CAAC,CAACF,MAAAA,GAAAA;AACnB,QAAA,MAAM,CAACG,GAAAA,EAAKC,KAAM,CAAA,GAAGJ,MAAOC,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKI,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,IAAI,EAAA,CAAA;QAC9D,IAAIJ,GAAAA,CAAII,IAAI,EAAA,KAAOX,IAAM,EAAA;AACvBC,YAAAA,MAAAA,GAASW,kBAAmBJ,CAAAA,KAAAA,CAAAA;AAC9B;AACF,KAAA,CAAA;IACA,OAAOP,MAAAA;AACT,CAAE;AAEK,MAAMY,eAAe,CAACb,IAAAA,GAAAA;;IAE3BG,QAASC,CAAAA,MAAM,GAAGJ,IAAO,GAAA,mDAAA;AAC3B,CAAE;;ACLF,MAAMc,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,uBAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,sBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,gBAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA,CAAA,CACA;AACJ,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,gBAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWnC,cAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAImC,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEc,WAAM,CAAA;oBACJC,KAAOF,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFrB,YAAa,CAAA,UAAA,CAAA;gBAEbM,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOkB,cAAA,CAACC,WAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useIntl } from 'react-intl';
|
|
4
4
|
import { useMatch, useNavigate } from 'react-router-dom';
|
|
5
|
-
import { d as useTypedDispatch, P as Page, o as login } from './Theme-
|
|
5
|
+
import { d as useTypedDispatch, P as Page, o as login } from './Theme-C3oHrQcy.mjs';
|
|
6
6
|
import '@radix-ui/react-context';
|
|
7
7
|
import '@strapi/design-system';
|
|
8
8
|
import '@strapi/icons';
|
|
@@ -84,4 +84,4 @@ const AuthResponse = ()=>{
|
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
export { AuthResponse };
|
|
87
|
-
//# sourceMappingURL=AuthResponse-
|
|
87
|
+
//# sourceMappingURL=AuthResponse-Cu7HgPEK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthResponse-
|
|
1
|
+
{"version":3,"file":"AuthResponse-Cu7HgPEK.mjs","sources":["../../../ee/admin/src/utils/cookies.ts","../../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["export const getCookieValue = (name: string) => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key.trim() === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\nexport const deleteCookie = (name: string) => {\n // Set the cookie to expire in the past\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n};\n","import * as React from 'react';\n\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useTypedDispatch } from '../../../../admin/src/core/store/hooks';\nimport { login } from '../../../../admin/src/reducer';\nimport { getCookieValue, deleteCookie } from '../utils/cookies';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const dispatch = useTypedDispatch();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = getCookieValue('jwtToken');\n\n if (jwtToken) {\n dispatch(\n login({\n token: jwtToken,\n })\n );\n\n deleteCookie('jwtToken');\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [dispatch, match, redirectToOops, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["getCookieValue","name","result","cookieArray","document","cookie","split","forEach","key","value","map","item","trim","decodeURIComponent","deleteCookie","AuthResponse","match","useMatch","formatMessage","useIntl","navigate","useNavigate","dispatch","useTypedDispatch","redirectToOops","React","useCallback","pathname","search","encodeURIComponent","id","defaultMessage","useEffect","params","authResponse","jwtToken","login","token","_jsx","Page","Loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,iBAAiB,CAACC,IAAAA,GAAAA;AAC7B,IAAA,IAAIC,MAAS,GAAA,IAAA;AACb,IAAA,MAAMC,WAAcC,GAAAA,QAAAA,CAASC,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA;IAC1CH,WAAYI,CAAAA,OAAO,CAAC,CAACF,MAAAA,GAAAA;AACnB,QAAA,MAAM,CAACG,GAAAA,EAAKC,KAAM,CAAA,GAAGJ,MAAOC,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKI,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,IAAI,EAAA,CAAA;QAC9D,IAAIJ,GAAAA,CAAII,IAAI,EAAA,KAAOX,IAAM,EAAA;AACvBC,YAAAA,MAAAA,GAASW,kBAAmBJ,CAAAA,KAAAA,CAAAA;AAC9B;AACF,KAAA,CAAA;IACA,OAAOP,MAAAA;AACT,CAAE;AAEK,MAAMY,eAAe,CAACb,IAAAA,GAAAA;;IAE3BG,QAASC,CAAAA,MAAM,GAAGJ,IAAO,GAAA,mDAAA;AAC3B,CAAE;;ACLF,MAAMc,YAAe,GAAA,IAAA;AACnB,IAAA,MAAMC,QAAQC,QAAS,CAAA,2BAAA,CAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,gBAAAA,EAAAA;IAEjB,MAAMC,cAAAA,GAAiBC,KAAMC,CAAAA,WAAW,CAAC,IAAA;QACvCN,QAAS,CAAA;YACPO,QAAU,EAAA,YAAA;AACVC,YAAAA,MAAAA,EAAQ,CAAC,MAAM,EAAEC,kBAAAA,CACfX,aAAc,CAAA;gBACZY,EAAI,EAAA,wCAAA;gBACJC,cAAgB,EAAA;AAClB,aAAA,CAAA,CAAA,CACA;AACJ,SAAA,CAAA;KACC,EAAA;AAACX,QAAAA,QAAAA;AAAUF,QAAAA;AAAc,KAAA,CAAA;AAE5BO,IAAAA,KAAAA,CAAMO,SAAS,CAAC,IAAA;QACd,IAAIhB,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,OAAS,EAAA;AAC1CV,YAAAA,cAAAA,EAAAA;AACF;QAEA,IAAIR,KAAAA,EAAOiB,MAAOC,CAAAA,YAAAA,KAAiB,SAAW,EAAA;AAC5C,YAAA,MAAMC,WAAWnC,cAAe,CAAA,UAAA,CAAA;AAEhC,YAAA,IAAImC,QAAU,EAAA;AACZb,gBAAAA,QAAAA,CACEc,KAAM,CAAA;oBACJC,KAAOF,EAAAA;AACT,iBAAA,CAAA,CAAA;gBAGFrB,YAAa,CAAA,UAAA,CAAA;gBAEbM,QAAS,CAAA,aAAA,CAAA;aACJ,MAAA;AACLI,gBAAAA,cAAAA,EAAAA;AACF;AACF;KACC,EAAA;AAACF,QAAAA,QAAAA;AAAUN,QAAAA,KAAAA;AAAOQ,QAAAA,cAAAA;AAAgBJ,QAAAA;AAAS,KAAA,CAAA;IAE9C,qBAAOkB,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;;;;"}
|