@strapi/admin 5.0.0-beta.0 → 5.0.0-beta.10
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-Bbq8UNek.mjs +92 -0
- package/dist/admin/AdminSeatInfo-Bbq8UNek.mjs.map +1 -0
- package/dist/admin/AdminSeatInfo-pe7_J25t.js +96 -0
- package/dist/admin/AdminSeatInfo-pe7_J25t.js.map +1 -0
- package/dist/admin/ApplicationInfoPage-S_AoXyUe.js +658 -0
- package/dist/admin/ApplicationInfoPage-S_AoXyUe.js.map +1 -0
- package/dist/admin/ApplicationInfoPage-bfXW7lrq.mjs +631 -0
- package/dist/admin/ApplicationInfoPage-bfXW7lrq.mjs.map +1 -0
- package/dist/admin/AuthResponse-BJbG4S2h.js +81 -0
- package/dist/admin/AuthResponse-BJbG4S2h.js.map +1 -0
- package/dist/admin/AuthResponse-CTQ0fh3I.mjs +57 -0
- package/dist/admin/AuthResponse-CTQ0fh3I.mjs.map +1 -0
- package/dist/admin/AuthenticatedLayout-lXbF2KKJ.mjs +1160 -0
- package/dist/admin/AuthenticatedLayout-lXbF2KKJ.mjs.map +1 -0
- package/dist/admin/AuthenticatedLayout-s7jnYVG9.js +1192 -0
- package/dist/admin/AuthenticatedLayout-s7jnYVG9.js.map +1 -0
- package/dist/admin/ContentBox-3MRTNw0X.js +43 -0
- package/dist/admin/ContentBox-3MRTNw0X.js.map +1 -0
- package/dist/admin/ContentBox-9LBDzws0.mjs +41 -0
- package/dist/admin/ContentBox-9LBDzws0.mjs.map +1 -0
- package/dist/admin/CreateActionEE-Yfp4hs7a.mjs +49 -0
- package/dist/admin/CreateActionEE-Yfp4hs7a.mjs.map +1 -0
- package/dist/admin/CreateActionEE-uqyKLxwI.js +76 -0
- package/dist/admin/CreateActionEE-uqyKLxwI.js.map +1 -0
- package/dist/admin/CreatePage-4gOQVUMq.mjs +13 -0
- package/dist/admin/CreatePage-4gOQVUMq.mjs.map +1 -0
- package/dist/admin/CreatePage-6pIItf4z.mjs +243 -0
- package/dist/admin/CreatePage-6pIItf4z.mjs.map +1 -0
- package/dist/admin/CreatePage-s23BIVXe.js +18 -0
- package/dist/admin/CreatePage-s23BIVXe.js.map +1 -0
- package/dist/admin/CreatePage-uWZ7dxp6.js +269 -0
- package/dist/admin/CreatePage-uWZ7dxp6.js.map +1 -0
- package/dist/admin/CreateView-3cLNRlgO.mjs +13 -0
- package/dist/admin/CreateView-3cLNRlgO.mjs.map +1 -0
- package/dist/admin/CreateView-DNHRcJsj.js +17 -0
- package/dist/admin/CreateView-DNHRcJsj.js.map +1 -0
- package/dist/admin/CreateView-JQYIo77z.js +17 -0
- package/dist/admin/CreateView-JQYIo77z.js.map +1 -0
- package/dist/admin/CreateView-aMz4KfSZ.mjs +13 -0
- package/dist/admin/CreateView-aMz4KfSZ.mjs.map +1 -0
- package/dist/admin/EditPage-24cGvUbV.js +297 -0
- package/dist/admin/EditPage-24cGvUbV.js.map +1 -0
- package/dist/admin/EditPage-JPZ7c-8x.mjs +737 -0
- package/dist/admin/EditPage-JPZ7c-8x.mjs.map +1 -0
- package/dist/admin/EditPage-Wpz4YmVY.js +351 -0
- package/dist/admin/EditPage-Wpz4YmVY.js.map +1 -0
- package/dist/admin/EditPage-tUvaZzFe.mjs +322 -0
- package/dist/admin/EditPage-tUvaZzFe.mjs.map +1 -0
- package/dist/admin/EditPage-tmpterlY.mjs +271 -0
- package/dist/admin/EditPage-tmpterlY.mjs.map +1 -0
- package/dist/admin/EditPage-wGJLuMsP.js +762 -0
- package/dist/admin/EditPage-wGJLuMsP.js.map +1 -0
- package/dist/admin/EditView-HjYkw6Y_.mjs +332 -0
- package/dist/admin/EditView-HjYkw6Y_.mjs.map +1 -0
- package/dist/admin/EditView-ul5nHrFh.js +358 -0
- package/dist/admin/EditView-ul5nHrFh.js.map +1 -0
- package/dist/admin/EditViewPage-bnTbQJ_O.mjs +817 -0
- package/dist/admin/EditViewPage-bnTbQJ_O.mjs.map +1 -0
- package/dist/admin/EditViewPage-c3DI4uzU.js +849 -0
- package/dist/admin/EditViewPage-c3DI4uzU.js.map +1 -0
- package/dist/admin/EventsTable-7--SHloR.js +36 -0
- package/dist/admin/EventsTable-7--SHloR.js.map +1 -0
- package/dist/admin/EventsTable-XUKqJdnX.mjs +32 -0
- package/dist/admin/EventsTable-XUKqJdnX.mjs.map +1 -0
- package/dist/admin/HomePage--Mskxb9Z.mjs +579 -0
- package/dist/admin/HomePage--Mskxb9Z.mjs.map +1 -0
- package/dist/admin/HomePage-Xrg1dR_D.js +604 -0
- package/dist/admin/HomePage-Xrg1dR_D.js.map +1 -0
- package/dist/admin/HomePage-fBY17m1h.js +15 -0
- package/dist/admin/HomePage-fBY17m1h.js.map +1 -0
- package/dist/admin/HomePage-ppJpMP9G.mjs +11 -0
- package/dist/admin/HomePage-ppJpMP9G.mjs.map +1 -0
- package/dist/admin/InstalledPluginsPage-EtnkMG0G.mjs +97 -0
- package/dist/admin/InstalledPluginsPage-EtnkMG0G.mjs.map +1 -0
- package/dist/admin/InstalledPluginsPage-alfcy8jO.js +122 -0
- package/dist/admin/InstalledPluginsPage-alfcy8jO.js.map +1 -0
- package/dist/admin/Layout-9EvJq4Gc.mjs +215 -0
- package/dist/admin/Layout-9EvJq4Gc.mjs.map +1 -0
- package/dist/admin/Layout-RKjEsOtu.js +242 -0
- package/dist/admin/Layout-RKjEsOtu.js.map +1 -0
- package/dist/admin/ListPage-21q8_YN7.mjs +487 -0
- package/dist/admin/ListPage-21q8_YN7.mjs.map +1 -0
- package/dist/admin/ListPage-CRyM6NXF.js +559 -0
- package/dist/admin/ListPage-CRyM6NXF.js.map +1 -0
- package/dist/admin/ListPage-D8Ih2axK.js +515 -0
- package/dist/admin/ListPage-D8Ih2axK.js.map +1 -0
- package/dist/admin/ListPage-MJlQ5gGq.js +293 -0
- package/dist/admin/ListPage-MJlQ5gGq.js.map +1 -0
- package/dist/admin/ListPage-TkJa9Qcz.js +335 -0
- package/dist/admin/ListPage-TkJa9Qcz.js.map +1 -0
- package/dist/admin/ListPage-Ur-kwyVv.mjs +531 -0
- package/dist/admin/ListPage-Ur-kwyVv.mjs.map +1 -0
- package/dist/admin/ListPage-Z0mmlysk.js +15 -0
- package/dist/admin/ListPage-Z0mmlysk.js.map +1 -0
- package/dist/admin/ListPage-gl3tUWS8.mjs +310 -0
- package/dist/admin/ListPage-gl3tUWS8.mjs.map +1 -0
- package/dist/admin/ListPage-nbTQdpBX.mjs +11 -0
- package/dist/admin/ListPage-nbTQdpBX.mjs.map +1 -0
- package/dist/admin/ListPage-xQbMtUpV.mjs +268 -0
- package/dist/admin/ListPage-xQbMtUpV.mjs.map +1 -0
- package/dist/admin/ListView-Drn22JZ1.mjs +200 -0
- package/dist/admin/ListView-Drn22JZ1.mjs.map +1 -0
- package/dist/admin/ListView-geMTlhDN.mjs +211 -0
- package/dist/admin/ListView-geMTlhDN.mjs.map +1 -0
- package/dist/admin/ListView-nRGxAwIh.js +237 -0
- package/dist/admin/ListView-nRGxAwIh.js.map +1 -0
- package/dist/admin/ListView-qAX3ZO28.js +226 -0
- package/dist/admin/ListView-qAX3ZO28.js.map +1 -0
- package/dist/admin/Login-Hn_q1QSn.js +35 -0
- package/dist/admin/Login-Hn_q1QSn.js.map +1 -0
- package/dist/admin/Login-ngKWBSD4.mjs +31 -0
- package/dist/admin/Login-ngKWBSD4.mjs.map +1 -0
- package/dist/admin/MagicLinkEE-B5NOEO47.js +31 -0
- package/dist/admin/MagicLinkEE-B5NOEO47.js.map +1 -0
- package/dist/admin/MagicLinkEE-JWmJRiBS.mjs +27 -0
- package/dist/admin/MagicLinkEE-JWmJRiBS.mjs.map +1 -0
- package/dist/admin/MarketplacePage-Pk9USes6.mjs +971 -0
- package/dist/admin/MarketplacePage-Pk9USes6.mjs.map +1 -0
- package/dist/admin/MarketplacePage-vQaaicxu.js +1001 -0
- package/dist/admin/MarketplacePage-vQaaicxu.js.map +1 -0
- package/dist/admin/Ornaments-jAwgQeK0.mjs +209 -0
- package/dist/admin/Ornaments-jAwgQeK0.mjs.map +1 -0
- package/dist/admin/Ornaments-sFPQPOtb.js +214 -0
- package/dist/admin/Ornaments-sFPQPOtb.js.map +1 -0
- package/dist/admin/Permissions-2GKZ2IjP.mjs +1986 -0
- package/dist/admin/Permissions-2GKZ2IjP.mjs.map +1 -0
- package/dist/admin/Permissions-GCSY8mIm.js +2022 -0
- package/dist/admin/Permissions-GCSY8mIm.js.map +1 -0
- package/dist/admin/PrivateRoute-KfrFibGN.js +22 -0
- package/dist/admin/PrivateRoute-KfrFibGN.js.map +1 -0
- package/dist/admin/PrivateRoute-xkGBbDbU.mjs +20 -0
- package/dist/admin/PrivateRoute-xkGBbDbU.mjs.map +1 -0
- package/dist/admin/ProfilePage-Q5UpeDjs.mjs +387 -0
- package/dist/admin/ProfilePage-Q5UpeDjs.mjs.map +1 -0
- package/dist/admin/ProfilePage-o028o7JD.js +415 -0
- package/dist/admin/ProfilePage-o028o7JD.js.map +1 -0
- package/dist/admin/PurchaseAuditLogs-Vur69JZB.js +53 -0
- package/dist/admin/PurchaseAuditLogs-Vur69JZB.js.map +1 -0
- package/dist/admin/PurchaseAuditLogs-tpXbhCx-.mjs +49 -0
- package/dist/admin/PurchaseAuditLogs-tpXbhCx-.mjs.map +1 -0
- package/dist/admin/PurchaseSingleSignOn-6VTPjJVO.mjs +52 -0
- package/dist/admin/PurchaseSingleSignOn-6VTPjJVO.mjs.map +1 -0
- package/dist/admin/PurchaseSingleSignOn-7NMcihzT.js +56 -0
- package/dist/admin/PurchaseSingleSignOn-7NMcihzT.js.map +1 -0
- package/dist/admin/SSOProviders-QBcyB9VI.js +60 -0
- package/dist/admin/SSOProviders-QBcyB9VI.js.map +1 -0
- package/dist/admin/SSOProviders-nMmBLr8g.mjs +58 -0
- package/dist/admin/SSOProviders-nMmBLr8g.mjs.map +1 -0
- package/dist/admin/SelectRoles-BtQp5Va-.mjs +111 -0
- package/dist/admin/SelectRoles-BtQp5Va-.mjs.map +1 -0
- package/dist/admin/SelectRoles-q8vaxqfL.js +115 -0
- package/dist/admin/SelectRoles-q8vaxqfL.js.map +1 -0
- package/dist/admin/SingleSignOnPage-X1OAuyhO.mjs +231 -0
- package/dist/admin/SingleSignOnPage-X1OAuyhO.mjs.map +1 -0
- package/dist/admin/SingleSignOnPage-_l9MyJvN.js +256 -0
- package/dist/admin/SingleSignOnPage-_l9MyJvN.js.map +1 -0
- package/dist/admin/Table-V5-qnRte.mjs +183 -0
- package/dist/admin/Table-V5-qnRte.mjs.map +1 -0
- package/dist/admin/Table-z6l5BFoH.js +205 -0
- package/dist/admin/Table-z6l5BFoH.js.map +1 -0
- package/dist/admin/TokenTypeSelect-2iXEz7zs.js +402 -0
- package/dist/admin/TokenTypeSelect-2iXEz7zs.js.map +1 -0
- package/dist/admin/TokenTypeSelect-crPtoLFc.mjs +374 -0
- package/dist/admin/TokenTypeSelect-crPtoLFc.mjs.map +1 -0
- package/dist/admin/UseCasePage-26Y6U1DU.js +155 -0
- package/dist/admin/UseCasePage-26Y6U1DU.js.map +1 -0
- package/dist/admin/UseCasePage-QsvlJAQD.mjs +129 -0
- package/dist/admin/UseCasePage-QsvlJAQD.mjs.map +1 -0
- package/dist/admin/admin-B6AW0Kov.mjs +318 -0
- package/dist/admin/admin-B6AW0Kov.mjs.map +1 -0
- package/dist/admin/admin-p0djr5G6.js +338 -0
- package/dist/admin/admin-p0djr5G6.js.map +1 -0
- package/dist/admin/apiTokens-YMUmHnrH.mjs +57 -0
- package/dist/admin/apiTokens-YMUmHnrH.mjs.map +1 -0
- package/dist/admin/apiTokens-YxfAnO7_.js +63 -0
- package/dist/admin/apiTokens-YxfAnO7_.js.map +1 -0
- package/dist/admin/ar-74XpZHjA.js +853 -0
- package/dist/admin/ar-74XpZHjA.js.map +1 -0
- package/dist/admin/ar-gTQs8p7A.mjs +832 -0
- package/dist/admin/ar-gTQs8p7A.mjs.map +1 -0
- package/dist/admin/ca-A-U5stlG.mjs +520 -0
- package/dist/admin/ca-A-U5stlG.mjs.map +1 -0
- package/dist/admin/ca-tfhzbe_0.js +538 -0
- package/dist/admin/ca-tfhzbe_0.js.map +1 -0
- package/dist/admin/constants-Maq_tQvu.js +55 -0
- package/dist/admin/constants-Maq_tQvu.js.map +1 -0
- package/dist/admin/constants-ThodPHfR.mjs +51 -0
- package/dist/admin/constants-ThodPHfR.mjs.map +1 -0
- package/dist/admin/cs-iYqoHUVt.mjs +166 -0
- package/dist/admin/cs-iYqoHUVt.mjs.map +1 -0
- package/dist/admin/cs-sS-228vY.js +179 -0
- package/dist/admin/cs-sS-228vY.js.map +1 -0
- package/dist/admin/de-og0YSnla.js +532 -0
- package/dist/admin/de-og0YSnla.js.map +1 -0
- package/dist/admin/de-uZBjRd6a.mjs +514 -0
- package/dist/admin/de-uZBjRd6a.mjs.map +1 -0
- package/dist/admin/dk-GtDhDxRc.js +452 -0
- package/dist/admin/dk-GtDhDxRc.js.map +1 -0
- package/dist/admin/dk-nXAO32DE.mjs +434 -0
- package/dist/admin/dk-nXAO32DE.mjs.map +1 -0
- package/dist/admin/ee.js +12 -0
- package/dist/admin/ee.js.map +1 -0
- package/dist/admin/ee.mjs +3 -0
- package/dist/admin/ee.mjs.map +1 -0
- package/dist/admin/en-GunF9CPV.mjs +786 -0
- package/dist/admin/en-GunF9CPV.mjs.map +1 -0
- package/dist/admin/en-Wdy8NEIO.js +807 -0
- package/dist/admin/en-Wdy8NEIO.js.map +1 -0
- package/dist/admin/es-TQtY4G8X.js +615 -0
- package/dist/admin/es-TQtY4G8X.js.map +1 -0
- package/dist/admin/es-i0dEHPPQ.mjs +595 -0
- package/dist/admin/es-i0dEHPPQ.mjs.map +1 -0
- package/dist/admin/eu-SRdPRyQu.js +645 -0
- package/dist/admin/eu-SRdPRyQu.js.map +1 -0
- package/dist/admin/eu-wFmYHERY.mjs +625 -0
- package/dist/admin/eu-wFmYHERY.mjs.map +1 -0
- package/dist/admin/fr-GW5-kEO9.js +571 -0
- package/dist/admin/fr-GW5-kEO9.js.map +1 -0
- package/dist/admin/fr-OI7VyC_k.mjs +550 -0
- package/dist/admin/fr-OI7VyC_k.mjs.map +1 -0
- package/dist/admin/gu-z6qqOLRh.js +438 -0
- package/dist/admin/gu-z6qqOLRh.js.map +1 -0
- package/dist/admin/gu-zSaMc-a6.mjs +429 -0
- package/dist/admin/gu-zSaMc-a6.mjs.map +1 -0
- package/dist/admin/he-CLdZZ_n1.js +329 -0
- package/dist/admin/he-CLdZZ_n1.js.map +1 -0
- package/dist/admin/he-YzAGShlQ.mjs +315 -0
- package/dist/admin/he-YzAGShlQ.mjs.map +1 -0
- package/dist/admin/hi-3pMoYe6q.js +537 -0
- package/dist/admin/hi-3pMoYe6q.js.map +1 -0
- package/dist/admin/hi-ZQ4t6UdY.mjs +519 -0
- package/dist/admin/hi-ZQ4t6UdY.mjs.map +1 -0
- package/dist/admin/hu-O1FJoY8c.mjs +625 -0
- package/dist/admin/hu-O1FJoY8c.mjs.map +1 -0
- package/dist/admin/hu-VxIqV1X0.js +645 -0
- package/dist/admin/hu-VxIqV1X0.js.map +1 -0
- package/dist/admin/id-Lb_0kPQU.mjs +290 -0
- package/dist/admin/id-Lb_0kPQU.mjs.map +1 -0
- package/dist/admin/id-cUUpuxZO.js +303 -0
- package/dist/admin/id-cUUpuxZO.js.map +1 -0
- package/dist/admin/index-Ncrnmg5a.js +5385 -0
- package/dist/admin/index-Ncrnmg5a.js.map +1 -0
- package/dist/admin/index-jwAq-BX-.mjs +5306 -0
- package/dist/admin/index-jwAq-BX-.mjs.map +1 -0
- package/dist/admin/index.js +33 -27
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/it-136monzD.mjs +299 -0
- package/dist/admin/it-136monzD.mjs.map +1 -0
- package/dist/admin/it-m8H0rXTP.js +312 -0
- package/dist/admin/it-m8H0rXTP.js.map +1 -0
- package/dist/admin/ja-0-FUC0T4.mjs +434 -0
- package/dist/admin/ja-0-FUC0T4.mjs.map +1 -0
- package/dist/admin/ja-jhqUhh7F.js +452 -0
- package/dist/admin/ja-jhqUhh7F.js.map +1 -0
- package/dist/admin/ko-Fq49QS3z.js +451 -0
- package/dist/admin/ko-Fq49QS3z.js.map +1 -0
- package/dist/admin/ko-H3Y8GpnD.mjs +433 -0
- package/dist/admin/ko-H3Y8GpnD.mjs.map +1 -0
- package/dist/admin/ml-NPdcpJoN.mjs +519 -0
- package/dist/admin/ml-NPdcpJoN.mjs.map +1 -0
- package/dist/admin/ml-mLJM4sQP.js +537 -0
- package/dist/admin/ml-mLJM4sQP.js.map +1 -0
- package/dist/admin/ms-NDmpSkMY.js +213 -0
- package/dist/admin/ms-NDmpSkMY.js.map +1 -0
- package/dist/admin/ms-v9c434YI.mjs +200 -0
- package/dist/admin/ms-v9c434YI.mjs.map +1 -0
- package/dist/admin/nl-RREi1JAg.js +641 -0
- package/dist/admin/nl-RREi1JAg.js.map +1 -0
- package/dist/admin/nl-qHmOt3d1.mjs +621 -0
- package/dist/admin/nl-qHmOt3d1.mjs.map +1 -0
- package/dist/admin/no-2wT9Jd9n.js +313 -0
- package/dist/admin/no-2wT9Jd9n.js.map +1 -0
- package/dist/admin/no-XGZQN-Ji.mjs +300 -0
- package/dist/admin/no-XGZQN-Ji.mjs.map +1 -0
- package/dist/admin/pl-Id5YX-Pw.mjs +519 -0
- package/dist/admin/pl-Id5YX-Pw.mjs.map +1 -0
- package/dist/admin/pl-kU2npCRO.js +537 -0
- package/dist/admin/pl-kU2npCRO.js.map +1 -0
- package/dist/admin/pt-BR-0o0Gf-P8.mjs +588 -0
- package/dist/admin/pt-BR-0o0Gf-P8.mjs.map +1 -0
- package/dist/admin/pt-BR-R-dMJxPL.js +608 -0
- package/dist/admin/pt-BR-R-dMJxPL.js.map +1 -0
- package/dist/admin/pt-IygqsPYv.js +212 -0
- package/dist/admin/pt-IygqsPYv.js.map +1 -0
- package/dist/admin/pt-f52AXrxz.mjs +200 -0
- package/dist/admin/pt-f52AXrxz.mjs.map +1 -0
- package/dist/admin/rbac-A_QIXvpC.mjs +1174 -0
- package/dist/admin/rbac-A_QIXvpC.mjs.map +1 -0
- package/dist/admin/rbac-c6QPc6s7.js +1240 -0
- package/dist/admin/rbac-c6QPc6s7.js.map +1 -0
- package/dist/admin/ru-5TBoMH_2.js +766 -0
- package/dist/admin/ru-5TBoMH_2.js.map +1 -0
- package/dist/admin/ru-FpmG9SEf.mjs +745 -0
- package/dist/admin/ru-FpmG9SEf.mjs.map +1 -0
- package/dist/admin/sa-KUwV8aRB.mjs +519 -0
- package/dist/admin/sa-KUwV8aRB.mjs.map +1 -0
- package/dist/admin/sa-KmwTiEO5.js +537 -0
- package/dist/admin/sa-KmwTiEO5.js.map +1 -0
- package/dist/admin/selectors-s8oNaHXK.mjs +6 -0
- package/dist/admin/selectors-s8oNaHXK.mjs.map +1 -0
- package/dist/admin/selectors-yGCxM4Rk.js +8 -0
- package/dist/admin/selectors-yGCxM4Rk.js.map +1 -0
- package/dist/admin/sk-IV2uPmXo.js +503 -0
- package/dist/admin/sk-IV2uPmXo.js.map +1 -0
- package/dist/admin/sk-g_1C955P.mjs +483 -0
- package/dist/admin/sk-g_1C955P.mjs.map +1 -0
- package/dist/admin/src/StrapiApp.d.ts +14 -42
- package/dist/admin/src/components/ConfirmDialog.d.ts +17 -7
- package/dist/admin/src/components/Context.d.ts +6 -0
- package/dist/admin/src/components/Filters.d.ts +10 -9
- package/dist/admin/src/components/Form.d.ts +18 -4
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/Date.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/Email.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Json.d.ts +3 -4
- package/dist/admin/src/components/FormInputs/Number.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/Password.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +2 -8
- package/dist/admin/src/components/FormInputs/String.d.ts +2 -4
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +2 -1
- package/dist/admin/src/components/FormInputs/Time.d.ts +2 -2
- package/dist/admin/src/components/FormInputs/types.d.ts +4 -3
- package/dist/admin/src/components/Layouts/ActionLayout.d.ts +7 -0
- package/dist/admin/src/components/Layouts/ContentLayout.d.ts +6 -0
- package/dist/admin/src/components/Layouts/GridLayout.d.ts +17 -0
- package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +19 -0
- package/dist/admin/src/components/Layouts/Layout.d.ts +18 -0
- package/dist/admin/src/components/MainNav/MainNav.d.ts +3 -0
- package/dist/admin/src/components/MainNav/NavBrand.d.ts +1 -0
- package/dist/admin/src/components/MainNav/NavLink.d.ts +24 -0
- package/dist/admin/src/components/MainNav/NavUser.d.ts +7 -0
- package/dist/admin/src/components/PageHelpers.d.ts +5 -1
- package/dist/admin/src/components/Table.d.ts +1 -1
- package/dist/admin/src/constants/filters.d.ts +2 -2
- package/dist/admin/src/constants.d.ts +2 -2
- package/dist/admin/src/core/apis/rbac.d.ts +24 -0
- package/dist/admin/src/core/store/configure.d.ts +4 -21
- package/dist/admin/src/core/store/hooks.d.ts +3 -24
- package/dist/admin/src/ee.d.ts +5 -0
- package/dist/admin/src/features/Auth.d.ts +14 -3
- package/dist/admin/src/features/BackButton.d.ts +1 -1
- package/dist/admin/src/features/StrapiApp.d.ts +3 -1
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -4
- package/dist/admin/src/hooks/useAdminRoles.d.ts +2 -2
- package/dist/admin/src/hooks/useContentTypes.d.ts +3 -3
- package/dist/admin/src/hooks/useFetchClient.d.ts +4 -10
- package/dist/admin/src/hooks/useFocusInputField.d.ts +2 -5
- package/dist/admin/src/hooks/useMenu.d.ts +1 -1
- package/dist/admin/src/hooks/useRBAC.d.ts +33 -1
- package/dist/admin/src/hooks/useSettingsMenu.d.ts +1 -1
- package/dist/admin/src/index.d.ts +18 -6
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +4 -1
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.d.ts +9 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +6 -50
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +4 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +1 -4
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +2 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.d.ts +2 -4
- package/dist/admin/src/pages/Settings/pages/Roles/components/RoleRow.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/constants.d.ts +3 -3
- package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +2 -1
- package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/Events.d.ts +2 -3
- package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +7 -7
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +5 -5
- package/dist/admin/src/render.d.ts +2 -2
- package/dist/admin/src/selectors.d.ts +2 -16
- package/dist/admin/src/services/admin.d.ts +5 -5
- package/dist/admin/src/services/api.d.ts +11 -9
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +14 -12
- package/dist/admin/src/services/contentApi.d.ts +2 -2
- package/dist/admin/src/services/contentManager.d.ts +6 -2
- package/dist/admin/src/services/transferTokens.d.ts +2 -2
- package/dist/admin/src/services/users.d.ts +14 -14
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/src/types/adminConfiguration.d.ts +90 -0
- package/dist/admin/src/utils/baseQuery.d.ts +10 -9
- package/dist/admin/src/utils/getFetchClient.d.ts +40 -10
- package/dist/admin/src/utils/normalizeAPIError.d.ts +2 -5
- package/dist/admin/src/utils/once.d.ts +1 -0
- package/dist/admin/src/utils/urls.d.ts +7 -1
- package/dist/admin/src/utils/users.d.ts +4 -4
- package/dist/admin/sv-Uv9nW9cN.js +640 -0
- package/dist/admin/sv-Uv9nW9cN.js.map +1 -0
- package/dist/admin/sv-lzyY1dsz.mjs +620 -0
- package/dist/admin/sv-lzyY1dsz.mjs.map +1 -0
- package/dist/admin/test.js +180 -2656
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +176 -2652
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/tests/mockData.d.ts +0 -1065
- package/dist/admin/tests/store.d.ts +0 -169
- package/dist/admin/tests/utils.d.ts +1 -177
- package/dist/admin/th-7LJ9Y8EL.mjs +284 -0
- package/dist/admin/th-7LJ9Y8EL.mjs.map +1 -0
- package/dist/admin/th-SXQwWjv6.js +297 -0
- package/dist/admin/th-SXQwWjv6.js.map +1 -0
- package/dist/admin/tr-09v-DLMg.mjs +581 -0
- package/dist/admin/tr-09v-DLMg.mjs.map +1 -0
- package/dist/admin/tr-RBQM-Vq5.js +601 -0
- package/dist/admin/tr-RBQM-Vq5.js.map +1 -0
- package/dist/admin/transferTokens-CNI0TFdA.mjs +69 -0
- package/dist/admin/transferTokens-CNI0TFdA.mjs.map +1 -0
- package/dist/admin/transferTokens-HcVXmOrq.js +76 -0
- package/dist/admin/transferTokens-HcVXmOrq.js.map +1 -0
- package/dist/admin/uk-38IblmOr.mjs +201 -0
- package/dist/admin/uk-38IblmOr.mjs.map +1 -0
- package/dist/admin/uk-5T4XFIKm.js +214 -0
- package/dist/admin/uk-5T4XFIKm.js.map +1 -0
- package/dist/admin/useAdminRoles-gMNUnVWO.mjs +28 -0
- package/dist/admin/useAdminRoles-gMNUnVWO.mjs.map +1 -0
- package/dist/admin/useAdminRoles-zEk0tBhE.js +50 -0
- package/dist/admin/useAdminRoles-zEk0tBhE.js.map +1 -0
- package/dist/admin/useEnterprise-DUs6BYlP.js +50 -0
- package/dist/admin/useEnterprise-DUs6BYlP.js.map +1 -0
- package/dist/admin/useEnterprise-jpsYZWzn.mjs +28 -0
- package/dist/admin/useEnterprise-jpsYZWzn.mjs.map +1 -0
- package/dist/admin/useLicenseLimitNotification-AUg5DyS9.mjs +80 -0
- package/dist/admin/useLicenseLimitNotification-AUg5DyS9.mjs.map +1 -0
- package/dist/admin/useLicenseLimitNotification-ItNGgex2.js +105 -0
- package/dist/admin/useLicenseLimitNotification-ItNGgex2.js.map +1 -0
- package/dist/admin/useLicenseLimits-FtmLXkwK.js +45 -0
- package/dist/admin/useLicenseLimits-FtmLXkwK.js.map +1 -0
- package/dist/admin/useLicenseLimits-Jy6E6qc2.mjs +23 -0
- package/dist/admin/useLicenseLimits-Jy6E6qc2.mjs.map +1 -0
- package/dist/admin/useWebhooks-bgdpL7W6.mjs +93 -0
- package/dist/admin/useWebhooks-bgdpL7W6.mjs.map +1 -0
- package/dist/admin/useWebhooks-opYGugiT.js +95 -0
- package/dist/admin/useWebhooks-opYGugiT.js.map +1 -0
- package/dist/admin/users-R5A0kUOV.js +33 -0
- package/dist/admin/users-R5A0kUOV.js.map +1 -0
- package/dist/admin/users-a4KTyEyc.mjs +30 -0
- package/dist/admin/users-a4KTyEyc.mjs.map +1 -0
- package/dist/admin/validation-F0JMLUkr.mjs +43 -0
- package/dist/admin/validation-F0JMLUkr.mjs.map +1 -0
- package/dist/admin/validation-cP2hBbZm.js +65 -0
- package/dist/admin/validation-cP2hBbZm.js.map +1 -0
- package/dist/admin/vi-mj-Smy3d.js +200 -0
- package/dist/admin/vi-mj-Smy3d.js.map +1 -0
- package/dist/admin/vi-ryNZtXtk.mjs +187 -0
- package/dist/admin/vi-ryNZtXtk.mjs.map +1 -0
- package/dist/admin/zh-6qF5HCOo.js +642 -0
- package/dist/admin/zh-6qF5HCOo.js.map +1 -0
- package/dist/admin/zh-Hans-HlxDUeVA.mjs +716 -0
- package/dist/admin/zh-Hans-HlxDUeVA.mjs.map +1 -0
- package/dist/admin/zh-Hans-eWSoi9-X.js +737 -0
- package/dist/admin/zh-Hans-eWSoi9-X.js.map +1 -0
- package/dist/admin/zh-WEteLuNm.mjs +622 -0
- package/dist/admin/zh-WEteLuNm.mjs.map +1 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +2 -1
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/admin/src/utils/cookies.d.ts +2 -0
- package/dist/ee/server/index.js +1254 -3011
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +1275 -3029
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +34 -47
- package/dist/server/index.js +243 -215
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +220 -209
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts +2 -2
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/dist/server/src/domain/action/index.d.ts +21 -8
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts +1 -1
- package/dist/server/src/middlewares/index.d.ts +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts +2 -2
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/register.d.ts +2 -2
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts +2 -2
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts +5 -5
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +16 -11
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts +9 -7
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts +2 -2
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts +5 -6
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +2 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +6 -2
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +6 -6
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +5 -5
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/validation/api-tokens.d.ts +27 -4
- package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +8 -2
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +53 -4
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
- package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +52 -6
- package/dist/server/src/validation/project-settings.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts +23 -6
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +23 -4
- package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
- package/dist/server/src/validation/user.d.ts +56 -8
- package/dist/server/src/validation/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +7 -1
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/api-token.d.ts +5 -5
- package/dist/shared/contracts/api-token.d.ts.map +1 -1
- package/dist/shared/contracts/content-api.d.ts +2 -2
- package/dist/shared/contracts/content-api.d.ts.map +1 -1
- package/dist/shared/contracts/content-types.d.ts +5 -0
- package/dist/shared/contracts/content-types.d.ts.map +1 -0
- package/dist/shared/contracts/roles.d.ts +3 -3
- package/dist/shared/contracts/roles.d.ts.map +1 -1
- package/dist/shared/contracts/shared.d.ts +4 -4
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/contracts/user.d.ts +6 -6
- package/dist/shared/contracts/user.d.ts.map +1 -1
- package/dist/shared/contracts/webhooks.d.ts +13 -13
- package/dist/shared/contracts/webhooks.d.ts.map +1 -1
- package/package.json +35 -48
- package/strapi-server.js +1 -0
- package/dist/admin/AdminSeatInfo-CcqY0G1v.mjs +0 -101
- package/dist/admin/AdminSeatInfo-CcqY0G1v.mjs.map +0 -1
- package/dist/admin/AdminSeatInfo-_XP-L7m2.js +0 -105
- package/dist/admin/AdminSeatInfo-_XP-L7m2.js.map +0 -1
- package/dist/admin/ApplicationInfoPage-RZ5VPA_M.mjs +0 -670
- package/dist/admin/ApplicationInfoPage-RZ5VPA_M.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-dcW27-S0.js +0 -698
- package/dist/admin/ApplicationInfoPage-dcW27-S0.js.map +0 -1
- package/dist/admin/AuthResponse-829u1Bgr.mjs +0 -43
- package/dist/admin/AuthResponse-829u1Bgr.mjs.map +0 -1
- package/dist/admin/AuthResponse-jXbQnvQx.js +0 -70
- package/dist/admin/AuthResponse-jXbQnvQx.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-a3vBuls_.mjs +0 -1115
- package/dist/admin/AuthenticatedLayout-a3vBuls_.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-hl04NCFE.js +0 -1148
- package/dist/admin/AuthenticatedLayout-hl04NCFE.js.map +0 -1
- package/dist/admin/ComponentConfigurationPage-bbpuW93V.mjs +0 -237
- package/dist/admin/ComponentConfigurationPage-bbpuW93V.mjs.map +0 -1
- package/dist/admin/ComponentConfigurationPage-hNHSQ40m.js +0 -262
- package/dist/admin/ComponentConfigurationPage-hNHSQ40m.js.map +0 -1
- package/dist/admin/ComponentIcon-AkrHxAkm.mjs +0 -158
- package/dist/admin/ComponentIcon-AkrHxAkm.mjs.map +0 -1
- package/dist/admin/ComponentIcon-wcNWpdCz.js +0 -180
- package/dist/admin/ComponentIcon-wcNWpdCz.js.map +0 -1
- package/dist/admin/ContentBox-PbS25I_4.mjs +0 -40
- package/dist/admin/ContentBox-PbS25I_4.mjs.map +0 -1
- package/dist/admin/ContentBox-xqJCP2BC.js +0 -46
- package/dist/admin/ContentBox-xqJCP2BC.js.map +0 -1
- package/dist/admin/CreateActionEE-3ppNGqrP.js +0 -61
- package/dist/admin/CreateActionEE-3ppNGqrP.js.map +0 -1
- package/dist/admin/CreateActionEE-zqa6Hnzk.mjs +0 -53
- package/dist/admin/CreateActionEE-zqa6Hnzk.mjs.map +0 -1
- package/dist/admin/CreatePage-52sUoJpg.js +0 -274
- package/dist/admin/CreatePage-52sUoJpg.js.map +0 -1
- package/dist/admin/CreatePage-5GygA62E.mjs +0 -248
- package/dist/admin/CreatePage-5GygA62E.mjs.map +0 -1
- package/dist/admin/CreatePage-92_pj9pV.js +0 -18
- package/dist/admin/CreatePage-92_pj9pV.js.map +0 -1
- package/dist/admin/CreatePage-99wXBVyY.mjs +0 -13
- package/dist/admin/CreatePage-99wXBVyY.mjs.map +0 -1
- package/dist/admin/CreatePage-oegPjlEc.mjs +0 -245
- package/dist/admin/CreatePage-oegPjlEc.mjs.map +0 -1
- package/dist/admin/CreatePage-yBddklgC.js +0 -272
- package/dist/admin/CreatePage-yBddklgC.js.map +0 -1
- package/dist/admin/CreateView-4i8XqKqF.mjs +0 -13
- package/dist/admin/CreateView-4i8XqKqF.mjs.map +0 -1
- package/dist/admin/CreateView-Ic6HHrsX.mjs +0 -13
- package/dist/admin/CreateView-Ic6HHrsX.mjs.map +0 -1
- package/dist/admin/CreateView-nS-FdJkE.js +0 -17
- package/dist/admin/CreateView-nS-FdJkE.js.map +0 -1
- package/dist/admin/CreateView-vQmc3UBu.js +0 -17
- package/dist/admin/CreateView-vQmc3UBu.js.map +0 -1
- package/dist/admin/EditConfigurationPage-6doXCBmp.mjs +0 -130
- package/dist/admin/EditConfigurationPage-6doXCBmp.mjs.map +0 -1
- package/dist/admin/EditConfigurationPage-lpPR7rS-.js +0 -155
- package/dist/admin/EditConfigurationPage-lpPR7rS-.js.map +0 -1
- package/dist/admin/EditPage-4n8-yx0o.mjs +0 -325
- package/dist/admin/EditPage-4n8-yx0o.mjs.map +0 -1
- package/dist/admin/EditPage-Id--0zN8.js +0 -354
- package/dist/admin/EditPage-Id--0zN8.js.map +0 -1
- package/dist/admin/EditPage-LUNpO2Hs.mjs +0 -303
- package/dist/admin/EditPage-LUNpO2Hs.mjs.map +0 -1
- package/dist/admin/EditPage-WEpVsF5C.js +0 -822
- package/dist/admin/EditPage-WEpVsF5C.js.map +0 -1
- package/dist/admin/EditPage-YN3E4YNP.mjs +0 -260
- package/dist/admin/EditPage-YN3E4YNP.mjs.map +0 -1
- package/dist/admin/EditPage-d7F-x_Y0.js +0 -286
- package/dist/admin/EditPage-d7F-x_Y0.js.map +0 -1
- package/dist/admin/EditPage-foeIMKkr.mjs +0 -794
- package/dist/admin/EditPage-foeIMKkr.mjs.map +0 -1
- package/dist/admin/EditPage-qKcSRKvg.js +0 -327
- package/dist/admin/EditPage-qKcSRKvg.js.map +0 -1
- package/dist/admin/EditView-GXGcvgNt.mjs +0 -336
- package/dist/admin/EditView-GXGcvgNt.mjs.map +0 -1
- package/dist/admin/EditView-awLo_z9u.js +0 -362
- package/dist/admin/EditView-awLo_z9u.js.map +0 -1
- package/dist/admin/EditViewPage-1NY3YGcc.mjs +0 -198
- package/dist/admin/EditViewPage-1NY3YGcc.mjs.map +0 -1
- package/dist/admin/EditViewPage-1ZxYkrZ9.js +0 -879
- package/dist/admin/EditViewPage-1ZxYkrZ9.js.map +0 -1
- package/dist/admin/EditViewPage-QWb2DMRg.mjs +0 -846
- package/dist/admin/EditViewPage-QWb2DMRg.mjs.map +0 -1
- package/dist/admin/EditViewPage-cZsfhXI4.js +0 -226
- package/dist/admin/EditViewPage-cZsfhXI4.js.map +0 -1
- package/dist/admin/EventsTable-3Mp9Iad-.js +0 -36
- package/dist/admin/EventsTable-3Mp9Iad-.js.map +0 -1
- package/dist/admin/EventsTable-Iv41t-aJ.mjs +0 -32
- package/dist/admin/EventsTable-Iv41t-aJ.mjs.map +0 -1
- package/dist/admin/FieldTypeIcon--WKPFDG2.js +0 -52
- package/dist/admin/FieldTypeIcon--WKPFDG2.js.map +0 -1
- package/dist/admin/FieldTypeIcon-AibcTcXN.mjs +0 -50
- package/dist/admin/FieldTypeIcon-AibcTcXN.mjs.map +0 -1
- package/dist/admin/Filters-Jm3DRgjx.mjs +0 -489
- package/dist/admin/Filters-Jm3DRgjx.mjs.map +0 -1
- package/dist/admin/Filters-l2eZFcAk.js +0 -511
- package/dist/admin/Filters-l2eZFcAk.js.map +0 -1
- package/dist/admin/Form-V8XluZgD.js +0 -767
- package/dist/admin/Form-V8XluZgD.js.map +0 -1
- package/dist/admin/Form-f20Ab8pl.mjs +0 -739
- package/dist/admin/Form-f20Ab8pl.mjs.map +0 -1
- package/dist/admin/History-0MMslhUv.mjs +0 -430
- package/dist/admin/History-0MMslhUv.mjs.map +0 -1
- package/dist/admin/History-eZH2Aqa1.js +0 -456
- package/dist/admin/History-eZH2Aqa1.js.map +0 -1
- package/dist/admin/HomePage-HylT9MsA.js +0 -530
- package/dist/admin/HomePage-HylT9MsA.js.map +0 -1
- package/dist/admin/HomePage-Mt5yKmaK.mjs +0 -521
- package/dist/admin/HomePage-Mt5yKmaK.mjs.map +0 -1
- package/dist/admin/HomePage-PNJzW3TF.mjs +0 -11
- package/dist/admin/HomePage-PNJzW3TF.mjs.map +0 -1
- package/dist/admin/HomePage-Zoe67a6N.js +0 -15
- package/dist/admin/HomePage-Zoe67a6N.js.map +0 -1
- package/dist/admin/InputRenderer-89lhMw5B.js +0 -5347
- package/dist/admin/InputRenderer-89lhMw5B.js.map +0 -1
- package/dist/admin/InputRenderer-ddUokGFQ.mjs +0 -5306
- package/dist/admin/InputRenderer-ddUokGFQ.mjs.map +0 -1
- package/dist/admin/InstalledPluginsPage-4hUy0Kzu.js +0 -126
- package/dist/admin/InstalledPluginsPage-4hUy0Kzu.js.map +0 -1
- package/dist/admin/InstalledPluginsPage-F_LdmUvc.mjs +0 -101
- package/dist/admin/InstalledPluginsPage-F_LdmUvc.mjs.map +0 -1
- package/dist/admin/Layout-0VrIQ4NX.js +0 -97
- package/dist/admin/Layout-0VrIQ4NX.js.map +0 -1
- package/dist/admin/Layout-8VTNG14A.js +0 -237
- package/dist/admin/Layout-8VTNG14A.js.map +0 -1
- package/dist/admin/Layout-y3dNAJVd.mjs +0 -209
- package/dist/admin/Layout-y3dNAJVd.mjs.map +0 -1
- package/dist/admin/Layout-yOQ2mhrf.mjs +0 -89
- package/dist/admin/Layout-yOQ2mhrf.mjs.map +0 -1
- package/dist/admin/ListConfigurationPage-9EnV4loI.js +0 -679
- package/dist/admin/ListConfigurationPage-9EnV4loI.js.map +0 -1
- package/dist/admin/ListConfigurationPage-duFCwpIH.mjs +0 -651
- package/dist/admin/ListConfigurationPage-duFCwpIH.mjs.map +0 -1
- package/dist/admin/ListPage-0jv2yLPQ.mjs +0 -276
- package/dist/admin/ListPage-0jv2yLPQ.mjs.map +0 -1
- package/dist/admin/ListPage-2i4GNvMp.js +0 -520
- package/dist/admin/ListPage-2i4GNvMp.js.map +0 -1
- package/dist/admin/ListPage-Cq-wLIdK.mjs +0 -492
- package/dist/admin/ListPage-Cq-wLIdK.mjs.map +0 -1
- package/dist/admin/ListPage-EmtzWMVt.js +0 -15
- package/dist/admin/ListPage-EmtzWMVt.js.map +0 -1
- package/dist/admin/ListPage-ICxXUAUL.js +0 -313
- package/dist/admin/ListPage-ICxXUAUL.js.map +0 -1
- package/dist/admin/ListPage-Z663tCxD.mjs +0 -540
- package/dist/admin/ListPage-Z663tCxD.mjs.map +0 -1
- package/dist/admin/ListPage-gP4TzJZw.js +0 -568
- package/dist/admin/ListPage-gP4TzJZw.js.map +0 -1
- package/dist/admin/ListPage-hxaNrHLd.mjs +0 -11
- package/dist/admin/ListPage-hxaNrHLd.mjs.map +0 -1
- package/dist/admin/ListPage-i77Lk7qj.js +0 -363
- package/dist/admin/ListPage-i77Lk7qj.js.map +0 -1
- package/dist/admin/ListPage-v1vvnXr3.mjs +0 -338
- package/dist/admin/ListPage-v1vvnXr3.mjs.map +0 -1
- package/dist/admin/ListPage-v6SUIF_T.js +0 -304
- package/dist/admin/ListPage-v6SUIF_T.js.map +0 -1
- package/dist/admin/ListPage-wpMBvGVG.mjs +0 -288
- package/dist/admin/ListPage-wpMBvGVG.mjs.map +0 -1
- package/dist/admin/ListView-4givZ4Eb.mjs +0 -212
- package/dist/admin/ListView-4givZ4Eb.mjs.map +0 -1
- package/dist/admin/ListView-A1dYCFAI.mjs +0 -202
- package/dist/admin/ListView-A1dYCFAI.mjs.map +0 -1
- package/dist/admin/ListView-IqhnTHjC.js +0 -238
- package/dist/admin/ListView-IqhnTHjC.js.map +0 -1
- package/dist/admin/ListView-NPtyW54W.js +0 -228
- package/dist/admin/ListView-NPtyW54W.js.map +0 -1
- package/dist/admin/ListViewPage-67EL6F80.js +0 -957
- package/dist/admin/ListViewPage-67EL6F80.js.map +0 -1
- package/dist/admin/ListViewPage-rkQXnquk.mjs +0 -925
- package/dist/admin/ListViewPage-rkQXnquk.mjs.map +0 -1
- package/dist/admin/Login-69DnR_WO.js +0 -39
- package/dist/admin/Login-69DnR_WO.js.map +0 -1
- package/dist/admin/Login-IanfGhcK.mjs +0 -31
- package/dist/admin/Login-IanfGhcK.mjs.map +0 -1
- package/dist/admin/MagicLinkEE-pA-tsFIv.mjs +0 -27
- package/dist/admin/MagicLinkEE-pA-tsFIv.mjs.map +0 -1
- package/dist/admin/MagicLinkEE-uUVMUi92.js +0 -31
- package/dist/admin/MagicLinkEE-uUVMUi92.js.map +0 -1
- package/dist/admin/MarketplacePage-FFt5PPmM.mjs +0 -1014
- package/dist/admin/MarketplacePage-FFt5PPmM.mjs.map +0 -1
- package/dist/admin/MarketplacePage-io_-I4d2.js +0 -1045
- package/dist/admin/MarketplacePage-io_-I4d2.js.map +0 -1
- package/dist/admin/NoContentTypePage-6mgFtik-.mjs +0 -50
- package/dist/admin/NoContentTypePage-6mgFtik-.mjs.map +0 -1
- package/dist/admin/NoContentTypePage-7GuJBa-V.js +0 -54
- package/dist/admin/NoContentTypePage-7GuJBa-V.js.map +0 -1
- package/dist/admin/NoPermissionsPage-6oZ4iqff.mjs +0 -23
- package/dist/admin/NoPermissionsPage-6oZ4iqff.mjs.map +0 -1
- package/dist/admin/NoPermissionsPage-E2ro9iCX.js +0 -27
- package/dist/admin/NoPermissionsPage-E2ro9iCX.js.map +0 -1
- package/dist/admin/NotAllowed-9d8xvtvI.mjs +0 -36
- package/dist/admin/NotAllowed-9d8xvtvI.mjs.map +0 -1
- package/dist/admin/NotAllowed-FmDlK9I3.js +0 -42
- package/dist/admin/NotAllowed-FmDlK9I3.js.map +0 -1
- package/dist/admin/Ornaments-fHu7120M.js +0 -214
- package/dist/admin/Ornaments-fHu7120M.js.map +0 -1
- package/dist/admin/Ornaments-izqdN6fh.mjs +0 -209
- package/dist/admin/Ornaments-izqdN6fh.mjs.map +0 -1
- package/dist/admin/Permissions-VR9Rnqkr.js +0 -2082
- package/dist/admin/Permissions-VR9Rnqkr.js.map +0 -1
- package/dist/admin/Permissions-kvKR0BEy.mjs +0 -2046
- package/dist/admin/Permissions-kvKR0BEy.mjs.map +0 -1
- package/dist/admin/PrivateRoute-dcpEjhVL.js +0 -22
- package/dist/admin/PrivateRoute-dcpEjhVL.js.map +0 -1
- package/dist/admin/PrivateRoute-jEzBQwGq.mjs +0 -20
- package/dist/admin/PrivateRoute-jEzBQwGq.mjs.map +0 -1
- package/dist/admin/ProfilePage-5zMiyfq8.js +0 -419
- package/dist/admin/ProfilePage-5zMiyfq8.js.map +0 -1
- package/dist/admin/ProfilePage-vP1WwOSo.mjs +0 -391
- package/dist/admin/ProfilePage-vP1WwOSo.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-Rrl9r1j8.mjs +0 -48
- package/dist/admin/PurchaseAuditLogs-Rrl9r1j8.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-couRts7-.js +0 -52
- package/dist/admin/PurchaseAuditLogs-couRts7-.js.map +0 -1
- package/dist/admin/PurchaseReviewWorkflows--btlOW_J.mjs +0 -51
- package/dist/admin/PurchaseReviewWorkflows--btlOW_J.mjs.map +0 -1
- package/dist/admin/PurchaseReviewWorkflows-iyB5BJRO.js +0 -55
- package/dist/admin/PurchaseReviewWorkflows-iyB5BJRO.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-L8l1HqSb.mjs +0 -51
- package/dist/admin/PurchaseSingleSignOn-L8l1HqSb.mjs.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-oXrB5aDz.js +0 -55
- package/dist/admin/PurchaseSingleSignOn-oXrB5aDz.js.map +0 -1
- package/dist/admin/ReviewWorkflowsColumn--7xdU3EE.js +0 -39
- package/dist/admin/ReviewWorkflowsColumn--7xdU3EE.js.map +0 -1
- package/dist/admin/ReviewWorkflowsColumn-m0_IsejA.mjs +0 -34
- package/dist/admin/ReviewWorkflowsColumn-m0_IsejA.mjs.map +0 -1
- package/dist/admin/SSOProviders-JTam8pNP.js +0 -64
- package/dist/admin/SSOProviders-JTam8pNP.js.map +0 -1
- package/dist/admin/SSOProviders-f1OPn1AH.mjs +0 -58
- package/dist/admin/SSOProviders-f1OPn1AH.mjs.map +0 -1
- package/dist/admin/SelectRoles-3rrUCBYq.js +0 -114
- package/dist/admin/SelectRoles-3rrUCBYq.js.map +0 -1
- package/dist/admin/SelectRoles-6zNSDXAX.mjs +0 -106
- package/dist/admin/SelectRoles-6zNSDXAX.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-7AQ0D0BD.mjs +0 -238
- package/dist/admin/SingleSignOnPage-7AQ0D0BD.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-yqv1ULMO.js +0 -263
- package/dist/admin/SingleSignOnPage-yqv1ULMO.js.map +0 -1
- package/dist/admin/Table-9qwpBhgp.js +0 -190
- package/dist/admin/Table-9qwpBhgp.js.map +0 -1
- package/dist/admin/Table-hIWrkIyR.mjs +0 -165
- package/dist/admin/Table-hIWrkIyR.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-I0IiW8L9.mjs +0 -357
- package/dist/admin/TokenTypeSelect-I0IiW8L9.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-O5IkOZVo.js +0 -385
- package/dist/admin/TokenTypeSelect-O5IkOZVo.js.map +0 -1
- package/dist/admin/UseCasePage-BwOhufaK.mjs +0 -146
- package/dist/admin/UseCasePage-BwOhufaK.mjs.map +0 -1
- package/dist/admin/UseCasePage-vqdvr-uv.js +0 -175
- package/dist/admin/UseCasePage-vqdvr-uv.js.map +0 -1
- package/dist/admin/apiTokens-HBaRXE71.mjs +0 -56
- package/dist/admin/apiTokens-HBaRXE71.mjs.map +0 -1
- package/dist/admin/apiTokens-RqehzGhC.js +0 -62
- package/dist/admin/apiTokens-RqehzGhC.js.map +0 -1
- package/dist/admin/ar-i6ait0_Z.js +0 -939
- package/dist/admin/ar-i6ait0_Z.js.map +0 -1
- package/dist/admin/ar-lYsknZVT.mjs +0 -918
- package/dist/admin/ar-lYsknZVT.mjs.map +0 -1
- package/dist/admin/ca-1Cl4eOmr.js +0 -727
- package/dist/admin/ca-1Cl4eOmr.js.map +0 -1
- package/dist/admin/ca-ruPjUw52.mjs +0 -709
- package/dist/admin/ca-ruPjUw52.mjs.map +0 -1
- package/dist/admin/constants--j5MCV5y.mjs +0 -172
- package/dist/admin/constants--j5MCV5y.mjs.map +0 -1
- package/dist/admin/constants-AAeFmxXA.js +0 -60
- package/dist/admin/constants-AAeFmxXA.js.map +0 -1
- package/dist/admin/constants-DxpaZFhM.mjs +0 -10
- package/dist/admin/constants-DxpaZFhM.mjs.map +0 -1
- package/dist/admin/constants-ZPElfE3j.mjs +0 -52
- package/dist/admin/constants-ZPElfE3j.mjs.map +0 -1
- package/dist/admin/constants-gHOCp7wo.js +0 -197
- package/dist/admin/constants-gHOCp7wo.js.map +0 -1
- package/dist/admin/constants-wsN7Fj5H.js +0 -14
- package/dist/admin/constants-wsN7Fj5H.js.map +0 -1
- package/dist/admin/cs-MneRs5g8.js +0 -294
- package/dist/admin/cs-MneRs5g8.js.map +0 -1
- package/dist/admin/cs-cEW7Jgll.mjs +0 -281
- package/dist/admin/cs-cEW7Jgll.mjs.map +0 -1
- package/dist/admin/de-vPJQw5Tm.js +0 -719
- package/dist/admin/de-vPJQw5Tm.js.map +0 -1
- package/dist/admin/de-xZr3TXsT.mjs +0 -701
- package/dist/admin/de-xZr3TXsT.mjs.map +0 -1
- package/dist/admin/dk-_Fh6kypZ.js +0 -637
- package/dist/admin/dk-_Fh6kypZ.js.map +0 -1
- package/dist/admin/dk-nqK-ugFb.mjs +0 -619
- package/dist/admin/dk-nqK-ugFb.mjs.map +0 -1
- package/dist/admin/en-X84kQxpg.js +0 -1068
- package/dist/admin/en-X84kQxpg.js.map +0 -1
- package/dist/admin/en-qxG24n4z.mjs +0 -1047
- package/dist/admin/en-qxG24n4z.mjs.map +0 -1
- package/dist/admin/es-6dicYJQA.mjs +0 -779
- package/dist/admin/es-6dicYJQA.mjs.map +0 -1
- package/dist/admin/es-FC_8jlK7.js +0 -799
- package/dist/admin/es-FC_8jlK7.js.map +0 -1
- package/dist/admin/eu-Pzqod2VF.js +0 -835
- package/dist/admin/eu-Pzqod2VF.js.map +0 -1
- package/dist/admin/eu-l9nvfvQj.mjs +0 -815
- package/dist/admin/eu-l9nvfvQj.mjs.map +0 -1
- package/dist/admin/fr-8h2tzs3Z.js +0 -765
- package/dist/admin/fr-8h2tzs3Z.js.map +0 -1
- package/dist/admin/fr-97oVHDGZ.mjs +0 -744
- package/dist/admin/fr-97oVHDGZ.mjs.map +0 -1
- package/dist/admin/gu-YXP9LW1p.mjs +0 -617
- package/dist/admin/gu-YXP9LW1p.mjs.map +0 -1
- package/dist/admin/gu-fkXeW5oU.js +0 -626
- package/dist/admin/gu-fkXeW5oU.js.map +0 -1
- package/dist/admin/he-Rnd0orlz.mjs +0 -315
- package/dist/admin/he-Rnd0orlz.mjs.map +0 -1
- package/dist/admin/he-YNZzVWgP.js +0 -329
- package/dist/admin/he-YNZzVWgP.js.map +0 -1
- package/dist/admin/hi-42LJgJV1.mjs +0 -707
- package/dist/admin/hi-42LJgJV1.mjs.map +0 -1
- package/dist/admin/hi-ubgoUzQ0.js +0 -725
- package/dist/admin/hi-ubgoUzQ0.js.map +0 -1
- package/dist/admin/hu-oHJgjivB.js +0 -835
- package/dist/admin/hu-oHJgjivB.js.map +0 -1
- package/dist/admin/hu-xsansjmF.mjs +0 -815
- package/dist/admin/hu-xsansjmF.mjs.map +0 -1
- package/dist/admin/id-JurRr0gC.mjs +0 -438
- package/dist/admin/id-JurRr0gC.mjs.map +0 -1
- package/dist/admin/id-T2ge96wh.js +0 -451
- package/dist/admin/id-T2ge96wh.js.map +0 -1
- package/dist/admin/index-NzLAHRwx.mjs +0 -5908
- package/dist/admin/index-NzLAHRwx.mjs.map +0 -1
- package/dist/admin/index-dBY0pLkw.js +0 -6004
- package/dist/admin/index-dBY0pLkw.js.map +0 -1
- package/dist/admin/it-890_w-P3.mjs +0 -449
- package/dist/admin/it-890_w-P3.mjs.map +0 -1
- package/dist/admin/it-uWPMs24z.js +0 -462
- package/dist/admin/it-uWPMs24z.js.map +0 -1
- package/dist/admin/ja-F61alnK1.mjs +0 -618
- package/dist/admin/ja-F61alnK1.mjs.map +0 -1
- package/dist/admin/ja-pw-zE8MH.js +0 -636
- package/dist/admin/ja-pw-zE8MH.js.map +0 -1
- package/dist/admin/ko-DfQWK5T3.mjs +0 -616
- package/dist/admin/ko-DfQWK5T3.mjs.map +0 -1
- package/dist/admin/ko-XhK2FY3_.js +0 -634
- package/dist/admin/ko-XhK2FY3_.js.map +0 -1
- package/dist/admin/ml-EVaVYywL.mjs +0 -707
- package/dist/admin/ml-EVaVYywL.mjs.map +0 -1
- package/dist/admin/ml-hT2VI8JA.js +0 -725
- package/dist/admin/ml-hT2VI8JA.js.map +0 -1
- package/dist/admin/ms-CzgcVrsY.mjs +0 -332
- package/dist/admin/ms-CzgcVrsY.mjs.map +0 -1
- package/dist/admin/ms-DoMJCZ42.js +0 -345
- package/dist/admin/ms-DoMJCZ42.js.map +0 -1
- package/dist/admin/nl-LLi_sx9P.js +0 -831
- package/dist/admin/nl-LLi_sx9P.js.map +0 -1
- package/dist/admin/nl-XNqQYx_K.mjs +0 -811
- package/dist/admin/nl-XNqQYx_K.mjs.map +0 -1
- package/dist/admin/no-JwA1Lt4Y.mjs +0 -300
- package/dist/admin/no-JwA1Lt4Y.mjs.map +0 -1
- package/dist/admin/no-wmtVIVuz.js +0 -313
- package/dist/admin/no-wmtVIVuz.js.map +0 -1
- package/dist/admin/pl-05ncDTwZ.js +0 -724
- package/dist/admin/pl-05ncDTwZ.js.map +0 -1
- package/dist/admin/pl-euPz4n1g.mjs +0 -706
- package/dist/admin/pl-euPz4n1g.mjs.map +0 -1
- package/dist/admin/pt-BR-vpbGYSYw.mjs +0 -777
- package/dist/admin/pt-BR-vpbGYSYw.mjs.map +0 -1
- package/dist/admin/pt-BR-xA4J5pi2.js +0 -797
- package/dist/admin/pt-BR-xA4J5pi2.js.map +0 -1
- package/dist/admin/pt-RlnkaSdF.mjs +0 -287
- package/dist/admin/pt-RlnkaSdF.mjs.map +0 -1
- package/dist/admin/pt-yArB6nEx.js +0 -299
- package/dist/admin/pt-yArB6nEx.js.map +0 -1
- package/dist/admin/reducers-TOuLOGw_.mjs +0 -4615
- package/dist/admin/reducers-TOuLOGw_.mjs.map +0 -1
- package/dist/admin/reducers-uDxSALD_.js +0 -4762
- package/dist/admin/reducers-uDxSALD_.js.map +0 -1
- package/dist/admin/ru-4bDDGI3o.js +0 -996
- package/dist/admin/ru-4bDDGI3o.js.map +0 -1
- package/dist/admin/ru-tyoEF5X6.mjs +0 -975
- package/dist/admin/ru-tyoEF5X6.mjs.map +0 -1
- package/dist/admin/sa-OOEUNg5o.js +0 -725
- package/dist/admin/sa-OOEUNg5o.js.map +0 -1
- package/dist/admin/sa-s-WVHU-Y.mjs +0 -707
- package/dist/admin/sa-s-WVHU-Y.mjs.map +0 -1
- package/dist/admin/selectors-NvWWczps.mjs +0 -6
- package/dist/admin/selectors-NvWWczps.mjs.map +0 -1
- package/dist/admin/selectors-ka781RNf.js +0 -8
- package/dist/admin/selectors-ka781RNf.js.map +0 -1
- package/dist/admin/sk-1sQSF-r2.js +0 -693
- package/dist/admin/sk-1sQSF-r2.js.map +0 -1
- package/dist/admin/sk-5bIrjuCN.mjs +0 -673
- package/dist/admin/sk-5bIrjuCN.mjs.map +0 -1
- package/dist/admin/src/components/InjectionZone.d.ts +0 -59
- package/dist/admin/src/content-manager/components/ComponentIcon.d.ts +0 -8
- package/dist/admin/src/content-manager/components/ConfigurationForm/EditFieldForm.d.ts +0 -9
- package/dist/admin/src/content-manager/components/ConfigurationForm/Fields.d.ts +0 -21
- package/dist/admin/src/content-manager/components/ConfigurationForm/Form.d.ts +0 -32
- package/dist/admin/src/content-manager/components/DragPreviews/CardDragPreview.d.ts +0 -7
- package/dist/admin/src/content-manager/components/DragPreviews/ComponentDragPreview.d.ts +0 -6
- package/dist/admin/src/content-manager/components/DragPreviews/RelationDragPreview.d.ts +0 -11
- package/dist/admin/src/content-manager/components/FieldTypeIcon.d.ts +0 -9
- package/dist/admin/src/content-manager/components/LeftMenu.d.ts +0 -2
- package/dist/admin/src/content-manager/constants/attributes.d.ts +0 -14
- package/dist/admin/src/content-manager/constants/collections.d.ts +0 -3
- package/dist/admin/src/content-manager/constants/dragAndDrop.d.ts +0 -8
- package/dist/admin/src/content-manager/exports.d.ts +0 -10
- package/dist/admin/src/content-manager/features/DocumentRBAC.d.ts +0 -36
- package/dist/admin/src/content-manager/history/components/HistoryAction.d.ts +0 -3
- package/dist/admin/src/content-manager/history/components/VersionContent.d.ts +0 -2
- package/dist/admin/src/content-manager/history/components/VersionHeader.d.ts +0 -5
- package/dist/admin/src/content-manager/history/components/VersionsList.d.ts +0 -2
- package/dist/admin/src/content-manager/history/pages/History.d.ts +0 -25
- package/dist/admin/src/content-manager/history/routes.d.ts +0 -11
- package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +0 -7
- package/dist/admin/src/content-manager/hooks/useContentManagerInitData.d.ts +0 -15
- package/dist/admin/src/content-manager/hooks/useContentTypeSchema.d.ts +0 -24
- package/dist/admin/src/content-manager/hooks/useDocument.d.ts +0 -89
- package/dist/admin/src/content-manager/hooks/useDocumentActions.d.ts +0 -102
- package/dist/admin/src/content-manager/hooks/useDocumentLayout.d.ts +0 -138
- package/dist/admin/src/content-manager/hooks/useDragAndDrop.d.ts +0 -51
- package/dist/admin/src/content-manager/hooks/useKeyboardDragAndDrop.d.ts +0 -14
- package/dist/admin/src/content-manager/hooks/useLazyComponents.d.ts +0 -13
- package/dist/admin/src/content-manager/hooks/useSyncRbac.d.ts +0 -15
- package/dist/admin/src/content-manager/layout.d.ts +0 -16
- package/dist/admin/src/content-manager/modules/rbac.d.ts +0 -14
- package/dist/admin/src/content-manager/modules/reducers.d.ts +0 -4
- package/dist/admin/src/content-manager/pages/ComponentConfigurationPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditConfigurationPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/EditViewPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +0 -69
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentStatus.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +0 -61
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Modifiers.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +0 -13
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Initializer.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Input.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/ComponentContext.d.ts +0 -42
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentCard.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +0 -17
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +0 -14
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +0 -13
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/NotAllowed.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Relations.d.ts +0 -26
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/UID.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Editor.d.ts +0 -18
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +0 -59
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +0 -17
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +0 -54
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.d.ts +0 -4
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormLayout.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/Header.d.ts +0 -35
- package/dist/admin/src/content-manager/pages/EditView/components/InputRenderer.d.ts +0 -14
- package/dist/admin/src/content-manager/pages/EditView/components/Panels.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/utils/data.d.ts +0 -20
- package/dist/admin/src/content-manager/pages/EditView/utils/forms.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/ListConfiguration/ListConfigurationPage.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/DraggableCard.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/EditFieldForm.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/Header.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/Settings.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/SortDisplayedFields.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/ListView/ListViewPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/ListView/components/AutoCloneFailureModal.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Buttons.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +0 -15
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/SelectedEntriesModal.d.ts +0 -29
- package/dist/admin/src/content-manager/pages/ListView/components/Filters.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/InjectionZoneList.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/ListView/components/TableActions.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellContent.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellValue.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Components.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Media.d.ts +0 -23
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Relations.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/ViewSettingsMenu.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/NoContentTypePage.d.ts +0 -2
- package/dist/admin/src/content-manager/pages/NoPermissionsPage.d.ts +0 -2
- package/dist/admin/src/content-manager/router.d.ts +0 -5
- package/dist/admin/src/content-manager/services/api.d.ts +0 -3
- package/dist/admin/src/content-manager/services/components.d.ts +0 -6
- package/dist/admin/src/content-manager/services/contentTypes.d.ts +0 -18
- package/dist/admin/src/content-manager/services/documents.d.ts +0 -89
- package/dist/admin/src/content-manager/services/init.d.ts +0 -10
- package/dist/admin/src/content-manager/services/relations.d.ts +0 -49
- package/dist/admin/src/content-manager/services/uid.d.ts +0 -32
- package/dist/admin/src/content-manager/utils/api.d.ts +0 -19
- package/dist/admin/src/content-manager/utils/attributes.d.ts +0 -19
- package/dist/admin/src/content-manager/utils/relations.d.ts +0 -12
- package/dist/admin/src/content-manager/utils/translations.d.ts +0 -2
- package/dist/admin/src/content-manager/utils/validation.d.ts +0 -7
- package/dist/admin/src/core/apis/content-manager.d.ts +0 -98
- package/dist/admin/src/hooks/useInjectionZone.d.ts +0 -2
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollabsableContentType.d.ts +0 -11
- package/dist/admin/src/pages/Settings/pages/PurchaseReviewWorkflows.d.ts +0 -2
- package/dist/admin/src/utils/getYupInnerErrors.d.ts +0 -7
- package/dist/admin/src/utils/hashAdminUserEmail.d.ts +0 -6
- package/dist/admin/sv-JVgQU2PS.mjs +0 -810
- package/dist/admin/sv-JVgQU2PS.mjs.map +0 -1
- package/dist/admin/sv-d0rqYiHZ.js +0 -830
- package/dist/admin/sv-d0rqYiHZ.js.map +0 -1
- package/dist/admin/th-er8qvbeL.mjs +0 -420
- package/dist/admin/th-er8qvbeL.mjs.map +0 -1
- package/dist/admin/th-mqExIzdv.js +0 -433
- package/dist/admin/th-mqExIzdv.js.map +0 -1
- package/dist/admin/tr-aYPucbUC.js +0 -788
- package/dist/admin/tr-aYPucbUC.js.map +0 -1
- package/dist/admin/tr-b2vrBJ49.mjs +0 -768
- package/dist/admin/tr-b2vrBJ49.mjs.map +0 -1
- package/dist/admin/transferTokens-HxKzbhZt.js +0 -65
- package/dist/admin/transferTokens-HxKzbhZt.js.map +0 -1
- package/dist/admin/transferTokens-QOZjk416.mjs +0 -59
- package/dist/admin/transferTokens-QOZjk416.mjs.map +0 -1
- package/dist/admin/uk-1c7KIaI6.js +0 -346
- package/dist/admin/uk-1c7KIaI6.js.map +0 -1
- package/dist/admin/uk-RfkbT49M.mjs +0 -333
- package/dist/admin/uk-RfkbT49M.mjs.map +0 -1
- package/dist/admin/useAdminRoles-PSfwOXiz.mjs +0 -28
- package/dist/admin/useAdminRoles-PSfwOXiz.mjs.map +0 -1
- package/dist/admin/useAdminRoles-eaHgHT8Y.js +0 -50
- package/dist/admin/useAdminRoles-eaHgHT8Y.js.map +0 -1
- package/dist/admin/useContentTypes-Or3rDVks.mjs +0 -51
- package/dist/admin/useContentTypes-Or3rDVks.mjs.map +0 -1
- package/dist/admin/useContentTypes-RJRHsheR.js +0 -73
- package/dist/admin/useContentTypes-RJRHsheR.js.map +0 -1
- package/dist/admin/useDebounce-OnUygPz6.mjs +0 -17
- package/dist/admin/useDebounce-OnUygPz6.mjs.map +0 -1
- package/dist/admin/useDebounce-tz5EMJbt.js +0 -39
- package/dist/admin/useDebounce-tz5EMJbt.js.map +0 -1
- package/dist/admin/useDocumentLayout-5UQF9Yls.mjs +0 -732
- package/dist/admin/useDocumentLayout-5UQF9Yls.mjs.map +0 -1
- package/dist/admin/useDocumentLayout-wBQQmFJL.js +0 -764
- package/dist/admin/useDocumentLayout-wBQQmFJL.js.map +0 -1
- package/dist/admin/useLicenseLimitNotification-kTCLbD6I.mjs +0 -80
- package/dist/admin/useLicenseLimitNotification-kTCLbD6I.mjs.map +0 -1
- package/dist/admin/useLicenseLimitNotification-mOmwgQuN.js +0 -105
- package/dist/admin/useLicenseLimitNotification-mOmwgQuN.js.map +0 -1
- package/dist/admin/useReviewWorkflows-Ji_rsoyJ.mjs +0 -27
- package/dist/admin/useReviewWorkflows-Ji_rsoyJ.mjs.map +0 -1
- package/dist/admin/useReviewWorkflows-ZcRZstgn.js +0 -29
- package/dist/admin/useReviewWorkflows-ZcRZstgn.js.map +0 -1
- package/dist/admin/useSyncRbac-Od0wrAnD.mjs +0 -45
- package/dist/admin/useSyncRbac-Od0wrAnD.mjs.map +0 -1
- package/dist/admin/useSyncRbac-fR63KADE.js +0 -67
- package/dist/admin/useSyncRbac-fR63KADE.js.map +0 -1
- package/dist/admin/useWebhooks-7Grr2wYu.mjs +0 -91
- package/dist/admin/useWebhooks-7Grr2wYu.mjs.map +0 -1
- package/dist/admin/useWebhooks-KtPvzcTB.js +0 -93
- package/dist/admin/useWebhooks-KtPvzcTB.js.map +0 -1
- package/dist/admin/validateWorkflow-cwVWZu1s.mjs +0 -1033
- package/dist/admin/validateWorkflow-cwVWZu1s.mjs.map +0 -1
- package/dist/admin/validateWorkflow-lzkdakmi.js +0 -1077
- package/dist/admin/validateWorkflow-lzkdakmi.js.map +0 -1
- package/dist/admin/validation-aKPvEh9F.js +0 -65
- package/dist/admin/validation-aKPvEh9F.js.map +0 -1
- package/dist/admin/validation-uxcqs4Uq.mjs +0 -43
- package/dist/admin/validation-uxcqs4Uq.mjs.map +0 -1
- package/dist/admin/vi-Rg9es0FD.js +0 -301
- package/dist/admin/vi-Rg9es0FD.js.map +0 -1
- package/dist/admin/vi-pyngavdo.mjs +0 -288
- package/dist/admin/vi-pyngavdo.mjs.map +0 -1
- package/dist/admin/zh-Hans-Gbpdme1Q.mjs +0 -939
- package/dist/admin/zh-Hans-Gbpdme1Q.mjs.map +0 -1
- package/dist/admin/zh-Hans-SgnidiuG.js +0 -960
- package/dist/admin/zh-Hans-SgnidiuG.js.map +0 -1
- package/dist/admin/zh-ONWhjzCj.js +0 -839
- package/dist/admin/zh-ONWhjzCj.js.map +0 -1
- package/dist/admin/zh-fMjW2qMl.mjs +0 -819
- package/dist/admin/zh-fMjW2qMl.mjs.map +0 -1
- package/dist/ee/admin/src/content-manager/pages/EditView/components/AssigneeSelect.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/EditView/components/ReviewWorkflowsPanel.d.ts +0 -3
- package/dist/ee/admin/src/content-manager/pages/EditView/components/StageSelect.d.ts +0 -1
- package/dist/ee/admin/src/content-manager/pages/EditView/components/constants.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/ListSettingsView/constants.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/AssigneeFilter.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsAssigneeEE.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsColumn.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsStageEE.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/StageFilter.d.ts +0 -8
- package/dist/ee/admin/src/content-manager/pages/ListView/constants.d.ts +0 -69
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/CreatePage.d.ts +0 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/EditPage.d.ts +0 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/ListPage.d.ts +0 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/actions.d.ts +0 -86
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage.d.ts +0 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.d.ts +0 -12
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal.d.ts +0 -15
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Stage.d.ts +0 -10
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.d.ts +0 -4
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Stages.d.ts +0 -7
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes.d.ts +0 -4
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/constants.d.ts +0 -20
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.d.ts +0 -15
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/reducer.d.ts +0 -38
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/selectors.d.ts +0 -62
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/utils/colors.d.ts +0 -8
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/utils/validateWorkflow.d.ts +0 -5
- package/dist/ee/admin/src/services/reviewWorkflows.d.ts +0 -39
- package/dist/shared/contracts/review-workflows.d.ts +0 -83
- package/dist/shared/contracts/review-workflows.d.ts.map +0 -1
- /package/dist/admin/src/{content-manager/hooks → hooks}/usePrev.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Ncrnmg5a.js","sources":["../../ee/admin/src/constants.ts","../../ee/admin/src/pages/SettingsPage/constants.ts","../../admin/src/features/BackButton.tsx","../../admin/src/components/GuidedTour/Provider.tsx","../../admin/src/components/Providers.tsx","../../admin/src/App.tsx","../../admin/src/assets/images/logo-strapi-2022.svg","../../admin/src/hooks/useClipboard.ts","../../admin/src/components/ErrorElement.tsx","../../admin/src/constants.ts","../../admin/src/core/apis/CustomFields.ts","../../admin/src/core/apis/Plugin.ts","../../admin/src/core/store/configure.ts","../../admin/src/core/utils/basename.ts","../../admin/src/core/utils/createHook.ts","../../admin/src/utils/objects.ts","../../admin/src/components/Form.tsx","../../admin/src/hooks/useFocusInputField.ts","../../admin/src/components/FormInputs/Boolean.tsx","../../admin/src/components/FormInputs/Checkbox.tsx","../../admin/src/components/FormInputs/Date.tsx","../../admin/src/components/FormInputs/DateTime.tsx","../../admin/src/components/FormInputs/Email.tsx","../../admin/src/components/FormInputs/Enumeration.tsx","../../admin/src/components/FormInputs/Json.tsx","../../admin/src/components/FormInputs/Number.tsx","../../admin/src/components/FormInputs/Password.tsx","../../admin/src/components/FormInputs/String.tsx","../../admin/src/components/FormInputs/Textarea.tsx","../../admin/src/components/FormInputs/Time.tsx","../../admin/src/components/FormInputs/Renderer.tsx","../../admin/src/components/UnauthenticatedLogo.tsx","../../admin/src/layouts/UnauthenticatedLayout.tsx","../../admin/src/utils/translatedErrors.ts","../../admin/src/pages/Auth/components/Login.tsx","../../admin/src/pages/Auth/components/ForgotPassword.tsx","../../admin/src/pages/Auth/components/ForgotPasswordSuccess.tsx","../../admin/src/pages/Auth/components/Oops.tsx","../../admin/src/hooks/usePersistentState.ts","../../admin/src/components/NpsSurvey.tsx","../../admin/src/pages/Auth/components/Register.tsx","../../admin/src/pages/Auth/components/ResetPassword.tsx","../../admin/src/pages/Auth/constants.ts","../../admin/src/pages/Auth/AuthPage.tsx","../../admin/src/components/Layouts/ActionLayout.tsx","../../admin/src/components/Layouts/ContentLayout.tsx","../../admin/src/components/Layouts/GridLayout.tsx","../../admin/src/components/Layouts/HeaderLayout.tsx","../../admin/src/components/Layouts/Layout.tsx","../../admin/src/pages/NotFoundPage.tsx","../../admin/src/pages/Settings/constants.ts","../../admin/src/translations/languageNativeNames.ts","../../admin/src/StrapiApp.tsx","../../admin/src/render.ts","../../admin/src/components/ConfirmDialog.tsx","../../admin/src/hooks/useIsMounted.ts","../../admin/src/hooks/useForceUpdate.ts","../../admin/src/hooks/useThrottledCallback.ts","../../admin/src/utils/shims.ts","../../admin/src/components/DescriptionComponentRenderer.tsx","../../admin/src/constants/filters.ts","../../admin/src/hooks/useControllableState.ts","../../admin/src/hooks/useQueryParams.ts","../../admin/src/components/Filters.tsx","../../admin/src/components/Pagination.tsx","../../admin/src/components/SearchInput.tsx","../../admin/src/components/Table.tsx","../../admin/src/hooks/useInjectReducer.ts","../../admin/src/hooks/useFetchClient.ts","../../admin/src/services/users.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',\n id: 'auditLogs',\n },\n ]\n : []),\n ],\n});\n","import { RouteObject } from 'react-router-dom';\n\n/**\n * All these routes are relative to the `/admin/settings/*` route\n * as such their path should not start with a `/` or include the `/settings` prefix.\n */\nexport const getEERoutes = (): RouteObject[] => [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n path: 'audit-logs',\n lazy: async () => {\n const { ProtectedListPage } = await import('./pages/AuditLogs/ListPage');\n\n return {\n Component: ProtectedListPage,\n };\n },\n },\n ]\n : []),\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n path: 'single-sign-on',\n lazy: async () => {\n const { ProtectedSSO } = await import('./pages/SingleSignOnPage');\n\n return {\n Component: ProtectedSSO,\n };\n },\n },\n ]\n : []),\n];\n","import * as React from 'react';\n\nimport { Link, LinkProps } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { createContext } from '../components/Context';\n\n/* -------------------------------------------------------------------------------------------------\n * HistoryProvider\n * -----------------------------------------------------------------------------------------------*/\ninterface HistoryState {\n /**\n * The history of the user's navigation within our application\n * during their current session.\n */\n history: string[];\n /**\n * The index of the current location in the history array.\n */\n currentLocationIndex: number;\n /**\n * The current location of the user within our application.\n */\n currentLocation: string;\n /**\n * Whether the user can go back in the history.\n */\n canGoBack: boolean;\n}\n\ninterface HistoryContextValue extends HistoryState {\n /**\n * @description Push a new state to the history. You can\n * either pass a string or an object.\n */\n pushState: (\n path:\n | {\n to: string;\n search: string;\n }\n | string\n ) => void;\n /**\n * @description Go back in the history. This calls `navigate(-1)` internally\n * to keep the browser in sync with the application state.\n */\n goBack: () => void;\n}\n\nconst [Provider, useHistory] = createContext<HistoryContextValue>('History', {\n history: [],\n currentLocationIndex: 0,\n currentLocation: '',\n canGoBack: false,\n pushState: () => {\n throw new Error('You must use the `HistoryProvider` to access the `pushState` function.');\n },\n goBack: () => {\n throw new Error('You must use the `HistoryProvider` to access the `goBack` function.');\n },\n});\n\ninterface HistoryProviderProps {\n children: React.ReactNode;\n}\n\nconst HistoryProvider = ({ children }: HistoryProviderProps) => {\n const location = useLocation();\n const navigate = useNavigate();\n const [state, dispatch] = React.useReducer(reducer, {\n history: [],\n currentLocationIndex: 0,\n currentLocation: '',\n canGoBack: false,\n });\n\n const isGoingBack = React.useRef(false);\n\n const pushState: HistoryContextValue['pushState'] = React.useCallback((path) => {\n dispatch({\n type: 'PUSH_STATE',\n payload: typeof path === 'string' ? { to: path, search: '' } : path,\n });\n }, []);\n\n const goBack: HistoryContextValue['goBack'] = React.useCallback(() => {\n /**\n * Perform the browser back action\n * dispatch the goBack action to keep redux in sync\n * and set the ref to avoid an infinite loop and incorrect state pushing\n */\n navigate(-1);\n dispatch({ type: 'GO_BACK' });\n isGoingBack.current = true;\n }, [navigate]);\n\n /**\n * This is a semi-listener pattern to keep the `canGoBack` state in sync.\n */\n const prevIndex = React.useRef(state.currentLocationIndex);\n React.useEffect(() => {\n if (state.currentLocationIndex !== prevIndex.current) {\n dispatch({\n type: 'SET_CAN_GO_BACK',\n payload: state.currentLocationIndex > 1 && state.history.length > 1,\n });\n prevIndex.current = state.currentLocationIndex;\n }\n }, [prevIndex, state.currentLocationIndex, state.history.length]);\n\n /**\n * This effect is responsible for pushing the new state to the history\n * when the user navigates to a new location assuming they're not going back.\n */\n React.useLayoutEffect(() => {\n if (isGoingBack.current) {\n isGoingBack.current = false;\n } else {\n // this should only occur on link movements, not back/forward clicks\n dispatch({\n type: 'PUSH_STATE',\n payload: { to: location.pathname, search: location.search },\n });\n }\n }, [dispatch, location.pathname, location.search]);\n\n return (\n <Provider pushState={pushState} goBack={goBack} {...state}>\n {children}\n </Provider>\n );\n};\n\ntype HistoryActions =\n | {\n type: 'PUSH_STATE';\n payload: {\n to: string;\n search: string;\n };\n }\n | {\n type: 'GO_BACK';\n }\n | {\n type: 'SET_CAN_GO_BACK';\n payload: boolean;\n };\n\nconst reducer = (state: HistoryState, action: HistoryActions) =>\n produce(state, (draft) => {\n switch (action.type) {\n case 'PUSH_STATE': {\n const path = `${action.payload.to}${action.payload.search}`;\n if (state.currentLocationIndex === state.history.length) {\n // add the new place\n draft.history = [...state.history, path];\n } else {\n // delete all the history after the current place and then add the new place\n draft.history = [...state.history.slice(0, state.currentLocationIndex), path];\n }\n\n draft.currentLocation = path;\n draft.currentLocationIndex += 1;\n\n break;\n }\n case 'GO_BACK': {\n const newIndex = state.currentLocationIndex - 1;\n\n draft.currentLocation = state.history[newIndex - 1];\n draft.currentLocationIndex = newIndex;\n break;\n }\n case 'SET_CAN_GO_BACK': {\n draft.canGoBack = action.payload;\n break;\n }\n default:\n break;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * BackButton\n * -----------------------------------------------------------------------------------------------*/\ninterface BackButtonProps extends Pick<LinkProps, 'disabled'> {}\n\n/**\n * @beta\n * @description The universal back button for the Strapi application. This uses the internal history\n * context to navigate the user back to the previous location. It can be completely disabled in a\n * specific user case.\n */\nconst BackButton = React.forwardRef<HTMLAnchorElement, BackButtonProps>(({ disabled }, ref) => {\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n goBack();\n };\n\n return (\n <Link\n ref={ref}\n tag={NavLink}\n to={history.at(-1) ?? ''}\n onClick={handleClick}\n disabled={disabled || !canGoBack}\n aria-disabled={disabled || !canGoBack}\n startIcon={<ArrowLeft />}\n >\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n});\n\nexport { BackButton, HistoryProvider };\nexport type { BackButtonProps, HistoryProviderProps, HistoryContextValue, HistoryState };\n","import * as React from 'react';\n\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nconst GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';\nconst GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';\nconst GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';\n\nconst GUIDED_TOUR_KEYS = {\n GUIDED_TOUR_COMPLETED_STEPS,\n GUIDED_TOUR_CURRENT_STEP,\n GUIDED_TOUR_SKIPPED,\n} as const;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\nimport { createContext } from '../Context';\n\ntype SectionKey = keyof GuidedTourContextValue['guidedTourState'];\ntype StepKey = keyof GuidedTourContextValue['guidedTourState'][SectionKey];\ntype Step = `${SectionKey}.${StepKey}`;\ninterface GuidedTourContextValue {\n currentStep: Step | null;\n guidedTourState: {\n contentTypeBuilder: {\n create: boolean;\n success: boolean;\n };\n contentManager: {\n create: boolean;\n success: boolean;\n };\n apiTokens: {\n create: boolean;\n success: boolean;\n };\n transferTokens: {\n create: boolean;\n success: boolean;\n };\n };\n isGuidedTourVisible: boolean;\n isSkipped: boolean;\n setCurrentStep: (step: Step | null) => void | null;\n setGuidedTourVisibility: (isVisible: boolean) => void;\n setSkipped: (isSkipped: boolean) => void;\n setStepState: (step: Step, state: boolean) => void;\n startSection: (section: SectionKey) => void;\n}\n\nconst [GuidedTourProviderImpl, useGuidedTour] = createContext<GuidedTourContextValue>('GuidedTour');\n\ninterface GuidedTourProviderProps {\n children: React.ReactNode;\n}\n\nconst GuidedTourProvider = ({ children }: GuidedTourProviderProps) => {\n const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] =\n React.useReducer(reducer, initialState, initialiseState);\n\n const setCurrentStep = (step: SetCurrentStepAction['step']) => {\n // if step is null it is intentional, we need to dispatch it\n if (step !== null) {\n const isStepAlreadyDone = get(guidedTourState, step);\n const [sectionName, stepName] = step.split('.') as [SectionKey, StepKey];\n const sectionArray = Object.entries(guidedTourState[sectionName]);\n\n const currentStepIndex = sectionArray.findIndex(([key]) => key === stepName);\n const previousSteps = sectionArray.slice(0, currentStepIndex);\n\n const isStepToShow = previousSteps.every(([, sectionValue]) => sectionValue);\n\n if (isStepAlreadyDone || isSkipped || !isStepToShow) {\n return null;\n }\n }\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n\n return dispatch({\n type: 'SET_CURRENT_STEP',\n step,\n });\n };\n\n const setGuidedTourVisibility = (value: SetGuidedTourVisibilityAction['value']) => {\n dispatch({\n type: 'SET_GUIDED_TOUR_VISIBILITY',\n value,\n });\n };\n\n const setStepState = (currentStep: Step, value: SetStepStateAction['value']) => {\n addCompletedStep(currentStep);\n\n dispatch({\n type: 'SET_STEP_STATE',\n currentStep,\n value,\n });\n };\n\n const startSection = (sectionName: SectionKey) => {\n const sectionSteps = guidedTourState[sectionName];\n\n if (sectionSteps) {\n const guidedTourArray = Object.entries(guidedTourState);\n\n // Find current section position in the guidedTourArray\n // Get only previous sections based on current section position\n const currentSectionIndex = guidedTourArray.findIndex(([key]) => key === sectionName);\n const previousSections = guidedTourArray.slice(0, currentSectionIndex);\n\n // Check if every steps from previous section are done\n const isSectionToShow = previousSections.every(([, sectionValue]) =>\n Object.values(sectionValue).every(Boolean)\n );\n\n const [firstStep] = Object.keys(sectionSteps) as [StepKey];\n const isFirstStepDone = sectionSteps[firstStep];\n\n if (isSectionToShow && !currentStep && !isFirstStepDone) {\n setCurrentStep(`${sectionName}.${firstStep}`);\n }\n }\n };\n\n const setSkipped = (value: SetSkippedAction['value']) => {\n window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));\n\n dispatch({\n type: 'SET_SKIPPED',\n value,\n });\n };\n\n return (\n <GuidedTourProviderImpl\n guidedTourState={guidedTourState}\n currentStep={currentStep}\n setCurrentStep={setCurrentStep}\n setGuidedTourVisibility={setGuidedTourVisibility}\n setSkipped={setSkipped}\n setStepState={setStepState}\n startSection={startSection}\n isGuidedTourVisible={isGuidedTourVisible}\n isSkipped={isSkipped}\n >\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\ntype State = Pick<\n GuidedTourContextValue,\n 'guidedTourState' | 'currentStep' | 'isGuidedTourVisible' | 'isSkipped'\n>;\n\nconst initialState = {\n currentStep: null,\n guidedTourState: {\n contentTypeBuilder: {\n create: false,\n success: false,\n },\n contentManager: {\n create: false,\n success: false,\n },\n apiTokens: {\n create: false,\n success: false,\n },\n transferTokens: {\n create: false,\n success: false,\n },\n },\n isGuidedTourVisible: false,\n isSkipped: false,\n} satisfies State;\n\ninterface SetCurrentStepAction {\n type: 'SET_CURRENT_STEP';\n step: Step | null;\n}\n\ninterface SetStepStateAction {\n type: 'SET_STEP_STATE';\n currentStep: Step;\n value: boolean;\n}\n\ninterface SetSkippedAction {\n type: 'SET_SKIPPED';\n value: boolean;\n}\n\ninterface SetGuidedTourVisibilityAction {\n type: 'SET_GUIDED_TOUR_VISIBILITY';\n value: boolean;\n}\n\ntype Action =\n | SetCurrentStepAction\n | SetStepStateAction\n | SetSkippedAction\n | SetGuidedTourVisibilityAction;\n\nconst reducer: React.Reducer<State, Action> = (state: State = initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_CURRENT_STEP': {\n draftState.currentStep = action.step;\n break;\n }\n case 'SET_STEP_STATE': {\n const [section, step] = action.currentStep.split('.') as [SectionKey, StepKey];\n draftState.guidedTourState[section][step] = action.value;\n break;\n }\n case 'SET_SKIPPED': {\n draftState.isSkipped = action.value;\n break;\n }\n case 'SET_GUIDED_TOUR_VISIBILITY': {\n draftState.isGuidedTourVisible = action.value;\n break;\n }\n default: {\n return draftState;\n }\n }\n });\n\nconst initialiseState = (initialState: State) => {\n const copyInitialState = { ...initialState };\n const guidedTourLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]'\n );\n const currentStepLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null'\n );\n const skippedLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'false'\n );\n\n if (Array.isArray(guidedTourLocaleStorage)) {\n guidedTourLocaleStorage.forEach((step) => {\n const [sectionName, stepName] = step.split('.');\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n });\n }\n\n // if current step when initializing mark it as done\n if (currentStepLocaleStorage) {\n const [sectionName, stepName] = currentStepLocaleStorage.split('.') as [SectionKey, StepKey];\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n\n addCompletedStep(currentStepLocaleStorage as Step);\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n }\n\n if (skippedLocaleStorage !== null) {\n set(copyInitialState, 'isSkipped', skippedLocaleStorage);\n }\n\n return copyInitialState;\n};\n\n/**\n * @description Add a completed step to the local storage if it does not already exist.\n */\nconst addCompletedStep = (completedStep: Step) => {\n const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');\n\n if (!Array.isArray(currentSteps)) {\n return;\n }\n\n const isAlreadyStored = currentSteps.includes(completedStep);\n\n if (isAlreadyStored) {\n return;\n }\n\n window.localStorage.setItem(\n GUIDED_TOUR_COMPLETED_STEPS,\n JSON.stringify([...currentSteps, completedStep])\n );\n};\n\nexport { GuidedTourProvider, useGuidedTour, GuidedTourContextValue, GUIDED_TOUR_KEYS };\n","import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n fields={strapi.library.fields}\n menu={strapi.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showTutorials={strapi.configurations.tutorials}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n","/**\n *\n * App.js\n *\n */\nimport { Suspense, useEffect } from 'react';\n\nimport { Outlet } from 'react-router-dom';\n\nimport { Page } from './components/PageHelpers';\nimport { Providers } from './components/Providers';\nimport { LANGUAGE_LOCAL_STORAGE_KEY } from './reducer';\n\nimport type { Store } from './core/store/configure';\nimport type { StrapiApp } from './StrapiApp';\n\ninterface AppProps {\n strapi: StrapiApp;\n store: Store;\n}\n\nconst App = ({ strapi, store }: AppProps) => {\n useEffect(() => {\n const language = localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) || 'en';\n\n if (language) {\n document.documentElement.lang = language;\n }\n }, []);\n\n return (\n <Providers strapi={strapi} store={store}>\n <Suspense fallback={<Page.Loading />}>\n <Outlet />\n </Suspense>\n </Providers>\n );\n};\n\nexport { App };\nexport type { AppProps };\n","export default \"data:image/svg+xml,%3csvg%20width='800'%20height='800'%20viewBox='0%200%20800%20800'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M39%20282c0-118%200-176.9%2036.6-213.5C112.2%2032%20171.1%2032%20288.9%2032h221.2c117.8%200%20176.7%200%20213.3%2036.6C760%20105.2%20760%20164.1%20760%20281.9v221.2c0%20117.8%200%20176.7-36.6%20213.3C686.8%20753%20627.9%20753%20510.1%20753H288.9c-117.8%200-176.7%200-213.3-36.6C39%20679.8%2039%20620.9%2039%20503.1V281.9Z'%20fill='%234945FF'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M536.4%20250.7H293.7v123.8h123.8v123.7h123.8V255.5c0-2.6-2.2-4.8-4.9-4.8Z'%20fill='%23fff'/%3e%3cpath%20fill='%23fff'%20d='M412.7%20374.5h4.8v4.8h-4.8z'/%3e%3cpath%20d='M293.8%20374.5h119c2.6%200%204.8%202.1%204.8%204.8v119h-119a4.8%204.8%200%200%201-4.8-4.9v-119Z'%20fill='%239593FF'/%3e%3cpath%20d='M417.5%20498.2h123.8L421.6%20618a2.4%202.4%200%200%201-4-1.7v-118ZM293.8%20374.5h-118a2.4%202.4%200%200%201-1.7-4.1l119.7-119.7v123.8Z'%20fill='%239593FF'/%3e%3c/svg%3e\"","import { useCallback } from 'react';\n\nconst useClipboard = () => {\n const copy = useCallback(async (value: string | number) => {\n try {\n // only strings and numbers casted to strings can be copied to clipboard\n if (typeof value !== 'string' && typeof value !== 'number') {\n throw new Error(\n `Cannot copy typeof ${typeof value} to clipboard, must be a string or number`\n );\n }\n // empty strings are also considered invalid\n else if (value === '') {\n throw new Error(`Cannot copy empty string to clipboard.`);\n }\n\n const stringifiedValue = value.toString();\n\n await navigator.clipboard.writeText(stringifiedValue);\n\n return true;\n } catch (error) {\n /**\n * Realistically this isn't useful in production as there's nothing the user can do.\n */\n if (process.env.NODE_ENV === 'development') {\n console.warn('Copy failed', error);\n }\n\n return false;\n }\n }, []);\n\n return { copy };\n};\n\nexport { useClipboard };\n","import {\n Alert,\n Button,\n Flex,\n Main,\n Typography,\n Link,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { Duplicate, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useRouteError } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useClipboard } from '../hooks/useClipboard';\n\n/**\n * @description this stops the app from going white, and instead shows the error message.\n * But it could be improved for sure.\n */\nconst ErrorElement = () => {\n const error = useRouteError();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n if (error instanceof Error) {\n console.error(error);\n\n const handleClick = async () => {\n await copy(`\n\\`\\`\\`\n${error.stack}\n\\`\\`\\`\n `);\n };\n\n return (\n <Main height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Flex\n gap={7}\n padding={7}\n direction=\"column\"\n width=\"35%\"\n shadow=\"tableShadow\"\n borderColor=\"neutral150\"\n background=\"neutral0\"\n hasRadius\n maxWidth=\"512px\"\n >\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"32px\" height=\"32px\" fill=\"danger600\" />\n <Typography fontSize={4} fontWeight=\"bold\" textAlign=\"center\">\n {formatMessage({\n id: 'app.error',\n defaultMessage: 'Something went wrong',\n })}\n </Typography>\n <Typography variant=\"omega\" textAlign=\"center\">\n {formatMessage(\n {\n id: 'app.error.message',\n defaultMessage: `It seems like there is a bug in your instance, but we've got you covered. Please notify your technical team so they can investigate the source of the problem and report the issue to us by opening a bug report on {link}.`,\n },\n {\n link: (\n <Link\n isExternal\n // hack to get rid of the current endIcon, which should be removable by using `null`.\n endIcon\n href=\"https://github.com/strapi/strapi/issues/new?assignees=&labels=&projects=&template=BUG_REPORT.md\"\n >{`Strapi's GitHub`}</Link>\n ),\n }\n )}\n </Typography>\n </Flex>\n {/* the Alert component needs to make its close button optional as well as the icon. */}\n <Flex gap={4} direction=\"column\" width=\"100%\">\n <StyledAlert onClose={() => {}} width=\"100%\" closeLabel=\"\" variant=\"danger\">\n <ErrorType>{error.message}</ErrorType>\n </StyledAlert>\n <Button onClick={handleClick} variant=\"tertiary\" startIcon={<Duplicate />}>\n {formatMessage({\n id: 'app.error.copy',\n defaultMessage: 'Copy to clipboard',\n })}\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Main>\n );\n }\n\n throw error;\n};\n\nconst StyledAlert = styled(Alert)`\n & > div:first-child {\n display: none;\n }\n\n & > button {\n display: none;\n }\n`;\n\nconst ErrorType = styled<TypographyComponent>(Typography)`\n word-break: break-all;\n color: ${({ theme }) => theme.colors.danger600};\n`;\n\nexport { ErrorElement };\n","import { PermissionMap } from './types/permissions';\n\nimport type { StrapiAppSettingLink } from './StrapiApp';\n\nexport const ADMIN_PERMISSIONS_CE = {\n contentManager: {\n main: [],\n collectionTypesConfigurations: [\n {\n action: 'plugin::content-manager.collection-types.configure-view',\n subject: null,\n },\n ],\n componentsConfigurations: [\n {\n action: 'plugin::content-manager.components.configure-layout',\n subject: null,\n },\n ],\n singleTypesConfigurations: [\n {\n action: 'plugin::content-manager.single-types.configure-view',\n subject: null,\n },\n ],\n },\n marketplace: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n settings: {\n roles: {\n main: [\n { action: 'admin::roles.create', subject: null },\n { action: 'admin::roles.update', subject: null },\n { action: 'admin::roles.read', subject: null },\n { action: 'admin::roles.delete', subject: null },\n ],\n create: [{ action: 'admin::roles.create', subject: null }],\n delete: [{ action: 'admin::roles.delete', subject: null }],\n read: [{ action: 'admin::roles.read', subject: null }],\n update: [{ action: 'admin::roles.update', subject: null }],\n },\n users: {\n main: [\n { action: 'admin::users.create', subject: null },\n { action: 'admin::users.read', subject: null },\n { action: 'admin::users.update', subject: null },\n { action: 'admin::users.delete', subject: null },\n ],\n create: [{ action: 'admin::users.create', subject: null }],\n delete: [{ action: 'admin::users.delete', subject: null }],\n read: [{ action: 'admin::users.read', subject: null }],\n update: [{ action: 'admin::users.update', subject: null }],\n },\n webhooks: {\n main: [\n { action: 'admin::webhooks.create', subject: null },\n { action: 'admin::webhooks.read', subject: null },\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n create: [{ action: 'admin::webhooks.create', subject: null }],\n delete: [{ action: 'admin::webhooks.delete', subject: null }],\n read: [\n { action: 'admin::webhooks.read', subject: null },\n // NOTE: We need to check with the API\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n update: [{ action: 'admin::webhooks.update', subject: null }],\n },\n 'api-tokens': {\n main: [{ action: 'admin::api-tokens.access', subject: null }],\n create: [{ action: 'admin::api-tokens.create', subject: null }],\n delete: [{ action: 'admin::api-tokens.delete', subject: null }],\n read: [{ action: 'admin::api-tokens.read', subject: null }],\n update: [{ action: 'admin::api-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::api-tokens.regenerate', subject: null }],\n },\n 'transfer-tokens': {\n main: [{ action: 'admin::transfer.tokens.access', subject: null }],\n create: [{ action: 'admin::transfer.tokens.create', subject: null }],\n delete: [{ action: 'admin::transfer.tokens.delete', subject: null }],\n read: [{ action: 'admin::transfer.tokens.read', subject: null }],\n update: [{ action: 'admin::transfer.tokens.update', subject: null }],\n regenerate: [{ action: 'admin::transfer.tokens.regenerate', subject: null }],\n },\n 'project-settings': {\n read: [{ action: 'admin::project-settings.read', subject: null }],\n update: [{ action: 'admin::project-settings.update', subject: null }],\n },\n },\n} satisfies Partial<PermissionMap>;\n\nexport const HOOKS = {\n /**\n * Hook that allows to mutate the displayed headers of the list view table\n * @constant\n * @type {string}\n */\n INJECT_COLUMN_IN_TABLE: 'Admin/CM/pages/ListView/inject-column-in-table',\n\n /**\n * Hook that allows to mutate the CM's collection types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_COLLECTION_TYPES_LINKS: 'Admin/CM/pages/App/mutate-collection-types-links',\n\n /**\n * Hook that allows to mutate the CM's edit view layout\n * @constant\n * @type {string}\n */\n MUTATE_EDIT_VIEW_LAYOUT: 'Admin/CM/pages/EditView/mutate-edit-view-layout',\n\n /**\n * Hook that allows to mutate the CM's single types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links',\n};\n\nexport interface SettingsMenuLink\n extends Omit<StrapiAppSettingLink, 'Component' | 'permissions' | 'licenseOnly'> {\n licenseOnly?: boolean;\n}\n\nexport type SettingsMenu = {\n admin: SettingsMenuLink[];\n global: SettingsMenuLink[];\n};\n\nexport const SETTINGS_LINKS_CE = (): SettingsMenu => ({\n global: [\n {\n intlLabel: { id: 'Settings.application.title', defaultMessage: 'Overview' },\n to: '/settings/application-infos',\n id: '000-application-infos',\n },\n {\n intlLabel: { id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' },\n to: '/settings/webhooks',\n id: 'webhooks',\n },\n {\n intlLabel: { id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' },\n to: '/settings/api-tokens?sort=name:ASC',\n id: 'api-tokens',\n },\n {\n intlLabel: { id: 'Settings.transferTokens.title', defaultMessage: 'Transfer Tokens' },\n to: '/settings/transfer-tokens?sort=name:ASC',\n id: 'transfer-tokens',\n },\n // If the Enterprise/Cloud feature is not enabled and if the config doesn't disable it, we promote the Enterprise/Cloud feature by displaying them in the settings menu.\n // Disable this by adding \"promoteEE: false\" to your `./config/admin.js` file\n ...(!window.strapi.features.isEnabled(window.strapi.features.SSO) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/purchase-single-sign-on',\n id: 'sso-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n {\n intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },\n to: '/settings/roles',\n id: 'roles',\n },\n {\n intlLabel: { id: 'global.users', defaultMessage: 'Users' },\n // Init the search params directly\n to: '/settings/users?pageSize=10&page=1&sort=firstname',\n id: 'users',\n },\n ...(!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/purchase-audit-logs',\n id: 'auditLogs-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n","/* eslint-disable check-file/filename-naming-convention */\nimport { ComponentType } from 'react';\n\nimport invariant from 'invariant';\n\nimport type { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport type { AnySchema } from 'yup';\n\ntype CustomFieldUID = `plugin::${string}.${string}` | `global::${string}`;\n\ntype CustomFieldOptionInput =\n | 'text'\n | 'checkbox'\n | 'checkbox-with-number-field'\n | 'select-default-boolean'\n | 'date'\n | 'select'\n | 'number'\n | 'boolean-radio-group'\n | 'select-date'\n | 'text-area-enum'\n | 'select-number'\n | 'radio-group';\n\ntype CustomFieldOptionName =\n | 'min'\n | 'minLength'\n | 'max'\n | 'maxLength'\n | 'required'\n | 'regex'\n | 'enum'\n | 'unique'\n | 'private'\n | 'default';\n\ninterface CustomFieldOption {\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n description: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n name: CustomFieldOptionName;\n type: CustomFieldOptionInput;\n defaultValue?: string | number | boolean | Date;\n}\n\ninterface CustomFieldOptionSection {\n sectionTitle:\n | (MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n })\n | null;\n items: CustomFieldOption[];\n}\n\ninterface CustomFieldOptions {\n base?: (CustomFieldOptionSection | CustomFieldOption)[];\n advanced?: (CustomFieldOptionSection | CustomFieldOption)[];\n validator?: () => Record<string, AnySchema>;\n}\n\ninterface CustomField {\n name: string;\n pluginId?: string;\n type: (typeof ALLOWED_TYPES)[number];\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n intlDescription: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n icon?: ComponentType;\n components: {\n Input: () => Promise<{ default?: ComponentType }>;\n };\n options?: CustomFieldOptions;\n}\n\nconst ALLOWED_TYPES = [\n 'biginteger',\n 'boolean',\n 'date',\n 'datetime',\n 'decimal',\n 'email',\n 'enumeration',\n 'float',\n 'integer',\n 'json',\n 'password',\n 'richtext',\n 'string',\n 'text',\n 'time',\n 'uid',\n] as const;\n\nconst ALLOWED_ROOT_LEVEL_OPTIONS = [\n 'min',\n 'minLength',\n 'max',\n 'maxLength',\n 'required',\n 'regex',\n 'enum',\n 'unique',\n 'private',\n 'default',\n] as const;\n\nclass CustomFields {\n customFields: Record<string, CustomField>;\n\n constructor() {\n this.customFields = {};\n }\n\n register = (customFields: CustomField | CustomField[]) => {\n if (Array.isArray(customFields)) {\n // If several custom fields are passed, register them one by one\n customFields.forEach((customField) => {\n this.register(customField);\n });\n } else {\n // Handle individual custom field\n const { name, pluginId, type, intlLabel, intlDescription, components, options } =\n customFields;\n\n // Ensure required attributes are provided\n invariant(name, 'A name must be provided');\n invariant(type, 'A type must be provided');\n invariant(intlLabel, 'An intlLabel must be provided');\n invariant(intlDescription, 'An intlDescription must be provided');\n invariant(components, 'A components object must be provided');\n invariant(components.Input, 'An Input component must be provided');\n\n // Ensure the type is valid\n invariant(\n ALLOWED_TYPES.includes(type),\n `Custom field type: '${type}' is not a valid Strapi type or it can't be used with a Custom Field`\n );\n\n // Ensure name has no special characters\n const isValidObjectKey = /^(?![0-9])[a-zA-Z0-9$_-]+$/g;\n invariant(\n isValidObjectKey.test(name),\n `Custom field name: '${name}' is not a valid object key`\n );\n\n // Ensure options have valid name paths\n const allFormOptions = [...(options?.base || []), ...(options?.advanced || [])];\n\n if (allFormOptions.length) {\n const optionPathValidations = allFormOptions.reduce(optionsValidationReducer, []);\n\n optionPathValidations.forEach(({ isValidOptionPath, errorMessage }) => {\n invariant(isValidOptionPath, errorMessage);\n });\n }\n\n // When no plugin is specified, default to the global namespace\n const uid: CustomFieldUID = pluginId ? `plugin::${pluginId}.${name}` : `global::${name}`;\n\n // Ensure the uid is unique\n const uidAlreadyUsed = Object.prototype.hasOwnProperty.call(this.customFields, uid);\n invariant(!uidAlreadyUsed, `Custom field: '${uid}' has already been registered`);\n\n this.customFields[uid] = customFields;\n }\n };\n\n getAll = () => {\n return this.customFields;\n };\n\n get = (uid: string): CustomField | undefined => {\n return this.customFields[uid];\n };\n}\n\ninterface OptionValidation {\n isValidOptionPath: boolean;\n errorMessage: string;\n}\n\nconst optionsValidationReducer = (\n acc: OptionValidation[],\n option: CustomFieldOptionSection | CustomFieldOption\n): OptionValidation[] => {\n if ('items' in option) {\n return option.items.reduce(optionsValidationReducer, acc);\n }\n\n if (!option.name) {\n acc.push({\n isValidOptionPath: false,\n errorMessage: \"The 'name' property is required on an options object\",\n });\n } else {\n acc.push({\n isValidOptionPath:\n option.name.startsWith('options') || ALLOWED_ROOT_LEVEL_OPTIONS.includes(option.name),\n errorMessage: `'${option.name}' must be prefixed with 'options.'`,\n });\n }\n\n return acc;\n};\n\nexport { type CustomField, CustomFields };\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nexport interface PluginConfig\n extends Partial<Pick<Plugin, 'apis' | 'initializer' | 'injectionZones' | 'isReady'>> {\n name: string;\n id: string;\n}\n\nexport class Plugin {\n apis: Record<string, unknown>;\n initializer: React.ComponentType<{ setPlugin(pluginId: string): void }> | null;\n injectionZones: Record<\n string,\n Record<string, Array<{ name: string; Component: React.ComponentType }>>\n >;\n isReady: boolean;\n name: string;\n pluginId: PluginConfig['id'];\n\n constructor(pluginConf: PluginConfig) {\n this.apis = pluginConf.apis || {};\n this.initializer = pluginConf.initializer || null;\n this.injectionZones = pluginConf.injectionZones || {};\n this.isReady = pluginConf.isReady !== undefined ? pluginConf.isReady : true;\n this.name = pluginConf.name;\n this.pluginId = pluginConf.id;\n }\n\n getInjectedComponents(containerName: string, blockName: string) {\n try {\n return this.injectionZones[containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n }\n\n injectComponent(\n containerName: string,\n blockName: string,\n component: { name: string; Component: React.ComponentType }\n ) {\n try {\n this.injectionZones[containerName][blockName].push(component);\n } catch (err) {\n console.error('Cannot inject component', err);\n }\n }\n}\n","import {\n configureStore,\n StoreEnhancer,\n Middleware,\n Reducer,\n combineReducers,\n} from '@reduxjs/toolkit';\n\nimport { reducer as appReducer, AppState } from '../../reducer';\nimport { adminApi } from '../../services/api';\n\n/**\n * @description Static reducers are ones we know, they live in the admin package.\n */\nconst staticReducers = {\n [adminApi.reducerPath]: adminApi.reducer,\n admin_app: appReducer,\n} as const;\n\nconst injectReducerStoreEnhancer: (appReducers: Record<string, Reducer>) => StoreEnhancer =\n (appReducers) =>\n (next) =>\n (...args) => {\n const store = next(...args);\n\n const asyncReducers: Record<string, Reducer> = {};\n\n return {\n ...store,\n asyncReducers,\n injectReducer: (key: string, asyncReducer: Reducer) => {\n asyncReducers[key] = asyncReducer;\n store.replaceReducer(\n // @ts-expect-error we dynamically add reducers which makes the types uncomfortable.\n combineReducers({\n ...appReducers,\n ...asyncReducers,\n })\n );\n },\n };\n };\n\ntype PreloadState = Partial<{\n admin_app: AppState;\n}>;\n\n/**\n * @description This is the main store configuration function, injected Reducers use our legacy app.addReducer API,\n * which we're trying to phase out. App Middlewares could potentially be improved...?\n */\nconst configureStoreImpl = (\n preloadedState: PreloadState = {},\n appMiddlewares: Array<() => Middleware> = [],\n injectedReducers: Record<string, Reducer> = {}\n) => {\n const coreReducers = { ...staticReducers, ...injectedReducers } as const;\n\n const defaultMiddlewareOptions = {} as any;\n\n // These are already disabled in 'production' env but we also need to disable it in test environments\n // However, we want to leave them on for development so any issues can still be caught\n if (process.env.NODE_ENV === 'test') {\n defaultMiddlewareOptions.serializableCheck = false;\n defaultMiddlewareOptions.immutableCheck = false;\n }\n\n const store = configureStore({\n preloadedState: {\n admin_app: preloadedState.admin_app,\n },\n reducer: coreReducers,\n devTools: process.env.NODE_ENV !== 'production',\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware(defaultMiddlewareOptions),\n adminApi.middleware,\n ...appMiddlewares.map((m) => m()),\n ],\n enhancers: [injectReducerStoreEnhancer(coreReducers)],\n });\n\n return store;\n};\n\ntype Store = ReturnType<typeof configureStoreImpl> & {\n asyncReducers: Record<string, Reducer>;\n injectReducer: (key: string, asyncReducer: Reducer) => void;\n};\n\ntype RootState = ReturnType<Store['getState']>;\n\ntype Dispatch = Store['dispatch'];\n\nexport { configureStoreImpl as configureStore };\nexport type { RootState, Dispatch, AppState, Store, PreloadState };\n","export const getBasename = () => (process.env.ADMIN_PATH ?? '').replace(window.location.origin, '');\n","/* eslint-disable no-await-in-loop */\n/* eslint-disable no-restricted-syntax */\n\nimport type { Store } from '../store/configure';\n\nexport type Handler = (...args: any[]) => any;\n\nexport const createHook = () => {\n const _handlers: Handler[] = [];\n\n return {\n register(fn: Handler) {\n _handlers.push(fn);\n },\n delete(handler: Handler) {\n _handlers.splice(_handlers.indexOf(handler), 1);\n },\n runWaterfall<T>(args: T, store?: Store) {\n return _handlers.reduce((acc, fn) => fn(acc, store), args);\n },\n async runWaterfallAsync<T>(args: T, store?: Store) {\n let result = args;\n\n for (const fn of _handlers) {\n result = await fn(result, store);\n }\n\n return result;\n },\n runSeries<T extends any[]>(...args: T) {\n return _handlers.map((fn) => fn(...args));\n },\n async runSeriesAsync<T extends any[]>(...args: T) {\n const result = [];\n\n for (const fn of _handlers) {\n result.push(await fn(...args));\n }\n\n return result;\n },\n runParallel<T extends any[]>(...args: T) {\n return Promise.all(\n _handlers.map((fn) => {\n return fn(...args);\n })\n );\n },\n };\n};\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(obj: any, key: string | string[], def?: any, pathStartIndex: number = 0) {\n const path = toPath(key);\n while (obj && pathStartIndex < path.length) {\n obj = obj[path[pathStartIndex++]];\n }\n\n // check if path is not in the end\n if (pathStartIndex !== path.length && !obj) {\n return def;\n }\n\n return obj === undefined ? def : obj;\n}\n\n/** @internal is the given object an Object? */\nexport const isObject = (obj: any): obj is object =>\n obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n\n/** @internal is the given object an integer? */\nexport const isInteger = (obj: any): boolean => String(Math.floor(Number(obj))) === obj;\n\n/**\n * Deeply set a value from in object via its path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n const res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n const pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n const currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n","import * as React from 'react';\n\nimport { Button, Dialog, useCallbackRef, useComposedRefs } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { generateNKeysBetween } from 'fractional-indexing';\nimport { produce } from 'immer';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl, type MessageDescriptor, type PrimitiveType } from 'react-intl';\nimport { useBlocker } from 'react-router-dom';\n\nimport { getIn, setIn } from '../utils/objects';\n\nimport { createContext } from './Context';\n\nimport type {\n InputProps as InputPropsImpl,\n StringProps,\n EnumerationProps,\n} from './FormInputs/types';\nimport type * as Yup from 'yup';\n\n/* -------------------------------------------------------------------------------------------------\n * FormContext\n * -----------------------------------------------------------------------------------------------*/\ntype InputProps = InputPropsImpl | StringProps | EnumerationProps;\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface FormValues {\n [field: string]: any;\n}\n\ninterface FormContextValue<TFormValues extends FormValues = FormValues>\n extends FormState<TFormValues> {\n disabled: boolean;\n initialValues: TFormValues;\n modified: boolean;\n /**\n * The default behaviour is to add the row to the end of the array, if you want to add it to a\n * specific index you can pass the index.\n */\n addFieldRow: (field: string, value: any, addAtIndex?: number) => void;\n moveFieldRow: (field: string, fromIndex: number, toIndex: number) => void;\n onChange: (eventOrPath: React.ChangeEvent<any> | string, value?: any) => void;\n /*\n * The default behaviour is to remove the last row, if you want to remove a specific index you can\n * pass the index.\n */\n removeFieldRow: (field: string, removeAtIndex?: number) => void;\n resetForm: () => void;\n setErrors: (errors: FormErrors<TFormValues>) => void;\n setSubmitting: (isSubmitting: boolean) => void;\n setValues: (values: TFormValues) => void;\n validate: () => Promise<\n { data: TFormValues; errors?: never } | { data?: never; errors: FormErrors<TFormValues> }\n >;\n}\n\n/**\n * @internal\n * @description We use this just to warn people that they're using the useForm\n * methods outside of a Form component, but we don't want to throw an error\n * because otherwise the DocumentActions list cannot be rendered in our list-view.\n */\nconst ERR_MSG =\n 'The Form Component has not been initialised, ensure you are using this hook within a Form component';\n\nconst [FormProvider, useForm] = createContext<FormContextValue>('Form', {\n disabled: false,\n errors: {},\n initialValues: {},\n isSubmitting: false,\n modified: false,\n addFieldRow: () => {\n throw new Error(ERR_MSG);\n },\n moveFieldRow: () => {\n throw new Error(ERR_MSG);\n },\n onChange: () => {\n throw new Error(ERR_MSG);\n },\n removeFieldRow: () => {\n throw new Error(ERR_MSG);\n },\n resetForm: () => {\n throw new Error(ERR_MSG);\n },\n setErrors: () => {\n throw new Error(ERR_MSG);\n },\n setValues: () => {\n throw new Error(ERR_MSG);\n },\n setSubmitting: () => {\n throw new Error(ERR_MSG);\n },\n validate: async () => {\n throw new Error(ERR_MSG);\n },\n values: {},\n});\n\n/* -------------------------------------------------------------------------------------------------\n * Form\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormHelpers<TFormValues extends FormValues = FormValues>\n extends Pick<FormContextValue<TFormValues>, 'setErrors' | 'setValues' | 'resetForm'> {}\n\ninterface FormProps<TFormValues extends FormValues = FormValues>\n extends Partial<Pick<FormContextValue<TFormValues>, 'disabled' | 'initialValues'>> {\n children:\n | React.ReactNode\n | ((\n props: Pick<\n FormContextValue<TFormValues>,\n | 'disabled'\n | 'errors'\n | 'isSubmitting'\n | 'modified'\n | 'values'\n | 'resetForm'\n | 'onChange'\n | 'setErrors'\n >\n ) => React.ReactNode);\n method: 'POST' | 'PUT';\n onSubmit?: (values: TFormValues, helpers: FormHelpers<TFormValues>) => Promise<void> | void;\n // TODO: type the return value for a validation schema func from Yup.\n validationSchema?: Yup.AnySchema;\n}\n\n/**\n * @alpha\n * @description A form component that handles form state, validation and submission.\n * It can additionally handle nested fields and arrays. To access the data you can either\n * use the generic useForm hook or the useField hook when providing the name of your field.\n */\nconst Form = React.forwardRef<HTMLFormElement, FormProps>(\n ({ disabled = false, method, onSubmit, ...props }, ref) => {\n const formRef = React.useRef<HTMLFormElement>(null!);\n const initialValues = React.useRef(props.initialValues ?? {});\n const [state, dispatch] = React.useReducer(reducer, {\n errors: {},\n isSubmitting: false,\n values: props.initialValues ?? {},\n });\n\n React.useEffect(() => {\n /**\n * ONLY update the initialValues if the prop has changed.\n */\n if (!isEqual(initialValues.current, props.initialValues)) {\n initialValues.current = props.initialValues ?? {};\n\n dispatch({\n type: 'SET_INITIAL_VALUES',\n payload: props.initialValues ?? {},\n });\n }\n }, [props.initialValues]);\n\n const setErrors = React.useCallback((errors: FormErrors) => {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors,\n });\n }, []);\n\n const setValues = React.useCallback((values: FormValues) => {\n dispatch({\n type: 'SET_VALUES',\n payload: values,\n });\n }, []);\n\n React.useEffect(() => {\n if (Object.keys(state.errors).length === 0) return;\n\n /**\n * Small timeout to ensure the form has been\n * rendered before we try to focus on the first\n */\n const ref = setTimeout(() => {\n const [firstError] = formRef.current.querySelectorAll('[data-strapi-field-error]');\n\n if (firstError) {\n const errorId = firstError.getAttribute('id');\n const formElementInError = formRef.current.querySelector(\n `[aria-describedby=\"${errorId}\"]`\n );\n\n if (formElementInError && formElementInError instanceof HTMLElement) {\n formElementInError.focus();\n }\n }\n });\n\n return () => clearTimeout(ref);\n }, [state.errors]);\n\n /**\n * Uses the provided validation schema\n */\n const validate: FormContextValue['validate'] = React.useCallback(\n async (shouldSetErrors: boolean = true) => {\n setErrors({});\n\n if (!props.validationSchema) {\n return { data: state.values };\n }\n\n try {\n const data = await props.validationSchema.validate(state.values, { abortEarly: false });\n\n return { data };\n } catch (err) {\n if (isErrorYupValidationError(err)) {\n const errors = getYupValidationErrors(err);\n\n if (shouldSetErrors) {\n setErrors(errors);\n }\n\n return { errors };\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in <Form validationSchema />`,\n err\n );\n }\n\n throw err;\n }\n }\n },\n [props, setErrors, state.values]\n );\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {\n e.stopPropagation();\n e.preventDefault();\n\n if (!onSubmit) {\n return;\n }\n\n dispatch({\n type: 'SUBMIT_ATTEMPT',\n });\n\n try {\n const { data, errors } = await validate();\n\n if (errors) {\n setErrors(errors);\n\n throw new Error('Submission failed');\n }\n\n await onSubmit(data, {\n setErrors,\n setValues,\n resetForm,\n });\n\n dispatch({\n type: 'SUBMIT_SUCCESS',\n });\n } catch (err) {\n dispatch({\n type: 'SUBMIT_FAILURE',\n });\n\n if (err instanceof Error && err.message === 'Submission failed') {\n return;\n }\n }\n };\n\n const modified = React.useMemo(\n () => !isEqual(initialValues.current, state.values),\n [state.values]\n );\n\n const handleChange: FormContextValue['onChange'] = useCallbackRef((eventOrPath, v) => {\n if (typeof eventOrPath === 'string') {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: eventOrPath,\n value: v,\n },\n });\n\n return;\n }\n\n const target = eventOrPath.target || eventOrPath.currentTarget;\n\n const { type, name, id, value, options, multiple } = target;\n\n const field = name || id;\n\n if (!field && process.env.NODE_ENV !== 'production') {\n console.warn(\n `\\`onChange\\` was called with an event, but you forgot to pass a \\`name\\` or \\`id'\\` attribute to your input. The field to update cannot be determined`\n );\n }\n\n /**\n * Because we handle any field from this function, we run through a series\n * of checks to understand how to use the value.\n */\n let val;\n\n if (/number|range/.test(type)) {\n const parsed = parseFloat(value);\n // If the value isn't a number for whatever reason, don't let it through because that will break the API.\n val = isNaN(parsed) ? '' : parsed;\n } else if (/checkbox/.test(type)) {\n // Get & invert the current value of the checkbox.\n val = !getIn(state.values, field);\n } else if (options && multiple) {\n // This will handle native select elements incl. ones with mulitple options.\n val = Array.from<HTMLOptionElement>(options)\n .filter((el) => el.selected)\n .map((el) => el.value);\n } else {\n val = value;\n }\n\n if (field) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value: val,\n },\n });\n }\n });\n\n const addFieldRow: FormContextValue['addFieldRow'] = React.useCallback(\n (field, value, addAtIndex) => {\n dispatch({\n type: 'ADD_FIELD_ROW',\n payload: {\n field,\n value,\n addAtIndex,\n },\n });\n },\n []\n );\n\n const removeFieldRow: FormContextValue['removeFieldRow'] = React.useCallback(\n (field, removeAtIndex) => {\n dispatch({\n type: 'REMOVE_FIELD_ROW',\n payload: {\n field,\n removeAtIndex,\n },\n });\n },\n []\n );\n\n const moveFieldRow: FormContextValue['moveFieldRow'] = React.useCallback(\n (field, fromIndex, toIndex) => {\n dispatch({\n type: 'MOVE_FIELD_ROW',\n payload: {\n field,\n fromIndex,\n toIndex,\n },\n });\n },\n []\n );\n\n const resetForm: FormContextValue['resetForm'] = React.useCallback(() => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n errors: {},\n isSubmitting: false,\n values: initialValues.current,\n },\n });\n }, []);\n\n const setSubmitting = React.useCallback((isSubmitting: boolean) => {\n dispatch({ type: 'SET_ISSUBMITTING', payload: isSubmitting });\n }, []);\n\n const composedRefs = useComposedRefs(formRef, ref);\n\n return (\n <form ref={composedRefs} method={method} noValidate onSubmit={handleSubmit}>\n <FormProvider\n disabled={disabled}\n onChange={handleChange}\n initialValues={initialValues}\n modified={modified}\n addFieldRow={addFieldRow}\n moveFieldRow={moveFieldRow}\n removeFieldRow={removeFieldRow}\n resetForm={resetForm}\n setErrors={setErrors}\n setValues={setValues}\n setSubmitting={setSubmitting}\n validate={validate}\n {...state}\n >\n {typeof props.children === 'function'\n ? props.children({\n modified,\n disabled,\n onChange: handleChange,\n ...state,\n setErrors,\n resetForm,\n })\n : props.children}\n </FormProvider>\n </form>\n );\n }\n) as <TFormValues extends FormValues>(\n p: FormProps<TFormValues> & { ref?: React.Ref<HTMLFormElement> }\n) => React.ReactElement; // we've cast this because we need the generic to infer the type of the form values.\n\n/**\n * @internal\n * @description Checks if the error is a Yup validation error.\n */\nconst isErrorYupValidationError = (err: any): err is Yup.ValidationError =>\n typeof err === 'object' &&\n err !== null &&\n 'name' in err &&\n typeof err.name === 'string' &&\n err.name === 'ValidationError';\n\n/* -------------------------------------------------------------------------------------------------\n * getYupValidationErrors\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description handy utility to convert a yup validation error into a form\n * error object. To be used elsewhere.\n */\nconst getYupValidationErrors = (err: Yup.ValidationError): FormErrors => {\n let errors: FormErrors = {};\n\n if (err.inner) {\n if (err.inner.length === 0) {\n return setIn(errors, err.path!, err.message);\n }\n for (const error of err.inner) {\n if (!getIn(errors, error.path!)) {\n errors = setIn(errors, error.path!, error.message);\n }\n }\n }\n\n return errors;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * reducer\n * -----------------------------------------------------------------------------------------------*/\n\ntype FormErrors<TFormValues extends FormValues = FormValues> = {\n // is it a repeatable component or dynamic zone?\n [Key in keyof TFormValues]?: TFormValues[Key] extends any[]\n ? TFormValues[Key][number] extends object\n ? FormErrors<TFormValues[Key][number]>[] | string | string[]\n : string // this would let us support errors for the dynamic zone or repeatable component not the components within.\n : TFormValues[Key] extends object // is it a regular component?\n ? FormErrors<TFormValues[Key]> // handles nested components\n : string; // otherwise its just a field.\n};\n\ninterface FormState<TFormValues extends FormValues = FormValues> {\n /**\n * TODO: make this a better type explaining errors could be nested because it follows the same\n * structure as the values.\n */\n errors: FormErrors<TFormValues>;\n isSubmitting: boolean;\n values: TFormValues;\n}\n\ntype FormActions<TFormValues extends FormValues = FormValues> =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value: any } }\n | { type: 'ADD_FIELD_ROW'; payload: { field: string; value: any; addAtIndex?: number } }\n | { type: 'REMOVE_FIELD_ROW'; payload: { field: string; removeAtIndex?: number } }\n | { type: 'MOVE_FIELD_ROW'; payload: { field: string; fromIndex: number; toIndex: number } }\n | { type: 'SET_ERRORS'; payload: FormErrors<TFormValues> }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_INITIAL_VALUES'; payload: TFormValues }\n | { type: 'SET_VALUES'; payload: TFormValues }\n | { type: 'RESET_FORM'; payload: FormState<TFormValues> };\n\nconst reducer = <TFormValues extends FormValues = FormValues>(\n state: FormState<TFormValues>,\n action: FormActions<TFormValues>\n) =>\n produce(state, (draft) => {\n switch (action.type) {\n case 'SET_INITIAL_VALUES':\n // @ts-expect-error – TODO: figure out why this fails ts.\n draft.values = action.payload;\n break;\n case 'SET_VALUES':\n // @ts-expect-error – TODO: figure out why this fails ts.\n draft.values = action.payload;\n break;\n case 'SUBMIT_ATTEMPT':\n draft.isSubmitting = true;\n break;\n case 'SUBMIT_FAILURE':\n draft.isSubmitting = false;\n break;\n case 'SUBMIT_SUCCESS':\n draft.isSubmitting = false;\n break;\n case 'SET_FIELD_VALUE':\n draft.values = setIn(state.values, action.payload.field, action.payload.value);\n break;\n case 'ADD_FIELD_ROW': {\n /**\n * TODO: add check for if the field is an array?\n */\n const currentField = getIn(state.values, action.payload.field, []) as Array<any>;\n\n let position = action.payload.addAtIndex;\n\n if (position === undefined) {\n position = currentField.length;\n } else if (position < 0) {\n position = 0;\n }\n\n const [key] = generateNKeysBetween(\n currentField.at(position - 1)?.__temp_key__,\n currentField.at(position)?.__temp_key__,\n 1\n );\n\n draft.values = setIn(\n state.values,\n action.payload.field,\n setIn(currentField, position.toString(), { ...action.payload.value, __temp_key__: key })\n );\n\n break;\n }\n case 'MOVE_FIELD_ROW': {\n const { field, fromIndex, toIndex } = action.payload;\n /**\n * TODO: add check for if the field is an array?\n */\n const currentField = [...(getIn(state.values, field, []) as Array<any>)];\n const currentRow = currentField[fromIndex];\n\n const startKey =\n fromIndex > toIndex\n ? currentField[toIndex - 1]?.__temp_key__\n : currentField[toIndex]?.__temp_key__;\n const endKey =\n fromIndex > toIndex\n ? currentField[toIndex]?.__temp_key__\n : currentField[toIndex + 1]?.__temp_key__;\n const [newKey] = generateNKeysBetween(startKey, endKey, 1);\n\n currentField.splice(fromIndex, 1);\n currentField.splice(toIndex, 0, { ...currentRow, __temp_key__: newKey });\n\n draft.values = setIn(state.values, field, currentField);\n\n break;\n }\n case 'REMOVE_FIELD_ROW': {\n /**\n * TODO: add check for if the field is an array?\n */\n const currentField = getIn(state.values, action.payload.field, []) as Array<any>;\n\n let position = action.payload.removeAtIndex;\n\n if (position === undefined) {\n position = currentField.length - 1;\n } else if (position < 0) {\n position = 0;\n }\n\n /**\n * filter out empty values from the array, the setIn function only deletes the value\n * when we pass undefined as opposed to \"removing\" it from said array.\n */\n const newValue = setIn(currentField, position.toString(), undefined).filter(\n (val: unknown) => val\n );\n\n draft.values = setIn(\n state.values,\n action.payload.field,\n newValue.length > 0 ? newValue : undefined\n );\n\n break;\n }\n case 'SET_ERRORS':\n if (!isEqual(state.errors, action.payload)) {\n // @ts-expect-error – TODO: figure out why this fails a TS check.\n draft.errors = action.payload;\n }\n break;\n case 'SET_ISSUBMITTING':\n draft.isSubmitting = action.payload;\n break;\n case 'RESET_FORM':\n // @ts-expect-error – TODO: figure out why this fails ts.\n draft.values = action.payload.values;\n // @ts-expect-error – TODO: figure out why this fails ts.\n draft.errors = action.payload.errors;\n draft.isSubmitting = action.payload.isSubmitting;\n break;\n default:\n break;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * useField\n * -----------------------------------------------------------------------------------------------*/\ninterface FieldValue<TValue = any> {\n error?: string;\n initialValue: TValue;\n onChange: (eventOrPath: React.ChangeEvent<any> | string, value?: TValue) => void;\n value: TValue;\n}\n\nconst useField = <TValue = any,>(path: string): FieldValue<TValue | undefined> => {\n const { formatMessage } = useIntl();\n\n const initialValue = useForm(\n 'useField',\n (state) => getIn(state.initialValues, path) as FieldValue<TValue>['initialValue']\n );\n\n const value = useForm(\n 'useField',\n (state) => getIn(state.values, path) as FieldValue<TValue>['value']\n );\n\n const handleChange = useForm('useField', (state) => state.onChange);\n\n const error = useForm('useField', (state) => getIn(state.errors, path));\n\n return {\n initialValue,\n /**\n * Errors can be a string, or a MesaageDescriptor, so we need to handle both cases.\n * If it's anything else, we don't return it.\n */\n error: isErrorMessageDescriptor(error)\n ? formatMessage(\n {\n id: error.id,\n defaultMessage: error.defaultMessage,\n },\n error.values\n )\n : typeof error === 'string'\n ? error\n : undefined,\n onChange: handleChange,\n value: value,\n };\n};\n\nconst isErrorMessageDescriptor = (object?: string | object): object is TranslationMessage => {\n return (\n typeof object === 'object' && object !== null && 'id' in object && 'defaultMessage' in object\n );\n};\n\n/**\n * Props for the Blocker component.\n * @param onProceed Function to be called when the user confirms the action that triggered the blocker.\n * @param onCancel Function to be called when the user cancels the action that triggered the blocker.\n */\ninterface BlockerProps {\n onProceed?: () => void;\n onCancel?: () => void;\n}\n/* -------------------------------------------------------------------------------------------------\n * Blocker\n * -----------------------------------------------------------------------------------------------*/\nconst Blocker = ({ onProceed = () => {}, onCancel = () => {} }: BlockerProps) => {\n const { formatMessage } = useIntl();\n const modified = useForm('Blocker', (state) => state.modified);\n const isSubmitting = useForm('Blocker', (state) => state.isSubmitting);\n\n const blocker = useBlocker(({ currentLocation, nextLocation }) => {\n return (\n !isSubmitting &&\n modified &&\n (currentLocation.pathname !== nextLocation.pathname ||\n currentLocation.search !== nextLocation.search)\n );\n });\n\n if (blocker.state === 'blocked') {\n const handleCancel = (isOpen: boolean) => {\n if (!isOpen) {\n onCancel();\n blocker.reset();\n }\n };\n\n return (\n <Dialog.Root open onOpenChange={handleCancel}>\n <Dialog.Content>\n <Dialog.Header>\n {formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body icon={<WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />}>\n {formatMessage({\n id: 'global.prompt.unsaved',\n defaultMessage: 'You have unsaved changes, are you sure you want to leave?',\n })}\n </Dialog.Body>\n <Dialog.Footer>\n <Dialog.Cancel>\n <Button variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n <Button\n onClick={() => {\n onProceed();\n blocker.proceed();\n }}\n variant=\"danger\"\n >\n {formatMessage({\n id: 'app.components.Button.confirm',\n defaultMessage: 'Confirm',\n })}\n </Button>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Root>\n );\n }\n\n return null;\n};\n\nexport { Form, Blocker, useField, useForm, getYupValidationErrors };\nexport type {\n FormErrors,\n FormHelpers,\n FormProps,\n FormValues,\n FormContextValue,\n FormState,\n FieldValue,\n InputProps,\n};\n","import { Ref, useEffect, useMemo, useState } from 'react';\n\nimport { useLocation } from 'react-router-dom';\n\n/**\n * @description Given the name of an input field (this does not need to be the name you pass as a prop to the DOM element),\n * when the query param `field` matches the name the field will be focused & scrolled into the center of the view.\n * Uses a callback ref to set the field to ensure asynchronous rendering of inputs does not cause issues e.g. CodeMirror.EditView\n *\n * @example\n * ```tsx\n * const fieldRef = useFocusInputField('name');\n *\n * return (\n * <input ref={fieldRef} />\n * );\n * ```\n */\nconst useFocusInputField = <T extends HTMLElement>(name: string): Ref<T> => {\n const { search: searchString } = useLocation();\n const search = useMemo(() => new URLSearchParams(searchString), [searchString]);\n\n /**\n * TODO: remove union and just use `HTMLElement`\n *\n * Realistically, it will only be an `HTMLElement` but `TextInput` in the design-system\n * has an imperativeHandle we can't remove until v2 of the design-system.\n */\n const [field, setField] = useState<HTMLElement | null>(null);\n\n useEffect(() => {\n if (search.has('field') && search.get('field') === name && field) {\n field.focus();\n field.scrollIntoView({\n block: 'center',\n });\n }\n }, [search, name, field]);\n\n return setField;\n};\n\nexport { useFocusInputField };\n","import { forwardRef, memo } from 'react';\n\nimport { Toggle, useComposedRefs, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst BooleanInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<boolean | null>(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required} maxWidth=\"320px\">\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Toggle\n ref={composedRefs}\n checked={field.value === null ? null : field.value || false}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={field.onChange}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedBooleanInput = memo(BooleanInput);\n\nexport { MemoizedBooleanInput as BooleanInput };\n","import { forwardRef, memo } from 'react';\n\nimport { Checkbox, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst CheckboxInput = forwardRef<HTMLButtonElement, InputProps>(\n ({ name, required, label, hint, type: _type, ...props }, ref) => {\n const field = useField<boolean>(name);\n const fieldRef = useFocusInputField<HTMLButtonElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Checkbox\n onCheckedChange={(checked) => field.onChange(name, !!checked)}\n ref={composedRefs}\n checked={field.value}\n {...props}\n >\n {label || props['aria-label']}\n </Checkbox>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedCheckboxInput = memo(CheckboxInput);\n\nexport { MemoizedCheckboxInput as CheckboxInput };\n","import { forwardRef, memo } from 'react';\n\nimport { DatePicker, useComposedRefs, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, type: _type, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <DatePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(date) => {\n field.onChange(name, date);\n }}\n onClear={() => field.onChange(name, undefined)}\n value={value}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedDateInput = memo(DateInput);\n\nexport { MemoizedDateInput as DateInput };\n","import { forwardRef, memo } from 'react';\n\nimport { DateTimePicker, useComposedRefs, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst DateTimeInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<Date>(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n const value = typeof field.value === 'string' ? new Date(field.value) : field.value;\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <DateTimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(date) => {\n field.onChange(name, date);\n }}\n onClear={() => field.onChange(name, undefined)}\n value={value}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedDateTimeInput = memo(DateTimeInput);\n\nexport { MemoizedDateTimeInput as DateTimeInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst EmailInput = forwardRef<HTMLInputElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n autoComplete=\"email\"\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type=\"email\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedEmailInput = memo(EmailInput);\n\nexport { MemoizedEmailInput as EmailInput };\n","import { forwardRef, memo } from 'react';\n\nimport { SingleSelect, SingleSelectOption, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { EnumerationProps } from './types';\n\nconst EnumerationInput = forwardRef<HTMLDivElement, EnumerationProps>(\n ({ name, required, label, hint, labelAction, options = [], ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLDivElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <SingleSelect\n ref={composedRefs}\n onChange={(value) => {\n field.onChange(name, value);\n }}\n value={field.value}\n {...props}\n >\n {options.map(({ value, label, disabled, hidden }) => {\n return (\n <SingleSelectOption key={value} value={value} disabled={disabled} hidden={hidden}>\n {label ?? value}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedEnumerationInput = memo(EnumerationInput);\n\nexport { MemoizedEnumerationInput as EnumerationInput };\n","import { forwardRef, memo } from 'react';\n\nimport {\n JSONInput as JSONInputImpl,\n useComposedRefs,\n Field,\n JSONInputRef,\n} from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst JsonInput = forwardRef<JSONInputRef, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <JSONInputImpl\n ref={composedRefs}\n value={field.value}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value = required && !json.length ? null : json;\n field.onChange(name, value);\n }}\n minHeight={`25.2rem`}\n maxHeight={`50.4rem`}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedJsonInput = memo(JsonInput);\n\nexport { MemoizedJsonInput as JsonInput };\n","import { forwardRef, memo } from 'react';\n\nimport { NumberInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst NumberInputImpl = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, type, ...props }, ref) => {\n const field = useField<number>(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <NumberInput\n ref={composedRefs}\n defaultValue={field.initialValue}\n onValueChange={(value) => {\n field.onChange(name, value);\n }}\n step={type === 'float' || type == 'decimal' ? 0.01 : 1}\n value={field.value}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedNumberInput = memo(NumberInputImpl);\n\nexport { MemoizedNumberInput as NumberInput };\n","import { forwardRef, memo, useState } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst PasswordInput = forwardRef<HTMLInputElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const { formatMessage } = useIntl();\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n autoComplete=\"password\"\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={field.onChange}\n defaultValue={field.initialValue}\n value={field.value}\n {...props}\n type={showPassword ? 'text' : 'password'}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedPasswordInput = memo(PasswordInput);\n\nexport { MemoizedPasswordInput as PasswordInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { type InputProps, useField } from '../Form';\n\nconst StringInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n defaultValue={field.initialValue}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedStringInput = memo(StringInput);\n\nexport { MemoizedStringInput as StringInput };\n","import { forwardRef, memo } from 'react';\n\nimport { Textarea, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst TextareaInput = forwardRef<HTMLTextAreaElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLTextAreaElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n ref={composedRefs}\n defaultValue={field.initialValue}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTextareaInput = memo(TextareaInput);\n\nexport { MemoizedTextareaInput as TextareaInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TimePicker, useComposedRefs, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { InputProps } from './types';\n\nconst TimeInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TimePicker\n ref={composedRefs}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(time) => {\n field.onChange(name, time);\n }}\n onClear={() => field.onChange(name, undefined)}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTimeInput = memo(TimeInput);\n\nexport { MemoizedTimeInput as TimeInput };\n","import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport { BooleanInput } from './Boolean';\nimport { CheckboxInput } from './Checkbox';\nimport { DateInput } from './Date';\nimport { DateTimeInput } from './DateTime';\nimport { EmailInput } from './Email';\nimport { EnumerationInput } from './Enumeration';\nimport { JsonInput } from './Json';\nimport { NumberInput } from './Number';\nimport { PasswordInput } from './Password';\nimport { StringInput } from './String';\nimport { TextareaInput } from './Textarea';\nimport { TimeInput } from './Time';\n\nimport type { InputProps } from '../Form';\n\n/* -------------------------------------------------------------------------------------------------\n * InputRenderer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal This needs to be tested before being exposed as a public API.\n * @experimental\n * @description A generic form renderer for Strapi forms. Similar to GenericInputs but with a different API.\n * The entire component is memoized to avoid re-renders in large forms.\n */\nconst InputRenderer = memo(\n forwardRef<any, InputProps>((props, forwardRef) => {\n switch (props.type) {\n case 'biginteger':\n case 'timestamp':\n case 'string':\n return <StringInput ref={forwardRef} {...props} />;\n case 'boolean':\n return <BooleanInput ref={forwardRef} {...props} />;\n case 'checkbox':\n return <CheckboxInput ref={forwardRef} {...props} />;\n case 'datetime':\n return <DateTimeInput ref={forwardRef} {...props} />;\n case 'date':\n return <DateInput ref={forwardRef} {...props} />;\n case 'decimal':\n case 'float':\n case 'integer':\n return <NumberInput ref={forwardRef} {...props} />;\n case 'json':\n return <JsonInput ref={forwardRef} {...props} />;\n case 'email':\n return <EmailInput ref={forwardRef} {...props} />;\n case 'enumeration':\n return <EnumerationInput ref={forwardRef} {...props} />;\n case 'password':\n return <PasswordInput ref={forwardRef} {...props} />;\n case 'text':\n return <TextareaInput ref={forwardRef} {...props} />;\n case 'time':\n return <TimeInput ref={forwardRef} {...props} />;\n default:\n // This is cast because this renderer tackles all the possibilities of the InputProps, but this is for runtime catches.\n return <NotSupportedField ref={forwardRef} {...(props as InputProps)} />;\n }\n })\n);\n\nconst NotSupportedField = forwardRef<any, InputProps>(\n ({ label, hint, name, required, type, labelAction }, ref) => {\n const { error } = useField(name);\n const fieldRef = useFocusInputField(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n disabled\n placeholder={`Unsupported field type: ${type}`}\n required={required}\n type=\"text\"\n value=\"\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedInputRenderer = memo(InputRenderer);\n\nexport { MemoizedInputRenderer as InputRenderer };\n","import { styled } from 'styled-components';\n\nimport { useConfiguration } from '../features/Configuration';\n\nconst Img = styled.img`\n height: 7.2rem;\n`;\n\nconst Logo = () => {\n const {\n logos: { auth },\n } = useConfiguration('UnauthenticatedLogo');\n\n return <Img src={auth?.custom?.url || auth.default} aria-hidden alt=\"\" />;\n};\n\nexport { Logo };\n","import * as React from 'react';\n\nimport {\n Box,\n BoxComponent,\n Flex,\n FlexComponent,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useTypedDispatch, useTypedSelector } from '../core/store/hooks';\nimport { setLocale } from '../reducer';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n margin: 0 auto;\n width: 552px;\n`;\n\nexport const Column = styled<FlexComponent>(Flex)`\n flex-direction: column;\n`;\n\nconst LocaleToggle = () => {\n const localeNames = useTypedSelector((state) => state.admin_app.language.localeNames);\n const dispatch = useTypedDispatch();\n const { formatMessage, locale } = useIntl();\n\n return (\n <SingleSelect\n aria-label={formatMessage({\n id: 'global.localeToggle.label',\n defaultMessage: 'Select interface language',\n })}\n value={locale}\n onChange={(language) => {\n dispatch(setLocale(language as string));\n }}\n >\n {Object.entries(localeNames).map(([language, name]) => (\n <SingleSelectOption key={language} value={language}>\n {name}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n\ninterface LayoutContentProps {\n children: React.ReactNode;\n}\n\nexport const LayoutContent = ({ children }: LayoutContentProps) => (\n <Wrapper\n shadow=\"tableShadow\"\n hasRadius\n paddingTop={9}\n paddingBottom={9}\n paddingLeft={10}\n paddingRight={10}\n background=\"neutral0\"\n >\n {children}\n </Wrapper>\n);\n\ninterface UnauthenticatedLayoutProps {\n children: React.ReactNode;\n}\n\nexport const UnauthenticatedLayout = ({ children }: UnauthenticatedLayoutProps) => {\n return (\n <div>\n <Flex tag=\"header\" justifyContent=\"flex-end\">\n <Box paddingTop={6} paddingRight={8}>\n <LocaleToggle />\n </Box>\n </Flex>\n <Box paddingTop={2} paddingBottom={11}>\n {children}\n </Box>\n </div>\n );\n};\n","/**\n * Object containing error messages for input validations.\n * @property {Object} email - Error message for invalid email.\n * @property {string} email.id - Identifier for the error message.\n * @property {string} email.defaultMessage - Default error message for invalid email.\n * @property {Object} json - Error message for invalid JSON format.\n * @property {string} json.id - Identifier for the error message.\n * @property {string} json.defaultMessage - Default error message for invalid JSON format.\n * @property {Object} lowercase - Error message for non-lowercase string.\n * @property {string} lowercase.id - Identifier for the error message.\n * @property {string} lowercase.defaultMessage - Default error message for non-lowercase string.\n * @property {Object} max - Error message for value exceeding maximum.\n * @property {string} max.id - Identifier for the error message.\n * @property {string} max.defaultMessage - Default error message for value exceeding maximum.\n * @property {Object} maxLength - Error message for string length exceeding maximum.\n * @property {string} maxLength.id - Identifier for the error message.\n * @property {string} maxLength.defaultMessage - Default error message for string length exceeding maximum.\n * @property {Object} min - Error message for value less than minimum.\n * @property {string} min.id - Identifier for the error message.\n * @property {string} min.defaultMessage - Default error message for value less than minimum.\n * @property {Object} minLength - Error message for string length less than minimum.\n * @property {string} minLength.id - Identifier for the error message.\n * @property {string} minLength.defaultMessage - Default error message for string length less than minimum.\n * @property {Object} regex - Error message for value not matching regex pattern.\n * @property {string} regex.id - Identifier for the error message.\n * @property {string} regex.defaultMessage - Default error message for value not matching regex pattern.\n * @property {Object} required - Error message for required value.\n * @property {string} required.id - Identifier for the error message.\n * @property {string} required.defaultMessage - Default error message for required value.\n * @property {Object} string - Error message for non-string value.\n * @property {string} string.id - Identifier for the error message.\n * @property {string} string.defaultMessage - Default error message for non-string value.\n * @property {Object} unique - Error message for non-unique value.\n * @property {string} unique.id - Identifier for the error message.\n * @property {string} unique.defaultMessage - Default error message for non-unique value.\n * @property {Object} integer - Error message for non-integer value.\n * @property {string} integer.id - Identifier for the error message.\n * @property {string} integer.defaultMessage - Default error message for non-integer value.\n */\n\nconst errorsTrads = {\n email: {\n id: 'components.Input.error.validation.email',\n defaultMessage: 'This is not a valid email.',\n },\n json: {\n id: 'components.Input.error.validation.json',\n defaultMessage: \"This doesn't match the JSON format\",\n },\n lowercase: {\n id: 'components.Input.error.validation.lowercase',\n defaultMessage: 'The value must be a lowercase string',\n },\n max: {\n id: 'components.Input.error.validation.max',\n defaultMessage: 'The value is too high (max: {max}).',\n },\n maxLength: {\n id: 'components.Input.error.validation.maxLength',\n defaultMessage: 'The value is too long (max: {max}).',\n },\n min: {\n id: 'components.Input.error.validation.min',\n defaultMessage: 'The value is too low (min: {min}).',\n },\n minLength: {\n id: 'components.Input.error.validation.minLength',\n defaultMessage: 'The value is too short (min: {min}).',\n },\n regex: {\n id: 'components.Input.error.validation.regex',\n defaultMessage: 'The value does not match the regex.',\n },\n required: {\n id: 'components.Input.error.validation.required',\n defaultMessage: 'This value is required.',\n },\n string: {\n id: 'components.Input.error.validation.string',\n defaultMessage: 'This is not a valid string.',\n },\n unique: {\n id: 'components.Input.error.validation.unique',\n defaultMessage: 'This value is already used.',\n },\n integer: {\n id: 'component.Input.error.validation.integer',\n defaultMessage: 'The value must be an integer',\n },\n} as const;\n\nexport { errorsTrads as translatedErrors };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport camelCase from 'lodash/camelCase';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Form } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAuth } from '../../../features/Auth';\nimport {\n UnauthenticatedLayout,\n Column,\n LayoutContent,\n} from '../../../layouts/UnauthenticatedLayout';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nimport type { Login } from '../../../../../shared/contracts/authentication';\n\ninterface LoginProps {\n children?: React.ReactNode;\n}\n\nconst LOGIN_SCHEMA = yup.object().shape({\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .required(translatedErrors.required),\n password: yup.string().required(translatedErrors.required),\n rememberMe: yup.bool().nullable(),\n});\n\nconst Login = ({ children }: LoginProps) => {\n const [apiError, setApiError] = React.useState<string>();\n const { formatMessage } = useIntl();\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const navigate = useNavigate();\n\n const { login } = useAuth('Login', (auth) => auth);\n\n const handleLogin = async (body: Parameters<typeof login>[0]) => {\n setApiError(undefined);\n\n const res = await login(body);\n\n if ('error' in res) {\n const message = res.error.message ?? 'Something went wrong';\n\n if (camelCase(message).toLowerCase() === 'usernotactive') {\n navigate('/auth/oops');\n return;\n }\n\n setApiError(message);\n } else {\n const redirectTo = query.get('redirectTo');\n const redirectUrl = redirectTo ? decodeURIComponent(redirectTo) : '/';\n\n navigate(redirectUrl);\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography variant=\"alpha\" tag=\"h1\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome!',\n })}\n </Typography>\n </Box>\n <Box paddingBottom={7}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Auth.form.welcome.subtitle',\n defaultMessage: 'Log in to your Strapi account',\n })}\n </Typography>\n </Box>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Column>\n <Form\n method=\"PUT\"\n initialValues={{\n email: '',\n password: '',\n rememberMe: false,\n }}\n onSubmit={(values) => {\n handleLogin(values);\n }}\n validationSchema={LOGIN_SCHEMA}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {[\n {\n label: formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' }),\n name: 'email',\n placeholder: formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n }),\n required: true,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.rememberMe.label',\n defaultMessage: 'Remember me',\n }),\n name: 'rememberMe',\n type: 'checkbox' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n <Button fullWidth type=\"submit\">\n {formatMessage({ id: 'Auth.form.button.login', defaultMessage: 'Login' })}\n </Button>\n </Flex>\n </Form>\n {children}\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link isExternal={false} tag={NavLink} to=\"/auth/forgot-password\">\n {formatMessage({\n id: 'Auth.link.forgot-password',\n defaultMessage: 'Forgot your password?',\n })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { Login };\nexport type { LoginProps };\n","import { Box, Button, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Form } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\nimport { useForgotPasswordMutation } from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nimport type { ForgotPassword } from '../../../../../shared/contracts/authentication';\n\nconst ForgotPassword = () => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [forgotPassword, { error }] = useForgotPasswordMutation();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'Auth.form.button.password-recovery',\n defaultMessage: 'Password Recovery',\n })}\n </Typography>\n </Box>\n {error ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {isBaseQueryError(error)\n ? formatAPIError(error)\n : formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n ) : null}\n </Column>\n <Form\n method=\"POST\"\n initialValues={{\n email: '',\n }}\n onSubmit={async (body) => {\n const res = await forgotPassword(body);\n\n if (!('error' in res)) {\n navigate('/auth/forgot-password-success');\n }\n }}\n validationSchema={yup.object().shape({\n email: yup.string().email(translatedErrors.email).required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required.',\n }),\n })}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {[\n {\n label: formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' }),\n name: 'email',\n placeholder: formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n }),\n required: true,\n type: 'string' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n <Button type=\"submit\" fullWidth>\n {formatMessage({\n id: 'Auth.form.button.forgot-password',\n defaultMessage: 'Send Email',\n })}\n </Button>\n </Flex>\n </Form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.ready', defaultMessage: 'Ready to sign in?' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { ForgotPassword };\n","import { Box, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\n\nconst ForgotPasswordSuccess = () => {\n const { formatMessage } = useIntl();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'app.containers.AuthPage.ForgotPasswordSuccess.title',\n defaultMessage: 'Email sent',\n })}\n </Typography>\n </Box>\n <Typography>\n {formatMessage({\n id: 'app.containers.AuthPage.ForgotPasswordSuccess.text.email',\n defaultMessage: 'It can take a few minutes to receive your password recovery link.',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Typography>\n {formatMessage({\n id: 'app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin',\n defaultMessage:\n 'If you do not receive this link, please contact your administrator.',\n })}\n </Typography>\n </Box>\n </Column>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.signin', defaultMessage: 'Sign in' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { ForgotPasswordSuccess };\n","import * as React from 'react';\n\nimport { Box, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\n\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\n\nconst Oops = () => {\n const { formatMessage } = useIntl();\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n\n const message =\n query.get('info') ||\n formatMessage({\n id: 'Auth.components.Oops.text',\n defaultMessage: 'Your account has been suspended.',\n });\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({ id: 'Auth.components.Oops.title', defaultMessage: 'Oops...' })}\n </Typography>\n </Box>\n <Typography>{message}</Typography>\n <Box paddingTop={4}>\n <Typography>\n {formatMessage({\n id: 'Auth.components.Oops.text.admin',\n defaultMessage: 'If this is a mistake, please contact your administrator.',\n })}\n </Typography>\n </Box>\n </Column>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.signin', defaultMessage: 'Sign in' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { Oops };\n","import { useEffect, useState } from 'react';\n\nconst usePersistentState = <T>(key: string, defaultValue: T) => {\n const [value, setValue] = useState<T>(() => {\n const stickyValue = window.localStorage.getItem(key);\n\n if (stickyValue !== null) {\n try {\n return JSON.parse(stickyValue);\n } catch {\n // JSON.parse fails when the stored value is a primitive\n return stickyValue;\n }\n }\n\n return defaultValue;\n });\n\n useEffect(() => {\n window.localStorage.setItem(key, JSON.stringify(value));\n }, [key, value]);\n\n return [value, setValue] as const;\n};\n\nexport { usePersistentState };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Button,\n Typography,\n Textarea,\n Portal,\n Field,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { usePersistentState } from '../hooks/usePersistentState';\n\nconst FieldWrapper = styled(Field.Root)`\n height: 3.2rem;\n width: 3.2rem;\n\n > label,\n ~ input {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n > label {\n color: inherit;\n cursor: pointer;\n padding: ${({ theme }) => theme.spaces[2]};\n text-align: center;\n vertical-align: middle;\n }\n\n &:hover,\n &:focus-within {\n background-color: ${({ theme }) => theme.colors.neutral0};\n }\n\n &:active,\n &.selected {\n color: ${({ theme }) => theme.colors.primary700};\n background-color: ${({ theme }) => theme.colors.neutral0};\n border-color: ${({ theme }) => theme.colors.primary700};\n }\n`;\n\nconst delays = {\n postResponse: 90 * 24 * 60 * 60 * 1000, // 90 days in ms\n postFirstDismissal: 7 * 24 * 60 * 60 * 1000, // 7 days in ms\n postSubsequentDismissal: 90 * 24 * 60 * 60 * 1000, // 90 days in ms\n display: 5 * 60 * 1000, // 5 minutes in ms\n};\n\nconst ratingArray = [...Array(11).keys()];\n\nconst checkIfShouldShowSurvey = (settings: NpsSurveySettings) => {\n const { enabled, lastResponseDate, firstDismissalDate, lastDismissalDate } = settings;\n\n // This function goes through all the cases where we'd want to not show the survey:\n // 1. If the survey is disabled by strapi, abort mission, don't bother checking the other settings.\n // 2. If the survey is disabled by user, abort mission, don't bother checking the other settings.\n // 3. If the user has already responded to the survey, check if enough time has passed since the last response.\n // 4. If the user has dismissed the survey twice or more before, check if enough time has passed since the last dismissal.\n // 5. If the user has only dismissed the survey once before, check if enough time has passed since the first dismissal.\n // If none of these cases check out, then we show the survey.\n // Note that submitting a response resets the dismissal counts.\n // Checks 4 and 5 should not be reversed, since the first dismissal will also exist if the user has dismissed the survey twice or more before.\n\n // For users who had created an account before the NPS feature was introduced,\n // we assume that they would have enabled the NPS feature if they had the chance.\n\n // Global strapi disable for NSP.\n if (window.strapi.flags.nps === false) {\n return false;\n }\n\n // User chose not to enable the NPS feature when signing up\n if (enabled === false) {\n return false;\n }\n\n // The user has already responded to the survey\n if (lastResponseDate) {\n const timeSinceLastResponse = Date.now() - new Date(lastResponseDate).getTime();\n\n if (timeSinceLastResponse >= delays.postResponse) {\n return true;\n }\n\n return false;\n }\n\n // The user has dismissed the survey twice or more before\n if (lastDismissalDate) {\n const timeSinceLastDismissal = Date.now() - new Date(lastDismissalDate).getTime();\n\n if (timeSinceLastDismissal >= delays.postSubsequentDismissal) {\n return true;\n }\n\n return false;\n }\n\n // The user has only dismissed the survey once before\n if (firstDismissalDate) {\n const timeSinceFirstDismissal = Date.now() - new Date(firstDismissalDate).getTime();\n\n if (timeSinceFirstDismissal >= delays.postFirstDismissal) {\n return true;\n }\n\n return false;\n }\n\n // The user has not interacted with the survey before\n return true;\n};\n\nconst NpsSurvey = () => {\n const { formatMessage } = useIntl();\n const { npsSurveySettings, setNpsSurveySettings } = useNpsSurveySettings();\n const [isFeedbackResponse, setIsFeedbackResponse] = React.useState(false);\n const { toggleNotification } = useNotification();\n const currentEnvironment = useAppInfo('NpsSurvey', (state) => state.currentEnvironment);\n const strapiVersion = useAppInfo('NpsSurvey', (state) => state.strapiVersion);\n\n interface NpsSurveyMutationBody {\n email: string;\n rating: number | null;\n comment: string;\n environment?: string;\n version?: string;\n license: 'Enterprise' | 'Community';\n }\n\n // Only check on first render if the survey should be shown\n const [surveyIsShown, setSurveyIsShown] = React.useState(\n checkIfShouldShowSurvey(npsSurveySettings)\n );\n\n // Set a cooldown to show the survey when session begins\n const [displaySurvey, setDisplaySurvey] = React.useState(false);\n\n React.useEffect(() => {\n const displayTime = setTimeout(() => {\n setDisplaySurvey(true);\n }, delays.display);\n\n return () => {\n clearTimeout(displayTime);\n };\n }, []);\n\n const { user } = useAuth('NpsSurvey', (auth) => auth);\n\n if (!displaySurvey) {\n return null;\n }\n\n if (!surveyIsShown) {\n return null;\n }\n\n const handleSubmitResponse = async ({\n npsSurveyRating,\n npsSurveyFeedback,\n }: {\n npsSurveyRating: NpsSurveyMutationBody['rating'];\n npsSurveyFeedback: NpsSurveyMutationBody['comment'];\n }) => {\n try {\n const body = {\n email: typeof user === 'object' && user.email ? user.email : '',\n rating: npsSurveyRating,\n comment: npsSurveyFeedback,\n environment: currentEnvironment,\n version: strapiVersion ?? undefined,\n license: window.strapi.projectType,\n };\n const res = await fetch('https://analytics.strapi.io/submit-nps', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n });\n\n if (!res.ok) {\n throw new Error('Failed to submit NPS survey');\n }\n\n setNpsSurveySettings((settings) => ({\n ...settings,\n lastResponseDate: new Date().toString(),\n firstDismissalDate: null,\n lastDismissalDate: null,\n }));\n setIsFeedbackResponse(true);\n // Thank you message displayed in the banner should disappear after few seconds.\n setTimeout(() => {\n setSurveyIsShown(false);\n }, 3000);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const handleDismiss = () => {\n setNpsSurveySettings((settings) => {\n const nextSettings = {\n ...settings,\n lastResponseDate: null,\n };\n\n if (settings.firstDismissalDate) {\n // If the user dismisses the survey for the second time\n nextSettings.lastDismissalDate = new Date().toString();\n } else {\n // If the user dismisses the survey for the first time\n nextSettings.firstDismissalDate = new Date().toString();\n }\n\n return nextSettings;\n });\n\n setSurveyIsShown(false);\n };\n\n return (\n <Portal>\n <Formik\n initialValues={{ npsSurveyFeedback: '', npsSurveyRating: null }}\n onSubmit={handleSubmitResponse}\n validationSchema={yup.object({\n npsSurveyFeedback: yup.string(),\n npsSurveyRating: yup.number().required(),\n })}\n >\n {({ values, handleChange, setFieldValue, isSubmitting }) => (\n <Form name=\"npsSurveyForm\">\n <Flex\n hasRadius\n direction=\"column\"\n padding={4}\n borderColor=\"primary200\"\n background=\"neutral0\"\n shadow=\"popupShadow\"\n position=\"fixed\"\n bottom={0}\n left=\"50%\"\n transform=\"translateX(-50%)\"\n zIndex=\"200\"\n width=\"50%\"\n >\n {isFeedbackResponse ? (\n <Typography fontWeight=\"semiBold\">\n {formatMessage({\n id: 'app.components.NpsSurvey.feedback-response',\n defaultMessage: 'Thank you very much for your feedback!',\n })}\n </Typography>\n ) : (\n <Box tag=\"fieldset\" width=\"100%\" borderWidth={0}>\n <Flex justifyContent=\"space-between\" width=\"100%\">\n <Box marginLeft=\"auto\" marginRight=\"auto\">\n <Typography fontWeight=\"semiBold\" tag=\"legend\">\n {formatMessage({\n id: 'app.components.NpsSurvey.banner-title',\n defaultMessage:\n 'How likely are you to recommend Strapi to a friend or colleague?',\n })}\n </Typography>\n </Box>\n <IconButton\n onClick={handleDismiss}\n withTooltip={false}\n label={formatMessage({\n id: 'app.components.NpsSurvey.dismiss-survey-label',\n defaultMessage: 'Dismiss survey',\n })}\n >\n <Cross />\n </IconButton>\n </Flex>\n <Flex gap={2} marginTop={2} marginBottom={2} justifyContent=\"center\">\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.NpsSurvey.no-recommendation',\n defaultMessage: 'Not at all likely',\n })}\n </Typography>\n {ratingArray.map((number) => {\n return (\n <FieldWrapper\n key={number}\n name=\"npsSurveyRating\"\n className={values.npsSurveyRating === number ? 'selected' : undefined} // \"selected\" class added when child radio button is checked\n hasRadius\n background=\"primary100\"\n borderColor=\"primary200\"\n color=\"primary600\"\n position=\"relative\"\n cursor=\"pointer\"\n >\n <Field.Label>\n <VisuallyHidden>\n <Field.Input\n type=\"radio\"\n checked={values.npsSurveyRating === number}\n onChange={(e) =>\n setFieldValue('npsSurveyRating', parseInt(e.target.value, 10))\n }\n value={number}\n />\n </VisuallyHidden>\n {number}\n </Field.Label>\n </FieldWrapper>\n );\n })}\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.NpsSurvey.happy-to-recommend',\n defaultMessage: 'Extremely likely',\n })}\n </Typography>\n </Flex>\n {values.npsSurveyRating !== null && (\n <Flex direction=\"column\">\n <Box marginTop={2}>\n <Field.Label fontWeight=\"semiBold\" fontSize={2}>\n {formatMessage({\n id: 'app.components.NpsSurvey.feedback-question',\n defaultMessage: 'Do you have any suggestion for improvements?',\n })}\n </Field.Label>\n </Box>\n <Box width=\"62%\" marginTop={3} marginBottom={4}>\n <Textarea\n id=\"npsSurveyFeedback\" // formik element attribute \"id\" should be same as the values key to work\n width=\"100%\"\n onChange={handleChange}\n value={values.npsSurveyFeedback}\n />\n </Box>\n <Button marginBottom={2} type=\"submit\" loading={isSubmitting}>\n {formatMessage({\n id: 'app.components.NpsSurvey.submit-feedback',\n defaultMessage: 'Submit Feedback',\n })}\n </Button>\n </Flex>\n )}\n </Box>\n )}\n </Flex>\n </Form>\n )}\n </Formik>\n </Portal>\n );\n};\n\ninterface NpsSurveySettings {\n enabled: boolean;\n lastResponseDate: string | null;\n firstDismissalDate: string | null;\n lastDismissalDate: string | null;\n}\n\n/**\n * We exported to make it available during admin user registration.\n * Because we only enable the NPS for users who subscribe to the newsletter when signing up\n */\nfunction useNpsSurveySettings() {\n const [npsSurveySettings, setNpsSurveySettings] = usePersistentState<NpsSurveySettings>(\n 'STRAPI_NPS_SURVEY_SETTINGS',\n {\n enabled: true,\n lastResponseDate: null,\n firstDismissalDate: null,\n lastDismissalDate: null,\n }\n );\n\n /**\n * TODO: should this just be an array so we can alias the `usePersistentState` hook?\n */\n return { npsSurveySettings, setNpsSurveySettings };\n}\n\nexport { NpsSurvey, useNpsSurveySettings };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, Link } from '@strapi/design-system';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate, useMatch, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\nimport { ValidationError } from 'yup';\n\nimport {\n Register as RegisterUser,\n RegisterAdmin,\n} from '../../../../../shared/contracts/authentication';\nimport { Form, FormHelpers } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../../../components/GuidedTour/Provider';\nimport { useNpsSurveySettings } from '../../../components/NpsSurvey';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAuth } from '../../../features/Auth';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../layouts/UnauthenticatedLayout';\nimport {\n useGetRegistrationInfoQuery,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n} from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst REGISTER_USER_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n }),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n registrationToken: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Registration token is required',\n }),\n});\n\nconst REGISTER_ADMIN_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Firstname is required',\n }),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n }),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .strict()\n .lowercase({\n id: translatedErrors.lowercase.id,\n defaultMessage: 'Email must be lowercase',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Email is required',\n }),\n});\n\ninterface RegisterProps {\n hasAdmin?: boolean;\n}\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\nconst Register = ({ hasAdmin }: RegisterProps) => {\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const [submitCount, setSubmitCount] = React.useState(0);\n const [apiError, setApiError] = React.useState<string>();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const setSkipped = useGuidedTour('Register', (state) => state.setSkipped);\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const match = useMatch('/auth/:authType');\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo, error } = useGetRegistrationInfoQuery(registrationToken as string, {\n skip: !registrationToken,\n });\n\n React.useEffect(() => {\n if (error) {\n const message: string = isBaseQueryError(error) ? formatAPIError(error) : error.message ?? '';\n\n toggleNotification({\n type: 'danger',\n message,\n });\n\n navigate(`/auth/oops?info=${encodeURIComponent(message)}`);\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const [registerAdmin] = useRegisterAdminMutation();\n const [registerUser] = useRegisterUserMutation();\n const { setToken } = useAuth('Register', (auth) => auth);\n\n const handleRegisterAdmin = async (\n { news, ...body }: RegisterAdmin.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerAdmin(body);\n\n if ('data' in res) {\n setToken(res.data.token);\n\n const { roles } = res.data.user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n localStorage.setItem('GUIDED_TOUR_SKIPPED', JSON.stringify(false));\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${true}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n const handleRegisterUser = async (\n { news, ...body }: RegisterUser.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerUser(body);\n\n if ('data' in res) {\n setToken(res.data.token);\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n if (\n !match ||\n (match.params.authType !== 'register' && match.params.authType !== 'register-admin')\n ) {\n return <Navigate to=\"/\" />;\n }\n\n const isAdminRegistration = match.params.authType === 'register-admin';\n\n const schema = isAdminRegistration ? REGISTER_ADMIN_SCHEMA : REGISTER_USER_SCHEMA;\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography tag=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n <Typography variant=\"epsilon\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.register.subtitle',\n defaultMessage:\n 'Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.',\n })}\n </Typography>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Flex>\n <Form\n method=\"POST\"\n initialValues={\n {\n firstname: userInfo?.firstname || '',\n lastname: userInfo?.lastname || '',\n email: userInfo?.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n } satisfies RegisterFormValues\n }\n onSubmit={async (data, helpers) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && isAdminRegistration) {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (normalizedData.registrationToken) {\n handleRegisterUser(\n {\n userInfo: omit(normalizedData, [\n 'registrationToken',\n 'confirmPassword',\n 'email',\n 'news',\n ]),\n registrationToken: normalizedData.registrationToken,\n news: normalizedData.news,\n },\n helpers.setErrors\n );\n } else {\n await handleRegisterAdmin(\n omit(normalizedData, ['registrationToken', 'confirmPassword']),\n helpers.setErrors\n );\n }\n } catch (err) {\n if (err instanceof ValidationError) {\n helpers.setErrors(\n err.inner.reduce<Record<string, string>>((acc, { message, path }) => {\n if (path && typeof message === 'object') {\n acc[path] = formatMessage(message);\n }\n return acc;\n }, {})\n );\n }\n setSubmitCount(submitCount + 1);\n }\n }}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid.Root gap={4}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !isAdminRegistration,\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 12,\n type: 'email' as const,\n },\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage(\n {\n id: 'Auth.form.register.news.label',\n defaultMessage:\n 'Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).',\n },\n {\n terms: (\n <A target=\"_blank\" href=\"https://strapi.io/terms\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.terms',\n defaultMessage: 'terms',\n })}\n </A>\n ),\n policy: (\n <A target=\"_blank\" href=\"https://strapi.io/privacy\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.policy',\n defaultMessage: 'policy',\n })}\n </A>\n ),\n }\n ),\n name: 'news',\n size: 12,\n type: 'checkbox' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size}>\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Button fullWidth size=\"L\" type=\"submit\">\n {formatMessage({\n id: 'Auth.form.button.register',\n defaultMessage: \"Let's start\",\n })}\n </Button>\n </Flex>\n </Form>\n {match?.params.authType === 'register' && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({\n id: 'Auth.link.signin.account',\n defaultMessage: 'Already have an account?',\n })}\n </Link>\n </Flex>\n </Box>\n )}\n </LayoutContent>\n </UnauthenticatedLayout>\n );\n};\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\ntype StringKeys<T> = {\n [K in keyof T]: T[K] extends string | undefined ? K : never;\n}[keyof T];\n\n/**\n * @description Trims all values but the password & sets lastName to null if it's a falsey value.\n */\nfunction normalizeData(data: RegisterFormValues) {\n return Object.entries(data).reduce(\n (acc, [key, value]) => {\n type PasswordKeys = Extract<keyof RegisterFormValues, 'password' | 'confirmPassword'>;\n type RegisterFormStringValues = Exclude<\n keyof Pick<RegisterFormValues, StringKeys<RegisterFormValues>>,\n PasswordKeys\n >;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n acc[key as RegisterFormStringValues] = value.trim();\n\n if (key === 'lastname') {\n acc[key] = value || undefined;\n }\n } else {\n acc[key as PasswordKeys] = value;\n }\n\n return acc;\n },\n {} as {\n firstname: string;\n lastname: string | undefined;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n }\n );\n}\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nexport { Register };\nexport type { RegisterProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main, Typography, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate, Navigate, useLocation } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { ResetPassword } from '../../../../../shared/contracts/authentication';\nimport { Form } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useAuth } from '../../../features/Auth';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../layouts/UnauthenticatedLayout';\nimport { useResetPasswordMutation } from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst RESET_PASSWORD_SCHEMA = yup.object().shape({\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n }),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n});\n\nconst ResetPassword = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { setToken } = useAuth('ResetPassword', (auth) => auth);\n\n const [resetPassword, { error }] = useResetPasswordMutation();\n\n const handleSubmit = async (body: ResetPassword.Request['body']) => {\n const res = await resetPassword(body);\n\n if ('data' in res) {\n setToken(res.data.token);\n navigate('/');\n }\n };\n /**\n * If someone doesn't have a reset password token\n * then they should just be redirected back to the login page.\n */\n if (!query.get('code')) {\n return <Navigate to=\"/auth/login\" />;\n }\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography tag=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'global.reset-password',\n defaultMessage: 'Reset password',\n })}\n </Typography>\n </Box>\n {error ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {isBaseQueryError(error)\n ? formatAPIError(error)\n : formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n ) : null}\n </Column>\n <Form\n method=\"POST\"\n initialValues={{\n password: '',\n confirmPassword: '',\n }}\n onSubmit={(values) => {\n // We know query.code is defined because we check for it above.\n handleSubmit({ password: values.password, resetPasswordToken: query.get('code')! });\n }}\n validationSchema={RESET_PASSWORD_SCHEMA}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {[\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Password must contain at least 8 characters, 1 uppercase, 1 lowercase and 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n type: 'password' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n <Button fullWidth type=\"submit\">\n {formatMessage({\n id: 'global.change-password',\n defaultMessage: 'Change password',\n })}\n </Button>\n </Flex>\n </Form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({ id: 'Auth.link.ready', defaultMessage: 'Ready to sign in?' })}\n </Link>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nexport { ResetPassword };\n","import type { ComponentType } from 'react';\n\nimport { ForgotPassword } from './components/ForgotPassword';\nimport { ForgotPasswordSuccess } from './components/ForgotPasswordSuccess';\nimport { Oops } from './components/Oops';\nimport { Register, RegisterProps } from './components/Register';\nimport { ResetPassword } from './components/ResetPassword';\n\nexport type AuthType =\n | 'login'\n | 'register'\n | 'register-admin'\n | 'forgot-password'\n | 'reset-password'\n | 'forgot-password-success'\n | 'oops'\n | 'providers';\n\nexport type FormDictionary = Record<AuthType, ComponentType | ComponentType<RegisterProps>>;\n\nexport const FORMS = {\n 'forgot-password': ForgotPassword,\n 'forgot-password-success': ForgotPasswordSuccess,\n // the `Component` attribute is set after all forms and CE/EE components are loaded, but since we\n // are here outside of a React component we can not use the hook directly\n login: () => null,\n oops: Oops,\n register: Register,\n 'register-admin': Register,\n 'reset-password': ResetPassword,\n providers: () => null,\n} satisfies FormDictionary;\n","import { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { useAuth } from '../../features/Auth';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { useInitQuery } from '../../services/admin';\n\nimport { Login as LoginCE } from './components/Login';\nimport { FORMS, FormDictionary } from './constants';\n\n/* -------------------------------------------------------------------------------------------------\n * AuthPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AuthPage = () => {\n const { search } = useLocation();\n const match = useMatch('/auth/:authType');\n const authType = match?.params.authType;\n const { data } = useInitQuery();\n const { hasAdmin } = data ?? {};\n const Login = useEnterprise(\n LoginCE,\n async () => (await import('../../../../ee/admin/src/pages/AuthPage/components/Login')).LoginEE\n );\n const forms = useEnterprise<FormDictionary, Partial<FormDictionary>>(\n FORMS,\n async () => (await import('../../../../ee/admin/src/pages/AuthPage/constants')).FORMS,\n {\n combine(ceForms, eeForms) {\n return {\n ...ceForms,\n ...eeForms,\n };\n },\n defaultValue: FORMS,\n }\n );\n\n const { token } = useAuth('AuthPage', (auth) => auth);\n\n if (!authType || !forms) {\n return <Navigate to=\"/\" />;\n }\n\n const Component = forms[authType as keyof FormDictionary];\n\n // Redirect the user to the login page if\n // the endpoint does not exist or\n // there is already an admin user oo\n // the user is already logged in\n if (!Component || (hasAdmin && authType === 'register-admin') || token) {\n return <Navigate to=\"/\" />;\n }\n\n // Redirect the user to the register-admin if it is the first user\n if (!hasAdmin && authType !== 'register-admin') {\n return (\n <Navigate\n to={{\n pathname: '/auth/register-admin',\n // Forward the `?redirectTo` from /auth/login\n // /abc => /auth/login?redirectTo=%2Fabc => /auth/register-admin?redirectTo=%2Fabc\n search,\n }}\n />\n );\n }\n\n if (Login && authType === 'login') {\n // Assign the component to render for the login form\n return <Login />;\n } else if (authType === 'login' && !Login) {\n // block rendering until the Login EE component is fully loaded\n return null;\n }\n\n return <Component hasAdmin={hasAdmin} />;\n};\n\nexport { AuthPage };\n","import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\n\ninterface ActionLayoutProps {\n endActions?: React.ReactNode;\n startActions?: React.ReactNode;\n}\n\nconst ActionLayout = ({ startActions, endActions }: ActionLayoutProps) => {\n if (!startActions && !endActions) {\n return null;\n }\n\n return (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n paddingBottom={4}\n paddingLeft={10}\n paddingRight={10}\n >\n <Flex gap={2} wrap=\"wrap\">\n {startActions}\n </Flex>\n\n <Flex gap={2} shrink={0} wrap=\"wrap\">\n {endActions}\n </Flex>\n </Flex>\n );\n};\n\nexport { ActionLayout, type ActionLayoutProps };\n","import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n\ninterface ContentLayoutProps {\n children: React.ReactNode;\n}\n\nconst ContentLayout = ({ children }: ContentLayoutProps) => {\n return (\n <Box paddingLeft={10} paddingRight={10}>\n {children}\n </Box>\n );\n};\n\nexport { ContentLayout, type ContentLayoutProps };\n","import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface GridColSize {\n S: number;\n M: number;\n}\n\nconst GridColSize = {\n S: 180,\n M: 250,\n};\n\ntype Size = keyof GridColSize;\n\nconst StyledGrid = styled(Box)<{ $size: Size }>`\n display: grid;\n grid-template-columns: repeat(\n auto-fit,\n minmax(${({ $size }: { $size: Size }) => `${GridColSize[$size]}px`}, 1fr)\n );\n grid-gap: ${({ theme }) => theme.spaces[4]};\n`;\n\ninterface GridLayoutProps {\n size: Size;\n children: React.ReactNode;\n}\n\nconst GridLayout = ({ size, children }: GridLayoutProps) => {\n return <StyledGrid $size={size}>{children}</StyledGrid>;\n};\n\nexport { GridLayout };\nexport type { GridLayoutProps, GridColSize };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography, TypographyProps, useCallbackRef } from '@strapi/design-system';\n\n/* -------------------------------------------------------------------------------------------------\n * BaseHeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseHeaderLayoutProps extends Omit<TypographyProps<'div'>, 'tag'> {\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n sticky?: boolean;\n width?: number;\n}\n\nconst BaseHeaderLayout = React.forwardRef<HTMLDivElement, BaseHeaderLayoutProps>(\n (\n { navigationAction, primaryAction, secondaryAction, subtitle, title, sticky, width, ...props },\n ref\n ) => {\n const isSubtitleString = typeof subtitle === 'string';\n\n if (sticky) {\n return (\n <Box\n paddingLeft={6}\n paddingRight={6}\n paddingTop={3}\n paddingBottom={3}\n position=\"fixed\"\n top={0}\n right={0}\n background=\"neutral0\"\n shadow=\"tableShadow\"\n width={`${width}rem`}\n zIndex={1}\n data-strapi-header-sticky\n >\n <Flex justifyContent=\"space-between\">\n <Flex>\n {navigationAction && <Box paddingRight={3}>{navigationAction}</Box>}\n <Box>\n <Typography variant=\"beta\" tag=\"h1\" {...props}>\n {title}\n </Typography>\n {isSubtitleString ? (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </Box>\n {secondaryAction ? <Box paddingLeft={4}>{secondaryAction}</Box> : null}\n </Flex>\n <Flex>{primaryAction ? <Box paddingLeft={2}>{primaryAction}</Box> : undefined}</Flex>\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box\n ref={ref}\n paddingLeft={10}\n paddingRight={10}\n paddingBottom={8}\n paddingTop={navigationAction ? 6 : 8}\n background=\"neutral100\"\n data-strapi-header\n >\n {navigationAction ? <Box paddingBottom={2}>{navigationAction}</Box> : null}\n <Flex justifyContent=\"space-between\">\n <Flex minWidth={0}>\n <Typography tag=\"h1\" variant=\"alpha\" {...props}>\n {title}\n </Typography>\n {secondaryAction ? <Box paddingLeft={4}>{secondaryAction}</Box> : null}\n </Flex>\n {primaryAction}\n </Flex>\n {isSubtitleString ? (\n <Typography variant=\"epsilon\" textColor=\"neutral600\" tag=\"p\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </Box>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderLayoutProps extends BaseHeaderLayoutProps {}\n\nconst HeaderLayout = (props: HeaderLayoutProps) => {\n const baseHeaderLayoutRef = React.useRef<HTMLDivElement>(null);\n const [headerSize, setHeaderSize] = React.useState<DOMRect | null>(null);\n\n const [containerRef, isVisible] = useElementOnScreen<HTMLDivElement>({\n root: null,\n rootMargin: '0px',\n threshold: 0,\n });\n\n useResizeObserver(containerRef, () => {\n if (containerRef.current) {\n setHeaderSize(containerRef.current.getBoundingClientRect());\n }\n });\n\n React.useEffect(() => {\n if (baseHeaderLayoutRef.current) {\n setHeaderSize(baseHeaderLayoutRef.current.getBoundingClientRect());\n }\n }, [baseHeaderLayoutRef]);\n\n return (\n <>\n <div style={{ height: headerSize?.height }} ref={containerRef}>\n {isVisible && <BaseHeaderLayout ref={baseHeaderLayoutRef} {...props} />}\n </div>\n\n {!isVisible && <BaseHeaderLayout {...props} sticky width={headerSize?.width} />}\n </>\n );\n};\n\nHeaderLayout.displayName = 'HeaderLayout';\n\n/**\n * useElementOnScreen: hook that returns a ref to an element and a boolean indicating if the element is in the viewport.\n */\nconst useElementOnScreen = <TElement extends HTMLElement = HTMLElement>(\n options?: IntersectionObserverInit\n): [containerRef: React.RefObject<TElement>, isVisible: boolean] => {\n const containerRef = React.useRef<TElement>(null);\n\n const [isVisible, setIsVisible] = React.useState<boolean>(true);\n\n const callback: IntersectionObserverCallback = ([entry]) => {\n setIsVisible(entry.isIntersecting);\n };\n\n React.useEffect(() => {\n const containerEl = containerRef.current;\n const observer = new IntersectionObserver(callback, options);\n\n if (containerEl) {\n observer.observe(containerRef.current);\n }\n\n return () => {\n if (containerEl) {\n observer.disconnect();\n }\n };\n }, [containerRef, options]);\n\n return [containerRef, isVisible];\n};\n\n/**\n * useResizeObserver: hook that observes the size of an element and calls a callback when it changes.\n */\nconst useResizeObserver = (\n sources: React.RefObject<HTMLElement> | React.RefObject<HTMLElement>[],\n onResize: ResizeObserverCallback\n) => {\n const handleResize = useCallbackRef(onResize);\n\n React.useLayoutEffect(() => {\n const resizeObs = new ResizeObserver(handleResize);\n\n if (Array.isArray(sources)) {\n sources.forEach((source) => {\n if (source.current) {\n resizeObs.observe(source.current);\n }\n });\n } else if (sources.current) {\n resizeObs.observe(sources.current);\n }\n\n return () => {\n resizeObs.disconnect();\n };\n }, [sources, handleResize]);\n};\n\nexport type { HeaderLayoutProps, BaseHeaderLayoutProps };\nexport { HeaderLayout, BaseHeaderLayout };\n","import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { ActionLayout } from './ActionLayout';\nimport { ContentLayout } from './ContentLayout';\nimport { GridLayout, GridLayoutProps } from './GridLayout';\nimport { HeaderLayout, BaseHeaderLayout } from './HeaderLayout';\n\ninterface LayoutProps {\n children: React.ReactNode;\n sideNav?: React.ReactNode;\n}\n\nconst GridContainer = styled(Box)<{ $hasSideNav: boolean }>`\n display: grid;\n grid-template-columns: ${({ $hasSideNav }) => ($hasSideNav ? `auto 1fr` : '1fr')};\n`;\n\nconst OverflowingItem = styled(Box)`\n overflow-x: hidden;\n`;\n\nconst RootLayout = ({ sideNav, children }: LayoutProps) => {\n return (\n <GridContainer $hasSideNav={Boolean(sideNav)}>\n {sideNav}\n <OverflowingItem paddingBottom={10}>{children}</OverflowingItem>\n </GridContainer>\n );\n};\n\nconst Layouts = {\n Root: RootLayout,\n Header: HeaderLayout,\n BaseHeader: BaseHeaderLayout,\n Grid: GridLayout,\n Action: ActionLayout,\n Content: ContentLayout,\n};\n\nexport { Layouts, type LayoutProps, type GridLayoutProps };\n","/**\n * NotFoundPage\n *\n * This is the page we show when the user visits a url that doesn't have a route\n *\n */\nimport { LinkButton, EmptyStateLayout } from '@strapi/design-system';\nimport { ArrowRight } from '@strapi/icons';\nimport { EmptyPictures } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { Layouts } from '../components/Layouts/Layout';\nimport { Page } from '../components/PageHelpers';\n\nexport const NotFoundPage = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Page.Main labelledBy=\"title\">\n <Layouts.Header\n id=\"title\"\n title={formatMessage({\n id: 'content-manager.pageNotFound',\n defaultMessage: 'Page not found',\n })}\n />\n <Layouts.Content>\n <EmptyStateLayout\n action={\n <LinkButton tag={Link} variant=\"secondary\" endIcon={<ArrowRight />} to=\"/\">\n {formatMessage({\n id: 'app.components.NotFoundPage.back',\n defaultMessage: 'Back to homepage',\n })}\n </LinkButton>\n }\n content={formatMessage({\n id: 'app.page.not.found',\n defaultMessage: \"Oops! We can't seem to find the page you're looging for...\",\n })}\n hasRadius\n icon={<EmptyPictures width=\"16rem\" />}\n shadow=\"tableShadow\"\n />\n </Layouts.Content>\n </Page.Main>\n );\n};\n","import type { RouteObject } from 'react-router-dom';\n\nexport const ROUTES_CE: RouteObject[] = [\n {\n lazy: async () => {\n const { ProtectedListPage } = await import('./pages/Roles/ListPage');\n\n return {\n Component: ProtectedListPage,\n };\n },\n path: 'roles',\n },\n {\n lazy: async () => {\n const { ProtectedCreatePage } = await import('./pages/Roles/CreatePage');\n\n return {\n Component: ProtectedCreatePage,\n };\n },\n path: 'roles/duplicate/:id',\n },\n {\n lazy: async () => {\n const { ProtectedCreatePage } = await import('./pages/Roles/CreatePage');\n\n return {\n Component: ProtectedCreatePage,\n };\n },\n path: 'roles/new',\n },\n {\n lazy: async () => {\n const { ProtectedEditPage } = await import('./pages/Roles/EditPage');\n\n return {\n Component: ProtectedEditPage,\n };\n },\n path: 'roles/:id',\n },\n {\n lazy: async () => {\n const { ProtectedListPage } = await import('./pages/Users/ListPage');\n\n return {\n Component: ProtectedListPage,\n };\n },\n path: 'users',\n },\n {\n lazy: async () => {\n const { ProtectedEditPage } = await import('./pages/Users/EditPage');\n\n return {\n Component: ProtectedEditPage,\n };\n },\n path: 'users/:id',\n },\n {\n lazy: async () => {\n const { ProtectedCreatePage } = await import('./pages/Webhooks/CreatePage');\n\n return {\n Component: ProtectedCreatePage,\n };\n },\n path: 'webhooks/create',\n },\n {\n lazy: async () => {\n const { ProtectedEditPage } = await import('./pages/Webhooks/EditPage');\n\n return {\n Component: ProtectedEditPage,\n };\n },\n path: 'webhooks/:id',\n },\n {\n lazy: async () => {\n const { ProtectedListPage } = await import('./pages/Webhooks/ListPage');\n\n return {\n Component: ProtectedListPage,\n };\n },\n path: 'webhooks',\n },\n {\n lazy: async () => {\n const { ProtectedListView } = await import('./pages/ApiTokens/ListView');\n\n return {\n Component: ProtectedListView,\n };\n },\n path: 'api-tokens',\n },\n {\n lazy: async () => {\n const { ProtectedCreateView } = await import('./pages/ApiTokens/CreateView');\n\n return {\n Component: ProtectedCreateView,\n };\n },\n path: 'api-tokens/create',\n },\n {\n lazy: async () => {\n const { ProtectedEditView } = await import('./pages/ApiTokens/EditView/EditViewPage');\n\n return {\n Component: ProtectedEditView,\n };\n },\n path: 'api-tokens/:id',\n },\n {\n lazy: async () => {\n const { ProtectedCreateView } = await import('./pages/TransferTokens/CreateView');\n\n return {\n Component: ProtectedCreateView,\n };\n },\n path: 'transfer-tokens/create',\n },\n {\n lazy: async () => {\n const { ProtectedListView } = await import('./pages/TransferTokens/ListView');\n\n return {\n Component: ProtectedListView,\n };\n },\n path: 'transfer-tokens',\n },\n {\n lazy: async () => {\n const { ProtectedEditView } = await import('./pages/TransferTokens/EditView');\n\n return {\n Component: ProtectedEditView,\n };\n },\n path: 'transfer-tokens/:id',\n },\n {\n lazy: async () => {\n const { PurchaseAuditLogs } = await import('./pages/PurchaseAuditLogs');\n\n return {\n Component: PurchaseAuditLogs,\n };\n },\n path: 'purchase-audit-logs',\n },\n {\n lazy: async () => {\n const { PurchaseSingleSignOn } = await import('./pages/PurchaseSingleSignOn');\n\n return {\n Component: PurchaseSingleSignOn,\n };\n },\n path: 'purchase-single-sign-on',\n },\n];\n","export const languageNativeNames = {\n ar: 'العربية',\n ca: 'Català',\n cs: 'Čeština',\n de: 'Deutsch',\n dk: 'Dansk',\n en: 'English',\n es: 'Español',\n eu: 'Euskara',\n fr: 'Français',\n gu: 'Gujarati',\n he: 'עברית',\n hu: 'Magyar',\n id: 'Indonesian',\n it: 'Italiano',\n ja: '日本語',\n ko: '한국어',\n ml: 'Malayalam',\n ms: 'Melayu',\n nl: 'Nederlands',\n no: 'Norwegian',\n pl: 'Polski',\n 'pt-BR': 'Português (Brasil)',\n pt: 'Português (Portugal)',\n ru: 'Русский',\n sk: 'Slovenčina',\n sv: 'Swedish',\n th: 'ไทย',\n tr: 'Türkçe',\n uk: 'Українська',\n vi: 'Tiếng Việt',\n 'zh-Hans': '中文 (简体)',\n zh: '中文 (繁體)',\n sa: 'संस्कृत',\n hi: 'हिन्दी',\n} as const;\n","import * as React from 'react';\n\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { Provider } from 'react-redux';\nimport { RouterProvider, createBrowserRouter } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { ADMIN_PERMISSIONS_EE, getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { App } from './App';\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { ErrorElement } from './components/ErrorElement';\nimport { LanguageProvider } from './components/LanguageProvider';\nimport { Page } from './components/PageHelpers';\nimport { Theme } from './components/Theme';\nimport { ADMIN_PERMISSIONS_CE, HOOKS } from './constants';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { RBAC, RBACMiddleware } from './core/apis/rbac';\nimport { RootState, Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { NotFoundPage } from './pages/NotFoundPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\nimport { THEME_LOCAL_STORAGE_KEY, LANGUAGE_LOCAL_STORAGE_KEY, ThemeName } from './reducer';\nimport { languageNativeNames } from './translations/languageNativeNames';\n\nimport type { Permission } from './features/Auth';\nimport type { ReducersMapObject, Middleware } from '@reduxjs/toolkit';\nimport type { MessageDescriptor, PrimitiveType } from 'react-intl';\n\nconst {\n INJECT_COLUMN_IN_TABLE,\n MUTATE_COLLECTION_TYPES_LINKS,\n MUTATE_EDIT_VIEW_LAYOUT,\n MUTATE_SINGLE_TYPES_LINKS,\n} = HOOKS;\n\ninterface StrapiAppConstructorArgs extends Partial<Pick<StrapiApp, 'appPlugins'>> {\n config?: {\n auth?: { logo: string };\n head?: { favicon: string };\n locales?: string[];\n menu?: { logo: string };\n notifications?: { releases: boolean };\n theme?: { light: DefaultTheme; dark: DefaultTheme };\n translations?: Record<string, Record<string, string>>;\n tutorials?: boolean;\n };\n}\n\ninterface MenuItem {\n to: string;\n icon: React.ElementType;\n intlLabel: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n permissions: Permission[];\n notificationsCount?: number;\n Component: React.LazyExoticComponent<React.ComponentType>;\n exact?: boolean;\n licenseOnly?: boolean;\n position?: number;\n}\n\ninterface StrapiAppSettingLink extends Omit<MenuItem, 'icon' | 'notificationCount'> {\n id: string;\n}\n\ninterface StrapiAppPlugin {\n bootstrap: (\n args: Pick<StrapiApp, 'addSettingsLink' | 'addSettingsLinks' | 'getPlugin' | 'registerHook'>\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads: (args: {\n locales: string[];\n }) => Promise<{ data: Record<string, string>; locale: string }[]>;\n}\n\ninterface InjectionZoneComponent {\n Component: React.ComponentType;\n name: string;\n // TODO: in theory this could receive and forward any React component prop\n // but in practice there only seems to be once instance, where `slug` is\n // forwarded. The type needs to become either more generic or we disallow\n // prop spreading and offer a different way to access context data.\n slug: string;\n}\n\ninterface UnloadedSettingsLink extends Omit<StrapiAppSettingLink, 'Component'> {\n Component: () => Promise<{ default: React.ComponentType }>;\n}\n\ninterface Component {\n name: string;\n Component: React.ComponentType;\n}\n\ninterface Field {\n type: string;\n Component: React.ComponentType;\n}\n\ninterface Library {\n fields: Record<Field['type'], Field['Component']>;\n components: Record<Component['name'], Component['Component']>;\n}\n\ninterface StrapiAppSetting {\n id: string;\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n links: StrapiAppSettingLink[];\n}\n\nclass StrapiApp {\n appPlugins: Record<string, StrapiAppPlugin>;\n plugins: Record<string, Plugin> = {};\n hooksDict: Record<string, ReturnType<typeof createHook>> = {};\n\n admin = {\n injectionZones: {},\n };\n\n translations: StrapiApp['configurations']['translations'] = {};\n\n /**\n * MENU API\n */\n menu: MenuItem[] = [];\n settings: Record<string, StrapiAppSetting> = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n\n configurations = {\n authLogo: Logo,\n head: { favicon: '' },\n locales: ['en'],\n menuLogo: Logo,\n notifications: { releases: true },\n themes: { light: lightTheme, dark: darkTheme },\n translations: {},\n tutorials: true,\n };\n\n /**\n * APIs\n */\n rbac = new RBAC();\n library: Library = {\n components: {},\n fields: {},\n };\n middlewares: Array<() => Middleware<object, RootState>> = [];\n reducers: ReducersMapObject = {};\n customFields = new CustomFields();\n\n constructor({ config, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.appPlugins = appPlugins || {};\n\n this.createCustomConfigurations(config ?? {});\n\n this.createHook(INJECT_COLUMN_IN_TABLE);\n this.createHook(MUTATE_COLLECTION_TYPES_LINKS);\n this.createHook(MUTATE_SINGLE_TYPES_LINKS);\n this.createHook(MUTATE_EDIT_VIEW_LAYOUT);\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((comp) => {\n invariant(comp.Component, 'A Component must be provided');\n invariant(comp.name, 'A type must be provided');\n\n this.library.components[comp.name] = comp.Component;\n });\n } else {\n invariant(components.Component, 'A Component must be provided');\n invariant(components.name, 'A type must be provided');\n\n this.library.components[components.name] = components.Component;\n }\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => {\n invariant(field.Component, 'A Component must be provided');\n invariant(field.type, 'A type must be provided');\n\n this.library.fields[field.type] = field.Component;\n });\n } else {\n invariant(fields.Component, 'A Component must be provided');\n invariant(fields.type, 'A type must be provided');\n\n this.library.fields[fields.type] = fields.Component;\n }\n };\n\n addMenuLink = (\n link: Omit<MenuItem, 'Component'> & {\n Component: () => Promise<{ default: React.ComponentType }>;\n }\n ) => {\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n typeof link.to === 'string',\n `[${\n link.intlLabel.defaultMessage\n }]: Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage should be defined`\n );\n invariant(\n link.Component && typeof link.Component === 'function',\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise that returns a default component. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction'\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addMenuLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your menu link is an absolute path, it should be relative to the root of the application. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n this.menu.push({\n ...link,\n Component: React.lazy(async () => {\n const mod = await link.Component();\n\n if ('default' in mod) {\n return mod;\n } else {\n return { default: mod };\n }\n }),\n });\n };\n\n addMiddlewares = (middlewares: StrapiApp['middlewares']) => {\n middlewares.forEach((middleware) => {\n this.middlewares.push(middleware);\n });\n };\n\n addRBACMiddleware = (m: RBACMiddleware | RBACMiddleware[]) => {\n if (Array.isArray(m)) {\n this.rbac.use(m);\n } else {\n this.rbac.use(m);\n }\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n /**\n * TODO: when we upgrade to redux-toolkit@2 and we can also dynamically add middleware,\n * we'll deprecate these two APIs in favour of their hook counterparts.\n */\n Object.entries(reducers).forEach(([name, reducer]) => {\n this.reducers[name] = reducer;\n });\n };\n\n addSettingsLink = (sectionId: keyof StrapiApp['settings'], link: UnloadedSettingsLink) => {\n invariant(this.settings[sectionId], 'The section does not exist');\n\n invariant(link.id, `[${link.intlLabel.defaultMessage}]: link.id should be defined`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage`\n );\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n link.Component && typeof link.Component === 'function',\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction'\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addSettingsLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link is an absolute path. It should be relative to \\`/settings\\`. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n if (link.to.split('/')[0] === 'settings') {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link has \\`settings\\` as the first part of it's path. It should be relative to \\`settings\\` and therefore, not include it. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.split('/').slice(1).join('/');\n }\n\n this.settings[sectionId].links.push({\n ...link,\n Component: React.lazy(async () => {\n const mod = await link.Component();\n\n if ('default' in mod) {\n return mod;\n } else {\n return { default: mod };\n }\n }),\n });\n };\n\n addSettingsLinks = (\n sectionId: Parameters<typeof this.addSettingsLink>[0],\n links: UnloadedSettingsLink[]\n ) => {\n invariant(this.settings[sectionId], 'The section does not exist');\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n\n links.forEach((link) => {\n this.addSettingsLink(sectionId, link);\n });\n };\n\n async bootstrap(customBootstrap?: unknown) {\n Object.keys(this.appPlugins).forEach((plugin) => {\n const bootstrap = this.appPlugins[plugin].bootstrap;\n\n if (bootstrap) {\n bootstrap({\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(customBootstrap)) {\n customBootstrap({\n addComponents: this.addComponents,\n addFields: this.addFields,\n addMenuLink: this.addMenuLink,\n addReducers: this.addReducers,\n addSettingsLink: this.addSettingsLink,\n addSettingsLinks: this.addSettingsLinks,\n getPlugin: this.getPlugin,\n registerHook: this.registerHook,\n });\n }\n }\n\n createCustomConfigurations = (customConfig: NonNullable<StrapiAppConstructorArgs['config']>) => {\n if (customConfig.locales) {\n this.configurations.locales = [\n 'en',\n ...(customConfig.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (customConfig.auth?.logo) {\n this.configurations.authLogo = customConfig.auth.logo;\n }\n\n if (customConfig.menu?.logo) {\n this.configurations.menuLogo = customConfig.menu.logo;\n }\n\n if (customConfig.head?.favicon) {\n this.configurations.head.favicon = customConfig.head.favicon;\n }\n\n if (customConfig.theme) {\n const darkTheme = customConfig.theme.dark;\n const lightTheme = customConfig.theme.light;\n\n if (!darkTheme && !lightTheme) {\n console.warn(\n `[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension.`.trim()\n );\n merge(this.configurations.themes.light, customConfig.theme);\n }\n\n if (lightTheme) merge(this.configurations.themes.light, lightTheme);\n\n if (darkTheme) merge(this.configurations.themes.dark, darkTheme);\n }\n\n if (customConfig.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = customConfig.notifications.releases;\n }\n\n if (customConfig.tutorials !== undefined) {\n this.configurations.tutorials = customConfig.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n createSettingSection = (section: StrapiAppSetting, links: UnloadedSettingsLink[]) => {\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n\n invariant(Array.isArray(links), 'TypeError expected links to be an array');\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n\n this.settings[section.id] = { ...section, links: [] };\n\n links.forEach((link) => {\n this.addSettingsLink(section.id, link);\n });\n };\n\n getAdminInjectedComponents = (\n moduleName: string,\n containerName: string,\n blockName: string\n ): InjectionZoneComponent[] => {\n try {\n // @ts-expect-error – we have a catch block so if you don't pass it correctly we still return an array.\n return this.admin.injectionZones[moduleName][containerName][blockName] || [];\n } catch (err) {\n console.error('Cannot get injected component', err);\n\n return [];\n }\n };\n\n getPlugin = (pluginId: PluginConfig['id']) => this.plugins[pluginId];\n\n async register() {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n }\n\n async loadAdminTrads() {\n const adminLocales = await Promise.all(\n this.configurations.locales.map(async (locale) => {\n try {\n const { default: data } = await import(`./translations/${locale}.json`);\n\n return { data, locale };\n } catch {\n return { data: null, locale };\n }\n })\n );\n\n return adminLocales.reduce<{ [locale: string]: Record<string, string> }>((acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n }, {});\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n */\n async loadTrads(customTranslations: Record<string, Record<string, string>> = {}) {\n const adminTranslations = await this.loadAdminTrads();\n\n const arrayOfPromises = Object.keys(this.appPlugins)\n .map((plugin) => {\n const registerTrads = this.appPlugins[plugin].registerTrads;\n\n if (registerTrads) {\n return registerTrads({ locales: this.configurations.locales });\n }\n\n return null;\n })\n .filter((a) => a);\n\n type Translation = Awaited<ReturnType<StrapiAppPlugin['registerTrads']>>[number];\n\n const pluginsTrads = (await Promise.all(arrayOfPromises)) as Array<Translation[]>;\n const mergedTrads = pluginsTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc, currentPluginTrads) => {\n const pluginTrads = currentPluginTrads.reduce<{ [locale: string]: Translation['data'] }>(\n (acc1, current) => {\n acc1[current.locale] = current.data;\n\n return acc1;\n },\n {}\n );\n\n Object.keys(pluginTrads).forEach((locale) => {\n acc[locale] = { ...acc[locale], ...pluginTrads[locale] };\n });\n\n return acc;\n },\n {}\n );\n\n const translations = this.configurations.locales.reduce<{\n [locale: string]: Translation['data'];\n }>((acc, current) => {\n acc[current] = {\n ...adminTranslations[current],\n ...(mergedTrads[current] || {}),\n ...(customTranslations[current] ?? {}),\n };\n\n return acc;\n }, {});\n\n this.configurations.translations = translations;\n\n return Promise.resolve();\n }\n\n registerHook = (name: string, fn: Handler) => {\n invariant(\n this.hooksDict[name],\n `The hook ${name} is not defined. You are trying to register a hook that does not exist in the application.`\n );\n this.hooksDict[name].register(fn);\n };\n\n registerPlugin = (pluginConf: PluginConfig) => {\n const plugin = new Plugin(pluginConf);\n\n this.plugins[plugin.pluginId] = plugin;\n };\n\n runHookSeries = (name: string, asynchronous = false) =>\n asynchronous ? this.hooksDict[name].runSeriesAsync() : this.hooksDict[name].runSeries();\n\n runHookWaterfall = <T,>(name: string, initialValue: T, store?: Store) => {\n return this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n const locale = (localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) ||\n 'en') as keyof typeof localeNames;\n\n const store = configureStore(\n {\n admin_app: {\n permissions: merge({}, ADMIN_PERMISSIONS_CE, ADMIN_PERMISSIONS_EE),\n theme: {\n availableThemes: [],\n currentTheme: (localStorage.getItem(THEME_LOCAL_STORAGE_KEY) || 'system') as ThemeName,\n },\n language: {\n locale: localeNames[locale] ? locale : 'en',\n localeNames,\n },\n },\n },\n this.middlewares,\n this.reducers\n ) as Store;\n\n const settingsRoutes = [...getSettingsEERoutes(), ...ROUTES_CE].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n );\n\n const router = createBrowserRouter(\n [\n {\n path: '/*',\n errorElement: (\n <Provider store={store}>\n <LanguageProvider messages={this.configurations.translations}>\n <Theme themes={this.configurations.themes}>\n <ErrorElement />\n </Theme>\n </LanguageProvider>\n </Provider>\n ),\n element: <App strapi={this} store={store} />,\n children: [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n {\n path: '/*',\n lazy: async () => {\n const { PrivateAdminLayout } = await import('./layouts/AuthenticatedLayout');\n\n return {\n Component: PrivateAdminLayout,\n };\n },\n children: [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'list-plugins',\n lazy: async () => {\n const { ProtectedInstalledPluginsPage } = await import(\n './pages/InstalledPluginsPage'\n );\n\n return {\n Component: ProtectedInstalledPluginsPage,\n };\n },\n },\n {\n path: 'marketplace',\n lazy: async () => {\n const { ProtectedMarketplacePage } = await import(\n './pages/Marketplace/MarketplacePage'\n );\n\n return {\n Component: ProtectedMarketplacePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n ...Object.values(this.settings).flatMap(({ links }) =>\n links.map(({ to, Component }) => ({\n path: `${to}/*`,\n element: (\n <React.Suspense fallback={<Page.Loading />}>\n <Component />\n </React.Suspense>\n ),\n }))\n ),\n ...settingsRoutes,\n ],\n },\n ...this.menu.map(({ to, Component }) => ({\n path: `${to}/*`,\n element: (\n <React.Suspense fallback={<Page.Loading />}>\n <Component />\n </React.Suspense>\n ),\n })),\n\n {\n path: '*',\n element: <NotFoundPage />,\n },\n ],\n },\n ],\n },\n ],\n {\n basename: getBasename(),\n }\n );\n\n return <RouterProvider router={router} />;\n }\n}\n\nexport { StrapiApp };\nexport type {\n StrapiAppPlugin,\n StrapiAppSettingLink,\n StrapiAppSetting,\n MenuItem,\n StrapiAppConstructorArgs,\n InjectionZoneComponent,\n};\n","/* eslint-disable no-undef */\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\nimport { getFetchClient } from './utils/getFetchClient';\nimport { createAbsoluteUrl } from './utils/urls';\n\nimport type { Modules } from '@strapi/types';\n\ninterface RenderAdminArgs {\n customisations: {\n bootstrap?: (app: StrapiApp) => Promise<void> | void;\n config?: StrapiAppConstructorArgs['config'];\n };\n plugins: StrapiAppConstructorArgs['appPlugins'];\n features?: Modules.Features.FeaturesService['config'];\n}\n\nconst renderAdmin = async (\n mountNode: HTMLElement | null,\n { plugins, customisations, features }: RenderAdminArgs\n) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n window.strapi = {\n /**\n * This ENV variable is passed from the strapi instance, by default no url is set\n * in the config and therefore the instance returns you an empty string so URLs are relative.\n *\n * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.\n */\n backendURL: createAbsoluteUrl(process.env.STRAPI_ADMIN_BACKEND_URL),\n isEE: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true',\n future: {\n isEnabled: (name: keyof NonNullable<Modules.Features.FeaturesConfig['future']>) => {\n return features?.future?.[name] === true;\n },\n },\n // @ts-expect-error – there's pollution from the global scope of Node.\n features: {\n SSO: 'sso',\n AUDIT_LOGS: 'audit-logs',\n REVIEW_WORKFLOWS: 'review-workflows',\n /**\n * If we don't get the license then we know it's not EE\n * so no feature is enabled.\n */\n isEnabled: () => false,\n },\n projectType: 'Community',\n flags: {\n nps: false,\n promoteEE: true,\n },\n };\n\n const { get } = getFetchClient();\n\n interface ProjectType extends Pick<Window['strapi'], 'flags'> {\n isEE: boolean;\n features: {\n name: string;\n }[];\n }\n\n try {\n const {\n data: {\n data: { isEE, features, flags },\n },\n } = await get<{ data: ProjectType }>('/admin/project-type');\n\n window.strapi.isEE = isEE;\n window.strapi.flags = flags;\n window.strapi.features = {\n ...window.strapi.features,\n isEnabled: (featureName) => features.some((feature) => feature.name === featureName),\n };\n window.strapi.projectType = isEE ? 'Enterprise' : 'Community';\n } catch (err) {\n /**\n * If this fails, we simply don't activate any EE features.\n * Should we warn clearer in the UI?\n */\n console.error(err);\n }\n\n const app = new StrapiApp({\n config: customisations?.config,\n appPlugins: plugins,\n });\n\n await app.register();\n await app.bootstrap(customisations?.bootstrap);\n await app.loadTrads(customisations?.config?.translations);\n\n createRoot(mountNode).render(app.render());\n\n if (\n typeof module !== 'undefined' &&\n module &&\n 'hot' in module &&\n typeof module.hot === 'object' &&\n module.hot !== null &&\n 'accept' in module.hot &&\n typeof module.hot.accept === 'function'\n ) {\n module.hot.accept();\n }\n\n if (typeof import.meta.hot?.accept === 'function') {\n import.meta.hot.accept();\n }\n};\n\nexport { renderAdmin };\nexport type { RenderAdminArgs };\n","import * as React from 'react';\n\nimport { Button, ButtonProps, Dialog } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\n/* -------------------------------------------------------------------------------------------------\n * ConfirmDialog\n * -----------------------------------------------------------------------------------------------*/\ninterface ConfirmDialogProps extends Pick<ButtonProps, 'variant'>, Pick<Dialog.BodyProps, 'icon'> {\n onConfirm?: () => Promise<void> | void;\n children?: React.ReactNode;\n endAction?: React.ReactNode;\n startAction?: React.ReactNode;\n title?: React.ReactNode;\n}\n\n/**\n * @beta\n * @public\n * @description A simple confirm dialog that out of the box can be used to confirm an action.\n * The component can additionally be customised if required e.g. the footer actions can be\n * completely replaced, but cannot be removed. Passing a string as the children prop will render\n * the string as the body of the dialog. If you need more control over the body, you can pass a\n * custom component as the children prop.\n * @example\n * ```tsx\n * import { Dialog } from '@strapi/design-system';\n *\n * const DeleteAction = ({ id }) => {\n * const [isOpen, setIsOpen] = React.useState(false);\n *\n * const [delete] = useDeleteMutation()\n * const handleConfirm = async () => {\n * await delete(id)\n * setIsOpen(false)\n * }\n *\n * return (\n * <Dialog.Root open={isOpen} onOpenChange={setIsOpen}>\n * <Dialog.Trigger>\n * <Button>Delete</Button>\n * </Dialog.Trigger>\n * <ConfirmDialog onConfirm={handleConfirm} />\n * </Dialog.Root>\n * )\n * }\n * ```\n */\nconst ConfirmDialog = ({\n children,\n icon = <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />,\n onConfirm,\n variant = 'danger-light',\n startAction,\n endAction,\n title,\n}: ConfirmDialogProps) => {\n const { formatMessage } = useIntl();\n const [isConfirming, setIsConfirming] = React.useState(false);\n\n const content =\n children ||\n formatMessage({\n id: 'app.confirm.body',\n defaultMessage: 'Are you sure?',\n });\n\n const handleConfirm = async () => {\n if (!onConfirm) {\n return;\n }\n\n try {\n setIsConfirming(true);\n await onConfirm();\n } finally {\n setIsConfirming(false);\n }\n };\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n {title ||\n formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n })}\n </Dialog.Header>\n <Dialog.Body icon={icon}>{content}</Dialog.Body>\n <Dialog.Footer>\n {startAction || (\n <Dialog.Cancel>\n <Button fullWidth variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Dialog.Cancel>\n )}\n {endAction || (\n <Dialog.Action>\n <Button fullWidth onClick={handleConfirm} variant={variant} loading={isConfirming}>\n {formatMessage({\n id: 'app.components.Button.confirm',\n defaultMessage: 'Confirm',\n })}\n </Button>\n </Dialog.Action>\n )}\n </Dialog.Footer>\n </Dialog.Content>\n );\n};\n\nexport { ConfirmDialog };\nexport type { ConfirmDialogProps };\n","import * as React from 'react';\n\nconst useIsMounted = () => {\n const isMounted = React.useRef(false);\n\n React.useLayoutEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n\nexport { useIsMounted };\n","import * as React from 'react';\n\nimport { useIsMounted } from './useIsMounted';\n\n/**\n * @internal\n * @description Return a function that re-renders this component, if still mounted\n * @warning DO NOT USE EXCEPT SPECIAL CASES.\n */\nconst useForceUpdate = () => {\n const [tick, update] = React.useState<number>();\n const isMounted = useIsMounted();\n\n const forceUpdate = React.useCallback(() => {\n if (isMounted.current) {\n update(Math.random());\n }\n }, [isMounted, update]);\n\n return [tick, forceUpdate] as const;\n};\n\nexport { useForceUpdate };\n","import { useMemo } from 'react';\n\nimport throttle from 'lodash/throttle';\n\ntype ThrottleSettings = Parameters<typeof throttle>[2];\n\n/**\n * @internal\n * @description Create a throttled version of a callback\n * @example\n * ```tsx\n * // First create a callback using React’s `useCallback` hook\n * const myCallback = useCallback(() => {\n * // this is not throttled\n * }, [])\n *\n * // Then make a throttled version using the `useThrottledCallback` hook\n * const myThrottledCallback = useThrottledCallback(myCallback, 100)\n *\n * // Call the throttled callback\n * <Button onClick={myThrottledCallback} />\n * ```\n */\nconst useThrottledCallback = <T extends (...args: any[]) => any>(\n callback: T,\n wait: number,\n options: ThrottleSettings\n): T => {\n const throttledCallback = useMemo(\n () => throttle(callback, wait, options) as unknown as T,\n [callback, options, wait]\n );\n\n return throttledCallback;\n};\n\nexport { useThrottledCallback };\n","/* -------------------------------------------------------------------------------------------------\n * requestIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst requestIdleCallbackShim: Window['requestIdleCallback'] = (callback) => {\n const start = Date.now();\n\n return setTimeout(() => {\n callback({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, Date.now() - start);\n },\n });\n }, 1) as unknown as ReturnType<Window['requestIdleCallback']>;\n};\n\nconst _requestIdleCallback =\n typeof requestIdleCallback === 'undefined' ? requestIdleCallbackShim : requestIdleCallback;\n\n/* -------------------------------------------------------------------------------------------------\n * cancelIdleCallbackShim\n * -----------------------------------------------------------------------------------------------*/\nconst cancelIdleCallbackShim: Window['cancelIdleCallback'] = (handle: unknown) => {\n return clearTimeout(handle as any);\n};\n\nconst _cancelIdleCallback =\n typeof cancelIdleCallback === 'undefined' ? cancelIdleCallbackShim : cancelIdleCallback;\n\nexport { _requestIdleCallback as requestIdleCallback };\nexport { _cancelIdleCallback as cancelIdleCallback };\n","/**\n * This component will render DescriptionComponents that return objects e.g. `cm.apis.addEditViewPanel`\n * these descriptions are still treated like components because users can use react hooks in them.\n *\n * Rendering them normally by mapping etc. causes mutliple render issues.\n */\n\nimport * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\n\nimport { useForceUpdate } from '../hooks/useForceUpdate';\nimport { useThrottledCallback } from '../hooks/useThrottledCallback';\nimport { cancelIdleCallback, requestIdleCallback } from '../utils/shims';\n\ninterface DescriptionComponent<Props, Description> {\n (props: Props): Description | null;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * DescriptionComponentRenderer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DescriptionComponentRendererProps<Props = any, Description = any> {\n children: (descriptions: Array<Description & { id: string }>) => React.ReactNode;\n descriptions: DescriptionComponent<Props, Description>[];\n props: Props;\n}\n\n/**\n * @internal\n *\n * @description This component takes an array of DescriptionComponents, which are react components that return objects as opposed to JSX.\n * We render these in their own isolated memoized component and use an update function to push the data back out to the parent.\n * Saving it in a ref, and then \"forcing\" an update of the parent component to render the children of this component with the new data.\n *\n * The DescriptionCompoonents can take props and use react hooks hence why we render them as if they were a component. The update\n * function is throttled and managed to avoid erroneous updates where we could wait a single tick to update the entire UI, which\n * creates less \"popping\" from functions being called in rapid succession.\n */\nconst DescriptionComponentRenderer = <Props, Description>({\n children,\n props,\n descriptions,\n}: DescriptionComponentRendererProps<Props, Description>) => {\n const statesRef = React.useRef<Record<string, { value: Description & { id: string } }>>({});\n const [tick, forceUpdate] = useForceUpdate();\n\n const requestHandle = React.useRef<number | null>(null);\n const requestUpdate = React.useCallback(() => {\n if (requestHandle.current) {\n cancelIdleCallback(requestHandle.current);\n }\n\n requestHandle.current = requestIdleCallback(() => {\n requestHandle.current = null;\n\n forceUpdate();\n });\n }, [forceUpdate]);\n\n /**\n * This will avoid us calling too many react updates in a short space of time.\n */\n const throttledRequestUpdate = useThrottledCallback(requestUpdate, 60, { trailing: true });\n\n const update = React.useCallback<DescriptionProps<Props, Description>['update']>(\n (id, description) => {\n if (description === null) {\n delete statesRef.current[id];\n } else {\n const current = statesRef.current[id];\n statesRef.current[id] = { ...current, value: { ...description, id } };\n }\n\n throttledRequestUpdate();\n },\n [throttledRequestUpdate]\n );\n\n const ids = React.useMemo(\n () => descriptions.map((description) => getCompId(description)),\n [descriptions]\n );\n\n const states = React.useMemo(\n () =>\n ids\n .map((id) => statesRef.current[id]?.value)\n .filter((state) => state !== null && state !== undefined),\n /**\n * we leave tick in the deps to ensure the memo is recalculated when the `update` function is called.\n * the `ids` will most likely be stable unless we get new actions, but we can't respond to the Description\n * Component changing the ref data in any other way.\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [ids, tick]\n );\n\n return (\n <>\n {descriptions.map((description) => {\n const key = getCompId(description);\n return (\n <Description key={key} id={key} description={description} props={props} update={update} />\n );\n })}\n {children(states)}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Description\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DescriptionProps<Props, Description> {\n description: DescriptionComponent<Props, Description>;\n id: string;\n props: Props;\n update: (id: string, value: Description | null) => void;\n}\n\n/**\n * Descriptions are objects, but to create the object, we allow users to create components,\n * this means they can use react hooks in them. It also means we need to render them\n * within a component, however because they return an object of data we can't add that\n * to the react tree, instead we push it back out to the parent.\n */\nconst Description = React.memo(\n ({ description, id, props, update }: DescriptionProps<any, any>) => {\n const comp = description(props);\n\n useShallowCompareEffect(() => {\n update(id, comp);\n\n return () => {\n update(id, null);\n };\n }, comp);\n\n return null;\n },\n (prev, next) => isEqual(prev.props, next.props)\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Helpers\n * -----------------------------------------------------------------------------------------------*/\n\nconst ids = new WeakMap<DescriptionComponent<any, any>, string>();\n\nlet counter = 0;\n\nfunction getCompId<T, K>(comp: DescriptionComponent<T, K>): string {\n const cachedId = ids.get(comp);\n\n if (cachedId) return cachedId;\n\n const id = `${comp.name || (comp as any).displayName || '<anonymous>'}-${counter++}`;\n\n ids.set(comp, id);\n\n return id;\n}\n\nconst useShallowCompareMemoize = <T,>(value: T): Array<T | undefined> => {\n const ref = React.useRef<T | undefined>(undefined);\n\n if (!isEqual(value, ref.current)) {\n ref.current = value;\n }\n\n return [ref.current];\n};\n\nconst useShallowCompareEffect = (callback: React.EffectCallback, dependencies?: unknown) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps -- the linter isn't able to see that deps are properly handled here\n React.useEffect(callback, useShallowCompareMemoize(dependencies));\n};\n\nexport { DescriptionComponentRenderer };\nexport type { DescriptionComponentRendererProps, DescriptionComponent };\n","import type { Modules } from '@strapi/types';\nimport type { MessageDescriptor } from 'react-intl';\n\n/**\n * @description designed to be parsed by formatMessage from react-intl\n * then passed to a Select component.\n */\ninterface FilterOption {\n value: Modules.EntityService.Params.Filters.Operator.Where;\n label: MessageDescriptor;\n}\n\n/**\n * @description these are shared by everyone\n */\nconst BASE_FILTERS = [\n {\n label: { id: 'components.FilterOptions.FILTER_TYPES.$eq', defaultMessage: 'is' },\n value: '$eq',\n },\n {\n label: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' },\n value: '$ne',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$null',\n defaultMessage: 'is null',\n },\n value: '$null',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$notNull',\n defaultMessage: 'is not null',\n },\n value: '$notNull',\n },\n] satisfies FilterOption[];\n\n/**\n * @description typically performed on attributes that are numerical incl. dates.\n */\nconst NUMERIC_FILTERS = [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$gt',\n defaultMessage: 'is greater than',\n },\n value: '$gt',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$gte',\n defaultMessage: 'is greater than or equal to',\n },\n value: '$gte',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$lt',\n defaultMessage: 'is less than',\n },\n value: '$lt',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$lte',\n defaultMessage: 'is less than or equal to',\n },\n value: '$lte',\n },\n] satisfies FilterOption[];\n\nconst IS_SENSITIVE_FILTERS = [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$eqi',\n defaultMessage: 'is (case insensitive)',\n },\n value: '$eqi',\n },\n\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$nei',\n defaultMessage: 'is not (case insensitive)',\n },\n value: '$nei',\n },\n] satisfies FilterOption[];\n\n/**\n * @description typically performed on attributes that are strings for partial looking.\n */\nconst CONTAINS_FILTERS = [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$contains',\n defaultMessage: 'contains',\n },\n value: '$contains',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$containsi',\n defaultMessage: 'contains (case insensitive)',\n },\n value: '$containsi',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$notContains',\n defaultMessage: 'not contains',\n },\n value: '$notContains',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$notContainsi',\n defaultMessage: 'not contains (case insensitive)',\n },\n value: '$notContainsi',\n },\n] satisfies FilterOption[];\n\n/**\n * @description only used on string attributes.\n */\nconst STRING_PARSE_FILTERS = [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$startsWith',\n defaultMessage: 'starts with',\n },\n value: '$startsWith',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$startsWithi',\n defaultMessage: 'starts with (case insensitive)',\n },\n value: '$startsWithi',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$endsWith',\n defaultMessage: 'ends with',\n },\n value: '$endsWith',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$endsWithi',\n defaultMessage: 'ends with (case insensitive)',\n },\n value: '$endsWithi',\n },\n] satisfies FilterOption[];\n\nexport {\n BASE_FILTERS,\n NUMERIC_FILTERS,\n IS_SENSITIVE_FILTERS,\n CONTAINS_FILTERS,\n STRING_PARSE_FILTERS,\n};\nexport type { FilterOption };\n","import * as React from 'react';\n\nimport { useCallbackRef } from '@strapi/design-system';\n\ntype UseControllableStateParams<T> = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn<T> = (prevState?: T) => T;\n\nfunction useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn<T>;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n\n return [value, setValue] as const;\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, 'prop'>) {\n const uncontrolledState = React.useState<T | undefined>(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\n\nexport { useControllableState };\n","import { useCallback, useMemo } from 'react';\n\nimport { parse, stringify } from 'qs';\nimport { useNavigate, useLocation } from 'react-router-dom';\n\nconst useQueryParams = <TQuery extends object>(initialParams?: TQuery) => {\n const { search } = useLocation();\n const navigate = useNavigate();\n\n const query = useMemo(() => {\n // TODO: investigate why sometimes we're getting the search with a leading `?` and sometimes not.\n const searchQuery = search.startsWith('?') ? search.slice(1) : search;\n if (!search && initialParams) {\n return initialParams;\n }\n\n return { ...initialParams, ...parse(searchQuery) } as TQuery;\n }, [search, initialParams]);\n\n const setQuery = useCallback(\n (nextParams: TQuery, method: 'push' | 'remove' = 'push', replace = false) => {\n let nextQuery = { ...query };\n\n if (method === 'remove') {\n Object.keys(nextParams).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(nextQuery, key)) {\n // @ts-expect-error – this is fine, if you want to fix it, please do.\n delete nextQuery[key];\n }\n });\n } else {\n nextQuery = { ...query, ...nextParams };\n }\n\n navigate({ search: stringify(nextQuery, { encode: false }) }, { replace });\n },\n [navigate, query]\n );\n\n return [{ query, rawQuery: search }, setQuery] as const;\n};\n\nexport { useQueryParams };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Popover, Tag, useComposedRefs } from '@strapi/design-system';\nimport { Plus, Filter as FilterIcon, Cross } from '@strapi/icons';\nimport { Schema } from '@strapi/types';\nimport { useIntl } from 'react-intl';\n\nimport {\n BASE_FILTERS,\n CONTAINS_FILTERS,\n FilterOption,\n IS_SENSITIVE_FILTERS,\n NUMERIC_FILTERS,\n STRING_PARSE_FILTERS,\n} from '../constants/filters';\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\nimport { Form, InputProps } from './Form';\nimport { InputRenderer } from './FormInputs/Renderer';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FilterFormData {\n name: string;\n filter: string;\n value?: string;\n}\n\ninterface FitlersContextValue {\n disabled: boolean;\n onChange: (data: FilterFormData) => void;\n options: Filters.Filter[];\n setOpen: (open: boolean) => void;\n}\n\nconst [FiltersProvider, useFilters] = createContext<FitlersContextValue>('Filters');\n\ninterface RootProps extends Partial<FitlersContextValue>, Popover.Props {\n children: React.ReactNode;\n}\n\nconst Root = ({\n children,\n disabled = false,\n onChange,\n options = [],\n onOpenChange,\n open: openProp,\n defaultOpen,\n ...restProps\n}: RootProps) => {\n const handleChange = (data: FilterFormData) => {\n if (onChange) {\n onChange(data);\n }\n };\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen} {...restProps}>\n <FiltersProvider\n setOpen={setOpen}\n disabled={disabled}\n onChange={handleChange}\n options={options}\n >\n {children}\n </FiltersProvider>\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Trigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst Trigger = React.forwardRef<HTMLButtonElement, Filters.TriggerProps>(\n ({ label }, forwardedRef) => {\n const { formatMessage } = useIntl();\n const disabled = useFilters('Trigger', ({ disabled }) => disabled);\n\n return (\n <Popover.Trigger>\n <Button\n variant=\"tertiary\"\n ref={forwardedRef}\n startIcon={<FilterIcon />}\n size=\"S\"\n disabled={disabled}\n >\n {label || formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst PopoverImpl = () => {\n const [{ query }, setQuery] = useQueryParams<Filters.Query>();\n const { formatMessage } = useIntl();\n const options = useFilters('Popover', ({ options }) => options);\n const onChange = useFilters('Popover', ({ onChange }) => onChange);\n const setOpen = useFilters('Popover', ({ setOpen }) => setOpen);\n\n if (options.length === 0) {\n return null;\n }\n\n const handleSubmit = (data: FilterFormData) => {\n if (!data.value) {\n return;\n }\n\n if (onChange) {\n onChange(data);\n }\n\n /**\n * There will ALWAYS be an option because we use the options to create the form data.\n */\n const filterType = options.find((filter) => filter.name === data.name)!.type;\n\n /**\n * If the filter is a relation, we need to nest the filter object,\n * we always use ids to filter relations. But the nested object is\n * the operator & value pair. This value _could_ look like:\n * ```json\n * {\n * \"$eq\": \"1\",\n * }\n * ```\n */\n const operatorValuePairing = {\n [data.filter]: data.value,\n };\n\n const newFilterQuery = {\n ...query.filters,\n $and: [\n ...(query.filters?.$and ?? []),\n {\n [data.name]:\n filterType === 'relation'\n ? {\n id: operatorValuePairing,\n }\n : operatorValuePairing,\n },\n ],\n };\n\n setQuery({ filters: newFilterQuery, page: 1 });\n setOpen(false);\n };\n\n return (\n <Popover.Content>\n <Box padding={3}>\n <Form\n method=\"POST\"\n initialValues={\n {\n name: options[0]?.name,\n filter: BASE_FILTERS[0].value,\n } satisfies FilterFormData\n }\n onSubmit={handleSubmit}\n >\n {({ values: formValues, modified, isSubmitting }) => {\n const filter = options.find((filter) => filter.name === formValues.name);\n const Input = filter?.input || InputRenderer;\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2} style={{ minWidth: 184 }}>\n {[\n {\n ['aria-label']: formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n }),\n name: 'name',\n options: options.map((filter) => ({\n label: filter.label,\n value: filter.name,\n })),\n placholder: formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n }),\n type: 'enumeration' as const,\n },\n {\n ['aria-label']: formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n }),\n name: 'filter',\n options:\n filter?.operators ||\n getFilterList(filter).map((opt) => ({\n label: formatMessage(opt.label),\n value: opt.value,\n })),\n placeholder: formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n }),\n type: 'enumeration' as const,\n },\n ].map((field) => (\n <InputRenderer key={field.name} {...field} />\n ))}\n {filter &&\n formValues.filter &&\n formValues.filter !== '$null' &&\n formValues.filter !== '$notNull' ? (\n <Input\n {...filter}\n label={null}\n aria-label={filter.label}\n name=\"value\"\n // @ts-expect-error – if type is `custom` then `Input` will be a custom component.\n type={filter.mainField?.type ?? filter.type}\n />\n ) : null}\n <Button\n disabled={!modified || isSubmitting}\n size=\"L\"\n variant=\"secondary\"\n startIcon={<Plus />}\n type=\"submit\"\n fullWidth\n >\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Flex>\n );\n }}\n </Form>\n </Box>\n </Popover.Content>\n );\n};\n\n/**\n * Depending on the selected field find the possible filters to apply\n */\nconst getFilterList = (filter?: Filters.Filter): FilterOption[] => {\n if (!filter) {\n return [];\n }\n\n const type = filter.mainField?.type ? filter.mainField.type : filter.type;\n\n switch (type) {\n case 'email':\n case 'text':\n case 'enumeration':\n case 'string': {\n return [\n ...BASE_FILTERS,\n ...IS_SENSITIVE_FILTERS,\n ...CONTAINS_FILTERS,\n ...STRING_PARSE_FILTERS,\n ];\n }\n\n case 'float':\n case 'integer':\n case 'biginteger':\n case 'decimal': {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS];\n }\n case 'time':\n case 'date': {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS, ...CONTAINS_FILTERS];\n }\n\n case 'datetime': {\n return [...BASE_FILTERS, ...NUMERIC_FILTERS];\n }\n\n default:\n return [...BASE_FILTERS, ...IS_SENSITIVE_FILTERS];\n }\n};\n\n/* -------------------------------------------------------------------------------------------------\n * List\n * -----------------------------------------------------------------------------------------------*/\n\nconst List = () => {\n const [{ query }, setQuery] = useQueryParams<Filters.Query>();\n\n const options = useFilters('List', ({ options }) => options);\n\n const handleClick = (data: FilterFormData) => {\n /**\n * Check the name, operator and value to see if it already exists in the query\n * if it does, remove it.\n */\n const nextFilters = (query?.filters?.$and ?? []).filter((filter) => {\n const [attributeName] = Object.keys(filter);\n if (attributeName !== data.name) {\n return true;\n }\n\n const { type, mainField } = options.find(({ name }) => name === attributeName)!;\n\n if (type === 'relation') {\n const filterObj = filter[attributeName][mainField?.name ?? 'id'];\n\n if (typeof filterObj === 'object') {\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n\n return !(operator === data.filter && value === data.value);\n }\n\n return true;\n } else {\n const filterObj = filter[attributeName];\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n\n return !(operator === data.filter && value === data.value);\n }\n });\n\n setQuery({ filters: { $and: nextFilters }, page: 1 });\n };\n\n if (!query?.filters?.$and?.length) {\n return null;\n }\n\n return (\n <>\n {query?.filters?.$and?.map((queryFilter) => {\n const [attributeName] = Object.keys(queryFilter);\n const filter = options.find(({ name }) => name === attributeName);\n const filterObj = queryFilter[attributeName];\n\n if (!filter || typeof filterObj !== 'object' || filterObj === null) {\n return null;\n }\n\n if (filter.type === 'relation') {\n const modelFilter = filterObj[filter.mainField?.name ?? 'id'];\n\n if (typeof modelFilter === 'object') {\n const [operator] = Object.keys(modelFilter);\n const value = modelFilter[operator];\n return (\n <AttributeTag\n key={`${attributeName}-${operator}-${value}`}\n {...filter}\n onClick={handleClick}\n operator={operator}\n value={value}\n />\n );\n }\n\n return null;\n } else {\n const [operator] = Object.keys(filterObj);\n const value = filterObj[operator];\n\n /**\n * Something has gone wrong here, because the attribute is not a relation\n * but we have a nested filter object.\n */\n if (typeof value === 'object') {\n return null;\n }\n\n return (\n <AttributeTag\n key={`${attributeName}-${operator}-${value}`}\n {...filter}\n onClick={handleClick}\n operator={operator}\n value={value}\n />\n );\n }\n })}\n </>\n );\n};\n\ninterface AttributeTagProps extends Filters.Filter {\n onClick: (data: FilterFormData) => void;\n operator: string;\n value: string;\n}\n\nconst AttributeTag = ({\n input,\n label,\n mainField,\n name,\n onClick,\n operator,\n options,\n value,\n ...filter\n}: AttributeTagProps) => {\n const { formatMessage, formatDate, formatTime, formatNumber } = useIntl();\n\n const handleClick = () => {\n onClick({ name, value, filter: operator });\n };\n\n const type = mainField?.type ? mainField.type : filter.type;\n\n let formattedValue: string = value;\n\n switch (type) {\n case 'date':\n formattedValue = formatDate(value, { dateStyle: 'full' });\n break;\n case 'datetime':\n formattedValue = formatDate(value, { dateStyle: 'full', timeStyle: 'short' });\n break;\n case 'time':\n const [hour, minute] = value.split(':');\n const date = new Date();\n date.setHours(Number(hour));\n date.setMinutes(Number(minute));\n\n formattedValue = formatTime(date, {\n hour: 'numeric',\n minute: 'numeric',\n });\n break;\n case 'float':\n case 'integer':\n case 'biginteger':\n case 'decimal':\n formattedValue = formatNumber(Number(value));\n break;\n }\n\n // Handle custom input\n if (input && options) {\n // If the custom input has an options array, find the option with a customValue matching the query value\n const selectedOption = options.find((option) => {\n return (typeof option === 'string' ? option : option.value) === value;\n });\n\n formattedValue = selectedOption\n ? typeof selectedOption === 'string'\n ? selectedOption\n : selectedOption.label ?? selectedOption.value\n : value;\n }\n\n const content = `${label} ${formatMessage({\n id: `components.FilterOptions.FILTER_TYPES.${operator}`,\n defaultMessage: operator,\n })} ${operator !== '$null' && operator !== '$notNull' ? formattedValue : ''}`;\n\n return (\n <Tag padding={1} onClick={handleClick} icon={<Cross />}>\n {content}\n </Tag>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Filters = {\n List,\n Popover: PopoverImpl,\n Root,\n Trigger,\n};\n\ninterface MainField {\n name: string;\n type: Schema.Attribute.Kind | 'custom';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Filters {\n export interface Filter {\n input?: React.ComponentType<ValueInputProps>;\n label: string;\n /**\n * the name of the attribute we use to display the actual name e.g. relations\n * are just ids, so we use the mainField to display something meaninginful by\n * looking at the target's schema\n */\n mainField?: MainField;\n name: string;\n operators?: Array<{\n label: string;\n value: string;\n }>;\n options?: Array<{ label?: string; value: string }> | string[];\n type: InputProps['type'] | 'relation' | 'custom';\n }\n\n export interface ValueInputProps extends Omit<Filter, 'label'> {\n ['aria-label']: string;\n }\n\n export type Props = RootProps;\n\n export interface TriggerProps {\n label?: string;\n }\n\n export interface Query {\n filters?: {\n /**\n * Typically, a filter will be:\n * ```ts\n * {\n * [attributeName]: {\n * [operator]: value\n * }\n * }\n * ```\n * However, for relation items it becomes more nested.\n * ```ts\n * {\n * [attributeName]: {\n * [relationTargetAttribute]: {\n * [operator]: value\n * }\n * }\n * }\n * ```\n */\n $and?: Array<Record<string, Record<string, string | Record<string, string>>>>;\n };\n page?: number;\n }\n}\n\nexport { Filters };\n","/* eslint-disable import/export */\nimport * as React from 'react';\n\nimport {\n Flex,\n SingleSelectOption,\n SingleSelect,\n Typography,\n Dots,\n NextLink,\n PageLink,\n Pagination as PaginationImpl,\n PreviousLink,\n} from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\nimport type { Pagination as PaginationApi } from '../../../shared/contracts/shared';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\ninterface PaginationContextValue {\n /**\n * @description the complete query object, this could include query params\n * injected by other plugins, if you're navigating to a different page you\n * should ensure these are still passed.\n */\n currentQuery?: object;\n pageCount: string;\n pageSize: string;\n page: string;\n setPageSize: (pageSize: string) => void;\n total: NonNullable<RootProps['total']>;\n}\n\nconst [PaginationProvider, usePagination] = createContext<PaginationContextValue>('Pagination');\n\ninterface RootProps {\n children: React.ReactNode;\n /**\n * @default 0\n * @description the total number of pages\n * that exist in the dataset.\n */\n pageCount?: PaginationApi['pageCount'];\n /**\n * @default 1\n * @description the initial page number.\n */\n defaultPage?: PaginationApi['page'];\n /**\n * @default 10\n * @description the initial number of items to display\n */\n defaultPageSize?: PaginationApi['pageSize'];\n /**\n * @description a callback that is called when the page size changes.\n */\n onPageSizeChange?: (pageSize: string) => void;\n /**\n * @default 0\n * @description the total number of items in the dataset.\n */\n total?: PaginationApi['total'];\n}\n\n/**\n * @description The root component for the composable pagination component.\n * It's advised to spread the entire pagination option object into this component.\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * return (\n * <Pagination.Root {...response.pagination}>\n * <Pagination.PageSize />\n * <Pagination.Links />\n * </Pagination.Root>\n * );\n * };\n * ```\n */\nconst Root = React.forwardRef<HTMLDivElement, RootProps>(\n (\n { children, defaultPageSize = 10, pageCount = 0, defaultPage = 1, onPageSizeChange, total = 0 },\n forwardedRef\n ) => {\n const [{ query }, setQuery] = useQueryParams<Pick<PaginationContextValue, 'page' | 'pageSize'>>(\n {\n pageSize: defaultPageSize.toString(),\n page: defaultPage.toString(),\n }\n );\n\n const setPageSize = (pageSize: string) => {\n setQuery({ pageSize, page: '1' });\n\n if (onPageSizeChange) {\n onPageSizeChange(pageSize);\n }\n };\n\n return (\n <Flex ref={forwardedRef} paddingTop={4} alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PaginationProvider\n currentQuery={query}\n page={query.page}\n pageSize={query.pageSize}\n pageCount={pageCount.toString()}\n setPageSize={setPageSize}\n total={total}\n >\n {children}\n </PaginationProvider>\n </Flex>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PageSize\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description The page size component is responsible for rendering the select input that allows\n * the user to change the number of items displayed per page.\n * If the total number of items is less than the minimum option, this component will not render.\n */\nconst PageSize = ({ options = ['10', '20', '50', '100'] }: Pagination.PageSizeProps) => {\n const { formatMessage } = useIntl();\n\n const pageSize = usePagination('PageSize', (state) => state.pageSize);\n const totalCount = usePagination('PageSize', (state) => state.total);\n const setPageSize = usePagination('PageSize', (state) => state.setPageSize);\n\n const handleChange = (value: string) => {\n setPageSize(value);\n };\n\n const minimumOption = parseInt(options[0], 10);\n\n if (minimumOption >= totalCount) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <SingleSelect\n size=\"S\"\n aria-label={formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n // @ts-expect-error from the DS V2 this won't be needed because we're only returning strings.\n onChange={handleChange}\n value={pageSize}\n >\n {options.map((option) => (\n <SingleSelectOption key={option} value={option}>\n {option}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Typography textColor=\"neutral600\" tag=\"span\">\n {formatMessage({\n id: 'components.PageFooter.select',\n defaultMessage: 'Entries per page',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Links\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The component works as follows\n * `1` , 2, 3, ... 10\n * 1, `2`, 3, ... 10\n * 1, 2, `3`, 4, ... 10\n * 1, 2, 3, `4`, 5, ... 10\n * 1, ..,4, `5`, 6, ... 10\n *\n * 1, ...., 8, 9, `10`\n * 1, ...., 8, `9`, 10\n * 1, ...., 7, `8`, 9, 10\n * 1, ... 6, `7`, 8, 9, 10\n */\n\n/**\n * @description The links component is responsible for rendering the pagination links.\n * If the total number of pages is less than or equal to 1, this component will not render.\n */\nconst Links = ({ boundaryCount = 1, siblingCount = 1 }: Pagination.LinksProps) => {\n const { formatMessage } = useIntl();\n\n const query = usePagination('Links', (state) => state.currentQuery);\n const currentPage = usePagination('Links', (state) => state.page);\n const totalPages = usePagination('Links', (state) => state.pageCount);\n\n const pageCount = parseInt(totalPages, 10);\n const activePage = parseInt(currentPage, 10);\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(boundaryCount, pageCount));\n const endPages = range(Math.max(pageCount - boundaryCount + 1, boundaryCount + 1), pageCount);\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n activePage - siblingCount,\n // Lower boundary when page is high\n pageCount - boundaryCount - siblingCount * 2 - 1\n ),\n // Greater than startPages\n boundaryCount + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n activePage + siblingCount,\n // Upper boundary when page is low\n boundaryCount + siblingCount * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : pageCount - 1\n );\n\n const items = [\n ...startPages,\n\n // Start ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsStart > boundaryCount + 2\n ? ['start-ellipsis']\n : boundaryCount + 1 < pageCount - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n // eslint-disable-next-line no-nested-ternary\n ...(siblingsEnd < pageCount - boundaryCount - 1\n ? ['end-ellipsis']\n : pageCount - boundaryCount > boundaryCount\n ? [pageCount - boundaryCount]\n : []),\n\n ...endPages,\n ];\n\n if (pageCount <= 1) {\n return null;\n }\n\n return (\n <PaginationImpl activePage={activePage} pageCount={pageCount}>\n <PreviousLink tag={Link} to={{ search: stringify({ ...query, page: activePage - 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-previous',\n defaultMessage: 'Go to previous page',\n })}\n </PreviousLink>\n {items.map((item) => {\n if (typeof item === 'number') {\n return (\n <PageLink\n tag={Link}\n key={item}\n number={item}\n to={{ search: stringify({ ...query, page: item }) }}\n >\n {formatMessage(\n { id: 'components.pagination.go-to', defaultMessage: 'Go to page {page}' },\n { page: item }\n )}\n </PageLink>\n );\n }\n\n return <Dots key={item} />;\n })}\n\n <NextLink tag={Link} to={{ search: stringify({ ...query, page: activePage + 1 }) }}>\n {formatMessage({\n id: 'components.pagination.go-to-next',\n defaultMessage: 'Go to next page',\n })}\n </NextLink>\n </PaginationImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst Pagination = {\n Root,\n Links,\n PageSize,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Pagination {\n export interface Props extends RootProps {}\n\n export interface PageSizeProps {\n options?: string[];\n }\n\n export interface LinksProps {\n /**\n * @default 1\n * @description Number of always visible pages at the beginning and end.\n */\n boundaryCount?: number;\n /**\n * @default 1\n * @description Number of always visible pages before and after the current page.\n */\n siblingCount?: number;\n }\n}\n\nexport { Pagination };\n","import * as React from 'react';\n\nimport { IconButton, Searchbar, SearchForm } from '@strapi/design-system';\nimport { Search as SearchIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { TrackingEvent, useTracking } from '../features/Tracking';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\ninterface SearchInputProps {\n disabled?: boolean;\n label: string;\n placeholder?: string;\n trackedEvent?: TrackingEvent['name'] | null;\n trackedEventDetails?: TrackingEvent['properties'];\n}\n\nconst SearchInput = ({\n disabled,\n label,\n placeholder,\n trackedEvent,\n trackedEventDetails,\n}: SearchInputProps) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const iconButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const [{ query }, setQuery] = useQueryParams<{ _q: string; page?: number }>();\n\n const [value, setValue] = React.useState(query?._q || '');\n const [isOpen, setIsOpen] = React.useState(!!value);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleToggle = () => setIsOpen((prev) => !prev);\n\n React.useLayoutEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleClear = () => {\n setValue('');\n setQuery({ _q: '' }, 'remove');\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Ensure value is a string\n if (value) {\n if (trackedEvent) {\n trackUsage(trackedEvent, trackedEventDetails);\n }\n setQuery({ _q: encodeURIComponent(value), page: 1 });\n } else {\n handleToggle();\n setQuery({ _q: '' }, 'remove');\n }\n };\n\n if (isOpen) {\n return (\n <SearchForm onSubmit={handleSubmit}>\n <Searchbar\n ref={inputRef}\n name=\"search\"\n onChange={(e) => setValue(e.target.value)}\n value={value}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onClear={handleClear}\n placeholder={placeholder}\n >\n {label}\n </Searchbar>\n </SearchForm>\n );\n }\n\n return (\n <IconButton\n ref={iconButtonRef}\n disabled={disabled}\n label={formatMessage({ id: 'global.search', defaultMessage: 'Search' })}\n onClick={handleToggle}\n >\n <SearchIcon />\n </IconButton>\n );\n};\n\nexport { SearchInput };\nexport type { SearchInputProps };\n","/**\n * TODO: honestly, half of this stuff should come straight from\n * the design-system and then we can just wrap round the bits for\n * the i18n & router interactions.\n *\n * So we'll do that in v2 of the DS.\n */\n\nimport * as React from 'react';\n\nimport {\n Flex,\n Typography,\n Th,\n Tbody,\n Td,\n Tooltip,\n IconButton,\n Thead,\n Tr,\n RawTrProps,\n Checkbox,\n Loader,\n Table as DSTable,\n EmptyStateLayout,\n EmptyStateLayoutProps,\n TableProps,\n RawTdProps,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseRow {\n id: string | number;\n [key: string]: any;\n}\n\ninterface TableHeader<TData = object, THeader = object> {\n /**\n * Typically used by plugins to render a custom cell\n */\n cellFormatter?: (data: TData, header: Omit<THeader, 'cellFormatter'>) => React.ReactNode;\n label: string;\n name: string;\n searchable?: boolean;\n sortable?: boolean;\n}\n\ninterface TableContextValue<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Pick<TableProps, 'footer'> {\n colCount: number;\n hasHeaderCheckbox: boolean;\n headers: THeader[];\n isLoading: boolean;\n rowCount: number;\n rows: TRow[];\n setHasHeaderCheckbox: (value: boolean) => void;\n selectedRows: TRow[];\n selectRow: (row: TRow | TRow[]) => void;\n}\n\nconst [TableProvider, useTable] = createContext<TableContextValue<any, any>>('Table');\n\ninterface RootProps<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Partial<\n Pick<\n TableContextValue<TRow, THeader>,\n 'footer' | 'headers' | 'isLoading' | 'rows' | 'selectedRows'\n >\n > {\n children?: React.ReactNode;\n defaultSelectedRows?: TRow[];\n onSelectedRowsChange?: (selectedRows: TRow[]) => void;\n}\n\nconst Root = <TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>({\n children,\n defaultSelectedRows,\n footer,\n headers = [],\n isLoading = false,\n onSelectedRowsChange,\n rows = [],\n selectedRows: selectedRowsProps,\n}: RootProps<TRow, THeader>) => {\n const [selectedRows = [], setSelectedRows] = useControllableState({\n prop: selectedRowsProps,\n defaultProp: defaultSelectedRows,\n onChange: onSelectedRowsChange,\n });\n const [hasHeaderCheckbox, setHasHeaderCheckbox] = React.useState(false);\n\n const rowCount = rows.length + 1;\n const colCount = hasHeaderCheckbox ? headers.length + 1 : headers.length;\n\n const selectRow: TableContextValue<TRow, THeader>['selectRow'] = (row) => {\n if (Array.isArray(row)) {\n setSelectedRows(row);\n } else {\n setSelectedRows((prev = []) => {\n const currentRowIndex = prev.findIndex((r) => r.id === row.id);\n if (currentRowIndex > -1) {\n return prev.toSpliced(currentRowIndex, 1);\n }\n\n return [...prev, row];\n });\n }\n };\n\n return (\n <TableProvider\n colCount={colCount}\n hasHeaderCheckbox={hasHeaderCheckbox}\n setHasHeaderCheckbox={setHasHeaderCheckbox}\n footer={footer}\n headers={headers}\n isLoading={isLoading}\n rowCount={rowCount}\n rows={rows}\n selectedRows={selectedRows}\n selectRow={selectRow}\n >\n {children}\n </TableProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst Content = ({ children }: Table.ContentProps) => {\n const rowCount = useTable('Content', (state) => state.rowCount);\n const colCount = useTable('Content', (state) => state.colCount);\n const footer = useTable('Content', (state) => state.footer);\n\n return (\n <DSTable rowCount={rowCount} colCount={colCount} footer={footer}>\n {children}\n </DSTable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Head\n * -----------------------------------------------------------------------------------------------*/\n\nconst Head = ({ children }: Table.HeadProps) => {\n return (\n <Thead>\n <Tr>{children}</Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCell\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description A header cell in your table, internally will set the query params for sorting to\n * be passed to your data-fetching function.\n */\nconst HeaderCell = <TData, THead>({ name, label, sortable }: TableHeader<TData, THead>) => {\n const [{ query }, setQuery] = useQueryParams<{ sort?: `${string}:${'ASC' | 'DESC'}` }>();\n const sort = query?.sort ?? '';\n const [sortBy, sortOrder] = sort.split(':');\n const { formatMessage } = useIntl();\n const isSorted = sortBy === name;\n\n const sortLabel = formatMessage(\n { id: 'components.TableHeader.sort', defaultMessage: 'Sort on {label}' },\n { label }\n );\n\n const handleClickSort = () => {\n if (sortable) {\n setQuery({\n sort: `${name}:${isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC'}`,\n });\n }\n };\n\n return (\n <Th\n action={\n isSorted &&\n sortable && (\n <IconButton label={sortLabel} onClick={handleClickSort} borderStyle=\"none\">\n <SortIcon $isUp={sortOrder === 'ASC'} />\n </IconButton>\n )\n }\n >\n <Tooltip label={sortable ? sortLabel : label}>\n <Typography\n textColor=\"neutral600\"\n tag={!isSorted && sortable ? 'button' : 'span'}\n onClick={handleClickSort}\n variant=\"sigma\"\n >\n {label}\n </Typography>\n </Tooltip>\n </Th>\n );\n};\n\nconst SortIcon = styled(CaretDown)<{\n $isUp: boolean;\n}>`\n transform: ${({ $isUp }) => `rotate(${$isUp ? '180' : '0'}deg)`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ActionBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionBar = ({ children }: Table.ActionBarProps) => {\n const { formatMessage } = useIntl();\n const selectedRows = useTable('ActionBar', (state) => state.selectedRows);\n\n if (selectedRows.length === 0) return null;\n\n return (\n <Flex gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'content-manager.components.TableDelete.label',\n defaultMessage: '{number, plural, one {# row} other {# rows}} selected',\n },\n { number: selectedRows.length }\n )}\n </Typography>\n {children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCheckboxCell\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderCheckboxCell = () => {\n const rows = useTable('HeaderCheckboxCell', (state) => state.rows);\n const selectedRows = useTable('HeaderCheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('HeaderCheckboxCell', (state) => state.selectRow);\n const setHasHeaderCheckbox = useTable(\n 'HeaderCheckboxCell',\n (state) => state.setHasHeaderCheckbox\n );\n\n const { formatMessage } = useIntl();\n\n const areAllEntriesSelected = selectedRows.length === rows.length && rows.length > 0;\n const isIndeterminate = !areAllEntriesSelected && selectedRows.length > 0;\n\n React.useEffect(() => {\n setHasHeaderCheckbox(true);\n\n return () => setHasHeaderCheckbox(false);\n }, [setHasHeaderCheckbox]);\n\n const handleSelectAll = () => {\n if (!areAllEntriesSelected) {\n selectRow(rows);\n } else {\n selectRow([]);\n }\n };\n\n return (\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n disabled={rows.length === 0}\n checked={isIndeterminate ? 'indeterminate' : areAllEntriesSelected}\n onCheckedChange={handleSelectAll}\n />\n </Th>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Empty\n * -----------------------------------------------------------------------------------------------*/\n\nconst Empty = (props: Table.EmptyProps) => {\n const { formatMessage } = useIntl();\n\n const rows = useTable('Empty', (state) => state.rows);\n const isLoading = useTable('Empty', (state) => state.isLoading);\n const colCount = useTable('Empty', (state) => state.colCount);\n\n /**\n * If we're loading or we have some data, we don't show the empty state.\n */\n if (rows.length > 0 || isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <EmptyStateLayout\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n {...props}\n />\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingBody\n * -----------------------------------------------------------------------------------------------*/\n\nconst Loading = ({ children = 'Loading content' }: Table.LoadingProps) => {\n const isLoading = useTable('Loading', (state) => state.isLoading);\n const colCount = useTable('Loading', (state) => state.colCount);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <Flex justifyContent=\"center\" padding={11} background=\"neutral0\">\n <Loader>{children}</Loader>\n </Flex>\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Body\n * -----------------------------------------------------------------------------------------------*/\n\nconst Body = ({ children }: Table.BodyProps) => {\n const isLoading = useTable('Body', (state) => state.isLoading);\n const rows = useTable('Body', (state) => state.rows);\n\n if (isLoading || rows.length === 0) {\n return null;\n }\n\n return <Tbody>{children}</Tbody>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst Row = (props: Table.RowProps) => {\n return <Tr {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Cell\n * -----------------------------------------------------------------------------------------------*/\nconst Cell = (props: Table.CellProps) => {\n return <Td {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst CheckboxCell = ({ id, ...props }: Table.CheckboxCellProps) => {\n const rows = useTable('CheckboxCell', (state) => state.rows);\n const selectedRows = useTable('CheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('CheckboxCell', (state) => state.selectRow);\n\n const { formatMessage } = useIntl();\n\n const handleSelectRow = () => {\n selectRow(rows.find((row) => row.id === id));\n };\n\n const isChecked = selectedRows.findIndex((row) => row.id === id) > -1;\n\n return (\n <Cell {...props} onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: id }\n )}\n disabled={rows.length === 0}\n checked={isChecked}\n onCheckedChange={handleSelectRow}\n />\n </Cell>\n );\n};\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @alpha we may move this component to the design-system.\n * @public\n * @description A generic table component composition. Internally handles the state of the table\n * such as selected rows, loading state, and more assuming the correct pieces are put togther.\n * @example\n * ```tsx\n * interace Data {\n * id: string;\n * name: string;\n * email: string;\n * }\n *\n * const ListView = () => {\n * const { data, isLoading } = useGetData<Data>();\n *\n * const headers: Table.Header<Data>[] = [\n * {\n * label: 'Name',\n * name: 'name',\n * sortable: true,\n * },\n * {\n * label: 'Email',\n * name: 'email',\n * sortable: true,\n * },\n * ];\n *\n * return (\n * <Table.Root rows={data} headers={headers} isLoading={isLoading}>\n * <Table.Content>\n * <Table.Head>\n * {headers.map((head) => (\n * <Table.HeaderCell key={head.name} {...head} />\n * ))}\n * </Table.Head>\n * <Table.Body>\n * <Table.Loading />\n * <Table.Empty />\n * {data.map((row) => (\n * <Table.Row key={row.id}>\n * <Table.Cell>{row.name}</Table.Cell>\n * <Table.Cell>{row.email}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table.Content>\n * </Table.Root>\n * );\n * };\n * ```\n */\nconst Table = {\n Root,\n Content,\n ActionBar,\n Head,\n HeaderCell,\n HeaderCheckboxCell,\n Body,\n CheckboxCell,\n Cell,\n Row,\n Loading,\n Empty,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Table {\n export type Props<\n TData extends BaseRow,\n THeader extends TableHeader<TData, THeader> = TableHeader<TData, TableHeader>,\n > = RootProps<TData, THeader>;\n export interface ActionBarProps {\n children?: React.ReactNode;\n }\n\n export interface ContentProps {\n children: React.ReactNode;\n }\n\n export type Header<TData, THeader> = TableHeader<TData, THeader>;\n\n export interface HeadProps {\n children: React.ReactNode;\n }\n\n export interface EmptyProps extends Partial<EmptyStateLayoutProps> {}\n\n export interface LoadingProps {\n children?: React.ReactNode;\n }\n\n export interface BodyProps {\n children: React.ReactNode;\n }\n\n export interface RowProps extends RawTrProps {}\n\n export interface CellProps extends RawTdProps {}\n\n export interface CheckboxCellProps extends Pick<BaseRow, 'id'>, Omit<RawTdProps, 'id'> {}\n}\n\nexport { Table, useTable };\n","import { useEffect } from 'react';\n\nimport { Reducer } from '@reduxjs/toolkit';\n\nimport { useTypedStore } from '../core/store/hooks';\n\n/**\n * @public\n * @description Inject a new reducer into the global redux-store.\n * @example\n * ```tsx\n * import { reducer } from './local-store';\n *\n * const MyPlugin = () => {\n * useInjectReducer(\"plugin\", reducer);\n * }\n * ```\n */\nexport function useInjectReducer(namespace: string, reducer: Reducer) {\n const store = useTypedStore();\n\n useEffect(() => {\n store.injectReducer(namespace, reducer);\n }, [store, namespace, reducer]);\n}\n","import * as React from 'react';\n\nimport { getFetchClient } from '../utils/getFetchClient';\n\n/**\n * @public\n * @description This is an abstraction around the native fetch exposed by a hook. It provides a simple interface to handle API calls\n * to the Strapi backend.\n * It handles request cancellations inside the hook with an {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortController} AbortController.\n * This is typically triggered when the component is unmounted so all the requests that it is currently making are aborted.\n * The expected URL style includes either a protocol (such as HTTP or HTTPS) or a relative URL. The URLs with domain and path but not protocol are not allowed (ex: `www.example.com`).\n * @example\n * ```tsx\n * import * as React from 'react';\n * import { useFetchClient } from '@strapi/admin/admin';\n *\n * const MyComponent = () => {\n * const [items, setItems] = React.useState([]);\n * const { get } = useFetchClient();\n * const requestURL = \"/some-endpoint\";\n *\n * const handleGetData = async () => {\n * const { data } = await get(requestURL);\n * setItems(data.items);\n * };\n *\n * return (\n * <div>\n * <div>\n * {\n * items && items.map(item => <h2 key={item.uuid}>{item.name}</h2>))\n * }\n * </div>\n * </div>\n * );\n * };\n * ```\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortController} AbortController.\n */\nconst useFetchClient = () => {\n const controller = React.useRef<AbortController | null>(null);\n\n if (controller.current === null) {\n controller.current = new AbortController();\n }\n\n React.useEffect(() => {\n return () => {\n controller.current!.abort();\n };\n }, []);\n\n return React.useMemo(\n () =>\n getFetchClient({\n signal: controller.current!.signal,\n }),\n []\n );\n};\n\nexport { useFetchClient };\n","import * as Permissions from '../../../shared/contracts/permissions';\nimport * as Roles from '../../../shared/contracts/roles';\nimport * as Users from '../../../shared/contracts/user';\n\nimport { adminApi } from './api';\n\nimport type { Data } from '@strapi/types';\n\nconst usersService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['LicenseLimits', 'User', 'Role', 'RolePermissions'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n /**\n * users\n */\n createUser: builder.mutation<Users.Create.Response['data'], Users.Create.Request['body']>({\n query: (body) => ({\n url: '/admin/users',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: Users.Create.Response) => response.data,\n invalidatesTags: ['LicenseLimits', { type: 'User', id: 'LIST' }],\n }),\n updateUser: builder.mutation<\n Users.Update.Response['data'],\n Omit<Users.Update.Request['body'] & Users.Update.Params, 'blocked'>\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/users/${id}`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: (_res, _err, { id }) => [\n { type: 'User', id },\n { type: 'User', id: 'LIST' },\n ],\n }),\n getUsers: builder.query<\n {\n users: Users.FindAll.Response['data']['results'];\n pagination: Users.FindAll.Response['data']['pagination'] | null;\n },\n GetUsersParams\n >({\n query: ({ id, ...params } = {}) => ({\n url: `/admin/users/${id ?? ''}`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: Users.FindAll.Response | Users.FindOne.Response) => {\n let users: Users.FindAll.Response['data']['results'] = [];\n\n if (res.data) {\n if ('results' in res.data) {\n if (Array.isArray(res.data.results)) {\n users = res.data.results;\n }\n } else {\n users = [res.data];\n }\n }\n\n return {\n users,\n pagination: 'pagination' in res.data ? res.data.pagination : null,\n };\n },\n providesTags: (res, _err, arg) => {\n if (typeof arg === 'object' && 'id' in arg) {\n return [{ type: 'User' as const, id: arg.id }];\n } else {\n return [\n ...(res?.users.map(({ id }) => ({ type: 'User' as const, id })) ?? []),\n { type: 'User' as const, id: 'LIST' },\n ];\n }\n },\n }),\n deleteManyUsers: builder.mutation<\n Users.DeleteMany.Response['data'],\n Users.DeleteMany.Request['body']\n >({\n query: (body) => ({\n url: '/admin/users/batch-delete',\n method: 'POST',\n data: body,\n }),\n transformResponse: (res: Users.DeleteMany.Response) => res.data,\n invalidatesTags: ['LicenseLimits', { type: 'User', id: 'LIST' }],\n }),\n /**\n * roles\n */\n createRole: builder.mutation<Roles.Create.Response['data'], Roles.Create.Request['body']>({\n query: (body) => ({\n url: '/admin/roles',\n method: 'POST',\n data: body,\n }),\n transformResponse: (res: Roles.Create.Response) => res.data,\n invalidatesTags: [{ type: 'Role', id: 'LIST' }],\n }),\n getRoles: builder.query<Roles.FindRoles.Response['data'], GetRolesParams | void>({\n query: ({ id, ...params } = {}) => ({\n url: `/admin/roles/${id ?? ''}`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: Roles.FindRole.Response | Roles.FindRoles.Response) => {\n let roles: Roles.FindRoles.Response['data'] = [];\n\n if (res.data) {\n if (Array.isArray(res.data)) {\n roles = res.data;\n } else {\n roles = [res.data];\n }\n }\n\n return roles;\n },\n providesTags: (res, _err, arg) => {\n if (typeof arg === 'object' && 'id' in arg) {\n return [{ type: 'Role' as const, id: arg.id }];\n } else {\n return [\n ...(res?.map(({ id }) => ({ type: 'Role' as const, id })) ?? []),\n { type: 'Role' as const, id: 'LIST' },\n ];\n }\n },\n }),\n updateRole: builder.mutation<\n Roles.Update.Response['data'],\n Roles.Update.Request['body'] & Roles.Update.Request['params']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/roles/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (res: Roles.Create.Response) => res.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'Role' as const, id }],\n }),\n getRolePermissions: builder.query<\n Roles.GetPermissions.Response['data'],\n GetRolePermissionsParams\n >({\n query: ({ id, ...params }) => ({\n url: `/admin/roles/${id}/permissions`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: Roles.GetPermissions.Response) => res.data,\n providesTags: (_res, _err, { id }) => [{ type: 'RolePermissions' as const, id }],\n }),\n updateRolePermissions: builder.mutation<\n Roles.UpdatePermissions.Response['data'],\n Roles.UpdatePermissions.Request['body'] & Roles.UpdatePermissions.Request['params']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/roles/${id}/permissions`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (res: Roles.UpdatePermissions.Response) => res.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'RolePermissions' as const, id }],\n }),\n /**\n * Permissions\n */\n getRolePermissionLayout: builder.query<\n Permissions.GetAll.Response['data'],\n Permissions.GetAll.Request['params']\n >({\n query: (params) => ({\n url: '/admin/permissions',\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: Permissions.GetAll.Response) => res.data,\n }),\n }),\n overrideExisting: false,\n });\n\ntype GetUsersParams =\n | Users.FindOne.Params\n | (Users.FindAll.Request['query'] & { id?: never })\n | void;\ntype GetRolesParams =\n | Roles.FindRole.Request['params']\n | (Roles.FindRoles.Request['query'] & { id?: never });\ninterface GetRolePermissionsParams {\n id: Data.ID;\n}\n\nconst {\n useCreateUserMutation,\n useGetUsersQuery,\n useUpdateUserMutation,\n useDeleteManyUsersMutation,\n useGetRolesQuery,\n useCreateRoleMutation,\n useUpdateRoleMutation,\n useGetRolePermissionsQuery,\n useGetRolePermissionLayoutQuery,\n useUpdateRolePermissionsMutation,\n} = usersService;\n\nconst useAdminUsers = useGetUsersQuery;\n\nexport {\n useUpdateUserMutation,\n useGetRolesQuery,\n useAdminUsers,\n useDeleteManyUsersMutation,\n useCreateUserMutation,\n useGetRolePermissionsQuery,\n useGetRolePermissionLayoutQuery,\n useCreateRoleMutation,\n useUpdateRolePermissionsMutation,\n useUpdateRoleMutation,\n};\nexport type { GetRolesParams, GetUsersParams, GetRolePermissionsParams };\n"],"names":["getEERoutes","createContext","useLocation","useNavigate","React","reducer","produce","useIntl","jsx","Link","NavLink","ArrowLeft","get","currentStep","initialState","set","QueryClient","StrapiAppProvider","Provider","QueryClientProvider","AuthProvider","LanguageProvider","Theme","NotificationsProvider","TrackingProvider","ConfigurationProvider","useEffect","LANGUAGE_LOCAL_STORAGE_KEY","Suspense","Page","Outlet","useCallback","useRouteError","Main","Flex","jsxs","WarningCircle","Typography","Button","Duplicate","styled","Alert","invariant","adminApi","appReducer","combineReducers","configureStore","toPath","clone","isEqual","ref","useCallbackRef","useComposedRefs","generateNKeysBetween","useBlocker","Dialog","useMemo","useState","forwardRef","Field","Toggle","memo","Checkbox","DatePicker","DateTimePicker","TextInput","SingleSelect","label","SingleSelectOption","JSONInputImpl","NumberInput","Eye","EyeStriked","Textarea","TimePicker","StringInput","BooleanInput","CheckboxInput","DateTimeInput","DateInput","JsonInput","EmailInput","EnumerationInput","PasswordInput","TextareaInput","TimeInput","useConfiguration","Box","useTypedSelector","useTypedDispatch","setLocale","yup","translatedErrors","useAuth","camelCase","InputRenderer","useAPIErrorHandler","useForgotPasswordMutation","isBaseQueryError","useNotification","useAppInfo","Portal","Formik","Form","IconButton","Cross","VisuallyHidden","useTracking","useMatch","useGetRegistrationInfoQuery","useRegisterAdminMutation","useRegisterUserMutation","Navigate","omit","ValidationError","Grid","useResetPasswordMutation","useInitQuery","Login","useEnterprise","LoginCE","Fragment","EmptyStateLayout","LinkButton","ArrowRight","EmptyPictures","Logo","lightTheme","darkTheme","RBAC","isFunction","merge","pick","THEME_LOCAL_STORAGE_KEY","getSettingsEERoutes","createBrowserRouter","getBaseEERoutes","RouterProvider","createAbsoluteUrl","getFetchClient","features","createRoot","throttle","cancelIdleCallback","requestIdleCallback","ids","value","parse","stringify","Root","Popover","disabled","FilterIcon","options","onChange","setOpen","filter","Plus","Tag","PaginationImpl","PreviousLink","PageLink","Dots","NextLink","SearchForm","Searchbar","SearchIcon","DSTable","Thead","Tr","Th","Tooltip","CaretDown","Tbody","Td","EmptyDocuments","Loader","useTypedStore"],"mappings":"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"}
|