@strapi/admin 4.15.0-alpha.0 → 4.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/AuthenticatedApp-092ef2be.js +1476 -0
- package/dist/_chunks/AuthenticatedApp-092ef2be.js.map +1 -0
- package/dist/_chunks/AuthenticatedApp-b0ada7e9.mjs +1450 -0
- package/dist/_chunks/AuthenticatedApp-b0ada7e9.mjs.map +1 -0
- package/dist/_chunks/DragLayer-bff96835.mjs +44 -0
- package/dist/_chunks/DragLayer-bff96835.mjs.map +1 -0
- package/dist/_chunks/DragLayer-f07eee6c.js +43 -0
- package/dist/_chunks/DragLayer-f07eee6c.js.map +1 -0
- package/dist/_chunks/HomePage-5798ba6f.mjs +543 -0
- package/dist/_chunks/HomePage-5798ba6f.mjs.map +1 -0
- package/dist/_chunks/HomePage-5ae473e6.js +564 -0
- package/dist/_chunks/HomePage-5ae473e6.js.map +1 -0
- package/dist/_chunks/HomePage-a3cc32d2.mjs +50 -0
- package/dist/_chunks/HomePage-a3cc32d2.mjs.map +1 -0
- package/dist/_chunks/HomePage-bdcb51be.js +50 -0
- package/dist/_chunks/HomePage-bdcb51be.js.map +1 -0
- package/dist/_chunks/InstalledPluginsPage-6284aaff.mjs +136 -0
- package/dist/_chunks/InstalledPluginsPage-6284aaff.mjs.map +1 -0
- package/dist/_chunks/InstalledPluginsPage-cc2d6a36.js +155 -0
- package/dist/_chunks/InstalledPluginsPage-cc2d6a36.js.map +1 -0
- package/dist/_chunks/InternalErrorPage-040dc993.mjs +41 -0
- package/dist/_chunks/InternalErrorPage-040dc993.mjs.map +1 -0
- package/dist/_chunks/InternalErrorPage-d0e51ac2.js +41 -0
- package/dist/_chunks/InternalErrorPage-d0e51ac2.js.map +1 -0
- package/dist/_chunks/Layout-4b3e434a.js +92 -0
- package/dist/_chunks/Layout-4b3e434a.js.map +1 -0
- package/dist/_chunks/Layout-72fa2ace.mjs +90 -0
- package/dist/_chunks/Layout-72fa2ace.mjs.map +1 -0
- package/dist/_chunks/LimitsModal-203482b8.js +84 -0
- package/dist/_chunks/LimitsModal-203482b8.js.map +1 -0
- package/dist/_chunks/LimitsModal-da04700e.mjs +82 -0
- package/dist/_chunks/LimitsModal-da04700e.mjs.map +1 -0
- package/dist/_chunks/MarketplacePage-209ec658.js +1037 -0
- package/dist/_chunks/MarketplacePage-209ec658.js.map +1 -0
- package/dist/_chunks/MarketplacePage-7dee72f5.mjs +1013 -0
- package/dist/_chunks/MarketplacePage-7dee72f5.mjs.map +1 -0
- package/dist/_chunks/ProfilePage-26c14ba4.mjs +596 -0
- package/dist/_chunks/ProfilePage-26c14ba4.mjs.map +1 -0
- package/dist/_chunks/ProfilePage-4f8c127b.js +619 -0
- package/dist/_chunks/ProfilePage-4f8c127b.js.map +1 -0
- package/dist/_chunks/SSOProviders-1d062c95.mjs +90 -0
- package/dist/_chunks/SSOProviders-1d062c95.mjs.map +1 -0
- package/dist/_chunks/SSOProviders-1ef0a89e.js +111 -0
- package/dist/_chunks/SSOProviders-1ef0a89e.js.map +1 -0
- package/dist/_chunks/SalesPage-56bf9463.mjs +48 -0
- package/dist/_chunks/SalesPage-56bf9463.mjs.map +1 -0
- package/dist/_chunks/SalesPage-66f9ea32.js +51 -0
- package/dist/_chunks/SalesPage-66f9ea32.js.map +1 -0
- package/dist/_chunks/SalesPage-c5cbb366.js +51 -0
- package/dist/_chunks/SalesPage-c5cbb366.js.map +1 -0
- package/dist/_chunks/SalesPage-c7c94c3f.mjs +51 -0
- package/dist/_chunks/SalesPage-c7c94c3f.mjs.map +1 -0
- package/dist/_chunks/SalesPage-d0cdc1a7.js +48 -0
- package/dist/_chunks/SalesPage-d0cdc1a7.js.map +1 -0
- package/dist/_chunks/SalesPage-f9597ae7.mjs +51 -0
- package/dist/_chunks/SalesPage-f9597ae7.mjs.map +1 -0
- package/dist/_chunks/ar-21279f4c.js +936 -0
- package/dist/_chunks/ar-21279f4c.js.map +1 -0
- package/dist/_chunks/ar-62e5e2b3.mjs +936 -0
- package/dist/_chunks/ar-62e5e2b3.mjs.map +1 -0
- package/dist/_chunks/build-e1ca35da.mjs +66 -0
- package/dist/_chunks/build-e1ca35da.mjs.map +1 -0
- package/dist/_chunks/build-f36bfc97.js +66 -0
- package/dist/_chunks/build-f36bfc97.js.map +1 -0
- package/dist/_chunks/ca-d05fb350.js +724 -0
- package/dist/_chunks/ca-d05fb350.js.map +1 -0
- package/dist/_chunks/ca-e99de225.mjs +724 -0
- package/dist/_chunks/ca-e99de225.mjs.map +1 -0
- package/dist/_chunks/colors-c24a54f0.js +33 -0
- package/dist/_chunks/colors-c24a54f0.js.map +1 -0
- package/dist/_chunks/colors-e7489dd4.mjs +34 -0
- package/dist/_chunks/colors-e7489dd4.mjs.map +1 -0
- package/dist/_chunks/constants-12dfb222.mjs +34 -0
- package/dist/_chunks/constants-12dfb222.mjs.map +1 -0
- package/dist/_chunks/constants-1aea1185.js +34 -0
- package/dist/_chunks/constants-1aea1185.js.map +1 -0
- package/dist/_chunks/constants-27319180.mjs +226 -0
- package/dist/_chunks/constants-27319180.mjs.map +1 -0
- package/dist/_chunks/constants-2a8f4e41.mjs +11 -0
- package/dist/_chunks/constants-2a8f4e41.mjs.map +1 -0
- package/dist/_chunks/constants-32975b2e.js +86 -0
- package/dist/_chunks/constants-32975b2e.js.map +1 -0
- package/dist/_chunks/constants-40ffa931.js +11 -0
- package/dist/_chunks/constants-40ffa931.js.map +1 -0
- package/dist/_chunks/constants-6157f648.mjs +52 -0
- package/dist/_chunks/constants-6157f648.mjs.map +1 -0
- package/dist/_chunks/constants-64899732.js +30 -0
- package/dist/_chunks/constants-64899732.js.map +1 -0
- package/dist/_chunks/constants-70e05152.js +52 -0
- package/dist/_chunks/constants-70e05152.js.map +1 -0
- package/dist/_chunks/constants-727a113c.js +82 -0
- package/dist/_chunks/constants-727a113c.js.map +1 -0
- package/dist/_chunks/constants-8092eeb5.mjs +59 -0
- package/dist/_chunks/constants-8092eeb5.mjs.map +1 -0
- package/dist/_chunks/constants-85da8cc4.js +58 -0
- package/dist/_chunks/constants-85da8cc4.js.map +1 -0
- package/dist/_chunks/constants-86aa3e70.js +85 -0
- package/dist/_chunks/constants-86aa3e70.js.map +1 -0
- package/dist/_chunks/constants-90c20a6f.mjs +86 -0
- package/dist/_chunks/constants-90c20a6f.mjs.map +1 -0
- package/dist/_chunks/constants-921eda17.mjs +83 -0
- package/dist/_chunks/constants-921eda17.mjs.map +1 -0
- package/dist/_chunks/constants-9de7641c.mjs +80 -0
- package/dist/_chunks/constants-9de7641c.mjs.map +1 -0
- package/dist/_chunks/constants-a773ff9b.js +228 -0
- package/dist/_chunks/constants-a773ff9b.js.map +1 -0
- package/dist/_chunks/constants-a92ce583.mjs +7 -0
- package/dist/_chunks/constants-a92ce583.mjs.map +1 -0
- package/dist/_chunks/constants-d3dd8ed6.mjs +7 -0
- package/dist/_chunks/constants-d3dd8ed6.mjs.map +1 -0
- package/dist/_chunks/constants-d5d67ca8.js +6 -0
- package/dist/_chunks/constants-d5d67ca8.js.map +1 -0
- package/dist/_chunks/constants-da2542a3.js +6 -0
- package/dist/_chunks/constants-da2542a3.js.map +1 -0
- package/dist/_chunks/constants-def33545.mjs +30 -0
- package/dist/_chunks/constants-def33545.mjs.map +1 -0
- package/dist/_chunks/cs-2fa881a2.mjs +291 -0
- package/dist/_chunks/cs-2fa881a2.mjs.map +1 -0
- package/dist/_chunks/cs-eee75b10.js +291 -0
- package/dist/_chunks/cs-eee75b10.js.map +1 -0
- package/dist/_chunks/de-28f8bc28.mjs +716 -0
- package/dist/_chunks/de-28f8bc28.mjs.map +1 -0
- package/dist/_chunks/de-976cc986.js +716 -0
- package/dist/_chunks/de-976cc986.js.map +1 -0
- package/dist/_chunks/develop-513c9644.js +59 -0
- package/dist/_chunks/develop-513c9644.js.map +1 -0
- package/dist/_chunks/develop-e45b460e.mjs +59 -0
- package/dist/_chunks/develop-e45b460e.mjs.map +1 -0
- package/dist/_chunks/dk-0b759a56.mjs +634 -0
- package/dist/_chunks/dk-0b759a56.mjs.map +1 -0
- package/dist/_chunks/dk-6189917e.js +634 -0
- package/dist/_chunks/dk-6189917e.js.map +1 -0
- package/dist/_chunks/edit-29bdf5d6.js +50 -0
- package/dist/_chunks/edit-29bdf5d6.js.map +1 -0
- package/dist/_chunks/edit-923cefa0.mjs +32 -0
- package/dist/_chunks/edit-923cefa0.mjs.map +1 -0
- package/dist/_chunks/en-0e9e9327.js +1022 -0
- package/dist/_chunks/en-0e9e9327.js.map +1 -0
- package/dist/_chunks/en-e728accb.mjs +1022 -0
- package/dist/_chunks/en-e728accb.mjs.map +1 -0
- package/dist/_chunks/es-18b29db2.mjs +796 -0
- package/dist/_chunks/es-18b29db2.mjs.map +1 -0
- package/dist/_chunks/es-3ee0992a.js +796 -0
- package/dist/_chunks/es-3ee0992a.js.map +1 -0
- package/dist/_chunks/eu-8fd773c2.mjs +832 -0
- package/dist/_chunks/eu-8fd773c2.mjs.map +1 -0
- package/dist/_chunks/eu-be749f31.js +832 -0
- package/dist/_chunks/eu-be749f31.js.map +1 -0
- package/dist/_chunks/fr-29c84e1f.js +762 -0
- package/dist/_chunks/fr-29c84e1f.js.map +1 -0
- package/dist/_chunks/fr-f37df086.mjs +762 -0
- package/dist/_chunks/fr-f37df086.mjs.map +1 -0
- package/dist/_chunks/gu-377a4b46.js +623 -0
- package/dist/_chunks/gu-377a4b46.js.map +1 -0
- package/dist/_chunks/gu-69f0e13a.mjs +623 -0
- package/dist/_chunks/gu-69f0e13a.mjs.map +1 -0
- package/dist/_chunks/he-aec27352.js +326 -0
- package/dist/_chunks/he-aec27352.js.map +1 -0
- package/dist/_chunks/he-bd769d7e.mjs +326 -0
- package/dist/_chunks/he-bd769d7e.mjs.map +1 -0
- package/dist/_chunks/hi-1bdc7a46.js +722 -0
- package/dist/_chunks/hi-1bdc7a46.js.map +1 -0
- package/dist/_chunks/hi-d397a24b.mjs +722 -0
- package/dist/_chunks/hi-d397a24b.mjs.map +1 -0
- package/dist/_chunks/hu-e2c05f40.js +832 -0
- package/dist/_chunks/hu-e2c05f40.js.map +1 -0
- package/dist/_chunks/hu-eb88bd0c.mjs +832 -0
- package/dist/_chunks/hu-eb88bd0c.mjs.map +1 -0
- package/dist/_chunks/id-586df3a2.js +448 -0
- package/dist/_chunks/id-586df3a2.js.map +1 -0
- package/dist/_chunks/id-f47699e6.mjs +448 -0
- package/dist/_chunks/id-f47699e6.mjs.map +1 -0
- package/dist/_chunks/index-00202c8a.mjs +126 -0
- package/dist/_chunks/index-00202c8a.mjs.map +1 -0
- package/dist/_chunks/index-066ee02e.js +127 -0
- package/dist/_chunks/index-066ee02e.js.map +1 -0
- package/dist/_chunks/index-0af587c3.js +1525 -0
- package/dist/_chunks/index-0af587c3.js.map +1 -0
- package/dist/_chunks/index-137490ba.js +69 -0
- package/dist/_chunks/index-137490ba.js.map +1 -0
- package/dist/_chunks/index-16030b74.js +134 -0
- package/dist/_chunks/index-16030b74.js.map +1 -0
- package/dist/_chunks/index-1763a04f.js +586 -0
- package/dist/_chunks/index-1763a04f.js.map +1 -0
- package/dist/_chunks/index-176cc121.mjs +469 -0
- package/dist/_chunks/index-176cc121.mjs.map +1 -0
- package/dist/_chunks/index-1b7e986c.mjs +54 -0
- package/dist/_chunks/index-1b7e986c.mjs.map +1 -0
- package/dist/_chunks/index-1da8c640.mjs +363 -0
- package/dist/_chunks/index-1da8c640.mjs.map +1 -0
- package/dist/_chunks/index-1e973c03.mjs +54 -0
- package/dist/_chunks/index-1e973c03.mjs.map +1 -0
- package/dist/_chunks/index-1f1e2465.js +340 -0
- package/dist/_chunks/index-1f1e2465.js.map +1 -0
- package/dist/_chunks/index-24189ec9.js +697 -0
- package/dist/_chunks/index-24189ec9.js.map +1 -0
- package/dist/_chunks/index-284c5926.js +432 -0
- package/dist/_chunks/index-284c5926.js.map +1 -0
- package/dist/_chunks/index-305a03f4.mjs +66 -0
- package/dist/_chunks/index-305a03f4.mjs.map +1 -0
- package/dist/_chunks/index-332f319e.mjs +127 -0
- package/dist/_chunks/index-332f319e.mjs.map +1 -0
- package/dist/_chunks/index-34a2909e.mjs +359 -0
- package/dist/_chunks/index-34a2909e.mjs.map +1 -0
- package/dist/_chunks/index-34de382e.mjs +3504 -0
- package/dist/_chunks/index-34de382e.mjs.map +1 -0
- package/dist/_chunks/index-35e4bad6.mjs +274 -0
- package/dist/_chunks/index-35e4bad6.mjs.map +1 -0
- package/dist/_chunks/index-36e0d449.mjs +406 -0
- package/dist/_chunks/index-36e0d449.mjs.map +1 -0
- package/dist/_chunks/index-370a4ee8.mjs +60 -0
- package/dist/_chunks/index-370a4ee8.mjs.map +1 -0
- package/dist/_chunks/index-38115cde.js +66 -0
- package/dist/_chunks/index-38115cde.js.map +1 -0
- package/dist/_chunks/index-3c58de6f.js +50 -0
- package/dist/_chunks/index-3c58de6f.js.map +1 -0
- package/dist/_chunks/index-4565fcbd.js +847 -0
- package/dist/_chunks/index-4565fcbd.js.map +1 -0
- package/dist/_chunks/index-48322669.mjs +132 -0
- package/dist/_chunks/index-48322669.mjs.map +1 -0
- package/dist/_chunks/index-4c5acc70.js +254 -0
- package/dist/_chunks/index-4c5acc70.js.map +1 -0
- package/dist/_chunks/index-51a15b27.js +403 -0
- package/dist/_chunks/index-51a15b27.js.map +1 -0
- package/dist/_chunks/index-52b5db8a.js +267 -0
- package/dist/_chunks/index-52b5db8a.js.map +1 -0
- package/dist/_chunks/index-53ba81f9.mjs +271 -0
- package/dist/_chunks/index-53ba81f9.mjs.map +1 -0
- package/dist/_chunks/index-56ced4ab.mjs +50 -0
- package/dist/_chunks/index-56ced4ab.mjs.map +1 -0
- package/dist/_chunks/index-5752584c.mjs +1063 -0
- package/dist/_chunks/index-5752584c.mjs.map +1 -0
- package/dist/_chunks/index-58db145d.mjs +866 -0
- package/dist/_chunks/index-58db145d.mjs.map +1 -0
- package/dist/_chunks/index-59d22949.mjs +583 -0
- package/dist/_chunks/index-59d22949.mjs.map +1 -0
- package/dist/_chunks/index-5ad8482b.mjs +412 -0
- package/dist/_chunks/index-5ad8482b.mjs.map +1 -0
- package/dist/_chunks/index-5d8d89a7.js +47 -0
- package/dist/_chunks/index-5d8d89a7.js.map +1 -0
- package/dist/_chunks/index-62b4b3fc.js +311 -0
- package/dist/_chunks/index-62b4b3fc.js.map +1 -0
- package/dist/_chunks/index-6a512cec.js +295 -0
- package/dist/_chunks/index-6a512cec.js.map +1 -0
- package/dist/_chunks/index-6b9e3d60.js +273 -0
- package/dist/_chunks/index-6b9e3d60.js.map +1 -0
- package/dist/_chunks/index-6cc54f3b.mjs +245 -0
- package/dist/_chunks/index-6cc54f3b.mjs.map +1 -0
- package/dist/_chunks/index-6dbc94a9.mjs +676 -0
- package/dist/_chunks/index-6dbc94a9.mjs.map +1 -0
- package/dist/_chunks/index-73ba6bdd.mjs +826 -0
- package/dist/_chunks/index-73ba6bdd.mjs.map +1 -0
- package/dist/_chunks/index-74812118.mjs +53 -0
- package/dist/_chunks/index-74812118.mjs.map +1 -0
- package/dist/_chunks/index-77e0e5d7.js +50 -0
- package/dist/_chunks/index-77e0e5d7.js.map +1 -0
- package/dist/_chunks/index-7aed99db.js +380 -0
- package/dist/_chunks/index-7aed99db.js.map +1 -0
- package/dist/_chunks/index-7d40adea.mjs +398 -0
- package/dist/_chunks/index-7d40adea.mjs.map +1 -0
- package/dist/_chunks/index-85069cac.mjs +233 -0
- package/dist/_chunks/index-85069cac.mjs.map +1 -0
- package/dist/_chunks/index-86dfbe3a.js +1134 -0
- package/dist/_chunks/index-86dfbe3a.js.map +1 -0
- package/dist/_chunks/index-88298941.js +54 -0
- package/dist/_chunks/index-88298941.js.map +1 -0
- package/dist/_chunks/index-89d27faa.js +54 -0
- package/dist/_chunks/index-89d27faa.js.map +1 -0
- package/dist/_chunks/index-8d4d361d.mjs +47 -0
- package/dist/_chunks/index-8d4d361d.mjs.map +1 -0
- package/dist/_chunks/index-8ea5a488.js +366 -0
- package/dist/_chunks/index-8ea5a488.js.map +1 -0
- package/dist/_chunks/index-928b18d2.mjs +383 -0
- package/dist/_chunks/index-928b18d2.mjs.map +1 -0
- package/dist/_chunks/index-973c363e.mjs +63 -0
- package/dist/_chunks/index-973c363e.mjs.map +1 -0
- package/dist/_chunks/index-a4348f3b.js +62 -0
- package/dist/_chunks/index-a4348f3b.js.map +1 -0
- package/dist/_chunks/index-acd6d64f.js +417 -0
- package/dist/_chunks/index-acd6d64f.js.map +1 -0
- package/dist/_chunks/index-af69bc98.mjs +308 -0
- package/dist/_chunks/index-af69bc98.mjs.map +1 -0
- package/dist/_chunks/index-b2257157.js +15328 -0
- package/dist/_chunks/index-b2257157.js.map +1 -0
- package/dist/_chunks/index-b81f7273.mjs +1501 -0
- package/dist/_chunks/index-b81f7273.mjs.map +1 -0
- package/dist/_chunks/index-b98ea3ce.mjs +52 -0
- package/dist/_chunks/index-b98ea3ce.mjs.map +1 -0
- package/dist/_chunks/index-bb8093ea.mjs +314 -0
- package/dist/_chunks/index-bb8093ea.mjs.map +1 -0
- package/dist/_chunks/index-bdfc1149.mjs +15247 -0
- package/dist/_chunks/index-bdfc1149.mjs.map +1 -0
- package/dist/_chunks/index-be2ca313.mjs +47 -0
- package/dist/_chunks/index-be2ca313.mjs.map +1 -0
- package/dist/_chunks/index-c604806d.js +335 -0
- package/dist/_chunks/index-c604806d.js.map +1 -0
- package/dist/_chunks/index-cadd3ee0.js +873 -0
- package/dist/_chunks/index-cadd3ee0.js.map +1 -0
- package/dist/_chunks/index-d1620260.js +52 -0
- package/dist/_chunks/index-d1620260.js.map +1 -0
- package/dist/_chunks/index-d3e1fd86.js +490 -0
- package/dist/_chunks/index-d3e1fd86.js.map +1 -0
- package/dist/_chunks/index-da04b144.js +50 -0
- package/dist/_chunks/index-da04b144.js.map +1 -0
- package/dist/_chunks/index-e22d1a84.mjs +50 -0
- package/dist/_chunks/index-e22d1a84.mjs.map +1 -0
- package/dist/_chunks/index-e414353b.js +418 -0
- package/dist/_chunks/index-e414353b.js.map +1 -0
- package/dist/_chunks/index-ea23ee9f.mjs +340 -0
- package/dist/_chunks/index-ea23ee9f.mjs.map +1 -0
- package/dist/_chunks/index-eb67694f.mjs +261 -0
- package/dist/_chunks/index-eb67694f.mjs.map +1 -0
- package/dist/_chunks/index-edc9bb0b.js +3536 -0
- package/dist/_chunks/index-edc9bb0b.js.map +1 -0
- package/dist/_chunks/index-f179c7ea.js +47 -0
- package/dist/_chunks/index-f179c7ea.js.map +1 -0
- package/dist/_chunks/index-f448aed2.js +128 -0
- package/dist/_chunks/index-f448aed2.js.map +1 -0
- package/dist/_chunks/index-f5342ea5.js +54 -0
- package/dist/_chunks/index-f5342ea5.js.map +1 -0
- package/dist/_chunks/index-fc700e52.js +263 -0
- package/dist/_chunks/index-fc700e52.js.map +1 -0
- package/dist/_chunks/index-fcd5bc14.mjs +50 -0
- package/dist/_chunks/index-fcd5bc14.mjs.map +1 -0
- package/dist/_chunks/it-4006227c.mjs +459 -0
- package/dist/_chunks/it-4006227c.mjs.map +1 -0
- package/dist/_chunks/it-9c4295f1.js +459 -0
- package/dist/_chunks/it-9c4295f1.js.map +1 -0
- package/dist/_chunks/ja-db43ca3d.mjs +633 -0
- package/dist/_chunks/ja-db43ca3d.mjs.map +1 -0
- package/dist/_chunks/ja-eb74520f.js +633 -0
- package/dist/_chunks/ja-eb74520f.js.map +1 -0
- package/dist/_chunks/ko-18e71df4.js +631 -0
- package/dist/_chunks/ko-18e71df4.js.map +1 -0
- package/dist/_chunks/ko-a7826e25.mjs +631 -0
- package/dist/_chunks/ko-a7826e25.mjs.map +1 -0
- package/dist/_chunks/ml-90131768.mjs +722 -0
- package/dist/_chunks/ml-90131768.mjs.map +1 -0
- package/dist/_chunks/ml-c5199364.js +722 -0
- package/dist/_chunks/ml-c5199364.js.map +1 -0
- package/dist/_chunks/ms-bc514df6.js +342 -0
- package/dist/_chunks/ms-bc514df6.js.map +1 -0
- package/dist/_chunks/ms-f4f16a83.mjs +342 -0
- package/dist/_chunks/ms-f4f16a83.mjs.map +1 -0
- package/dist/_chunks/nl-887ce2c3.mjs +828 -0
- package/dist/_chunks/nl-887ce2c3.mjs.map +1 -0
- package/dist/_chunks/nl-f1aedbe2.js +828 -0
- package/dist/_chunks/nl-f1aedbe2.js.map +1 -0
- package/dist/_chunks/no-ec6c2927.js +310 -0
- package/dist/_chunks/no-ec6c2927.js.map +1 -0
- package/dist/_chunks/no-f0b02541.mjs +310 -0
- package/dist/_chunks/no-f0b02541.mjs.map +1 -0
- package/dist/_chunks/pl-9be86414.js +721 -0
- package/dist/_chunks/pl-9be86414.js.map +1 -0
- package/dist/_chunks/pl-9ccd35d9.mjs +721 -0
- package/dist/_chunks/pl-9ccd35d9.mjs.map +1 -0
- package/dist/_chunks/pt-4fcc08f1.js +296 -0
- package/dist/_chunks/pt-4fcc08f1.js.map +1 -0
- package/dist/_chunks/pt-8acb6ac1.mjs +296 -0
- package/dist/_chunks/pt-8acb6ac1.mjs.map +1 -0
- package/dist/_chunks/pt-BR-d43239e3.js +794 -0
- package/dist/_chunks/pt-BR-d43239e3.js.map +1 -0
- package/dist/_chunks/pt-BR-fd73cb13.mjs +794 -0
- package/dist/_chunks/pt-BR-fd73cb13.mjs.map +1 -0
- package/dist/_chunks/ru-07958f09.js +944 -0
- package/dist/_chunks/ru-07958f09.js.map +1 -0
- package/dist/_chunks/ru-d43423ea.mjs +944 -0
- package/dist/_chunks/ru-d43423ea.mjs.map +1 -0
- package/dist/_chunks/sa-6bf4c20e.mjs +722 -0
- package/dist/_chunks/sa-6bf4c20e.mjs.map +1 -0
- package/dist/_chunks/sa-8ffb7ca7.js +722 -0
- package/dist/_chunks/sa-8ffb7ca7.js.map +1 -0
- package/dist/_chunks/schema-a95f2514.mjs +490 -0
- package/dist/_chunks/schema-a95f2514.mjs.map +1 -0
- package/dist/_chunks/schema-f49c76d7.js +514 -0
- package/dist/_chunks/schema-f49c76d7.js.map +1 -0
- package/dist/_chunks/sk-58d31b17.mjs +690 -0
- package/dist/_chunks/sk-58d31b17.mjs.map +1 -0
- package/dist/_chunks/sk-a9308737.js +690 -0
- package/dist/_chunks/sk-a9308737.js.map +1 -0
- package/dist/_chunks/sv-0f5ffd1e.js +827 -0
- package/dist/_chunks/sv-0f5ffd1e.js.map +1 -0
- package/dist/_chunks/sv-d80ad633.mjs +827 -0
- package/dist/_chunks/sv-d80ad633.mjs.map +1 -0
- package/dist/_chunks/th-a53bbf7a.js +430 -0
- package/dist/_chunks/th-a53bbf7a.js.map +1 -0
- package/dist/_chunks/th-e72c6a22.mjs +430 -0
- package/dist/_chunks/th-e72c6a22.mjs.map +1 -0
- package/dist/_chunks/tr-b84a68b0.js +785 -0
- package/dist/_chunks/tr-b84a68b0.js.map +1 -0
- package/dist/_chunks/tr-e35ecfe8.mjs +785 -0
- package/dist/_chunks/tr-e35ecfe8.mjs.map +1 -0
- package/dist/_chunks/uk-de367ec1.mjs +343 -0
- package/dist/_chunks/uk-de367ec1.mjs.map +1 -0
- package/dist/_chunks/uk-e5226227.js +343 -0
- package/dist/_chunks/uk-e5226227.js.map +1 -0
- package/dist/_chunks/useAdminRolePermissions-603a2709.mjs +2322 -0
- package/dist/_chunks/useAdminRolePermissions-603a2709.mjs.map +1 -0
- package/dist/_chunks/useAdminRolePermissions-cb1a3ee2.js +2337 -0
- package/dist/_chunks/useAdminRolePermissions-cb1a3ee2.js.map +1 -0
- package/dist/_chunks/useAdminRoles-68d5d608.js +62 -0
- package/dist/_chunks/useAdminRoles-68d5d608.js.map +1 -0
- package/dist/_chunks/useAdminRoles-7ab5d521.mjs +44 -0
- package/dist/_chunks/useAdminRoles-7ab5d521.mjs.map +1 -0
- package/dist/_chunks/useAdminUsers-05d6b26a.js +61 -0
- package/dist/_chunks/useAdminUsers-05d6b26a.js.map +1 -0
- package/dist/_chunks/useAdminUsers-09f86a58.mjs +43 -0
- package/dist/_chunks/useAdminUsers-09f86a58.mjs.map +1 -0
- package/dist/_chunks/useContentTypes-53b449bb.mjs +67 -0
- package/dist/_chunks/useContentTypes-53b449bb.mjs.map +1 -0
- package/dist/_chunks/useContentTypes-7da293cc.js +85 -0
- package/dist/_chunks/useContentTypes-7da293cc.js.map +1 -0
- package/dist/_chunks/useDebounce-4712871e.js +35 -0
- package/dist/_chunks/useDebounce-4712871e.js.map +1 -0
- package/dist/_chunks/useDebounce-9364f340.mjs +17 -0
- package/dist/_chunks/useDebounce-9364f340.mjs.map +1 -0
- package/dist/_chunks/useLicenseLimitNotification-1fd756fa.mjs +80 -0
- package/dist/_chunks/useLicenseLimitNotification-1fd756fa.mjs.map +1 -0
- package/dist/_chunks/useLicenseLimitNotification-8a4d7fc1.js +100 -0
- package/dist/_chunks/useLicenseLimitNotification-8a4d7fc1.js.map +1 -0
- package/dist/_chunks/useLicenseLimits-13a102d3.mjs +31 -0
- package/dist/_chunks/useLicenseLimits-13a102d3.mjs.map +1 -0
- package/dist/_chunks/useLicenseLimits-81ef3cce.js +49 -0
- package/dist/_chunks/useLicenseLimits-81ef3cce.js.map +1 -0
- package/dist/_chunks/useReviewWorkflows-799e0305.js +59 -0
- package/dist/_chunks/useReviewWorkflows-799e0305.js.map +1 -0
- package/dist/_chunks/useReviewWorkflows-9e6b8986.mjs +41 -0
- package/dist/_chunks/useReviewWorkflows-9e6b8986.mjs.map +1 -0
- package/dist/_chunks/validateWorkflow-d051b610.mjs +1101 -0
- package/dist/_chunks/validateWorkflow-d051b610.mjs.map +1 -0
- package/dist/_chunks/validateWorkflow-e66d7d2e.js +1124 -0
- package/dist/_chunks/validateWorkflow-e66d7d2e.js.map +1 -0
- package/dist/_chunks/vi-096bccbb.mjs +298 -0
- package/dist/_chunks/vi-096bccbb.mjs.map +1 -0
- package/dist/_chunks/vi-c5fabb75.js +298 -0
- package/dist/_chunks/vi-c5fabb75.js.map +1 -0
- package/dist/_chunks/zh-24f618cb.js +836 -0
- package/dist/_chunks/zh-24f618cb.js.map +1 -0
- package/dist/_chunks/zh-Hans-35d2c374.js +957 -0
- package/dist/_chunks/zh-Hans-35d2c374.js.map +1 -0
- package/dist/_chunks/zh-Hans-ccf4be4b.mjs +957 -0
- package/dist/_chunks/zh-Hans-ccf4be4b.mjs.map +1 -0
- package/dist/_chunks/zh-ba29b2e1.mjs +836 -0
- package/dist/_chunks/zh-ba29b2e1.mjs.map +1 -0
- package/dist/admin/index.js +35 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +35 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/src/App.d.ts +6 -0
- package/dist/admin/src/StrapiApp.d.ts +140 -0
- package/dist/admin/src/components/AuthenticatedApp.d.ts +2 -0
- package/dist/admin/src/components/ConfigurationProvider.d.ts +11 -0
- package/dist/admin/src/components/DefaultDocument.d.ts +5 -0
- package/dist/admin/src/components/DragLayer.d.ts +10 -0
- package/dist/admin/src/components/GuidedTour/Homepage.d.ts +2 -0
- package/dist/admin/src/components/GuidedTour/Modal.d.ts +2 -0
- package/dist/admin/src/components/GuidedTour/Ornaments.d.ts +13 -0
- package/dist/admin/src/components/GuidedTour/Provider.d.ts +6 -0
- package/dist/admin/src/components/GuidedTour/constants.d.ts +165 -0
- package/dist/admin/src/components/LanguageProvider.d.ts +19 -0
- package/dist/admin/src/components/LeftMenu.d.ts +5 -0
- package/dist/admin/src/components/NoJavascript.d.ts +7 -0
- package/dist/admin/src/components/NpsSurvey.d.ts +17 -0
- package/dist/admin/src/components/Onboarding.d.ts +2 -0
- package/dist/admin/src/components/PluginsInitializer.d.ts +5 -0
- package/dist/admin/src/components/PrivateRoute.d.ts +8 -0
- package/dist/admin/src/components/Providers.d.ts +13 -0
- package/dist/admin/src/components/RBACProvider.d.ts +27 -0
- package/dist/admin/src/components/Theme.d.ts +6 -0
- package/dist/admin/src/components/ThemeToggleProvider.d.ts +12 -0
- package/dist/admin/src/components/UnauthenticatedLogo.d.ts +2 -0
- package/dist/admin/src/constants.d.ts +185 -0
- package/dist/admin/src/contexts/admin.d.ts +14 -0
- package/dist/admin/src/contexts/apiTokenPermissions.d.ts +36 -0
- package/dist/admin/src/contexts/configuration.d.ts +27 -0
- package/dist/admin/src/contexts/themeToggle.d.ts +22 -0
- package/dist/admin/src/core/apis/Components.d.ts +10 -0
- package/dist/admin/src/core/apis/CustomFields.d.ts +8 -0
- package/dist/admin/src/core/apis/Fields.d.ts +10 -0
- package/dist/admin/src/core/apis/Middlewares.d.ts +9 -0
- package/dist/admin/src/core/apis/Plugin.d.ts +19 -0
- package/dist/admin/src/core/apis/Reducers.d.ts +10 -0
- package/dist/admin/src/core/store/configure.d.ts +29 -0
- package/dist/admin/src/core/store/hooks.d.ts +37 -0
- package/dist/admin/src/core/utils/basename.d.ts +1 -0
- package/dist/admin/src/core/utils/createHook.d.ts +10 -0
- package/dist/admin/src/hooks/__mocks__/useAdminUsers.d.ts +2 -0
- package/dist/admin/src/hooks/__mocks__/useContentTypes.d.ts +2 -0
- package/dist/admin/src/hooks/useAdminRoles.d.ts +13 -0
- package/dist/admin/src/hooks/useAdminUsers.d.ts +19 -0
- package/dist/admin/src/hooks/useContentTypes.d.ts +7 -0
- package/dist/admin/src/hooks/useDebounce.d.ts +1 -0
- package/dist/admin/src/hooks/useEnterprise.d.ts +6 -0
- package/dist/admin/src/hooks/useInjectReducer.d.ts +10 -0
- package/dist/admin/src/hooks/useLicenseLimitNotification.d.ts +1 -0
- package/dist/admin/src/hooks/useMenu.d.ts +9 -0
- package/dist/admin/src/index.d.ts +2 -0
- package/dist/admin/src/layouts/AppLayout.d.ts +7 -0
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +11 -0
- package/dist/admin/src/pages/Admin.d.ts +7 -0
- package/dist/admin/src/pages/HomePage.d.ts +3 -0
- package/dist/admin/src/pages/InstalledPluginsPage.d.ts +3 -0
- package/dist/admin/src/pages/InternalErrorPage.d.ts +7 -0
- package/dist/admin/src/pages/Marketplace/MarketplacePage.d.ts +19 -0
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +13 -0
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +13 -0
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +13 -0
- package/dist/admin/src/pages/Marketplace/components/OfflineLayout.d.ts +2 -0
- package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +8 -0
- package/dist/admin/src/pages/Marketplace/components/SortSelect.d.ts +51 -0
- package/dist/admin/src/pages/Marketplace/hooks/__mocks__/useNavigatorOnline.d.ts +1 -0
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +92 -0
- package/dist/admin/src/pages/Marketplace/hooks/useNavigatorOnline.d.ts +5 -0
- package/dist/admin/src/pages/NotFoundPage.d.ts +1 -0
- package/dist/admin/src/pages/ProfilePage.d.ts +2 -0
- package/dist/admin/src/pages/SettingsPage/hooks/useRegenerate.d.ts +4 -0
- package/dist/admin/src/pages/SettingsPage/pages/Roles/EditPage/hooks/usePermissionsDataManager.d.ts +24 -0
- package/dist/admin/src/pages/SettingsPage/pages/Roles/hooks/__mocks__/useAdminRolePermissions.d.ts +2 -0
- package/dist/admin/src/pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissions.d.ts +11 -0
- package/dist/admin/src/pages/SettingsPage/utils/makeUniqueRoutes.d.ts +6 -0
- package/dist/admin/src/pages/UseCasePage.d.ts +8 -0
- package/dist/admin/src/reducer.d.ts +21 -0
- package/dist/admin/src/render.d.ts +7 -0
- package/dist/admin/src/selectors.d.ts +21 -0
- package/dist/admin/src/shared/components/InjectionZone.d.ts +53 -0
- package/dist/admin/src/shared/hooks/__mocks__/useInjectionZone.d.ts +1 -0
- package/dist/admin/src/shared/hooks/useInjectionZone.d.ts +2 -0
- package/dist/admin/src/translations/languageNativeNames.d.ts +36 -0
- package/dist/admin/src/types/permissions.d.ts +7 -0
- package/dist/admin/src/utils/createRoute.d.ts +6 -0
- package/dist/admin/src/utils/formatAPIErrors.d.ts +6 -0
- package/dist/admin/src/utils/getFullName.d.ts +1 -0
- package/dist/admin/src/utils/hashAdminUserEmail.d.ts +6 -0
- package/dist/cli.js +46 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.mjs +46 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/ee/admin/src/constants.d.ts +53 -0
- package/dist/ee/admin/src/hooks/useLicenseLimitNotification.d.ts +1 -0
- package/dist/ee/admin/src/pages/HomePage.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts +23 -0
- package/dist/shared/contracts/providers.d.ts +16 -0
- package/dist/shared/contracts/roles.d.ts +52 -0
- package/dist/shared/contracts/shared.d.ts +39 -0
- package/dist/shared/contracts/user.d.ts +40 -0
- package/dist/shared/contracts/users.d.ts +49 -0
- package/dist/shared/schema.d.ts +7 -0
- package/ee/server/bootstrap.js +1 -1
- package/ee/server/controllers/__tests__/stages.test.js +174 -0
- package/ee/server/controllers/admin.js +1 -1
- package/ee/server/controllers/user.js +1 -1
- package/ee/server/destroy.js +1 -1
- package/ee/server/middlewares/__tests__/review-workflows.test.js +40 -0
- package/ee/server/register.js +1 -1
- package/ee/server/routes/utils.js +1 -1
- package/ee/server/services/__tests__/assignees.test.js +76 -0
- package/ee/server/services/__tests__/audit-logs.test.js +300 -0
- package/ee/server/services/__tests__/passport.test.js +95 -0
- package/ee/server/services/__tests__/review-workflows-validation.test.js +100 -0
- package/ee/server/services/__tests__/review-workflows.test.js +163 -0
- package/ee/server/services/__tests__/sso.test.js +117 -0
- package/ee/server/services/__tests__/stages.test.js +275 -0
- package/ee/server/services/__tests__/workflows.test.js +203 -0
- package/ee/server/services/audit-logs.js +1 -1
- package/ee/server/services/passport/sso.js +1 -1
- package/ee/server/services/passport.js +1 -1
- package/ee/server/services/review-workflows/__tests__/entity-service-decorator.test.js +211 -0
- package/ee/server/services/review-workflows/metrics/__tests__/weekly-metrics.test.js +65 -0
- package/ee/server/services/review-workflows/workflows/__tests__/content-types.test.js +146 -0
- package/ee/server/services/seat-enforcement.js +1 -1
- package/ee/server/utils/__tests__/persisted-tables.test.js +38 -0
- package/ee/server/utils/__tests__/sso-lock.test.js +84 -0
- package/ee/server/utils/sso-lock.js +1 -1
- package/ee/server/validation/role.js +1 -1
- package/ee/server/validation/user.js +1 -1
- package/index.d.ts +22 -0
- package/index.js +214 -123
- package/package.json +85 -39
- package/server/controllers/__tests__/admin.test.js +106 -0
- package/server/controllers/__tests__/api-token.test.js +496 -0
- package/server/controllers/__tests__/content-api.test.js +173 -0
- package/server/controllers/__tests__/permission.test.js +200 -0
- package/server/controllers/__tests__/role.test.js +201 -0
- package/server/controllers/__tests__/transfer/token.test.js +520 -0
- package/server/controllers/__tests__/user.test.js +326 -0
- package/server/controllers/admin.js +4 -3
- package/server/domain/action/__tests__/action-domain.test.js +230 -0
- package/server/domain/action/__tests__/action-provider.test.js +376 -0
- package/server/domain/condition/__tests__/condition-domain.test.js +122 -0
- package/server/domain/condition/__tests__/condition-provider.test.js +156 -0
- package/server/domain/permission/__tests__/permission-domain.test.js +285 -0
- package/server/services/__tests__/action.test.js +98 -0
- package/server/services/__tests__/api-token.test.js +980 -0
- package/server/services/__tests__/auth.test.js +319 -0
- package/server/services/__tests__/content-type.test.js +405 -0
- package/server/services/__tests__/metrics.test.js +65 -0
- package/server/services/__tests__/passport.test.js +90 -0
- package/server/services/__tests__/permission.test.js +177 -0
- package/server/services/__tests__/permissions-manager-sanitize.test.js +117 -0
- package/server/services/__tests__/permissions-manager-validate.test.js +119 -0
- package/server/services/__tests__/permissions-manager.test.js +318 -0
- package/server/services/__tests__/permissions.section-builder.section.test.js +136 -0
- package/server/services/__tests__/project-settings.test.js +397 -0
- package/server/services/__tests__/role.test.js +970 -0
- package/server/services/__tests__/token.test.js +217 -0
- package/server/services/__tests__/transfer/token.test.js +878 -0
- package/server/services/__tests__/user.test.js +771 -0
- package/server/strategies/__tests__/admin.test.js +118 -0
- package/server/strategies/__tests__/api-token.test.js +364 -0
- package/server/validation/__tests__/common-functions.test.js +54 -0
- package/.browserslistrc +0 -4
- package/.eslintignore +0 -4
- package/.eslintrc.js +0 -14
- package/admin/src/StrapiApp.js +0 -478
- package/admin/src/app.js +0 -9
- package/admin/src/assets/images/icon_offline-cloud.svg +0 -5
- package/admin/src/assets/images/logo-strapi-2022.svg +0 -7
- package/admin/src/assets/images/onboarding-preview.png +0 -0
- package/admin/src/components/AuthenticatedApp/index.js +0 -120
- package/admin/src/components/AuthenticatedApp/utils/api.js +0 -85
- package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.js +0 -11
- package/admin/src/components/ConfigurationsProvider/index.js +0 -66
- package/admin/src/components/ConfigurationsProvider/reducer.js +0 -29
- package/admin/src/components/DragLayer/DragLayer.js +0 -54
- package/admin/src/components/DragLayer/index.js +0 -1
- package/admin/src/components/GlobalStyle/index.js +0 -9
- package/admin/src/components/GuidedTour/Homepage/components/Step.js +0 -61
- package/admin/src/components/GuidedTour/Homepage/components/Stepper.js +0 -61
- package/admin/src/components/GuidedTour/Homepage/index.js +0 -71
- package/admin/src/components/GuidedTour/Modal/components/Content.js +0 -66
- package/admin/src/components/GuidedTour/Modal/components/Modal.js +0 -72
- package/admin/src/components/GuidedTour/Modal/components/StepNumberWithPadding.js +0 -26
- package/admin/src/components/GuidedTour/Modal/components/Stepper.js +0 -118
- package/admin/src/components/GuidedTour/Modal/index.js +0 -94
- package/admin/src/components/GuidedTour/Modal/reducer.js +0 -29
- package/admin/src/components/GuidedTour/Stepper/StepLine.js +0 -29
- package/admin/src/components/GuidedTour/Stepper/StepNumber.js +0 -71
- package/admin/src/components/GuidedTour/constants.js +0 -3
- package/admin/src/components/GuidedTour/index.js +0 -102
- package/admin/src/components/GuidedTour/init.js +0 -37
- package/admin/src/components/GuidedTour/layout.js +0 -162
- package/admin/src/components/GuidedTour/reducer.js +0 -50
- package/admin/src/components/GuidedTour/utils/arePreviousSectionsDone.js +0 -13
- package/admin/src/components/GuidedTour/utils/arePreviousStepsDone.js +0 -12
- package/admin/src/components/GuidedTour/utils/isGuidedTourCompleted.js +0 -6
- package/admin/src/components/GuidedTour/utils/persistStateToLocaleStorage.js +0 -34
- package/admin/src/components/LanguageProvider/index.js +0 -54
- package/admin/src/components/LanguageProvider/init.js +0 -13
- package/admin/src/components/LanguageProvider/reducer.js +0 -30
- package/admin/src/components/LanguageProvider/utils/localStorageKey.js +0 -3
- package/admin/src/components/LeftMenu/index.js +0 -252
- package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +0 -7
- package/admin/src/components/LocalesProvider/context.js +0 -5
- package/admin/src/components/LocalesProvider/index.js +0 -21
- package/admin/src/components/LocalesProvider/useLocalesProvider.js +0 -11
- package/admin/src/components/NpsSurvey/hooks/useNpsSurveySettings.js +0 -17
- package/admin/src/components/NpsSurvey/index.js +0 -368
- package/admin/src/components/PluginsInitializer/index.js +0 -68
- package/admin/src/components/PluginsInitializer/init.js +0 -11
- package/admin/src/components/PluginsInitializer/reducer.js +0 -22
- package/admin/src/components/PrivateRoute/index.js +0 -46
- package/admin/src/components/Providers/index.js +0 -156
- package/admin/src/components/RBACProvider/actions.js +0 -10
- package/admin/src/components/RBACProvider/constants.js +0 -2
- package/admin/src/components/RBACProvider/index.js +0 -39
- package/admin/src/components/RBACProvider/reducer.js +0 -51
- package/admin/src/components/Theme/index.js +0 -26
- package/admin/src/components/ThemeToggleProvider/index.js +0 -79
- package/admin/src/components/UnauthenticatedLogo/index.js +0 -19
- package/admin/src/constants.js +0 -90
- package/admin/src/content-manager/assets/images/background_input.svg +0 -1
- package/admin/src/content-manager/assets/images/icon_remove.svg +0 -19
- package/admin/src/content-manager/assets/images/logo.svg +0 -1
- package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +0 -87
- package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +0 -463
- package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +0 -451
- package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +0 -102
- package/admin/src/content-manager/components/BlocksEditor/index.js +0 -126
- package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +0 -432
- package/admin/src/content-manager/components/ComponentIcon/ComponentIcon.js +0 -40
- package/admin/src/content-manager/components/ComponentIcon/constants.js +0 -133
- package/admin/src/content-manager/components/ComponentIcon/index.js +0 -1
- package/admin/src/content-manager/components/ComponentInitializer/index.js +0 -81
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumns.js +0 -2
- package/admin/src/content-manager/components/DynamicZone/components/AddComponentButton.js +0 -102
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +0 -72
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCategory.js +0 -108
- package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker.js +0 -94
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +0 -313
- package/admin/src/content-manager/components/DynamicZone/components/DynamicZoneLabel.js +0 -79
- package/admin/src/content-manager/components/DynamicZone/index.js +0 -316
- package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +0 -709
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +0 -428
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +0 -191
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +0 -92
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/getAPIInnerError.js +0 -18
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/handleAPIError.js +0 -15
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/index.js +0 -3
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/moveFields.js +0 -10
- package/admin/src/content-manager/components/FieldComponent/Label.js +0 -68
- package/admin/src/content-manager/components/FieldComponent/index.js +0 -168
- package/admin/src/content-manager/components/FieldComponent/utils/connect.js +0 -12
- package/admin/src/content-manager/components/FieldComponent/utils/select.js +0 -129
- package/admin/src/content-manager/components/FieldTypeIcon/index.js +0 -82
- package/admin/src/content-manager/components/Filter/CustomInputs/AdminUsersFilter.js +0 -42
- package/admin/src/content-manager/components/Filter/Filter.js +0 -54
- package/admin/src/content-manager/components/Filter/index.js +0 -1
- package/admin/src/content-manager/components/Hint/index.js +0 -31
- package/admin/src/content-manager/components/InjectionZoneList/index.js +0 -39
- package/admin/src/content-manager/components/InputUID/endActionStyle.js +0 -43
- package/admin/src/content-manager/components/InputUID/index.js +0 -286
- package/admin/src/content-manager/components/InputUID/regex.js +0 -3
- package/admin/src/content-manager/components/Inputs/index.js +0 -288
- package/admin/src/content-manager/components/Inputs/utils/VALIDATIONS_TO_OMIT.js +0 -13
- package/admin/src/content-manager/components/Inputs/utils/connect.js +0 -12
- package/admin/src/content-manager/components/Inputs/utils/generateOptions.js +0 -32
- package/admin/src/content-manager/components/Inputs/utils/getInputType.js +0 -46
- package/admin/src/content-manager/components/Inputs/utils/index.js +0 -5
- package/admin/src/content-manager/components/Inputs/utils/select.js +0 -39
- package/admin/src/content-manager/components/ListViewTable/CellContent/PublicationState/PublicationState.js +0 -27
- package/admin/src/content-manager/components/ListViewTable/CellContent/PublicationState/index.js +0 -1
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +0 -98
- package/admin/src/content-manager/components/PreviewWysiwyg/Wrapper.js +0 -147
- package/admin/src/content-manager/components/PreviewWysiwyg/index.js +0 -34
- package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +0 -77
- package/admin/src/content-manager/components/PreviewWysiwyg/utils/satinizeHtml.js +0 -16
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +0 -507
- package/admin/src/content-manager/components/RelationInput/components/Option.js +0 -63
- package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +0 -170
- package/admin/src/content-manager/components/RelationInput/components/RelationList.js +0 -56
- package/admin/src/content-manager/components/RelationInput/constants.js +0 -2
- package/admin/src/content-manager/components/RelationInput/index.js +0 -2
- package/admin/src/content-manager/components/RelationInputDataManager/RelationInputDataManager.js +0 -436
- package/admin/src/content-manager/components/RelationInputDataManager/constants.js +0 -8
- package/admin/src/content-manager/components/RelationInputDataManager/index.js +0 -1
- package/admin/src/content-manager/components/RelationInputDataManager/utils/connect.js +0 -11
- package/admin/src/content-manager/components/RelationInputDataManager/utils/diffRelations.js +0 -24
- package/admin/src/content-manager/components/RelationInputDataManager/utils/getRelationLink.js +0 -3
- package/admin/src/content-manager/components/RelationInputDataManager/utils/index.js +0 -5
- package/admin/src/content-manager/components/RelationInputDataManager/utils/normalizeRelations.js +0 -44
- package/admin/src/content-manager/components/RelationInputDataManager/utils/normalizeSearchResults.js +0 -16
- package/admin/src/content-manager/components/RelationInputDataManager/utils/select.js +0 -113
- package/admin/src/content-manager/components/RepeatableComponent/components/Accordion.js +0 -78
- package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +0 -272
- package/admin/src/content-manager/components/RepeatableComponent/components/Preview.js +0 -17
- package/admin/src/content-manager/components/RepeatableComponent/index.js +0 -283
- package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +0 -10
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +0 -387
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +0 -468
- package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +0 -127
- package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +0 -38
- package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +0 -232
- package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +0 -57
- package/admin/src/content-manager/components/Wysiwyg/index.js +0 -214
- package/admin/src/content-manager/components/Wysiwyg/utils/continueList.js +0 -111
- package/admin/src/content-manager/components/Wysiwyg/utils/utils.js +0 -313
- package/admin/src/content-manager/constants/attributes.js +0 -3
- package/admin/src/content-manager/contexts/ContentTypeLayout.js +0 -5
- package/admin/src/content-manager/contexts/ModelsContext.js +0 -5
- package/admin/src/content-manager/contexts/Wysiwyg.js +0 -5
- package/admin/src/content-manager/contexts/index.js +0 -2
- package/admin/src/content-manager/hooks/index.js +0 -9
- package/admin/src/content-manager/hooks/useAllowedAttributes.js +0 -43
- package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +0 -20
- package/admin/src/content-manager/hooks/useDragAndDrop.js +0 -135
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +0 -90
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/reducer.js +0 -56
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +0 -167
- package/admin/src/content-manager/hooks/useFindRedirectionLink/index.js +0 -15
- package/admin/src/content-manager/hooks/useFindRedirectionLink/selectors.js +0 -7
- package/admin/src/content-manager/hooks/useFindRedirectionLink/utils/getRedirectionLink.js +0 -45
- package/admin/src/content-manager/hooks/useKeyboardDragAndDrop.js +0 -106
- package/admin/src/content-manager/hooks/useLazyComponents/index.js +0 -70
- package/admin/src/content-manager/hooks/usePluginsQueryParams/index.js +0 -11
- package/admin/src/content-manager/hooks/usePrev.js +0 -14
- package/admin/src/content-manager/hooks/useRelation/index.js +0 -1
- package/admin/src/content-manager/hooks/useRelation/useRelation.js +0 -174
- package/admin/src/content-manager/hooks/useSyncRbac/actions.js +0 -14
- package/admin/src/content-manager/hooks/useSyncRbac/constants.js +0 -2
- package/admin/src/content-manager/hooks/useSyncRbac/index.js +0 -38
- package/admin/src/content-manager/hooks/useSyncRbac/reducer.js +0 -33
- package/admin/src/content-manager/hooks/useSyncRbac/selectors.js +0 -4
- package/admin/src/content-manager/hooks/useWysiwyg.js +0 -7
- package/admin/src/content-manager/pages/App/LeftMenu/index.js +0 -142
- package/admin/src/content-manager/pages/App/actions.js +0 -24
- package/admin/src/content-manager/pages/App/components/CardDragPreview.js +0 -95
- package/admin/src/content-manager/pages/App/components/ComponentDragPreview.js +0 -76
- package/admin/src/content-manager/pages/App/components/RelationDragPreview.js +0 -81
- package/admin/src/content-manager/pages/App/constants.js +0 -3
- package/admin/src/content-manager/pages/App/index.js +0 -166
- package/admin/src/content-manager/pages/App/reducer.js +0 -50
- package/admin/src/content-manager/pages/App/selectors.js +0 -36
- package/admin/src/content-manager/pages/App/useContentManagerInitData.js +0 -102
- package/admin/src/content-manager/pages/App/utils/checkPermissions.js +0 -13
- package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +0 -65
- package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +0 -50
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/components/ErrorFallback.js +0 -14
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +0 -134
- package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +0 -62
- package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +0 -62
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +0 -394
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +0 -79
- package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +0 -76
- package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +0 -81
- package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +0 -100
- package/admin/src/content-manager/pages/EditSettingsView/components/GenericInput.js +0 -67
- package/admin/src/content-manager/pages/EditSettingsView/components/LayoutDndProvider/index.js +0 -75
- package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +0 -59
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +0 -141
- package/admin/src/content-manager/pages/EditSettingsView/components/RowItemsLayout.js +0 -42
- package/admin/src/content-manager/pages/EditSettingsView/components/RowsLayout.js +0 -34
- package/admin/src/content-manager/pages/EditSettingsView/hooks/useLayoutDnd.js +0 -7
- package/admin/src/content-manager/pages/EditSettingsView/index.js +0 -404
- package/admin/src/content-manager/pages/EditSettingsView/init.js +0 -19
- package/admin/src/content-manager/pages/EditSettingsView/reducer.js +0 -196
- package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +0 -24
- package/admin/src/content-manager/pages/EditSettingsView/utils/getInputProps.js +0 -30
- package/admin/src/content-manager/pages/EditSettingsView/utils/index.js +0 -2
- package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +0 -106
- package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +0 -69
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/connect.js +0 -12
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/index.js +0 -2
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +0 -21
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/index.js +0 -93
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/connect.js +0 -12
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/index.js +0 -2
- package/admin/src/content-manager/pages/EditView/DraftAndPublishBadge/utils/select.js +0 -14
- package/admin/src/content-manager/pages/EditView/GridRow/index.js +0 -64
- package/admin/src/content-manager/pages/EditView/Header/index.js +0 -303
- package/admin/src/content-manager/pages/EditView/Header/utils/connect.js +0 -12
- package/admin/src/content-manager/pages/EditView/Header/utils/index.js +0 -2
- package/admin/src/content-manager/pages/EditView/Header/utils/select.js +0 -33
- package/admin/src/content-manager/pages/EditView/Information/index.js +0 -132
- package/admin/src/content-manager/pages/EditView/Information/utils/getUnits.js +0 -27
- package/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxCE.js +0 -12
- package/admin/src/content-manager/pages/EditView/InformationBox/index.js +0 -1
- package/admin/src/content-manager/pages/EditView/hooks/useOnce.js +0 -14
- package/admin/src/content-manager/pages/EditView/index.js +0 -297
- package/admin/src/content-manager/pages/EditView/selectors.js +0 -15
- package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +0 -41
- package/admin/src/content-manager/pages/EditView/utils/getCustomFieldUidsFromLayout.js +0 -18
- package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +0 -24
- package/admin/src/content-manager/pages/EditView/utils/index.js +0 -4
- package/admin/src/content-manager/pages/EditViewLayoutManager/Permissions.js +0 -32
- package/admin/src/content-manager/pages/EditViewLayoutManager/actions.js +0 -9
- package/admin/src/content-manager/pages/EditViewLayoutManager/constants.js +0 -2
- package/admin/src/content-manager/pages/EditViewLayoutManager/index.js +0 -52
- package/admin/src/content-manager/pages/EditViewLayoutManager/reducer.js +0 -31
- package/admin/src/content-manager/pages/EditViewLayoutManager/selectors.js +0 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +0 -260
- package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +0 -144
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +0 -203
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +0 -115
- package/admin/src/content-manager/pages/ListSettingsView/constants.js +0 -8
- package/admin/src/content-manager/pages/ListSettingsView/index.js +0 -288
- package/admin/src/content-manager/pages/ListSettingsView/reducer.js +0 -83
- package/admin/src/content-manager/pages/ListView/actions.js +0 -35
- package/admin/src/content-manager/pages/ListView/components/Body/index.js +0 -191
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/ConfirmBulkActionDialog/index.js +0 -169
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +0 -525
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/index.js +0 -233
- package/admin/src/content-manager/pages/ListView/components/CellContent/CellValue.js +0 -51
- package/admin/src/content-manager/pages/ListView/components/CellContent/Media/FileWrapper.js +0 -36
- package/admin/src/content-manager/pages/ListView/components/CellContent/Media/index.js +0 -43
- package/admin/src/content-manager/pages/ListView/components/CellContent/MultipleMedias.js +0 -48
- package/admin/src/content-manager/pages/ListView/components/CellContent/RelationMultiple/index.js +0 -144
- package/admin/src/content-manager/pages/ListView/components/CellContent/RelationSingle/index.js +0 -34
- package/admin/src/content-manager/pages/ListView/components/CellContent/RepeatableComponent/index.js +0 -67
- package/admin/src/content-manager/pages/ListView/components/CellContent/SingleComponent/index.js +0 -37
- package/admin/src/content-manager/pages/ListView/components/CellContent/index.js +0 -99
- package/admin/src/content-manager/pages/ListView/components/CellContent/utils/hasContent.js +0 -65
- package/admin/src/content-manager/pages/ListView/components/CellContent/utils/isSingleRelation.js +0 -3
- package/admin/src/content-manager/pages/ListView/components/ConfirmDialogDelete/index.js +0 -77
- package/admin/src/content-manager/pages/ListView/components/ConfirmDialogDeleteAll/index.js +0 -78
- package/admin/src/content-manager/pages/ListView/components/FieldPicker/index.js +0 -106
- package/admin/src/content-manager/pages/ListView/components/TableRows/index.js +0 -304
- package/admin/src/content-manager/pages/ListView/components/ViewSettingsMenu/index.js +0 -80
- package/admin/src/content-manager/pages/ListView/constants.js +0 -6
- package/admin/src/content-manager/pages/ListView/index.js +0 -905
- package/admin/src/content-manager/pages/ListView/reducer.js +0 -137
- package/admin/src/content-manager/pages/ListView/selectors.js +0 -30
- package/admin/src/content-manager/pages/ListView/utils/buildValidGetParams.js +0 -30
- package/admin/src/content-manager/pages/ListView/utils/index.js +0 -1
- package/admin/src/content-manager/pages/ListViewLayoutManager/Permissions.js +0 -43
- package/admin/src/content-manager/pages/ListViewLayoutManager/index.js +0 -60
- package/admin/src/content-manager/pages/NoContentType/index.js +0 -50
- package/admin/src/content-manager/pages/NoPermissions/index.js +0 -28
- package/admin/src/content-manager/pages/SingleTypeRecursivePath/index.js +0 -88
- package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +0 -49
- package/admin/src/content-manager/sharedReducers/crudReducer/constants.js +0 -9
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +0 -81
- package/admin/src/content-manager/sharedReducers/crudReducer/selectors.js +0 -3
- package/admin/src/content-manager/testUtils/data.js +0 -305
- package/admin/src/content-manager/testUtils/index.js +0 -3
- package/admin/src/content-manager/utils/ItemTypes.js +0 -7
- package/admin/src/content-manager/utils/arrayMoveItem.js +0 -22
- package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +0 -11
- package/admin/src/content-manager/utils/composeRefs.js +0 -28
- package/admin/src/content-manager/utils/createDefaultForm.js +0 -42
- package/admin/src/content-manager/utils/formatLayoutToApi.js +0 -43
- package/admin/src/content-manager/utils/generatePermissionsObject.js +0 -21
- package/admin/src/content-manager/utils/getDisplayName.js +0 -33
- package/admin/src/content-manager/utils/getFieldName.js +0 -6
- package/admin/src/content-manager/utils/getMaxTempKey.js +0 -14
- package/admin/src/content-manager/utils/getTrad.js +0 -3
- package/admin/src/content-manager/utils/index.js +0 -15
- package/admin/src/content-manager/utils/isFieldTypeNumber.js +0 -3
- package/admin/src/content-manager/utils/mergeMetasWithSchema.js +0 -24
- package/admin/src/content-manager/utils/paths.js +0 -37
- package/admin/src/content-manager/utils/removeKeyInObject.js +0 -41
- package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +0 -54
- package/admin/src/content-manager/utils/schema.js +0 -405
- package/admin/src/contexts/Admin/index.js +0 -5
- package/admin/src/contexts/ApiTokenPermissions/index.js +0 -25
- package/admin/src/contexts/Configurations/index.js +0 -5
- package/admin/src/contexts/MarketPlace/index.js +0 -18
- package/admin/src/contexts/PermisssionsDataManagerContext/index.js +0 -5
- package/admin/src/contexts/ThemeToggle/index.js +0 -5
- package/admin/src/contexts/index.js +0 -4
- package/admin/src/core/apis/Components.js +0 -19
- package/admin/src/core/apis/CustomFields.js +0 -124
- package/admin/src/core/apis/Fields.js +0 -18
- package/admin/src/core/apis/Middlewares.js +0 -11
- package/admin/src/core/apis/Plugin.js +0 -30
- package/admin/src/core/apis/Reducers.js +0 -11
- package/admin/src/core/apis/index.js +0 -6
- package/admin/src/core/store/configureStore.js +0 -47
- package/admin/src/core/utils/basename.js +0 -3
- package/admin/src/core/utils/createHook.js +0 -49
- package/admin/src/core/utils/index.js +0 -2
- package/admin/src/exposedHooks.js +0 -27
- package/admin/src/favicon.png +0 -0
- package/admin/src/hooks/index.js +0 -10
- package/admin/src/hooks/useAdminRolePermissions/__mocks__/index.js +0 -5
- package/admin/src/hooks/useAdminRolePermissions/index.js +0 -34
- package/admin/src/hooks/useAdminRoles/__mocks__/index.js +0 -5
- package/admin/src/hooks/useAdminRoles/index.js +0 -50
- package/admin/src/hooks/useAdminUsers/__mocks__/index.js +0 -5
- package/admin/src/hooks/useAdminUsers/index.js +0 -1
- package/admin/src/hooks/useAdminUsers/useAdminUsers.js +0 -47
- package/admin/src/hooks/useConfigurations/__mocks__/index.js +0 -7
- package/admin/src/hooks/useConfigurations/index.js +0 -11
- package/admin/src/hooks/useContentTypes/__mocks__/index.js +0 -6
- package/admin/src/hooks/useContentTypes/index.js +0 -1
- package/admin/src/hooks/useContentTypes/useContentTypes.js +0 -56
- package/admin/src/hooks/useDebounce/index.js +0 -19
- package/admin/src/hooks/useEnterprise/index.js +0 -1
- package/admin/src/hooks/useEnterprise/useEnterprise.js +0 -36
- package/admin/src/hooks/useInjectReducer/index.js +0 -1
- package/admin/src/hooks/useInjectReducer/useInjectReducer.js +0 -20
- package/admin/src/hooks/useLicenseLimitNotification/index.js +0 -5
- package/admin/src/hooks/useMenu/index.js +0 -86
- package/admin/src/hooks/useMenu/utils/checkPermissions.js +0 -13
- package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +0 -31
- package/admin/src/hooks/useMenu/utils/getPluginSectionLinks.js +0 -17
- package/admin/src/hooks/useNavigatorOnLine/index.js +0 -31
- package/admin/src/hooks/usePermissionsDataManager/index.js +0 -7
- package/admin/src/hooks/useRegenerate/index.js +0 -40
- package/admin/src/hooks/useReleaseNotification/index.js +0 -31
- package/admin/src/hooks/useReleaseNotification/utils/api.js +0 -20
- package/admin/src/hooks/useReleaseNotification/utils/checkLatestStrapiVersion.js +0 -11
- package/admin/src/hooks/useSettingsForm/index.js +0 -151
- package/admin/src/hooks/useSettingsForm/init.js +0 -5
- package/admin/src/hooks/useSettingsForm/reducer.js +0 -62
- package/admin/src/hooks/useSettingsMenu/constants.js +0 -39
- package/admin/src/hooks/useSettingsMenu/index.js +0 -125
- package/admin/src/hooks/useSettingsMenu/utils/formatLinks.js +0 -12
- package/admin/src/hooks/useSettingsMenu/utils/sortLinks.js +0 -5
- package/admin/src/hooks/useThemeToggle/index.js +0 -11
- package/admin/src/index.html +0 -15
- package/admin/src/index.js +0 -82
- package/admin/src/injectionZones.js +0 -25
- package/admin/src/layouts/AppLayout/index.js +0 -33
- package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +0 -29
- package/admin/src/layouts/UnauthenticatedLayout/index.js +0 -55
- package/admin/src/pages/Admin/Onboarding/constants.js +0 -46
- package/admin/src/pages/Admin/Onboarding/index.js +0 -226
- package/admin/src/pages/Admin/index.js +0 -126
- package/admin/src/pages/App/constants.js +0 -4
- package/admin/src/pages/App/index.js +0 -203
- package/admin/src/pages/App/reducer.js +0 -30
- package/admin/src/pages/App/selectors.js +0 -12
- package/admin/src/pages/AuthPage/components/FieldActionWrapper/index.js +0 -14
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +0 -112
- package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +0 -59
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +0 -180
- package/admin/src/pages/AuthPage/components/Login/index.js +0 -23
- package/admin/src/pages/AuthPage/components/Oops/index.js +0 -58
- package/admin/src/pages/AuthPage/components/Register/index.js +0 -378
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +0 -190
- package/admin/src/pages/AuthPage/constants.js +0 -122
- package/admin/src/pages/AuthPage/index.js +0 -319
- package/admin/src/pages/AuthPage/init.js +0 -5
- package/admin/src/pages/AuthPage/reducer.js +0 -41
- package/admin/src/pages/HomePage/CloudBox.js +0 -85
- package/admin/src/pages/HomePage/ContentBlocks.js +0 -106
- package/admin/src/pages/HomePage/HomeHeader.js +0 -76
- package/admin/src/pages/HomePage/SocialLinks.js +0 -203
- package/admin/src/pages/HomePage/assets/corner-ornament.svg +0 -48
- package/admin/src/pages/HomePage/assets/strapi-cloud-background.png +0 -0
- package/admin/src/pages/HomePage/assets/strapi-cloud-flags.svg +0 -1
- package/admin/src/pages/HomePage/assets/strapi-cloud-icon.svg +0 -1
- package/admin/src/pages/HomePage/index.js +0 -107
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +0 -121
- package/admin/src/pages/InstalledPluginsPage/hooks/usePlugins/index.js +0 -29
- package/admin/src/pages/InstalledPluginsPage/index.js +0 -29
- package/admin/src/pages/InternalErrorPage/index.js +0 -50
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/EmptyNpmPackageGrid.js +0 -27
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +0 -31
- package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +0 -40
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js +0 -109
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +0 -81
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +0 -75
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +0 -189
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +0 -43
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +0 -104
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +0 -105
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +0 -87
- package/admin/src/pages/MarketplacePage/components/NpmPackagesPagination/index.js +0 -27
- package/admin/src/pages/MarketplacePage/components/OfflineLayout/index.js +0 -47
- package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +0 -55
- package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +0 -106
- package/admin/src/pages/MarketplacePage/constants.js +0 -1
- package/admin/src/pages/MarketplacePage/hooks/useFetchMarketplacePlugins/index.js +0 -44
- package/admin/src/pages/MarketplacePage/hooks/useFetchMarketplaceProviders/index.js +0 -44
- package/admin/src/pages/MarketplacePage/index.js +0 -263
- package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +0 -87
- package/admin/src/pages/NotFoundPage/index.js +0 -50
- package/admin/src/pages/ProfilePage/components/Password/index.js +0 -216
- package/admin/src/pages/ProfilePage/components/Preferences/index.js +0 -161
- package/admin/src/pages/ProfilePage/components/UserInfo/index.js +0 -113
- package/admin/src/pages/ProfilePage/index.js +0 -235
- package/admin/src/pages/ProfilePage/utils/schema.js +0 -7
- package/admin/src/pages/SettingsPage/components/Filters/index.js +0 -54
- package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +0 -77
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +0 -110
- package/admin/src/pages/SettingsPage/components/Tokens/LifeSpanInput/index.js +0 -99
- package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +0 -77
- package/admin/src/pages/SettingsPage/components/Tokens/Table/DefaultButton/index.js +0 -64
- package/admin/src/pages/SettingsPage/components/Tokens/Table/DeleteButton/index.js +0 -53
- package/admin/src/pages/SettingsPage/components/Tokens/Table/ReadButton/index.js +0 -21
- package/admin/src/pages/SettingsPage/components/Tokens/Table/UpdateButton/index.js +0 -21
- package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +0 -161
- package/admin/src/pages/SettingsPage/components/Tokens/TokenBox/index.js +0 -81
- package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +0 -52
- package/admin/src/pages/SettingsPage/components/Tokens/TokenName/index.js +0 -47
- package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +0 -71
- package/admin/src/pages/SettingsPage/components/Tokens/constants.js +0 -2
- package/admin/src/pages/SettingsPage/constants.js +0 -167
- package/admin/src/pages/SettingsPage/index.js +0 -73
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +0 -56
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/getMethodColor.js +0 -41
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +0 -72
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +0 -30
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +0 -160
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +0 -39
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +0 -164
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/LoadingView/index.js +0 -49
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +0 -40
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +0 -74
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +0 -342
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/init.js +0 -13
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +0 -73
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/getDateOfExpiration.js +0 -16
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/index.js +0 -5
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/schema.js +0 -14
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +0 -34
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +0 -187
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +0 -48
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedCreateView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedListView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +0 -143
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/init.js +0 -16
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/reducer.js +0 -63
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +0 -128
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +0 -28
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +0 -25
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +0 -67
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +0 -181
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +0 -85
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +0 -52
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +0 -93
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +0 -86
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +0 -28
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +0 -293
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +0 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +0 -17
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +0 -76
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +0 -22
- package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +0 -284
- package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/utils/schema.js +0 -9
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/CollapseLabel/index.js +0 -11
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsButton/index.js +0 -58
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/index.js +0 -72
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/ActionRow/utils/options.js +0 -31
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +0 -161
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +0 -47
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +0 -262
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +0 -57
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +0 -228
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +0 -60
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/CarretIcon/index.js +0 -11
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/Header/index.js +0 -67
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +0 -243
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/index.js +0 -62
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/utils/generateHeadersFromActions.js +0 -12
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/index.js +0 -77
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/activeStyle.js +0 -18
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/getAvailableActions.js +0 -10
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/utils/index.js +0 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapses/index.js +0 -52
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypes/index.js +0 -46
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Curve/index.js +0 -56
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +0 -94
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/findDisplayedActions.js +0 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +0 -39
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/index.js +0 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/HiddenAction/index.js +0 -9
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/README.md +0 -372
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/index.js +0 -185
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/init.js +0 -41
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +0 -182
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/constants.js +0 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +0 -182
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +0 -48
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/findMatchingPermissions.js +0 -4
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +0 -124
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatLayoutForSettingsAndPlugins.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatPermissionsToAPI.js +0 -21
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatSettingsPermissionsToAPI.js +0 -59
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/tabLabels.js +0 -24
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +0 -42
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +0 -31
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PermissionsDataManagerProvider/index.js +0 -28
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/Row/index.js +0 -77
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +0 -153
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +0 -33
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/getConditionsButtonState.js +0 -17
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/index.js +0 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/index.js +0 -52
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RequiredSign/index.js +0 -12
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +0 -107
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RowLabelWithCheckbox/index.js +0 -98
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/index.js +0 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +0 -20
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/getCheckboxState.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/index.js +0 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/removeConditionKeyFromData.js +0 -15
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +0 -185
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js +0 -8
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/EmptyRole/index.js +0 -1
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +0 -72
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +0 -347
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/reducer.js +0 -38
- package/admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js +0 -32
- package/admin/src/pages/SettingsPage/pages/Roles/ProtectedListPage/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissionLayout/index.js +0 -23
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +0 -144
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js +0 -49
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +0 -268
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/getDateOfExpiration.js +0 -16
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/index.js +0 -4
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +0 -11
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +0 -224
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js +0 -48
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedCreateView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedEditView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +0 -313
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/api.js +0 -11
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +0 -116
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +0 -23
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +0 -136
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js +0 -91
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +0 -271
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/index.js +0 -35
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +0 -201
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/displayedFilters.js +0 -29
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +0 -101
- package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +0 -54
- package/admin/src/pages/SettingsPage/pages/Users/ProtectedListPage/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/MagicLinkWrapper.js +0 -46
- package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js +0 -30
- package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +0 -101
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/edit.js +0 -12
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/index.js +0 -3
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +0 -36
- package/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/roles.js +0 -8
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/EventTableCE.js +0 -13
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/index.js +0 -1
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/Events/index.js +0 -333
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/Combobox.js +0 -97
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +0 -109
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +0 -168
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +0 -196
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/utils/makeWebhookValidationSchema.js +0 -68
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/index.js +0 -152
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +0 -400
- package/admin/src/pages/SettingsPage/pages/Webhooks/ProtectedCreateView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js +0 -19
- package/admin/src/pages/SettingsPage/pages/Webhooks/ProtectedListView/index.js +0 -19
- package/admin/src/pages/UseCasePage/index.js +0 -175
- package/admin/src/plugins.js +0 -17
- package/admin/src/reducers.js +0 -23
- package/admin/src/shared/components/InjectionZone/index.js +0 -17
- package/admin/src/shared/components/index.js +0 -2
- package/admin/src/shared/hooks/index.js +0 -2
- package/admin/src/shared/hooks/useAdminProvider/index.js +0 -11
- package/admin/src/shared/hooks/useInjectionZone/index.js +0 -11
- package/admin/src/translations/ar.json +0 -898
- package/admin/src/translations/ca.json +0 -692
- package/admin/src/translations/cs.json +0 -269
- package/admin/src/translations/de.json +0 -684
- package/admin/src/translations/dk.json +0 -602
- package/admin/src/translations/en.json +0 -971
- package/admin/src/translations/es.json +0 -760
- package/admin/src/translations/eu.json +0 -796
- package/admin/src/translations/fr.json +0 -724
- package/admin/src/translations/gu.json +0 -609
- package/admin/src/translations/he.json +0 -302
- package/admin/src/translations/hi.json +0 -690
- package/admin/src/translations/hu.json +0 -796
- package/admin/src/translations/id.json +0 -426
- package/admin/src/translations/it.json +0 -437
- package/admin/src/translations/ja.json +0 -601
- package/admin/src/translations/ko.json +0 -599
- package/admin/src/translations/languageNativeNames.js +0 -38
- package/admin/src/translations/ml.json +0 -690
- package/admin/src/translations/ms.json +0 -320
- package/admin/src/translations/nl.json +0 -792
- package/admin/src/translations/no.json +0 -288
- package/admin/src/translations/pl.json +0 -689
- package/admin/src/translations/pt-BR.json +0 -758
- package/admin/src/translations/pt.json +0 -276
- package/admin/src/translations/ru.json +0 -906
- package/admin/src/translations/sa.json +0 -690
- package/admin/src/translations/sk.json +0 -654
- package/admin/src/translations/sv.json +0 -791
- package/admin/src/translations/th.json +0 -408
- package/admin/src/translations/tr.json +0 -749
- package/admin/src/translations/uk.json +0 -321
- package/admin/src/translations/vi.json +0 -276
- package/admin/src/translations/zh-Hans.json +0 -919
- package/admin/src/translations/zh.json +0 -800
- package/admin/src/tsconfig.json +0 -10
- package/admin/src/utils/checkFormValidity.js +0 -15
- package/admin/src/utils/createRoute.js +0 -47
- package/admin/src/utils/formatAPIErrors.js +0 -17
- package/admin/src/utils/getAttributesToDisplay.js +0 -19
- package/admin/src/utils/getExistingActions.js +0 -32
- package/admin/src/utils/getFullName.js +0 -9
- package/admin/src/utils/index.js +0 -9
- package/admin/src/utils/makeUniqueRoutes.js +0 -6
- package/admin/src/utils/sortLinks.js +0 -5
- package/admin/src/utils/uniqueAdminHash.js +0 -22
- package/doc/change-the-login-page-logo.md +0 -28
- package/doc/customize-menu.md +0 -17
- package/doc/disable-tracking.md +0 -16
- package/ee/LICENSE +0 -1
- package/ee/admin/constants.js +0 -19
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js +0 -42
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js +0 -70
- package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js +0 -71
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +0 -30
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js +0 -137
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/index.js +0 -1
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js +0 -255
- package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/index.js +0 -1
- package/ee/admin/content-manager/pages/EditView/InformationBox/constants.js +0 -2
- package/ee/admin/content-manager/pages/EditView/InformationBox/index.js +0 -1
- package/ee/admin/content-manager/pages/ListSettingsView/constants.js +0 -7
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js +0 -21
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsStageEE.js +0 -38
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js +0 -51
- package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/index.js +0 -2
- package/ee/admin/hooks/__mocks__/useLicenseLimits.js +0 -8
- package/ee/admin/hooks/useAuthProviders.js +0 -25
- package/ee/admin/hooks/useLicenseLimitNotification.js +0 -99
- package/ee/admin/hooks/useLicenseLimits.js +0 -37
- package/ee/admin/hooks/useSettingsMenu/constants.js +0 -38
- package/ee/admin/pages/App/constants.js +0 -9
- package/ee/admin/pages/AuthPage/components/Login/index.js +0 -67
- package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +0 -114
- package/ee/admin/pages/AuthPage/components/Providers/index.js +0 -93
- package/ee/admin/pages/AuthPage/constants.js +0 -12
- package/ee/admin/pages/AuthResponse/index.js +0 -66
- package/ee/admin/pages/HomePage/index.js +0 -11
- package/ee/admin/pages/SettingsPage/constants.js +0 -73
- package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +0 -105
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js +0 -42
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js +0 -107
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js +0 -22
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js +0 -62
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js +0 -35
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js +0 -87
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +0 -60
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useFormatTimeStamp.js +0 -24
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +0 -110
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js +0 -34
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +0 -107
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js +0 -38
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ProtectedListPage/index.js +0 -19
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +0 -113
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/AddStage.js +0 -87
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Layout/Layout.js +0 -65
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Layout/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal/LimitsModal.js +0 -111
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal/assets/balloon.png +0 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal/index.js +0 -3
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview/StageDragPreview.js +0 -46
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +0 -569
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +0 -99
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +0 -186
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/index.js +0 -1
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +0 -43
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +0 -50
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflowsStages.js +0 -36
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +0 -394
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/index.js +0 -18
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +0 -467
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/index.js +0 -18
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +0 -399
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/index.js +0 -18
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +0 -221
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/selectors.js +0 -45
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/colors.js +0 -39
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/validateWorkflow.js +0 -100
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +0 -244
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/utils/schema.js +0 -19
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +0 -59
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/ModalForm/constants.js +0 -30
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +0 -13
- package/ee/admin/pages/SettingsPage/pages/Users/components/MagicLink/index.js +0 -43
- package/ee/admin/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/EventTableEE.js +0 -22
- package/ee/admin/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/index.js +0 -1
- package/ee/admin/permissions/customPermissions.js +0 -18
- package/env.js +0 -42
- package/index.html +0 -16
- package/jest.config.front.js +0 -7
- package/scripts/build.js +0 -118
- package/scripts/create-dev-plugins-file.js +0 -33
- package/utils/create-cache-dir.js +0 -80
- package/utils/get-custom-app-config-file.js +0 -33
- package/utils/get-custom-webpack-config.js +0 -38
- package/utils/index.js +0 -13
- package/utils/plugins.js +0 -223
- package/utils/should-build-admin.js +0 -52
- package/utils/watch-admin-files.js +0 -59
- package/webpack.alias.js +0 -40
- package/webpack.config.js +0 -173
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-edc9bb0b.js","sources":["../../admin/src/components/NoJavascript.tsx","../../admin/src/components/DefaultDocument.tsx","../../admin/src/components/PrivateRoute.tsx","../../admin/src/constants.ts","../../admin/src/contexts/configuration.ts","../../admin/src/hooks/useEnterprise.ts","../../admin/src/components/LanguageProvider.tsx","../../admin/src/utils/formatAPIErrors.ts","../../admin/src/layouts/UnauthenticatedLayout.tsx","../../admin/src/components/UnauthenticatedLogo.tsx","../../admin/src/pages/AuthPage/components/FieldActionWrapper/index.js","../../admin/src/pages/AuthPage/components/Login/BaseLogin.js","../../admin/src/pages/AuthPage/components/Login/index.js","../../admin/src/pages/AuthPage/components/ForgotPassword/index.js","../../admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js","../../admin/src/pages/AuthPage/components/Oops/index.js","../../admin/src/components/NpsSurvey.tsx","../../admin/src/pages/AuthPage/components/Register/index.js","../../admin/src/pages/AuthPage/components/ResetPassword/index.js","../../admin/src/pages/AuthPage/constants.js","../../admin/src/pages/AuthPage/init.js","../../admin/src/pages/AuthPage/reducer.js","../../admin/src/pages/AuthPage/index.js","../../admin/src/pages/NotFoundPage.tsx","../../admin/src/pages/UseCasePage.tsx","../../admin/src/utils/createRoute.tsx","../../admin/src/App.tsx","../../admin/src/assets/images/logo-strapi-2022.svg","../../admin/src/contexts/admin.ts","../../admin/src/components/ConfigurationProvider.tsx","../../admin/src/components/GuidedTour/Provider.tsx","../../admin/src/contexts/themeToggle.ts","../../admin/src/components/Theme.tsx","../../admin/src/components/ThemeToggleProvider.tsx","../../admin/src/components/Providers.tsx","../../admin/src/core/apis/Components.ts","../../admin/src/core/apis/CustomFields.ts","../../admin/src/core/apis/Fields.ts","../../admin/src/core/apis/Middlewares.ts","../../admin/src/core/apis/Plugin.ts","../../admin/src/core/apis/Reducers.ts","../../admin/src/core/store/hooks.ts","../../admin/src/components/RBACProvider.tsx","../../admin/src/content-manager/hooks/useSyncRbac/constants.js","../../admin/src/content-manager/hooks/useSyncRbac/reducer.js","../../admin/src/content-manager/pages/App/constants.js","../../admin/src/content-manager/pages/App/reducer.js","../../admin/src/content-manager/pages/EditViewLayoutManager/constants.js","../../admin/src/content-manager/pages/EditViewLayoutManager/reducer.js","../../admin/src/content-manager/pages/ListView/constants.js","../../admin/src/content-manager/pages/ListView/reducer.js","../../admin/src/content-manager/sharedReducers/crudReducer/constants.js","../../admin/src/content-manager/sharedReducers/crudReducer/reducer.js","../../admin/src/reducer.ts","../../admin/src/core/store/configure.ts","../../admin/src/core/utils/basename.ts","../../admin/src/core/utils/createHook.ts","../../admin/src/shared/hooks/useInjectionZone.ts","../../admin/src/shared/components/InjectionZone.tsx","../../admin/src/translations/languageNativeNames.ts","../../admin/src/StrapiApp.tsx","../../admin/src/render.ts"],"sourcesContent":["const styles = `\n.strapi--root {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n background: #fff;\n}\n\n.strapi--no-js {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n font-family: helvetica, arial, sans-serif;\n}\n`;\n\n/**\n * @internal\n *\n * @description this belongs to our default document that we render.\n */\nconst NoJavascript = () => {\n return (\n <noscript>\n <div className=\"strapi--root\">\n <div className=\"strapi--no-js\">\n <style type=\"text/css\">{styles}</style>\n <h1>JavaScript disabled</h1>\n <p>\n Please <a href=\"https://www.enable-javascript.com/\">enable JavaScript</a> in your\n browser and reload the page to proceed.\n </p>\n </div>\n </div>\n </noscript>\n );\n};\n\nexport { NoJavascript };\n","import { NoJavascript } from './NoJavascript';\n\n/**\n * TODO: add favicons.........\n */\n\nconst globalStyles = `\n html,\n body,\n #strapi {\n height: 100%;\n }\n body {\n margin: 0;\n -webkit-font-smoothing: antialiased;\n }\n`;\n\n/**\n * @internal\n */\nconst DefaultDocument = () => {\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\" />\n <meta name=\"robots\" content=\"noindex\" />\n <meta name=\"referrer\" content=\"same-origin\" />\n\n <title>Strapi Admin</title>\n <style>{globalStyles}</style>\n </head>\n <body>\n <div id=\"strapi\" />\n <NoJavascript />\n </body>\n </html>\n );\n};\n\nexport { DefaultDocument };\n","import * as React from 'react';\n\nimport { auth } from '@strapi/helper-plugin';\nimport { Redirect, Route, useLocation } from 'react-router-dom';\n\ntype PropsOf<T> = T extends React.ComponentType<infer P> ? P : object;\n\ntype PrivateRouteProps<TComponent extends React.ElementType> = {\n component: TComponent;\n path: string;\n} & PropsOf<TComponent>;\n\nconst PrivateRoute = <TComponent extends React.ElementType>({\n component: Component,\n path,\n ...rest\n}: PrivateRouteProps<TComponent>) => {\n const { pathname, search } = useLocation();\n\n return (\n <Route\n path={path}\n render={(props) =>\n auth.getToken() !== null ? (\n <Component {...rest} {...props} />\n ) : (\n <Redirect\n to={{\n pathname: '/auth/login',\n search:\n pathname !== '/'\n ? `?redirectTo=${encodeURIComponent(`${pathname}${search}`)}`\n : undefined,\n }}\n />\n )\n }\n />\n );\n};\n\nexport { PrivateRoute };\n","export 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};\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 const ACTION_SET_APP_RUNTIME_STATUS = 'StrapiAdmin/APP/SET_APP_RUNTIME_STATUS';\nexport const ACTION_SET_ADMIN_PERMISSIONS = 'StrapiAdmin/App/SET_ADMIN_PERMISSIONS';\n","import { createContext } from '@radix-ui/react-context';\n\nexport interface ConfigurationContextValue {\n logos: {\n auth: { custom?: string | null; default: string };\n menu: { custom?: string | null; default: string };\n };\n showTutorials: boolean;\n showReleaseNotification: boolean;\n updateProjectSettings: (settings: { authLogo?: string; menuLogo?: string }) => void;\n}\n\nconst [ConfigurationContextProvider, useConfigurationContext] =\n createContext<ConfigurationContextValue>('ConfigurationContext');\n\nconst useConfiguration = () => useConfigurationContext('useConfiguration');\n\nexport { ConfigurationContextProvider, useConfiguration };\n","import * as React from 'react';\n\nimport { useCallbackRef } from '@strapi/helper-plugin';\n\n/**\n * TODO: this hook needs typing better, it's a bit similar to react-query's useQuery tbf\n * We have an async function that returns something, and we can set initialData as well as\n * a select function, the return type of the function should infer it all...\n */\n\nfunction isEnterprise() {\n return window.strapi.isEE;\n}\n\nexport interface UseEnterpriseOptions<TCEData, TEEData, TCombinedData> {\n defaultValue?: TCEData | TEEData | null;\n combine?: (ceData: TCEData, eeData: TEEData) => TCEData | TEEData | TCombinedData;\n enabled?: boolean;\n}\n\nexport function useEnterprise<TCEData, TEEData, TCombinedData = unknown>(\n ceData: TCEData,\n eeCallback: () => Promise<TEEData>,\n {\n defaultValue = null,\n combine = <C, E>(ceData: C, eeData: E) => eeData,\n enabled = true,\n }: UseEnterpriseOptions<TCEData, TEEData, TCombinedData> = {}\n) {\n const eeCallbackRef = useCallbackRef(eeCallback);\n const combineCallbackRef = useCallbackRef(combine);\n\n // We have to use a nested object here, because functions (e.g. Components)\n // can not be stored as value directly\n const [{ data }, setData] = React.useState<{ data: TCEData | TEEData | TCombinedData | null }>({\n data: isEnterprise() && enabled ? defaultValue : ceData,\n });\n\n React.useEffect(() => {\n async function importEE() {\n const eeData = await eeCallbackRef();\n\n setData({ data: combineCallbackRef(ceData, eeData) });\n }\n\n if (isEnterprise() && enabled) {\n importEE();\n }\n }, [ceData, eeCallbackRef, combineCallbackRef, enabled]);\n\n return data;\n}\n","/*\n *\n * LanguageProvider\n *\n * this component connects the redux state language locale to the\n * IntlProvider component and i18n messages (loaded from `app/translations`)\n */\n\nimport * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport defaultsDeep from 'lodash/defaultsDeep';\nimport { IntlProvider } from 'react-intl';\n\n/* -------------------------------------------------------------------------------------------------\n * LocalesContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LocalesContextValue {\n changeLocale: (locale: keyof State['localeNames']) => void;\n localeNames: Record<string, string>;\n}\n\nconst [LocalesContextProvider, useLocalesContext] =\n createContext<LocalesContextValue>('LocalesContext');\n\nconst useLocales = () => useLocalesContext('useLocales');\n\n/* -------------------------------------------------------------------------------------------------\n * LanguageProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst LANGUAGE_LOCAL_STORAGE_KEY = 'strapi-admin-language';\n\ninterface LanguageProviderProps {\n children: React.ReactNode;\n localeNames: Record<string, string>;\n messages: Record<string, Record<string, string>>;\n}\n\nconst LanguageProvider = ({ children, localeNames, messages }: LanguageProviderProps) => {\n const [{ locale }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => {\n const languageFromLocaleStorage = window.localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY);\n if (languageFromLocaleStorage && localeNames[languageFromLocaleStorage]) {\n return {\n locale: languageFromLocaleStorage,\n localeNames,\n };\n } else {\n return {\n locale: 'en',\n localeNames,\n };\n }\n }\n );\n\n React.useEffect(() => {\n // Set user language in local storage.\n window.localStorage.setItem(LANGUAGE_LOCAL_STORAGE_KEY, locale);\n document.documentElement.setAttribute('lang', locale);\n }, [locale]);\n\n const changeLocale = React.useCallback((locale: keyof State['localeNames']) => {\n dispatch({\n type: 'CHANGE_LOCALE',\n locale,\n });\n }, []);\n\n const appMessages = defaultsDeep(messages[locale], messages.en);\n\n return (\n <IntlProvider locale={locale} defaultLocale=\"en\" messages={appMessages} textComponent=\"span\">\n <LocalesContextProvider changeLocale={changeLocale} localeNames={localeNames}>\n {children}\n </LocalesContextProvider>\n </IntlProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n localeNames: Record<string, string>;\n locale: keyof State['localeNames'];\n}\n\nconst initialState: State = {\n localeNames: { en: 'English' },\n locale: 'en',\n};\n\ninterface ChangeLocaleAction {\n type: 'CHANGE_LOCALE';\n locale: keyof State['localeNames'];\n}\n\ntype Action = ChangeLocaleAction;\n\nconst reducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case 'CHANGE_LOCALE': {\n const { locale } = action;\n\n if (!state.localeNames[locale]) {\n return state;\n }\n\n return { ...state, locale };\n }\n default: {\n return state;\n }\n }\n};\n\nexport { LanguageProvider, useLocales, LANGUAGE_LOCAL_STORAGE_KEY };\nexport type { LanguageProviderProps, LocalesContextValue };\n","export const formatAPIErrors = ({ data }: { data: Record<string, string[]> }) => {\n try {\n return Object.keys(data).reduce(\n (acc: Record<string, { id: string; defaultMessage: string }>, current) => {\n const errorMessage = data[current][0];\n acc[current] = {\n id: errorMessage,\n defaultMessage: errorMessage,\n };\n\n return acc;\n },\n {}\n );\n } catch (err) {\n return {};\n }\n};\n","import * as React from 'react';\n\nimport { Box, Flex, SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLocales } from '../components/LanguageProvider';\n\nconst Wrapper = styled(Box)`\n margin: 0 auto;\n width: 552px;\n`;\n\nexport const Column = styled(Flex)`\n flex-direction: column;\n`;\n\nconst LocaleToggle = () => {\n const { changeLocale, localeNames } = useLocales();\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 changeLocale(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 as=\"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","import styled from 'styled-components';\n\nimport { useConfiguration } from '../contexts/configuration';\n\nconst Img = styled.img`\n height: ${72 / 16}rem;\n`;\n\nconst Logo = () => {\n const {\n logos: { auth },\n } = useConfiguration();\n\n return <Img src={auth?.custom ?? auth.default} aria-hidden alt=\"\" />;\n};\n\nexport { Logo };\n","import { FieldAction } from '@strapi/design-system';\nimport styled from 'styled-components';\n\nconst FieldActionWrapper = styled(FieldAction)`\n svg {\n height: 1rem;\n width: 1rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\nexport default FieldActionWrapper;\n","import React, { useState } from 'react';\n\nimport { Box, Button, Checkbox, Flex, Main, TextInput, Typography } from '@strapi/design-system';\nimport { Form, Link } from '@strapi/helper-plugin';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { Logo } from '../../../../components/UnauthenticatedLogo';\nimport { Column, LayoutContent } from '../../../../layouts/UnauthenticatedLayout';\nimport FieldActionWrapper from '../FieldActionWrapper';\n\nconst PasswordInput = styled(TextInput)`\n ::-ms-reveal {\n display: none;\n }\n`;\n\nconst Login = ({ onSubmit, schema, children }) => {\n const [passwordShown, setPasswordShown] = useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <Main>\n <LayoutContent>\n <Formik\n enableReinitialize\n initialValues={{\n email: '',\n password: '',\n rememberMe: false,\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => (\n <Form noValidate>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={1}>\n <Typography variant=\"alpha\" as=\"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 {errors.errorMessage && (\n <Typography\n id=\"global-form-error\"\n role=\"alert\"\n tabIndex={-1}\n textColor=\"danger600\"\n >\n {errors.errorMessage}\n </Typography>\n )}\n </Column>\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TextInput\n error={\n errors.email\n ? formatMessage({\n id: errors.email,\n defaultMessage: 'This value is required.',\n })\n : ''\n }\n value={values.email}\n onChange={handleChange}\n label={formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' })}\n placeholder={formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n })}\n name=\"email\"\n required\n />\n <PasswordInput\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: 'This value is required.',\n })\n : ''\n }\n onChange={handleChange}\n value={values.password}\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n name=\"password\"\n type={passwordShown ? 'text' : 'password'}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Eye /> : <EyeStriked />}\n </FieldActionWrapper>\n }\n required\n />\n <Checkbox\n onValueChange={(checked) => {\n handleChange({ target: { value: checked, name: 'rememberMe' } });\n }}\n value={values.rememberMe}\n aria-label=\"rememberMe\"\n name=\"rememberMe\"\n >\n {formatMessage({\n id: 'Auth.form.rememberMe.label',\n defaultMessage: 'Remember me',\n })}\n </Checkbox>\n <Button fullWidth type=\"submit\">\n {formatMessage({ id: 'Auth.form.button.login', defaultMessage: 'Login' })}\n </Button>\n </Flex>\n </Form>\n )}\n </Formik>\n {children}\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link 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 );\n};\n\nLogin.defaultProps = {\n children: null,\n onSubmit() {},\n};\n\nLogin.propTypes = {\n children: PropTypes.node,\n onSubmit: PropTypes.func,\n schema: PropTypes.shape({\n type: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default Login;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\n\nimport { UnauthenticatedLayout } from '../../../../layouts/UnauthenticatedLayout';\n\nimport BaseLogin from './BaseLogin';\n\nexport const LoginCE = (loginProps) => {\n return (\n <UnauthenticatedLayout>\n <BaseLogin {...loginProps} />\n </UnauthenticatedLayout>\n );\n};\n\nLoginCE.defaultProps = {\n onSubmit: (e) => e.preventDefault(),\n};\n\nLoginCE.propTypes = {\n onSubmit: PropTypes.func,\n};\n","import React from 'react';\n\nimport { Box, Button, Flex, Main, TextInput, Typography } from '@strapi/design-system';\nimport { Form, Link } from '@strapi/helper-plugin';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { Logo } from '../../../../components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../layouts/UnauthenticatedLayout';\n\nconst ForgotPassword = ({ onSubmit, schema }) => {\n const { formatMessage } = useIntl();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Formik\n enableReinitialize\n initialValues={{\n email: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => (\n <Form noValidate>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography as=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'Auth.form.button.password-recovery',\n defaultMessage: 'Password Recovery',\n })}\n </Typography>\n </Box>\n {errors.errorMessage && (\n <Typography\n id=\"global-form-error\"\n role=\"alert\"\n tabIndex={-1}\n textColor=\"danger600\"\n >\n {formatMessage({\n id: errors.errorMessage,\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n )}\n </Column>\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TextInput\n error={\n errors.email\n ? formatMessage({\n id: errors.email,\n defaultMessage: 'This email is invalid.',\n })\n : ''\n }\n value={values.email}\n onChange={handleChange}\n label={formatMessage({ id: 'Auth.form.email.label', defaultMessage: 'Email' })}\n placeholder={formatMessage({\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'kai@doe.com',\n })}\n name=\"email\"\n required\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 )}\n </Formik>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link 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\nForgotPassword.defaultProps = {\n onSubmit: (e) => e.preventDefault(),\n};\n\nForgotPassword.propTypes = {\n onSubmit: PropTypes.func,\n schema: PropTypes.shape({\n type: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ForgotPassword;\n","import React from 'react';\n\nimport { Box, Flex, Main, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\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 as=\"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 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 default ForgotPasswordSuccess;\n","import React from 'react';\n\nimport { Box, Flex, Main, Typography } from '@strapi/design-system';\nimport { Link, useQuery } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\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 query = useQuery();\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 as=\"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 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 default Oops;\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 FieldLabel,\n FieldInput,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { auth, useNotification, useAppInfo, usePersistentState } from '@strapi/helper-plugin';\nimport { Cross } from '@strapi/icons';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport styled, { useTheme } from 'styled-components';\nimport * as yup from 'yup';\n\nconst FieldWrapper = styled(Field)`\n height: ${32 / 16}rem;\n width: ${32 / 16}rem;\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 theme = useTheme();\n const { formatMessage } = useIntl();\n const { npsSurveySettings, setNpsSurveySettings } = useNpsSurveySettings();\n const [isFeedbackResponse, setIsFeedbackResponse] = React.useState(false);\n const toggleNotification = useNotification();\n const { currentEnvironment, strapiVersion } = useAppInfo();\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 const { mutate, isLoading } = useMutation<unknown, unknown, NpsSurveyMutationBody>(\n async (form) => {\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(form),\n });\n\n if (!res.ok) {\n throw new Error('Failed to submit NPS survey');\n }\n\n return res;\n },\n {\n onSuccess() {\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 },\n onError() {\n toggleNotification({\n type: 'warning',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n },\n }\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 if (!displaySurvey) {\n return null;\n }\n\n if (!surveyIsShown) {\n return null;\n }\n\n const handleSubmitResponse = ({\n npsSurveyRating,\n npsSurveyFeedback,\n }: {\n npsSurveyRating: NpsSurveyMutationBody['rating'];\n npsSurveyFeedback: NpsSurveyMutationBody['comment'];\n }) => {\n const userInfo = auth.getUserInfo();\n mutate({\n email: typeof userInfo === 'object' && userInfo !== null ? userInfo.email : '',\n rating: npsSurveyRating,\n comment: npsSurveyFeedback,\n environment: currentEnvironment,\n version: strapiVersion ?? undefined,\n license: window.strapi.projectType,\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 }) => (\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={theme.zIndices[2]}\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 as=\"fieldset\" width=\"100%\">\n <Flex justifyContent=\"space-between\" width=\"100%\">\n <Box marginLeft=\"auto\" marginRight=\"auto\">\n <Typography fontWeight=\"semiBold\" as=\"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 aria-label={formatMessage({\n id: 'app.components.NpsSurvey.dismiss-survey-label',\n defaultMessage: 'Dismiss survey',\n })}\n icon={<Cross />}\n />\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 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 <FieldLabel htmlFor={`nps-survey-rating-${number}-input`}>\n <VisuallyHidden>\n <FieldInput\n type=\"radio\"\n id={`nps-survey-rating-${number}-input`}\n name=\"npsSurveyRating\"\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 </FieldLabel>\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 <FieldLabel htmlFor=\"npsSurveyFeedback\" fontWeight=\"semiBold\" fontSize={2}>\n {formatMessage({\n id: 'app.components.NpsSurvey.feedback-question',\n defaultMessage: 'Do you have any suggestion for improvements?',\n })}\n </FieldLabel>\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 >\n {values.npsSurveyFeedback}\n </Textarea>\n </Box>\n <Button marginBottom={2} type=\"submit\" loading={isLoading}>\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 React, { useState } from 'react';\n\nimport {\n Box,\n Button,\n Checkbox,\n Flex,\n Grid,\n GridItem,\n Main,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport {\n Form,\n getYupInnerErrors,\n Link,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useQuery,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport omit from 'lodash/omit';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useQuery as useReactQuery } from 'react-query';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useNpsSurveySettings } from '../../../../components/NpsSurvey';\nimport { Logo } from '../../../../components/UnauthenticatedLogo';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../../layouts/UnauthenticatedLayout';\nimport FieldActionWrapper from '../FieldActionWrapper';\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nconst PasswordInput = styled(TextInput)`\n ::-ms-reveal {\n display: none;\n }\n`;\n\nconst Register = ({ authType, fieldsToDisable, noSignin, onSubmit, schema }) => {\n const toggleNotification = useNotification();\n const { push } = useHistory();\n const [passwordShown, setPasswordShown] = useState(false);\n const [confirmPasswordShown, setConfirmPasswordShown] = useState(false);\n const [submitCount, setSubmitCount] = useState(0);\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const query = useQuery();\n const { formatAPIError } = useAPIErrorHandler();\n const { get } = useFetchClient();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo } = useReactQuery({\n queryKey: ['admin', 'registration-info', registrationToken],\n async queryFn() {\n const {\n data: { data },\n } = await get(`/admin/registration-info`, {\n params: {\n registrationToken,\n },\n });\n\n return data;\n },\n enabled: !!registrationToken,\n initialData: {},\n onError(err) {\n const message = formatAPIError(err);\n\n toggleNotification({\n type: 'warning',\n message,\n });\n\n // Redirect to the oops page in case of an invalid token\n // @alexandrebodin @JAB I am not sure it is the wanted behavior\n push(`/auth/oops?info=${encodeURIComponent(message)}`);\n },\n });\n\n function normalizeData(data) {\n return Object.entries(data).reduce((acc, [key, value]) => {\n let normalizedvalue = value;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n normalizedvalue = normalizedvalue.trim();\n\n if (key === 'lastname') {\n normalizedvalue = normalizedvalue || null;\n }\n }\n\n acc[key] = normalizedvalue;\n\n return acc;\n }, {});\n }\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Formik\n enableReinitialize\n initialValues={{\n firstname: userInfo.firstname || '',\n lastname: userInfo.lastname || '',\n email: userInfo.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n }}\n onSubmit={async (data, formik) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && authType === 'register-admin') {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (registrationToken) {\n // We need to pass the registration token in the url param to the api in order to submit another admin user\n onSubmit(\n { userInfo: omit(normalizedData, ['registrationToken']), registrationToken },\n formik\n );\n } else {\n onSubmit(normalizedData, formik);\n }\n\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings({ enabled: data.news });\n } catch (err) {\n const errors = getYupInnerErrors(err);\n setSubmitCount(submitCount + 1);\n\n formik.setErrors(errors);\n }\n }}\n // Leaving this part commented when we remove the tracking for the submitCount\n // validationSchema={schema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => {\n return (\n <Form noValidate>\n <Main>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography as=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n\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 </Flex>\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n name=\"firstname\"\n required\n value={values.firstname}\n error={errors.firstname ? formatMessage(errors.firstname) : undefined}\n onChange={handleChange}\n label={formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n })}\n />\n </GridItem>\n <GridItem col={6}>\n <TextInput\n name=\"lastname\"\n value={values.lastname}\n onChange={handleChange}\n label={formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n })}\n />\n </GridItem>\n </Grid>\n <TextInput\n name=\"email\"\n disabled={fieldsToDisable.includes('email')}\n value={values.email}\n onChange={handleChange}\n error={errors.email ? formatMessage(errors.email) : undefined}\n required\n label={formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n })}\n type=\"email\"\n />\n <PasswordInput\n name=\"password\"\n onChange={handleChange}\n value={values.password}\n error={errors.password ? formatMessage(errors.password) : undefined}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.preventDefault();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Eye /> : <EyeStriked />}\n </FieldActionWrapper>\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 required\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n type={passwordShown ? 'text' : 'password'}\n />\n <PasswordInput\n name=\"confirmPassword\"\n onChange={handleChange}\n value={values.confirmPassword}\n error={\n errors.confirmPassword ? formatMessage(errors.confirmPassword) : undefined\n }\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.preventDefault();\n setConfirmPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n confirmPasswordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {confirmPasswordShown ? <Eye /> : <EyeStriked />}\n </FieldActionWrapper>\n }\n required\n label={formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n })}\n type={confirmPasswordShown ? 'text' : 'password'}\n />\n <Checkbox\n onValueChange={(checked) => {\n handleChange({ target: { value: checked, name: 'news' } });\n }}\n value={values.news}\n name=\"news\"\n aria-label=\"news\"\n >\n {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 </Checkbox>\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 </Main>\n </Form>\n );\n }}\n </Formik>\n {!noSignin && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link label=\"Auth.link.signin\" 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\nRegister.defaultProps = {\n fieldsToDisable: [],\n noSignin: false,\n onSubmit: (e) => e.preventDefault(),\n};\n\nRegister.propTypes = {\n authType: PropTypes.string.isRequired,\n fieldsToDisable: PropTypes.array,\n noSignin: PropTypes.bool,\n onSubmit: PropTypes.func,\n schema: PropTypes.shape({\n validate: PropTypes.func.isRequired,\n type: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default Register;\n","import React, { useState } from 'react';\n\nimport { Box, Button, Flex, Main, TextInput, Typography } from '@strapi/design-system';\nimport { Form, Link } from '@strapi/helper-plugin';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { Logo } from '../../../../components/UnauthenticatedLogo';\nimport {\n Column,\n LayoutContent,\n UnauthenticatedLayout,\n} from '../../../../layouts/UnauthenticatedLayout';\nimport FieldActionWrapper from '../FieldActionWrapper';\n\nconst PasswordInput = styled(TextInput)`\n ::-ms-reveal {\n display: none;\n }\n`;\n\nconst ForgotPassword = ({ onSubmit, schema }) => {\n const [passwordShown, setPasswordShown] = useState(false);\n const [confirmPasswordShown, setConfirmPasswordShown] = useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <UnauthenticatedLayout>\n <Main>\n <LayoutContent>\n <Formik\n enableReinitialize\n initialValues={{\n password: '',\n confirmPassword: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ values, errors, handleChange }) => (\n <Form noValidate>\n <Column>\n <Logo />\n <Box paddingTop={6} paddingBottom={7}>\n <Typography as=\"h1\" variant=\"alpha\">\n {formatMessage({\n id: 'global.reset-password',\n defaultMessage: 'Reset password',\n })}\n </Typography>\n </Box>\n {errors.errorMessage && (\n <Typography\n id=\"global-form-error\"\n role=\"alert\"\n tabIndex={-1}\n textColor=\"danger600\"\n >\n {formatMessage({\n id: errors.errorMessage,\n defaultMessage: 'An error occurred',\n })}\n </Typography>\n )}\n </Column>\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <PasswordInput\n name=\"password\"\n onChange={handleChange}\n value={values.password}\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: 'This field is required.',\n })\n : undefined\n }\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.preventDefault();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Eye /> : <EyeStriked />}\n </FieldActionWrapper>\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 required\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n type={passwordShown ? 'text' : 'password'}\n />\n <PasswordInput\n name=\"confirmPassword\"\n onChange={handleChange}\n value={values.confirmPassword}\n error={\n errors.confirmPassword\n ? formatMessage({\n id: errors.confirmPassword,\n defaultMessage: 'This value is required.',\n })\n : undefined\n }\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.preventDefault();\n setConfirmPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {confirmPasswordShown ? <Eye /> : <EyeStriked />}\n </FieldActionWrapper>\n }\n required\n label={formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n })}\n type={confirmPasswordShown ? 'text' : 'password'}\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 )}\n </Formik>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <Link 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\nForgotPassword.defaultProps = {\n onSubmit: (e) => e.preventDefault(),\n};\n\nForgotPassword.propTypes = {\n onSubmit: PropTypes.func,\n schema: PropTypes.shape({\n type: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ForgotPassword;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nimport ForgotPassword from './components/ForgotPassword';\nimport ForgotPasswordSuccess from './components/ForgotPasswordSuccess';\nimport Oops from './components/Oops';\nimport Register from './components/Register';\nimport ResetPassword from './components/ResetPassword';\n\nexport const FORMS = {\n 'forgot-password': {\n Component: ForgotPassword,\n endPoint: 'forgot-password',\n fieldsToDisable: [],\n fieldsToOmit: [],\n schema: yup.object().shape({\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n }),\n inputsPrefix: '',\n },\n 'forgot-password-success': {\n Component: ForgotPasswordSuccess,\n endPoint: '',\n fieldsToDisable: [],\n fieldsToOmit: [],\n schema: null,\n inputsPrefix: '',\n },\n\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: {\n endPoint: 'login',\n fieldsToDisable: [],\n fieldsToOmit: ['rememberMe'],\n schema: yup.object().shape({\n email: yup.string().email(translatedErrors.email).required(translatedErrors.required),\n password: yup.string().required(translatedErrors.required),\n rememberMe: yup.bool().nullable(),\n }),\n inputsPrefix: '',\n },\n oops: {\n Component: Oops,\n endPoint: null,\n fieldsToDisable: [],\n fieldsToOmit: [],\n schema: null,\n inputsPrefix: '',\n },\n register: {\n Component: Register,\n endPoint: 'register',\n fieldsToDisable: ['email'],\n fieldsToOmit: ['userInfo.confirmPassword', 'userInfo.news', 'userInfo.email'],\n 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, translatedErrors.minLength)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n .required(translatedErrors.required),\n confirmPassword: yup\n .string()\n .oneOf([yup.ref('password'), null], 'components.Input.error.password.noMatch')\n .required(translatedErrors.required),\n registrationToken: yup.string().required(translatedErrors.required),\n }),\n inputsPrefix: 'userInfo.',\n },\n 'register-admin': {\n Component: Register,\n endPoint: 'register-admin',\n noSignin: true,\n fieldsToDisable: [],\n fieldsToOmit: ['confirmPassword', 'news'],\n 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, translatedErrors.minLength)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n .required(translatedErrors.required),\n email: yup\n .string()\n .email(translatedErrors.email)\n .strict()\n .lowercase(translatedErrors.lowercase)\n .required(translatedErrors.required),\n confirmPassword: yup\n .string()\n .oneOf([yup.ref('password'), null], 'components.Input.error.password.noMatch')\n .required(translatedErrors.required),\n }),\n inputsPrefix: '',\n },\n 'reset-password': {\n Component: ResetPassword,\n endPoint: 'reset-password',\n fieldsToDisable: [],\n fieldsToOmit: ['confirmPassword'],\n schema: yup.object().shape({\n password: yup\n .string()\n .min(8, translatedErrors.minLength)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n .required(translatedErrors.required),\n confirmPassword: yup\n .string()\n .oneOf([yup.ref('password'), null], 'components.Input.error.password.noMatch')\n .required(translatedErrors.required),\n }),\n },\n};\n","const init = (initialState) => {\n return initialState;\n};\n\nexport default init;\n","import produce from 'immer';\nimport set from 'lodash/set';\n/* eslint-disable consistent-return */\n\nconst initialState = {\n formErrors: {},\n modifiedData: {},\n requestError: null,\n};\n\nconst reducer = (state, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_CHANGE': {\n set(draftState.modifiedData, action.keys.split('.'), action.value);\n break;\n }\n case 'RESET_PROPS': {\n return initialState;\n }\n case 'SET_DATA': {\n draftState.modifiedData = action.data;\n break;\n }\n case 'SET_ERRORS': {\n draftState.formErrors = action.errors;\n break;\n }\n case 'SET_REQUEST_ERROR': {\n draftState.requestError = {\n errorMessage: action.errorMessage,\n errorStatus: action.errorStatus,\n };\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport { initialState, reducer };\n","import React, { useEffect, useReducer } from 'react';\n\nimport { auth, useFetchClient, useGuidedTour, useQuery, useTracking } from '@strapi/helper-plugin';\nimport axios from 'axios';\nimport camelCase from 'lodash/camelCase';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport PropTypes from 'prop-types';\nimport { Redirect, useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { useLocales } from '../../components/LanguageProvider';\nimport { useEnterprise } from '../../hooks/useEnterprise';\nimport { formatAPIErrors } from '../../utils/formatAPIErrors';\n\nimport { LoginCE } from './components/Login';\nimport { FORMS } from './constants';\nimport init from './init';\nimport { initialState, reducer } from './reducer';\n\nconst AuthPage = ({ hasAdmin, setHasAdmin }) => {\n const {\n push,\n location: { search },\n } = useHistory();\n const { changeLocale } = useLocales();\n const { setSkipped } = useGuidedTour();\n const { trackUsage } = useTracking();\n const {\n params: { authType },\n } = useRouteMatch('/auth/:authType');\n const query = useQuery();\n const Login = useEnterprise(\n LoginCE,\n async () => (await import('../../../../ee/admin/src/pages/AuthPage/components/Login')).LoginEE\n );\n const forms = useEnterprise(\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\n defaultValue: FORMS,\n }\n );\n const [{ formErrors, modifiedData, requestError }, dispatch] = useReducer(\n reducer,\n initialState,\n init\n );\n const CancelToken = axios.CancelToken;\n const source = CancelToken.source();\n const { endPoint, fieldsToDisable, fieldsToOmit, inputsPrefix, schema, ...rest } =\n forms?.[authType] ?? {};\n\n useEffect(() => {\n // Cancel request on unmount\n return () => {\n source.cancel('Component unmounted');\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const { post } = useFetchClient();\n\n // Reset the state on navigation change\n useEffect(() => {\n dispatch({\n type: 'RESET_PROPS',\n });\n }, [authType]);\n\n const handleChange = ({ target: { name, value } }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n const handleSubmit = async (e, { setSubmitting, setErrors }) => {\n setSubmitting(true);\n const body = omit(e, fieldsToOmit);\n const requestURL = `/admin/${endPoint}`;\n\n if (authType === 'login') {\n await loginRequest(e, requestURL, { setSubmitting, setErrors });\n }\n\n if (authType === 'register' || authType === 'register-admin') {\n await registerRequest(e, requestURL, { setSubmitting, setErrors });\n }\n\n if (authType === 'forgot-password') {\n await forgotPasswordRequest(body, requestURL, { setSubmitting, setErrors });\n }\n\n if (authType === 'reset-password') {\n await resetPasswordRequest(body, requestURL, { setSubmitting, setErrors });\n }\n };\n\n const forgotPasswordRequest = async (body, requestURL, { setSubmitting, setErrors }) => {\n try {\n await post(requestURL, body, { cancelToken: source.token });\n\n push('/auth/forgot-password-success');\n } catch (err) {\n console.error(err);\n\n setErrors({ errorMessage: 'notification.error' });\n } finally {\n setSubmitting(false);\n }\n };\n\n const loginRequest = async (body, requestURL, { setSubmitting, setErrors }) => {\n try {\n const {\n data: {\n data: { token, user },\n },\n } = await post(requestURL, omit(body, fieldsToOmit), { cancelToken: source.token });\n\n if (user.preferedLanguage) {\n changeLocale(user.preferedLanguage);\n }\n\n auth.setToken(token, body.rememberMe);\n auth.setUserInfo(user, body.rememberMe);\n\n redirectToPreviousLocation();\n } catch (err) {\n if (err.response) {\n const errorMessage = get(\n err,\n ['response', 'data', 'error', 'message'],\n 'Something went wrong'\n );\n\n if (camelCase(errorMessage).toLowerCase() === 'usernotactive') {\n push('/auth/oops');\n\n dispatch({\n type: 'RESET_PROPS',\n });\n\n return;\n }\n\n setErrors({ errorMessage });\n }\n } finally {\n setSubmitting(false);\n }\n };\n\n const registerRequest = async (body, requestURL, { setSubmitting, setErrors }) => {\n try {\n trackUsage('willCreateFirstAdmin');\n const {\n data: {\n data: { token, user },\n },\n } = await post(requestURL, omit(body, fieldsToOmit), { cancelToken: source.token });\n\n auth.setToken(token, false);\n auth.setUserInfo(user, false);\n\n setSubmitting(false);\n setHasAdmin(true);\n\n const { roles } = user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n auth.set(false, 'GUIDED_TOUR_SKIPPED', true);\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (\n (authType === 'register' && body.userInfo.news === true) ||\n (authType === 'register-admin' && body.news === true)\n ) {\n push({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n\n return;\n }\n\n redirectToPreviousLocation();\n } catch (err) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (err.response) {\n const { data } = err.response;\n const apiErrors = formatAPIErrors(data);\n\n setErrors({ apiErrors });\n }\n }\n };\n\n const resetPasswordRequest = async (body, requestURL, { setErrors, setSubmitting }) => {\n try {\n const {\n data: {\n data: { token, user },\n },\n } = await post(\n requestURL,\n { ...body, resetPasswordToken: query.get('code') },\n { cancelToken: source.token }\n );\n\n auth.setToken(token, false);\n auth.setUserInfo(user, false);\n\n // Redirect to the homePage\n push('/');\n } catch (err) {\n if (err.response) {\n const errorMessage = get(err, ['response', 'data', 'message'], 'Something went wrong');\n const errorStatus = get(err, ['response', 'data', 'statusCode'], 400);\n\n dispatch({\n type: 'SET_REQUEST_ERROR',\n errorMessage,\n errorStatus,\n });\n setErrors({ errorMessage });\n }\n } finally {\n setSubmitting(false);\n }\n };\n\n const redirectToPreviousLocation = () => {\n if (authType === 'login') {\n const redirectTo = query.get('redirectTo');\n const redirectUrl = redirectTo ? decodeURIComponent(redirectTo) : '/';\n\n push(redirectUrl);\n } else {\n push('/');\n }\n };\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 (!forms[authType] || (hasAdmin && authType === 'register-admin') || auth.getToken()) {\n return <Redirect 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 <Redirect\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) {\n // Assign the component to render for the login form\n forms.login.Component = Login;\n }\n\n // block rendering until the Login EE component is fully loaded\n if (!Login) {\n return null;\n }\n\n const { Component } = forms?.[authType] ?? {};\n\n return (\n <Component\n {...rest}\n authType={authType}\n fieldsToDisable={fieldsToDisable}\n formErrors={formErrors}\n inputsPrefix={inputsPrefix}\n modifiedData={modifiedData}\n onChange={handleChange}\n onSubmit={handleSubmit}\n requestError={requestError}\n schema={schema}\n />\n );\n};\n\nAuthPage.defaultProps = {\n hasAdmin: false,\n};\n\nAuthPage.propTypes = {\n hasAdmin: PropTypes.bool,\n setHasAdmin: PropTypes.func.isRequired,\n};\n\nexport default AuthPage;\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 {\n ContentLayout,\n EmptyStateLayout,\n HeaderLayout,\n LinkButton,\n Main,\n} from '@strapi/design-system';\nimport { useFocusWhenNavigate } from '@strapi/helper-plugin';\nimport { ArrowRight, EmptyPictures } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nexport const NotFoundPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n\n return (\n <Main labelledBy=\"title\">\n <HeaderLayout\n id=\"title\"\n title={formatMessage({\n id: 'content-manager.pageNotFound',\n defaultMessage: 'Page not found',\n })}\n />\n <ContentLayout>\n <EmptyStateLayout\n action={\n <LinkButton 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=\"10rem\" />}\n shadow=\"tableShadow\"\n />\n </ContentLayout>\n </Main>\n );\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n Option,\n Select,\n TextButton,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { auth, pxToRem, useFetchClient, useNotification } from '@strapi/helper-plugin';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst TypographyCenter = styled(Typography)`\n text-align: center;\n`;\n\nexport const UseCasePage = () => {\n const toggleNotification = useNotification();\n const { push, location } = useHistory();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n const { post } = useFetchClient();\n\n const { firstname, email } = auth.get('userInfo') ?? {};\n const { hasAdmin } = parse(location?.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await post('https://analytics.strapi.io/register', {\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n });\n\n toggleNotification({\n type: 'success',\n message: {\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n },\n });\n push('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={pxToRem(250)}>\n <TypographyCenter variant=\"alpha\" as=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </TypographyCenter>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Select\n id=\"usecase\"\n data-testid=\"usecase\"\n label={formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n // onClear={() => setRole(null)}\n // clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onChange={(value) => setRole(value)}\n value={role}\n >\n {options.map(({ intlLabel, value }) => (\n <Option key={value} value={value}>\n {formatMessage(intlLabel)}\n </Option>\n ))}\n </Select>\n {isOther && (\n <TextInput\n name=\"other\"\n label={formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n data-testid=\"other\"\n />\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton onClick={(event) => handleSubmit(event, true)}>\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport * as React from 'react';\n\nimport { LoadingIndicatorPage, MenuItem } from '@strapi/helper-plugin';\nimport { Route } from 'react-router-dom';\n\ninterface LazyCompoProps {\n loadComponent: Required<MenuItem>['Component'];\n}\n\nconst LazyCompo = ({ loadComponent }: LazyCompoProps) => {\n const [Compo, setCompo] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadCompo = async () => {\n try {\n const loadedCompo = await loadComponent();\n\n // TODO the loaded component provided can currently come from a default or named export\n // We will move the entire codebase to use named exports only\n // Until then we support both cases with priority given to the existing default exports\n if (typeof loadedCompo === 'function') {\n setCompo(() => loadedCompo);\n } else if (loadedCompo.default) {\n setCompo(() => loadedCompo.default!);\n }\n } catch (err) {}\n };\n\n loadCompo();\n }, [loadComponent]);\n\n if (Compo) {\n return <Compo />;\n }\n\n return <LoadingIndicatorPage />;\n};\n\nexport const createRoute = (\n loadComponent: LazyCompoProps['loadComponent'],\n to: MenuItem['to'],\n exact: MenuItem['exact'] = false\n) => {\n return (\n <Route\n render={() => <LazyCompo loadComponent={loadComponent} />}\n key={to}\n path={to}\n exact={exact || false}\n />\n );\n};\n","/**\n *\n * App.js\n *\n */\n\nimport * as React from 'react';\n\nimport { SkipToContent } from '@strapi/design-system';\nimport {\n auth,\n LoadingIndicatorPage,\n MenuItem,\n prefixFileUrlWithBackendUrl,\n TrackingProvider,\n useAppInfo,\n useFetchClient,\n useNotification,\n} from '@strapi/helper-plugin';\nimport merge from 'lodash/merge';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport { Route, Switch } from 'react-router-dom';\n\nimport { PrivateRoute } from './components/PrivateRoute';\nimport { ADMIN_PERMISSIONS_CE, ACTION_SET_ADMIN_PERMISSIONS } from './constants';\nimport { useConfiguration } from './contexts/configuration';\nimport { useEnterprise } from './hooks/useEnterprise';\n// @ts-expect-error not converted yet\nimport AuthPage from './pages/AuthPage';\nimport { NotFoundPage } from './pages/NotFoundPage';\nimport { UseCasePage } from './pages/UseCasePage';\nimport { createRoute } from './utils/createRoute';\n\ntype StrapiRoute = Pick<MenuItem, 'exact' | 'to'> & Required<Pick<MenuItem, 'Component'>>;\n\nconst ROUTES_CE: StrapiRoute[] | null = null;\n\nconst AuthenticatedApp = React.lazy(() =>\n import('./components/AuthenticatedApp').then((mod) => ({ default: mod.AuthenticatedApp }))\n);\n\nexport const App = () => {\n const adminPermissions = useEnterprise(\n ADMIN_PERMISSIONS_CE,\n async () => (await import('../../ee/admin/src/constants')).ADMIN_PERMISSIONS_EE,\n {\n combine(cePermissions, eePermissions) {\n // the `settings` NS e.g. are deep nested objects, that need a deep merge\n return merge({}, cePermissions, eePermissions);\n },\n\n defaultValue: ADMIN_PERMISSIONS_CE,\n }\n );\n const routes = useEnterprise<StrapiRoute[] | null, StrapiRoute[], StrapiRoute[]>(\n ROUTES_CE,\n async () => (await import('../../ee/admin/src/constants')).ROUTES_EE,\n {\n defaultValue: [],\n }\n );\n const toggleNotification = useNotification();\n const { updateProjectSettings } = useConfiguration();\n const { formatMessage } = useIntl();\n const [{ isLoading, hasAdmin, uuid, deviceId }, setState] = React.useState({\n isLoading: true,\n deviceId: undefined,\n hasAdmin: false,\n uuid: false,\n });\n const dispatch = useDispatch();\n const appInfo = useAppInfo();\n const { get, post } = useFetchClient();\n\n const authRoutes = React.useMemo(() => {\n if (!routes) {\n return null;\n }\n\n return routes.map(({ to, Component, exact }) => createRoute(Component, to, exact));\n }, [routes]);\n\n const [telemetryProperties, setTelemetryProperties] = React.useState(undefined);\n\n React.useEffect(() => {\n dispatch({ type: ACTION_SET_ADMIN_PERMISSIONS, payload: adminPermissions });\n }, [adminPermissions, dispatch]);\n\n React.useEffect(() => {\n const currentToken = auth.getToken();\n\n const renewToken = async () => {\n try {\n const {\n data: {\n data: { token },\n },\n } = await post('/admin/renew-token', { token: currentToken });\n auth.updateToken(token);\n } catch (err) {\n // Refresh app\n auth.clearAppStorage();\n window.location.reload();\n }\n };\n\n if (currentToken) {\n renewToken();\n }\n }, [post]);\n\n React.useEffect(() => {\n const getData = async () => {\n try {\n const {\n data: {\n data: { hasAdmin, uuid, menuLogo, authLogo },\n },\n } = await get(`/admin/init`);\n\n updateProjectSettings({\n menuLogo: prefixFileUrlWithBackendUrl(menuLogo),\n authLogo: prefixFileUrlWithBackendUrl(authLogo),\n });\n\n if (uuid) {\n const {\n data: { data: properties },\n } = await get(`/admin/telemetry-properties`, {\n // NOTE: needed because the interceptors of the fetchClient redirect to /login when receive a 401 and it would end up in an infinite loop when the user doesn't have a session.\n validateStatus: (status) => status < 500,\n });\n\n setTelemetryProperties(properties);\n\n try {\n const event = 'didInitializeAdministration';\n await post(\n 'https://analytics.strapi.io/api/v2/track',\n {\n // This event is anonymous\n event,\n userId: '',\n deviceId,\n eventPropeties: {},\n userProperties: { environment: appInfo.currentEnvironment },\n groupProperties: { ...properties, projectId: uuid },\n },\n {\n headers: {\n 'X-Strapi-Event': event,\n },\n }\n );\n } catch (e) {\n // Silent.\n }\n }\n\n setState({ isLoading: false, hasAdmin, uuid, deviceId });\n } catch (err) {\n toggleNotification({\n type: 'warning',\n message: { id: 'app.containers.App.notification.error.init' },\n });\n }\n };\n\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toggleNotification, updateProjectSettings]);\n\n const setHasAdmin = (hasAdmin: boolean) => setState((prev) => ({ ...prev, hasAdmin }));\n\n const trackingInfo = React.useMemo(\n () => ({\n uuid,\n telemetryProperties,\n deviceId,\n }),\n [uuid, telemetryProperties, deviceId]\n );\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n return (\n <React.Suspense fallback={<LoadingIndicatorPage />}>\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <TrackingProvider value={trackingInfo}>\n <Switch>\n {authRoutes}\n <Route\n path=\"/auth/:authType\"\n render={(routerProps) => (\n <AuthPage {...routerProps} setHasAdmin={setHasAdmin} hasAdmin={hasAdmin} />\n )}\n exact\n />\n <PrivateRoute path=\"/usecase\" component={UseCasePage} />\n <PrivateRoute path=\"/\" component={AuthenticatedApp} />\n <Route path=\"\" component={NotFoundPage} />\n </Switch>\n </TrackingProvider>\n </React.Suspense>\n );\n};\n","export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDgwMCA4MDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cGF0aCBkPSJNMzkgMjgyYzAtMTE4IDAtMTc2LjkgMzYuNi0yMTMuNUMxMTIuMiAzMiAxNzEuMSAzMiAyODguOSAzMmgyMjEuMmMxMTcuOCAwIDE3Ni43IDAgMjEzLjMgMzYuNkM3NjAgMTA1LjIgNzYwIDE2NC4xIDc2MCAyODEuOXYyMjEuMmMwIDExNy44IDAgMTc2LjctMzYuNiAyMTMuM0M2ODYuOCA3NTMgNjI3LjkgNzUzIDUxMC4xIDc1M0gyODguOWMtMTE3LjggMC0xNzYuNyAwLTIxMy4zLTM2LjZDMzkgNjc5LjggMzkgNjIwLjkgMzkgNTAzLjFWMjgxLjlaIiBmaWxsPSIjNDk0NUZGIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUzNi40IDI1MC43SDI5My43djEyMy44aDEyMy44djEyMy43aDEyMy44VjI1NS41YzAtMi42LTIuMi00LjgtNC45LTQuOFoiIGZpbGw9IiNmZmYiLz4KICAgIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik00MTIuNyAzNzQuNWg0Ljh2NC44aC00Ljh6Ii8+CiAgICA8cGF0aCBkPSJNMjkzLjggMzc0LjVoMTE5YzIuNiAwIDQuOCAyLjEgNC44IDQuOHYxMTloLTExOWE0LjggNC44IDAgMCAxLTQuOC00Ljl2LTExOVoiIGZpbGw9IiM5NTkzRkYiLz4KICAgIDxwYXRoIGQ9Ik00MTcuNSA0OTguMmgxMjMuOEw0MjEuNiA2MThhMi40IDIuNCAwIDAgMS00LTEuN3YtMTE4Wk0yOTMuOCAzNzQuNWgtMTE4YTIuNCAyLjQgMCAwIDEtMS43LTQuMWwxMTkuNy0xMTkuN3YxMjMuOFoiIGZpbGw9IiM5NTkzRkYiLz4KPC9zdmc+Cg==\"","import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\n\nimport type { StrapiApp } from '../StrapiApp';\ninterface AdminContextValue {\n getAdminInjectedComponents: StrapiApp['getAdminInjectedComponents'];\n}\n\nconst [AdminContextProvider, useAdminContext] = createContext<AdminContextValue>('AdminContext');\n\nconst useAdmin = () => useAdminContext('useAdmin');\n\nexport { AdminContextProvider, useAdmin };\nexport type { AdminContextValue };\n","import * as React from 'react';\n\nimport { ConfigurationContextProvider, ConfigurationContextValue } from '../contexts/configuration';\n\ninterface ConfigurationProviderProps {\n children: React.ReactNode;\n authLogo: string;\n menuLogo: string;\n showReleaseNotification?: boolean;\n showTutorials?: boolean;\n}\n\ntype LogoKeys = keyof ConfigurationContextValue['logos'];\n\nconst ConfigurationProvider = ({\n children,\n authLogo: defaultAuthLogo,\n menuLogo: defaultMenuLogo,\n showReleaseNotification = false,\n showTutorials = false,\n}: ConfigurationProviderProps) => {\n const [{ menuLogo, authLogo }, setLogos] = React.useState<{\n [_Key in `${LogoKeys}Logo`]?: ConfigurationContextValue['logos'][LogoKeys]['custom'];\n }>({\n menuLogo: null,\n authLogo: null,\n });\n\n const updateProjectSettings: ConfigurationContextValue['updateProjectSettings'] =\n React.useCallback(\n ({ menuLogo, authLogo }) => {\n setLogos({\n menuLogo: menuLogo || defaultMenuLogo,\n authLogo: authLogo || defaultAuthLogo,\n });\n },\n [defaultAuthLogo, defaultMenuLogo]\n );\n\n return (\n <ConfigurationContextProvider\n updateProjectSettings={updateProjectSettings}\n showReleaseNotification={showReleaseNotification}\n showTutorials={showTutorials}\n logos={{\n menu: { custom: menuLogo, default: defaultMenuLogo },\n auth: { custom: authLogo, default: defaultAuthLogo },\n }}\n >\n {children}\n </ConfigurationContextProvider>\n );\n};\n\nexport { ConfigurationProvider };\nexport type { ConfigurationProviderProps };\n","import * as React from 'react';\n\nimport {\n GuidedTourContextValue,\n GuidedTourProvider as GuidedTourProviderComponent,\n GuidedTourSectionKey,\n GuidedTourStep,\n GuidedTourStepKey,\n auth,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\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 [GuidedTourSectionKey, GuidedTourStepKey];\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 auth.set(null, 'GUIDED_TOUR_CURRENT_STEP', true);\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: GuidedTourStep, 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: GuidedTourSectionKey) => {\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 [GuidedTourStepKey];\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 auth.set(value, 'GUIDED_TOUR_SKIPPED', true);\n\n dispatch({\n type: 'SET_SKIPPED',\n value,\n });\n };\n\n return (\n <GuidedTourProviderComponent\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 </GuidedTourProviderComponent>\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 },\n isGuidedTourVisible: false,\n isSkipped: false,\n} satisfies State;\n\ninterface SetCurrentStepAction {\n type: 'SET_CURRENT_STEP';\n step: GuidedTourStep | null;\n}\n\ninterface SetStepStateAction {\n type: 'SET_STEP_STATE';\n currentStep: GuidedTourStep;\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 [\n GuidedTourSectionKey,\n GuidedTourStepKey\n ];\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 = auth.get('GUIDED_TOUR_COMPLETED_STEPS');\n const currentStepLocaleStorage = auth.get('GUIDED_TOUR_CURRENT_STEP');\n const skippedLocaleStorage = auth.get('GUIDED_TOUR_SKIPPED');\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 [\n GuidedTourSectionKey,\n GuidedTourStepKey\n ];\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n\n addCompletedStep(currentStepLocaleStorage as GuidedTourStep);\n\n auth.set(null, 'GUIDED_TOUR_CURRENT_STEP', true);\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: GuidedTourStep) => {\n const currentSteps = auth.get('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 auth.set([...currentSteps, completedStep], 'GUIDED_TOUR_COMPLETED_STEPS', true);\n};\n\nexport { GuidedTourProvider };\n","import { createContext } from '@radix-ui/react-context';\nimport { DefaultTheme } from 'styled-components';\n\ntype ThemeName = 'light' | 'dark' | 'system';\ntype NonSystemThemeName = Exclude<ThemeName, 'system'>;\n\ninterface ThemeToggleContextContextValue {\n currentTheme?: ThemeName;\n onChangeTheme?: (nextTheme: ThemeName) => void;\n themes?: {\n dark: DefaultTheme;\n light: DefaultTheme;\n };\n systemTheme?: NonSystemThemeName;\n}\n\nconst [ThemeToggleContextProvider, useThemeToggleContext] =\n createContext<ThemeToggleContextContextValue>('ThemeToggleContext');\n\nconst useThemeToggle = () => useThemeToggleContext('useThemeToggle');\n\nexport { ThemeToggleContextProvider, useThemeToggle };\nexport type { ThemeName, NonSystemThemeName, ThemeToggleContextContextValue };\n","import * as React from 'react';\n\nimport { DesignSystemProvider } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { createGlobalStyle } from 'styled-components';\n\nimport { useThemeToggle } from '../contexts/themeToggle';\n\ninterface ThemeProps {\n children: React.ReactNode;\n}\n\nconst Theme = ({ children }: ThemeProps) => {\n const { currentTheme, themes, systemTheme } = useThemeToggle();\n const { locale } = useIntl();\n\n const computedThemeName = currentTheme === 'system' ? systemTheme : currentTheme;\n\n return (\n <DesignSystemProvider\n locale={locale}\n /**\n * TODO: could we make this neater i.e. by setting up the context to throw\n * if it can't find it, that way the type is always fully defined and we're\n * not checking it all the time...\n */\n theme={themes?.[computedThemeName || 'light']}\n >\n {children}\n <GlobalStyle />\n </DesignSystemProvider>\n );\n};\n\nconst GlobalStyle = createGlobalStyle`\n body {\n background: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nexport { Theme };\n","import * as React from 'react';\n\nimport { DefaultTheme } from 'styled-components';\n\nimport { ThemeToggleContextProvider, ThemeName, NonSystemThemeName } from '../contexts/themeToggle';\n\nconst THEME_KEY = 'STRAPI_THEME';\n\nconst getDefaultTheme = () => {\n const persistedTheme = localStorage.getItem(THEME_KEY) as ThemeName | null;\n\n return persistedTheme || 'system';\n};\n\ninterface ThemeToggleProviderProps {\n children: React.ReactNode;\n themes: {\n light: DefaultTheme;\n dark: DefaultTheme;\n };\n}\n\nconst ThemeToggleProvider = ({ children, themes }: ThemeToggleProviderProps) => {\n const [currentTheme, setCurrentTheme] = React.useState<ThemeName>(getDefaultTheme());\n const [systemTheme, setSystemTheme] = React.useState<NonSystemThemeName>();\n\n const handleChangeTheme = React.useCallback(\n (nextTheme: ThemeName) => {\n setCurrentTheme(nextTheme);\n localStorage.setItem(THEME_KEY, nextTheme);\n },\n [setCurrentTheme]\n );\n\n // Listen to changes in the system theme\n React.useEffect(() => {\n const themeWatcher = window.matchMedia('(prefers-color-scheme: dark)');\n setSystemTheme(themeWatcher.matches ? 'dark' : 'light');\n\n const listener = (event: MediaQueryListEvent) => {\n setSystemTheme(event.matches ? 'dark' : 'light');\n };\n themeWatcher.addEventListener('change', listener);\n\n // Remove listener on cleanup\n return () => {\n themeWatcher.removeEventListener('change', listener);\n };\n }, []);\n\n return (\n <ThemeToggleContextProvider\n currentTheme={currentTheme}\n onChangeTheme={handleChangeTheme}\n themes={themes}\n systemTheme={systemTheme}\n >\n {children}\n </ThemeToggleContextProvider>\n );\n};\n\nexport { ThemeToggleProvider };\nexport type { ThemeToggleProviderProps };\n","import * as React from 'react';\n\nimport {\n AutoReloadOverlayBlockerProvider,\n CustomFieldsProvider,\n CustomFieldsProviderProps,\n LibraryProvider,\n LibraryProviderProps,\n NotificationsProvider,\n OverlayBlockerProvider,\n StrapiAppProvider,\n StrapiAppProviderProps,\n} from '@strapi/helper-plugin';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AdminContextProvider, AdminContextValue } from '../contexts/admin';\n\nimport { ConfigurationProvider, ConfigurationProviderProps } from './ConfigurationProvider';\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider, LanguageProviderProps } from './LanguageProvider';\nimport { Theme } from './Theme';\nimport { ThemeToggleProvider, ThemeToggleProviderProps } from './ThemeToggleProvider';\n\nimport type { Store } from '../core/store/configure';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps\n extends Pick<ThemeToggleProviderProps, 'themes'>,\n Pick<LanguageProviderProps, 'messages' | 'localeNames'>,\n Pick<\n ConfigurationProviderProps,\n 'authLogo' | 'menuLogo' | 'showReleaseNotification' | 'showTutorials'\n >,\n Pick<AdminContextValue, 'getAdminInjectedComponents'>,\n Pick<CustomFieldsProviderProps, 'customFields'>,\n Pick<LibraryProviderProps, 'components' | 'fields'>,\n Pick<\n StrapiAppProviderProps,\n | 'getPlugin'\n | 'menu'\n | 'plugins'\n | 'runHookParallel'\n | 'runHookSeries'\n | 'runHookWaterfall'\n | 'settings'\n > {\n children: React.ReactNode;\n store: Store;\n}\n\nconst Providers = ({\n authLogo,\n children,\n components,\n customFields,\n fields,\n getAdminInjectedComponents,\n getPlugin,\n localeNames,\n menu,\n menuLogo,\n messages,\n plugins,\n runHookParallel,\n runHookSeries,\n runHookWaterfall,\n settings,\n showReleaseNotification,\n showTutorials,\n store,\n themes,\n}: ProvidersProps) => {\n return (\n <LanguageProvider messages={messages} localeNames={localeNames}>\n <ThemeToggleProvider themes={themes}>\n <Theme>\n <QueryClientProvider client={queryClient}>\n <Provider store={store}>\n <AdminContextProvider getAdminInjectedComponents={getAdminInjectedComponents}>\n <ConfigurationProvider\n authLogo={authLogo}\n menuLogo={menuLogo}\n showReleaseNotification={showReleaseNotification}\n showTutorials={showTutorials}\n >\n <StrapiAppProvider\n getPlugin={getPlugin}\n menu={menu}\n plugins={plugins}\n runHookParallel={runHookParallel}\n runHookWaterfall={runHookWaterfall}\n runHookSeries={runHookSeries}\n settings={settings}\n >\n <LibraryProvider components={components} fields={fields}>\n <CustomFieldsProvider customFields={customFields}>\n <AutoReloadOverlayBlockerProvider>\n <OverlayBlockerProvider>\n <GuidedTourProvider>\n <NotificationsProvider>{children}</NotificationsProvider>\n </GuidedTourProvider>\n </OverlayBlockerProvider>\n </AutoReloadOverlayBlockerProvider>\n </CustomFieldsProvider>\n </LibraryProvider>\n </StrapiAppProvider>\n </ConfigurationProvider>\n </AdminContextProvider>\n </Provider>\n </QueryClientProvider>\n </Theme>\n </ThemeToggleProvider>\n </LanguageProvider>\n );\n};\n\nexport { Providers };\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\n\nexport interface Component {\n name: string;\n Component: React.ComponentType;\n}\n\nexport class Components {\n components: Record<Component['name'], Component['Component']>;\n\n constructor() {\n this.components = {};\n }\n\n add(component: Component) {\n const { name, Component } = component;\n\n invariant(Component, 'A Component must be provided');\n invariant(name, 'A name must be provided');\n invariant(this.components[name] === undefined, 'A similar field already exists');\n\n this.components[name] = Component;\n }\n}\n","/* eslint-disable check-file/filename-naming-convention */\nimport invariant from 'invariant';\n\nimport type {\n CustomField,\n CustomFieldOption,\n CustomFieldOptionSection,\n CustomFieldUID,\n} from '@strapi/helper-plugin';\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\nexport class CustomFields {\n customFields: Record<CustomFieldUID, 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: CustomFieldUID): 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","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\n\nexport interface Field {\n type: string;\n Component: React.ComponentType;\n}\n\nexport class Fields {\n fields: Record<Field['type'], Field['Component']>;\n\n constructor() {\n this.fields = {};\n }\n\n add(field: Field) {\n const { type, Component } = field;\n\n invariant(Component, 'A Component must be provided');\n invariant(type, 'A type must be provided');\n\n this.fields[type] = Component;\n }\n}\n","/* eslint-disable check-file/filename-naming-convention */\nimport { Middleware } from '@reduxjs/toolkit';\n\nimport { RootState } from '../store/configure';\n\ntype TypedMiddleware = () => Middleware<object, RootState>;\n\nclass Middlewares {\n middlewares: Array<TypedMiddleware>;\n\n constructor() {\n this.middlewares = [];\n }\n\n add(middleware: TypedMiddleware) {\n this.middlewares.push(middleware);\n }\n}\n\nexport { Middlewares, TypedMiddleware as Middleware };\n","/* eslint-disable check-file/filename-naming-convention */\nimport { Plugin as IPlugin } from '@strapi/helper-plugin';\n\nexport interface PluginConfig\n extends Pick<IPlugin, 'apis' | 'initializer' | 'injectionZones' | 'isReady' | 'name'> {\n id: string;\n}\n\nexport class Plugin implements IPlugin {\n apis: PluginConfig['apis'];\n initializer: PluginConfig['initializer'];\n injectionZones: PluginConfig['injectionZones'];\n isReady: PluginConfig['isReady'];\n name: PluginConfig['name'];\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: ReturnType<IPlugin['getInjectedComponents']>[number]\n ) {\n try {\n this.injectionZones[containerName][blockName].push(component);\n } catch (err) {\n console.error('Cannot inject component', err);\n }\n }\n}\n","/* eslint-disable check-file/filename-naming-convention */\n\nimport { Reducer, ReducersMapObject } from '@reduxjs/toolkit';\n\ninterface ReducerConstructorArgs {\n appReducers?: ReducersMapObject;\n}\n\nexport class Reducers {\n reducers: ReducersMapObject;\n\n constructor({ appReducers = {} }: ReducerConstructorArgs = {}) {\n this.reducers = { ...appReducers };\n }\n\n add(reducerName: string, reducer: Reducer) {\n this.reducers[reducerName] = reducer;\n }\n}\n","import { createSelector, Selector } from '@reduxjs/toolkit';\nimport { useDispatch, useStore, TypedUseSelectorHook, useSelector } from 'react-redux';\n\nimport type { RootState, Store } from './configure';\n\ntype AppDispatch = Store['dispatch'];\n\nconst useTypedDispatch: () => AppDispatch = useDispatch;\nconst useTypedStore = useStore as () => Store;\nconst useTypedSelector: TypedUseSelectorHook<RootState> = useSelector;\n\nconst createTypedSelector = <TResult>(selector: Selector<RootState, TResult>) =>\n createSelector((state: RootState) => state, selector);\n\nexport { useTypedDispatch, useTypedStore, useTypedSelector, createTypedSelector };\n","import * as React from 'react';\n\nimport {\n LoadingIndicatorPage,\n Permission,\n RBACContext,\n RBACContextValue,\n} from '@strapi/helper-plugin';\nimport produce from 'immer';\n\nimport { useTypedSelector, useTypedDispatch } from '../core/store/hooks';\n\n/* -------------------------------------------------------------------------------------------------\n * RBACProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RBACProviderProps {\n children: React.ReactNode;\n permissions: Permission[];\n refetchPermissions: RBACContextValue['refetchPermissions'];\n}\n\nconst RBACProvider = ({ children, permissions, refetchPermissions }: RBACProviderProps) => {\n const allPermissions = useTypedSelector((state) => state.rbacProvider.allPermissions);\n\n const dispatch = useTypedDispatch();\n\n React.useEffect(() => {\n dispatch(setPermissionsAction(permissions));\n\n return () => {\n dispatch(resetStoreAction());\n };\n }, [permissions, dispatch]);\n\n if (!allPermissions) {\n return <LoadingIndicatorPage />;\n }\n\n return (\n <RBACContext.Provider value={{ allPermissions, refetchPermissions }}>\n {children}\n </RBACContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * RBACReducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RBACState {\n allPermissions: null | Permission[];\n collectionTypesRelatedPermissions: Record<string, Record<string, Permission[]>>;\n}\n\nconst initialState = {\n allPermissions: null,\n collectionTypesRelatedPermissions: {},\n};\n\nconst RESET_STORE = 'StrapiAdmin/RBACProvider/RESET_STORE';\nconst SET_PERMISSIONS = 'StrapiAdmin/RBACProvider/SET_PERMISSIONS';\n\ninterface ResetStoreAction {\n type: typeof RESET_STORE;\n}\n\nconst resetStoreAction = (): ResetStoreAction => ({ type: RESET_STORE });\n\ninterface SetPermissionsAction {\n type: typeof SET_PERMISSIONS;\n permissions: Permission[];\n}\n\nconst setPermissionsAction = (\n permissions: SetPermissionsAction['permissions']\n): SetPermissionsAction => ({\n type: SET_PERMISSIONS,\n permissions,\n});\n\ntype Actions = ResetStoreAction | SetPermissionsAction;\n\nconst RBACReducer = (state: RBACState = initialState, action: Actions) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case SET_PERMISSIONS: {\n draftState.allPermissions = action.permissions;\n draftState.collectionTypesRelatedPermissions = action.permissions\n .filter((perm) => perm.subject)\n .reduce<Record<string, Record<string, Permission[]>>>((acc, current) => {\n const { subject, action } = current;\n\n if (!subject) return acc;\n\n if (!acc[subject]) {\n acc[subject] = {};\n }\n\n acc[subject] = acc[subject][action]\n ? { ...acc[subject], [action]: [...acc[subject][action], current] }\n : { ...acc[subject], [action]: [current] };\n\n return acc;\n }, {});\n break;\n }\n case RESET_STORE: {\n return initialState;\n }\n default:\n return state;\n }\n });\n\nexport { RBACProvider, RBACReducer, resetStoreAction, setPermissionsAction };\nexport type {\n RBACState,\n Actions,\n RBACProviderProps,\n ResetStoreAction,\n SetPermissionsAction,\n Permission,\n};\n","export const SET_PERMISSIONS = 'ContentManager/RBACManager/SET_PERMISSIONS';\nexport const RESET_PERMISSIONS = 'ContentManager/RBACManager/RESET_PERMISSIONS';\n","/**\n *\n * RBACManager reducer\n */\n\nimport produce from 'immer';\n\nimport { RESET_PERMISSIONS, SET_PERMISSIONS } from './constants';\n\nexport const initialState = {\n permissions: null,\n};\n\nconst rbacManagerReducer = (state = initialState, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case SET_PERMISSIONS: {\n draftState.permissions = Object.entries(action.permissions).reduce((acc, current) => {\n return [...acc, ...current[1]];\n }, []);\n break;\n }\n case RESET_PERMISSIONS: {\n draftState.permissions = null;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default rbacManagerReducer;\n","export const GET_INIT_DATA = 'ContentManager/App/GET_INIT_DATA';\nexport const RESET_INIT_DATA = 'ContentManager/App/RESET_INIT_DATA';\nexport const SET_INIT_DATA = 'ContentManager/App/SET_INIT_DATA';\n","/**\n *\n * main reducer\n */\n/* eslint-disable consistent-return */\nimport produce from 'immer';\n\nimport { GET_INIT_DATA, RESET_INIT_DATA, SET_INIT_DATA } from './constants';\n\nconst initialState = {\n components: [],\n status: 'loading',\n models: [],\n collectionTypeLinks: [],\n singleTypeLinks: [],\n};\n\n/**\n * Known as content-manager_app in the redux store\n */\nconst mainReducer = (state = initialState, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case GET_INIT_DATA: {\n draftState.status = 'loading';\n break;\n }\n case RESET_INIT_DATA: {\n return initialState;\n }\n case SET_INIT_DATA: {\n draftState.collectionTypeLinks = action.data.authorizedCollectionTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n draftState.singleTypeLinks = action.data.authorizedSingleTypeLinks.filter(\n ({ isDisplayed }) => isDisplayed\n );\n draftState.components = action.data.components;\n draftState.models = action.data.contentTypeSchemas;\n draftState.fieldSizes = action.data.fieldSizes;\n draftState.status = 'resolved';\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default mainReducer;\nexport { initialState };\n","export const SET_LAYOUT = 'ContentManager/EditViewLayoutManager/SET_LAYOUT';\nexport const RESET_PROPS = 'ContentManager/EditViewLayoutManager/RESET_PROPS';\n","/**\n *\n * EditViewLayoutManager reducer\n */\n\nimport produce from 'immer';\n\nimport { RESET_PROPS, SET_LAYOUT } from './constants';\n\nexport const initialState = {\n currentLayout: null,\n};\n\nconst editViewManagerReducer = (state = initialState, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case RESET_PROPS: {\n draftState.currentLayout = null;\n break;\n }\n case SET_LAYOUT: {\n draftState.currentLayout = action.layout;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default editViewManagerReducer;\n","export const GET_DATA = 'ContentManager/ListView/GET_DATA';\nexport const GET_DATA_SUCCEEDED = 'ContentManager/ListView/GET_DATA_SUCCEEDED';\nexport const RESET_PROPS = 'ContentManager/ListView/RESET_PROPS';\nexport const ON_CHANGE_LIST_HEADERS = 'ContentManager/ListView/ON_CHANGE_LIST_HEADERS ';\nexport const ON_RESET_LIST_HEADERS = 'ContentManager/ListView/ON_RESET_LIST_HEADERS ';\nexport const SET_LIST_LAYOUT = 'ContentManager/ListView/SET_LIST_LAYOUT ';\n","/**\n *\n * listView reducer\n */\n\nimport produce from 'immer';\nimport get from 'lodash/get';\n\nimport {\n GET_DATA,\n GET_DATA_SUCCEEDED,\n ON_CHANGE_LIST_HEADERS,\n ON_RESET_LIST_HEADERS,\n RESET_PROPS,\n SET_LIST_LAYOUT,\n} from './constants';\n\nexport const initialState = {\n data: [],\n isLoading: true,\n contentType: {},\n components: [],\n initialDisplayedHeaders: [],\n displayedHeaders: [],\n pagination: {\n total: 0,\n },\n};\n\nconst listViewReducer = (state = initialState, action) =>\n // eslint-disable-next-line consistent-return\n produce(state, (draftState) => {\n switch (action.type) {\n case GET_DATA: {\n return {\n ...initialState,\n contentType: state.contentType,\n components: state.components,\n initialDisplayedHeaders: state.initialDisplayedHeaders,\n displayedHeaders: state.displayedHeaders,\n };\n }\n\n case GET_DATA_SUCCEEDED: {\n draftState.pagination = action.pagination;\n draftState.data = action.data;\n draftState.isLoading = false;\n break;\n }\n\n case ON_CHANGE_LIST_HEADERS: {\n const {\n target: { name, value },\n } = action;\n\n if (!value) {\n const { metadatas, attributes, uid } = state.contentType;\n const metas = metadatas[name].list;\n const header = {\n name,\n fieldSchema: attributes[name],\n metadatas: metas,\n key: `__${name}_key__`,\n };\n\n switch (attributes[name].type) {\n case 'component': {\n const componentName = attributes[name].component;\n const mainFieldName = get(\n state,\n ['components', componentName, 'settings', 'mainField'],\n null\n );\n const mainFieldAttribute = get(state, [\n 'components',\n componentName,\n 'attributes',\n mainFieldName,\n ]);\n\n draftState.displayedHeaders.push({\n ...header,\n metadatas: {\n ...metas,\n mainField: {\n ...mainFieldAttribute,\n name: mainFieldName,\n },\n },\n });\n break;\n }\n\n case 'relation':\n draftState.displayedHeaders.push({\n ...header,\n queryInfos: {\n defaultParams: {},\n endPoint: `collection-types/${uid}`,\n },\n });\n break;\n\n default:\n draftState.displayedHeaders.push(header);\n }\n } else {\n draftState.displayedHeaders = state.displayedHeaders.filter(\n (header) => header.name !== name\n );\n }\n\n break;\n }\n case ON_RESET_LIST_HEADERS: {\n draftState.displayedHeaders = state.initialDisplayedHeaders;\n break;\n }\n case RESET_PROPS: {\n return initialState;\n }\n case SET_LIST_LAYOUT: {\n const { contentType, components, displayedHeaders } = action;\n\n draftState.contentType = contentType;\n draftState.components = components;\n draftState.displayedHeaders = displayedHeaders;\n draftState.initialDisplayedHeaders = displayedHeaders;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default listViewReducer;\n","export const GET_DATA = 'ContentManager/CrudReducer/GET_DATA';\nexport const GET_DATA_SUCCEEDED = 'ContentManager/CrudReducer/GET_DATA_SUCCEEDED';\nexport const INIT_FORM = 'ContentManager/CrudReducer/INIT_FORM';\nexport const RESET_PROPS = 'ContentManager/CrudReducer/RESET_PROPS';\nexport const SET_DATA_STRUCTURES = 'ContentManager/CrudReducer/SET_DATA_STRUCTURES';\nexport const SET_STATUS = 'ContentManager/CrudReducer/SET_STATUS';\nexport const SUBMIT_SUCCEEDED = 'ContentManager/CrudReducer/SUBMIT_SUCCEEDED';\nexport const CLEAR_SET_MODIFIED_DATA_ONLY =\n 'ContentManager/CrudReducer/CLEAR_SET_MODIFIED_DATA_ONLY';\n","/* eslint-disable consistent-return */\nimport produce from 'immer';\n\n// NOTE: instead of creating a shared reducer here, we could also create a hook\n// that returns the dispatch and the state, however it will mess with the linter\n// and force us to either disable the linter for the hooks dependencies array rule or\n// require us to add the dispatch to the array which is not wanted. This refacto does not require us to\n// to do any of this.\nimport {\n CLEAR_SET_MODIFIED_DATA_ONLY,\n GET_DATA,\n GET_DATA_SUCCEEDED,\n INIT_FORM,\n RESET_PROPS,\n SET_DATA_STRUCTURES,\n SET_STATUS,\n SUBMIT_SUCCEEDED,\n} from './constants';\n\nconst crudInitialState = {\n componentsDataStructure: {},\n contentTypeDataStructure: {},\n isLoading: true,\n data: null,\n status: 'resolved',\n setModifiedDataOnly: false,\n};\n\nconst crudReducer = (state = crudInitialState, action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case GET_DATA: {\n draftState.isLoading = true;\n draftState.data = null;\n break;\n }\n case GET_DATA_SUCCEEDED: {\n draftState.isLoading = false;\n draftState.data = action.data;\n draftState.setModifiedDataOnly = action.setModifiedDataOnly ?? false;\n break;\n }\n case INIT_FORM: {\n if (action.data) {\n draftState.isLoading = false;\n draftState.data = action.data;\n\n break;\n }\n\n draftState.isLoading = false;\n draftState.data = state.contentTypeDataStructure;\n break;\n }\n case RESET_PROPS: {\n return crudInitialState;\n }\n case SET_DATA_STRUCTURES: {\n draftState.componentsDataStructure = action.componentsDataStructure;\n draftState.contentTypeDataStructure = action.contentTypeDataStructure;\n break;\n }\n case SET_STATUS: {\n draftState.status = action.status;\n break;\n }\n case SUBMIT_SUCCEEDED: {\n draftState.data = action.data;\n break;\n }\n case CLEAR_SET_MODIFIED_DATA_ONLY: {\n draftState.setModifiedDataOnly = false;\n break;\n }\n default:\n return draftState;\n }\n });\n\nexport default crudReducer;\nexport { crudInitialState };\n","import produce from 'immer';\n\nimport { ACTION_SET_APP_RUNTIME_STATUS, ACTION_SET_ADMIN_PERMISSIONS } from './constants';\nimport { PermissionMap } from './types/permissions';\n\ninterface State {\n status: 'init' | 'runtime';\n permissions: Partial<PermissionMap>;\n}\n\nconst initialState = {\n permissions: {},\n status: 'init',\n} satisfies State;\n\ninterface SetAppRuntimeStatusAction {\n type: typeof ACTION_SET_APP_RUNTIME_STATUS;\n}\n\ninterface SetAdminPermissionsAction {\n type: typeof ACTION_SET_ADMIN_PERMISSIONS;\n payload: Record<string, unknown>;\n}\n\ntype Action = SetAppRuntimeStatusAction | SetAdminPermissionsAction;\n\nconst reducer = (state: State = initialState, action: Action) =>\n /* eslint-disable-next-line consistent-return */\n produce(state, (draftState) => {\n switch (action.type) {\n case ACTION_SET_APP_RUNTIME_STATUS: {\n draftState.status = 'runtime';\n break;\n }\n\n case ACTION_SET_ADMIN_PERMISSIONS: {\n draftState.permissions = action.payload;\n break;\n }\n\n default:\n return draftState;\n }\n });\n\nexport { reducer, initialState };\nexport type { State, Action, SetAppRuntimeStatusAction, SetAdminPermissionsAction };\n","import {\n configureStore,\n StoreEnhancer,\n Middleware,\n Reducer,\n combineReducers,\n} from '@reduxjs/toolkit';\n\nimport { RBACReducer } from '../../components/RBACProvider';\n// @ts-expect-error no types, yet.\nimport rbacManagerReducer from '../../content-manager/hooks/useSyncRbac/reducer';\n// @ts-expect-error no types, yet.\nimport cmAppReducer from '../../content-manager/pages/App/reducer';\n// @ts-expect-error no types, yet.\nimport editViewLayoutManagerReducer from '../../content-manager/pages/EditViewLayoutManager/reducer';\n// @ts-expect-error no types, yet.\nimport listViewReducer from '../../content-manager/pages/ListView/reducer';\n// @ts-expect-error no types, yet.\nimport editViewCrudReducer from '../../content-manager/sharedReducers/crudReducer/reducer';\nimport { reducer as appReducer } from '../../reducer';\n\n/**\n * @description Static reducers are ones we know, they live in the admin package.\n */\nconst staticReducers = {\n admin_app: appReducer,\n rbacProvider: RBACReducer,\n 'content-manager_app': cmAppReducer,\n 'content-manager_listView': listViewReducer,\n 'content-manager_rbacManager': rbacManagerReducer,\n 'content-manager_editViewLayoutManager': editViewLayoutManagerReducer,\n 'content-manager_editViewCrudReducer': editViewCrudReducer,\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\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 appMiddlewares: Array<() => Middleware> = [],\n injectedReducers: Record<string, Reducer> = {}\n) => {\n const coreReducers = { ...staticReducers, ...injectedReducers } as const;\n\n const store = configureStore({\n reducer: coreReducers,\n devTools: process.env.NODE_ENV !== 'production',\n middleware: (getDefaultMiddleware) => [\n ...getDefaultMiddleware(),\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\nexport { configureStoreImpl as configureStore };\nexport type { RootState, Store };\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\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?: any) {\n return _handlers.reduce((acc, fn) => fn(acc, store), args);\n },\n async runWaterfallAsync<T>(args: T, store?: any) {\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 { useAdmin } from '../../contexts/admin';\nimport {\n InjectionZoneArea,\n InjectionZoneBlock,\n InjectionZoneContainer,\n InjectionZoneModule,\n} from '../components/InjectionZone';\n\nexport const useInjectionZone = (area: InjectionZoneArea) => {\n const { getAdminInjectedComponents } = useAdmin();\n\n const [moduleName, page, position] = area.split('.') as [\n InjectionZoneModule,\n InjectionZoneContainer,\n InjectionZoneBlock\n ];\n\n return getAdminInjectedComponents(moduleName, page, position);\n};\n","import * as React from 'react';\n\nimport { useInjectionZone } from '../hooks/useInjectionZone';\n\nconst INJECTION_ZONES = {\n admin: {\n // Temporary injection zone, support for the react-tour plugin in foodadvisor\n tutorials: {\n links: [],\n },\n },\n contentManager: {\n editView: { informations: [], 'right-links': [] },\n listView: {\n actions: [],\n deleteModalAdditionalInfos: [],\n publishModalAdditionalInfos: [],\n unpublishModalAdditionalInfos: [],\n },\n },\n} satisfies InjectionZones;\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 InjectionZones {\n admin: {\n tutorials: {\n links: InjectionZoneComponent[];\n };\n };\n contentManager: {\n editView: {\n informations: InjectionZoneComponent[];\n 'right-links': InjectionZoneComponent[];\n };\n listView: {\n actions: InjectionZoneComponent[];\n deleteModalAdditionalInfos: InjectionZoneComponent[];\n publishModalAdditionalInfos: InjectionZoneComponent[];\n unpublishModalAdditionalInfos: InjectionZoneComponent[];\n };\n };\n}\n\ntype InjectionZoneArea =\n | 'admin.tutorials.links'\n | 'contentManager.editView.informations'\n | 'contentManager.editView.right-links'\n | 'contentManager.listView.actions'\n | 'contentManager.listView.unpublishModalAdditionalInfos'\n | 'contentManager.listView.deleteModalAdditionalInfos'\n | 'contentManager.listView.publishModalAdditionalInfos'\n | 'contentManager.listView.deleteModalAdditionalInfos';\n\ntype InjectionZoneModule = InjectionZoneArea extends `${infer Word}.${string}` ? Word : never;\ntype InjectionZoneContainer = InjectionZoneArea extends `${string}.${infer Word}.${string}`\n ? Word\n : never;\ntype InjectionZoneBlock = InjectionZoneArea extends `${string}.${string}.${infer Word}`\n ? Word\n : never;\n\nconst InjectionZone = ({ area, ...props }: { area: InjectionZoneArea }) => {\n const components = useInjectionZone(area);\n\n return components.map((component) => <component.Component key={component.name} {...props} />);\n};\n\nexport { InjectionZone, INJECTION_ZONES };\n\nexport type {\n InjectionZoneArea,\n InjectionZoneComponent,\n InjectionZones,\n InjectionZoneModule,\n InjectionZoneContainer,\n InjectionZoneBlock,\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 { ReducersMapObject } from '@reduxjs/toolkit';\nimport { darkTheme, lightTheme } from '@strapi/design-system';\nimport { MenuItem, StrapiAppSetting, StrapiAppSettingLink } from '@strapi/helper-plugin';\nimport invariant from 'invariant';\nimport isFunction from 'lodash/isFunction';\nimport merge from 'lodash/merge';\nimport pick from 'lodash/pick';\nimport { Helmet } from 'react-helmet';\nimport { BrowserRouter } from 'react-router-dom';\nimport { DefaultTheme } from 'styled-components';\n\nimport { App } from './App';\nimport Logo from './assets/images/logo-strapi-2022.svg';\nimport { LANGUAGE_LOCAL_STORAGE_KEY } from './components/LanguageProvider';\nimport { Providers } from './components/Providers';\nimport { HOOKS } from './constants';\nimport { Components, Component } from './core/apis/Components';\nimport { CustomFields } from './core/apis/CustomFields';\nimport { Field, Fields } from './core/apis/Fields';\nimport { Middleware, Middlewares } from './core/apis/Middlewares';\nimport { Plugin, PluginConfig } from './core/apis/Plugin';\nimport { Reducers } from './core/apis/Reducers';\nimport { Store, configureStore } from './core/store/configure';\nimport { getBasename } from './core/utils/basename';\nimport { Handler, createHook } from './core/utils/createHook';\nimport {\n INJECTION_ZONES,\n InjectionZoneBlock,\n InjectionZoneComponent,\n InjectionZoneContainer,\n InjectionZoneModule,\n InjectionZones,\n} from './shared/components/InjectionZone';\nimport { languageNativeNames } from './translations/languageNativeNames';\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 adminConfig?: {\n config?: StrapiApp['customConfigurations'];\n bootstrap?: StrapiApp['customBootstrapConfiguration'];\n };\n}\n\ninterface StrapiAppPlugin {\n bootstrap: (\n args: Pick<\n StrapiApp,\n | 'addSettingsLink'\n | 'addSettingsLinks'\n | 'getPlugin'\n | 'injectContentManagerComponent'\n | 'injectAdminComponent'\n | 'registerHook'\n >\n ) => void;\n register: (app: StrapiApp) => void;\n registerTrads: (args: {\n locales: string[];\n }) => Promise<{ data: Record<string, string>; locale: string }[]>;\n}\n\nclass StrapiApp {\n admin: {\n injectionZones: InjectionZones;\n };\n appPlugins: Record<string, StrapiAppPlugin>;\n configurations: {\n authLogo: string;\n head: { favicon: string };\n locales: string[];\n menuLogo: string;\n notifications: { releases: boolean };\n themes: { light: DefaultTheme; dark: DefaultTheme };\n translations: Record<string, Record<string, string>>;\n tutorials: boolean;\n };\n customBootstrapConfiguration: unknown;\n customConfigurations: {\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, unknown>;\n tutorials?: boolean;\n };\n customFields: CustomFields;\n hooksDict: Record<string, ReturnType<typeof createHook>>;\n library: {\n components: Components;\n fields: Fields;\n };\n menu: MenuItem[];\n middlewares: Middlewares;\n plugins: Record<string, Plugin>;\n reducers: Reducers;\n settings: Record<string, StrapiAppSetting>;\n translations: StrapiApp['configurations']['translations'];\n\n constructor({ adminConfig, appPlugins }: StrapiAppConstructorArgs = {}) {\n this.customConfigurations = adminConfig?.config ?? {};\n this.customBootstrapConfiguration = adminConfig?.bootstrap;\n this.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 this.appPlugins = appPlugins || {};\n this.library = {\n components: new Components(),\n fields: new Fields(),\n };\n this.middlewares = new Middlewares();\n this.plugins = {};\n this.reducers = new Reducers();\n this.translations = {};\n this.hooksDict = {};\n this.admin = {\n injectionZones: INJECTION_ZONES,\n };\n this.customFields = new CustomFields();\n this.menu = [];\n this.settings = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n }\n\n addComponents = (components: Component | Component[]) => {\n if (Array.isArray(components)) {\n components.map((compo) => this.library.components.add(compo));\n } else {\n this.library.components.add(components);\n }\n };\n\n addCorePluginMenuLink = (link: MenuItem) => {\n const stringifiedLink = JSON.stringify(link);\n\n invariant(link.to, `link.to should be defined for ${stringifiedLink}`);\n invariant(\n typeof link.to === 'string',\n `Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n ['/plugins/content-type-builder', '/plugins/upload'].includes(link.to),\n 'This method is not available for your plugin'\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `link.intlLabel.id & link.intlLabel.defaultMessage for ${stringifiedLink}`\n );\n\n this.menu.push(link);\n };\n\n addFields = (fields: Field | Field[]) => {\n if (Array.isArray(fields)) {\n fields.map((field) => this.library.fields.add(field));\n } else {\n this.library.fields.add(fields);\n }\n };\n\n addMenuLink = (link: MenuItem) => {\n const stringifiedLink = JSON.stringify(link);\n\n invariant(link.to, `link.to should be defined for ${stringifiedLink}`);\n invariant(\n typeof link.to === 'string',\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.id & link.intlLabel.defaultMessage for ${stringifiedLink}`\n );\n invariant(\n link.Component && typeof link.Component === 'function',\n `link.Component should be a valid React Component`\n );\n invariant(\n link.icon && typeof link.icon === 'function',\n `link.Icon should be a valid React Component`\n );\n\n this.menu.push(link);\n };\n\n addMiddlewares = (middlewares: Middleware[]) => {\n middlewares.forEach((middleware) => {\n this.middlewares.add(middleware);\n });\n };\n\n addReducers = (reducers: ReducersMapObject) => {\n Object.keys(reducers).forEach((reducerName) => {\n this.reducers.add(reducerName, reducers[reducerName]);\n });\n };\n\n addSettingsLink = (sectionId: keyof StrapiApp['settings'], link: StrapiAppSettingLink) => {\n invariant(this.settings[sectionId], 'The section does not exist');\n\n const stringifiedLink = JSON.stringify(link);\n\n invariant(link.id, `link.id should be defined for ${stringifiedLink}`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `link.intlLabel.id & link.intlLabel.defaultMessage for ${stringifiedLink}`\n );\n invariant(link.to, `link.to should be defined for ${stringifiedLink}`);\n invariant(\n link.Component && typeof link.Component === 'function',\n `link.Component should be a valid React Component`\n );\n\n this.settings[sectionId].links.push(link);\n };\n\n addSettingsLinks = (sectionId: keyof StrapiApp['settings'], links: StrapiAppSettingLink[]) => {\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() {\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 injectContentManagerComponent: this.injectContentManagerComponent,\n injectAdminComponent: this.injectAdminComponent,\n registerHook: this.registerHook,\n });\n }\n });\n\n if (isFunction(this.customBootstrapConfiguration)) {\n this.customBootstrapConfiguration({\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 injectContentManagerComponent: this.injectContentManagerComponent,\n injectAdminComponent: this.injectAdminComponent,\n registerHook: this.registerHook,\n });\n }\n }\n\n bootstrapAdmin = async () => {\n await this.createCustomConfigurations();\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 return Promise.resolve();\n };\n\n createCustomConfigurations = async () => {\n if (this.customConfigurations?.locales) {\n this.configurations.locales = [\n 'en',\n ...(this.customConfigurations.locales?.filter((loc) => loc !== 'en') || []),\n ];\n }\n\n if (this.customConfigurations?.auth?.logo) {\n this.configurations.authLogo = this.customConfigurations.auth.logo;\n }\n\n if (this.customConfigurations?.menu?.logo) {\n this.configurations.menuLogo = this.customConfigurations.menu.logo;\n }\n\n if (this.customConfigurations?.head?.favicon) {\n this.configurations.head.favicon = this.customConfigurations.head.favicon;\n }\n\n if (this.customConfigurations?.theme) {\n const darkTheme = this.customConfigurations.theme.dark;\n const lightTheme = this.customConfigurations.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.`\n );\n merge(this.configurations.themes.light, this.customConfigurations.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 (this.customConfigurations?.notifications?.releases !== undefined) {\n this.configurations.notifications.releases = this.customConfigurations.notifications.releases;\n }\n\n if (this.customConfigurations?.tutorials !== undefined) {\n this.configurations.tutorials = this.customConfigurations.tutorials;\n }\n };\n\n createHook = (name: string) => {\n this.hooksDict[name] = createHook();\n };\n\n createSettingSection = (section: StrapiAppSetting, links: StrapiAppSettingLink[]) => {\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 createStore = () => {\n const store = configureStore(this.middlewares.middlewares, this.reducers.reducers);\n\n return store as Store;\n };\n\n getAdminInjectedComponents = (\n moduleName: InjectionZoneModule,\n containerName: InjectionZoneContainer,\n blockName: InjectionZoneBlock\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']) => {\n return this.plugins[pluginId];\n };\n\n async initialize() {\n Object.keys(this.appPlugins).forEach((plugin) => {\n this.appPlugins[plugin].register(this);\n });\n }\n\n injectContentManagerComponent = <TContainerName extends keyof InjectionZones['contentManager']>(\n containerName: TContainerName,\n blockName: keyof InjectionZones['contentManager'][TContainerName],\n component: InjectionZoneComponent\n ) => {\n invariant(\n this.admin.injectionZones.contentManager[containerName]?.[blockName],\n `The ${containerName} ${String(blockName)} zone is not defined in the content manager`\n );\n invariant(component, 'A Component must be provided');\n\n // @ts-expect-error – we've alredy checked above that the block exists.\n this.admin.injectionZones.contentManager[containerName][blockName].push(component);\n };\n\n injectAdminComponent = <TContainerName extends keyof InjectionZones['admin']>(\n containerName: TContainerName,\n blockName: keyof InjectionZones['admin'][TContainerName],\n component: InjectionZoneComponent\n ) => {\n invariant(\n this.admin.injectionZones.admin[containerName]?.[blockName],\n `The ${containerName} ${String(blockName)} zone is not defined in the admin`\n );\n invariant(component, 'A Component must be provided');\n\n // @ts-expect-error – we've alredy checked above that the block exists.\n this.admin.injectionZones.admin[containerName][blockName].push(component);\n };\n\n /**\n * Load the admin translations\n * @returns {Object} The imported admin translations\n */\n async loadAdminTrads() {\n const arrayOfPromises = this.configurations.locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return { data, locale };\n })\n .catch(() => {\n return { data: null, locale };\n });\n });\n const adminLocales = await Promise.all(arrayOfPromises);\n\n const translations = adminLocales.reduce<{ [locale: string]: Record<string, string> }>(\n (acc, current) => {\n if (current.data) {\n acc[current.locale] = current.data;\n }\n\n return acc;\n },\n {}\n );\n\n return translations;\n }\n\n /**\n * Load the application's translations and merged the custom translations\n * with the default ones.\n *\n */\n async loadTrads() {\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 ...(this.customConfigurations?.translations?.[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 = (\n name: string,\n initialValue: unknown,\n asynchronous = false,\n store?: unknown\n ) => {\n return asynchronous\n ? this.hooksDict[name].runWaterfallAsync(initialValue, store)\n : this.hooksDict[name].runWaterfall(initialValue, store);\n };\n\n runHookParallel = (name: string) => this.hooksDict[name].runParallel();\n\n render() {\n const store = this.createStore();\n const localeNames = pick(languageNativeNames, this.configurations.locales || []);\n\n const {\n components: { components },\n fields: { fields },\n } = this.library;\n\n return (\n <Providers\n authLogo={this.configurations.authLogo}\n components={components}\n fields={fields}\n customFields={this.customFields}\n localeNames={localeNames}\n getAdminInjectedComponents={this.getAdminInjectedComponents}\n getPlugin={this.getPlugin}\n messages={this.configurations.translations}\n menu={this.menu}\n menuLogo={this.configurations.menuLogo}\n plugins={this.plugins}\n runHookParallel={this.runHookParallel}\n runHookWaterfall={(name, initialValue, async = false) => {\n return this.runHookWaterfall(name, initialValue, async, store);\n }}\n runHookSeries={this.runHookSeries}\n themes={this.configurations.themes}\n settings={this.settings}\n showTutorials={this.configurations.tutorials}\n showReleaseNotification={this.configurations.notifications.releases}\n store={store}\n >\n <Helmet\n htmlAttributes={{ lang: localStorage.getItem(LANGUAGE_LOCAL_STORAGE_KEY) || 'en' }}\n />\n <BrowserRouter basename={getBasename()}>\n <App />\n </BrowserRouter>\n </Providers>\n );\n }\n}\n\nexport { StrapiApp, StrapiAppConstructorArgs };\n","/* eslint-disable no-undef */\nimport { getFetchClient } from '@strapi/helper-plugin';\nimport { createRoot } from 'react-dom/client';\n\nimport { StrapiApp, StrapiAppConstructorArgs } from './StrapiApp';\n\ninterface RenderAdminArgs {\n plugins: StrapiAppConstructorArgs['appPlugins'];\n}\n\nconst renderAdmin = async (mountNode: HTMLElement | null, { plugins }: RenderAdminArgs) => {\n if (!mountNode) {\n throw new Error('[@strapi/admin]: Could not find the root element to mount the admin app');\n }\n\n // @ts-expect-error – there's pollution from the global scope of Node.\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: process.env.STRAPI_ADMIN_BACKEND_URL || window.location.origin,\n isEE: false,\n telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED === 'true' ? true : false,\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 adminConfig: {},\n appPlugins: plugins,\n });\n\n await app.bootstrapAdmin();\n await app.initialize();\n await app.bootstrap();\n await app.loadTrads();\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\nexport { renderAdmin };\nexport type { RenderAdminArgs };\n"],"names":["jsx","jsxs","useLocation","Route","auth","Redirect","createContext","ceData","useCallbackRef","React","reducer","initialState","locale","defaultsDeep","IntlProvider","styled","Box","Flex","useIntl","SingleSelect","SingleSelectOption","FieldAction","PasswordInput","TextInput","useState","Main","Formik","Form","Typography","Eye","EyeStriked","Checkbox","Button","Link","PropTypes","BaseLogin","ForgotPassword","useQuery","Field","useTheme","useNotification","useAppInfo","useMutation","Portal","yup","IconButton","Cross","FieldLabel","VisuallyHidden","FieldInput","Textarea","usePersistentState","useHistory","useTracking","useAPIErrorHandler","get","useFetchClient","useReactQuery","formik","omit","getYupInnerErrors","Grid","GridItem","translatedErrors","ResetPassword","produce","set","useGuidedTour","useRouteMatch","Login","useReducer","axios","useEffect","camelCase","useFocusWhenNavigate","HeaderLayout","ContentLayout","EmptyStateLayout","LinkButton","ArrowRight","EmptyPictures","parse","pxToRem","Select","Option","TextButton","LoadingIndicatorPage","merge","useDispatch","hasAdmin","uuid","prefixFileUrlWithBackendUrl","SkipToContent","TrackingProvider","Switch","menuLogo","authLogo","currentStep","GuidedTourProviderComponent","DesignSystemProvider","createGlobalStyle","QueryClient","QueryClientProvider","Provider","StrapiAppProvider","LibraryProvider","CustomFieldsProvider","AutoReloadOverlayBlockerProvider","OverlayBlockerProvider","NotificationsProvider","invariant","options","useStore","useSelector","createSelector","RBACContext","SET_PERMISSIONS","action","RESET_PROPS","GET_DATA","GET_DATA_SUCCEEDED","appReducer","cmAppReducer","editViewLayoutManagerReducer","editViewCrudReducer","combineReducers","configureStore","Logo","lightTheme","darkTheme","isFunction","pick","Helmet","BrowserRouter","getFetchClient","createRoot"],"mappings":"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"}
|