@strapi/admin 5.0.0-beta.3 → 5.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/{AuthResponse-5G-7aJDM.mjs → AuthResponse-B3Y_lz50.mjs} +18 -4
- package/dist/admin/AuthResponse-B3Y_lz50.mjs.map +1 -0
- package/dist/admin/{AuthResponse-kdo9DYPT.js → AuthResponse-FrsRAqFn.js} +18 -7
- package/dist/admin/AuthResponse-FrsRAqFn.js.map +1 -0
- package/dist/admin/{AuthenticatedLayout-zaOd05gw.mjs → AuthenticatedLayout-CHSwnqUb.mjs} +61 -19
- package/dist/admin/AuthenticatedLayout-CHSwnqUb.mjs.map +1 -0
- package/dist/admin/{AuthenticatedLayout-1x0WC6c6.js → AuthenticatedLayout-vS7Bwbws.js} +58 -16
- package/dist/admin/AuthenticatedLayout-vS7Bwbws.js.map +1 -0
- package/dist/admin/{CreatePage-pniatTP-.mjs → CreatePage-BrnwHVcz.mjs} +3 -3
- package/dist/admin/{CreatePage-pniatTP-.mjs.map → CreatePage-BrnwHVcz.mjs.map} +1 -1
- package/dist/admin/{CreatePage-z4ERqv1R.js → CreatePage-FylqLa6E.js} +2 -2
- package/dist/admin/{CreatePage-z4ERqv1R.js.map → CreatePage-FylqLa6E.js.map} +1 -1
- package/dist/admin/{CreatePage-J84OUqE4.js → CreatePage-aBOoUjUW.js} +3 -3
- package/dist/admin/{CreatePage-J84OUqE4.js.map → CreatePage-aBOoUjUW.js.map} +1 -1
- package/dist/admin/{CreatePage-gSoe3n8A.mjs → CreatePage-rnuGS1p6.mjs} +2 -2
- package/dist/admin/{CreatePage-gSoe3n8A.mjs.map → CreatePage-rnuGS1p6.mjs.map} +1 -1
- package/dist/admin/{CreateView-NwMXZjDh.js → CreateView-L-2WWDGY.js} +2 -2
- package/dist/admin/{CreateView-NwMXZjDh.js.map → CreateView-L-2WWDGY.js.map} +1 -1
- package/dist/admin/{CreateView-sFb3ySEj.mjs → CreateView-g1_N_BFO.mjs} +2 -2
- package/dist/admin/{CreateView-sFb3ySEj.mjs.map → CreateView-g1_N_BFO.mjs.map} +1 -1
- package/dist/admin/{CreateView-JNmfRawb.js → CreateView-s_woT94q.js} +2 -2
- package/dist/admin/{CreateView-JNmfRawb.js.map → CreateView-s_woT94q.js.map} +1 -1
- package/dist/admin/{CreateView-BdO0Pvex.mjs → CreateView-v0E-2MUk.mjs} +2 -2
- package/dist/admin/{CreateView-BdO0Pvex.mjs.map → CreateView-v0E-2MUk.mjs.map} +1 -1
- package/dist/admin/{EditPage-rdOE18EC.js → EditPage-FLtTVd-J.js} +4 -4
- package/dist/admin/{EditPage-rdOE18EC.js.map → EditPage-FLtTVd-J.js.map} +1 -1
- package/dist/admin/{EditPage-eR6riBsR.js → EditPage-QD0hqEQx.js} +3 -3
- package/dist/admin/{EditPage-eR6riBsR.js.map → EditPage-QD0hqEQx.js.map} +1 -1
- package/dist/admin/{EditPage-yztdPcnM.mjs → EditPage-RH6-47fP.mjs} +4 -4
- package/dist/admin/{EditPage-yztdPcnM.mjs.map → EditPage-RH6-47fP.mjs.map} +1 -1
- package/dist/admin/{EditPage-dAyJwJfs.js → EditPage-l77sfwOj.js} +5 -5
- package/dist/admin/{EditPage-dAyJwJfs.js.map → EditPage-l77sfwOj.js.map} +1 -1
- package/dist/admin/{EditPage-IQRLHMer.mjs → EditPage-pZmycDG6.mjs} +5 -5
- package/dist/admin/{EditPage-IQRLHMer.mjs.map → EditPage-pZmycDG6.mjs.map} +1 -1
- package/dist/admin/{EditPage-3wx6NJgA.mjs → EditPage-x0JVIh4C.mjs} +3 -3
- package/dist/admin/{EditPage-3wx6NJgA.mjs.map → EditPage-x0JVIh4C.mjs.map} +1 -1
- package/dist/admin/{EditView-oyHNBKvL.js → EditView-0jWi165t.js} +3 -3
- package/dist/admin/{EditView-oyHNBKvL.js.map → EditView-0jWi165t.js.map} +1 -1
- package/dist/admin/{EditView-fbzip_S8.mjs → EditView-dEKhCE7v.mjs} +3 -3
- package/dist/admin/{EditView-fbzip_S8.mjs.map → EditView-dEKhCE7v.mjs.map} +1 -1
- package/dist/admin/{EditViewPage-LdDGNi6d.js → EditViewPage-mLGPwfRP.js} +3 -3
- package/dist/admin/{EditViewPage-LdDGNi6d.js.map → EditViewPage-mLGPwfRP.js.map} +1 -1
- package/dist/admin/{EditViewPage-rDgxiutd.mjs → EditViewPage-urKxemM0.mjs} +3 -3
- package/dist/admin/{EditViewPage-rDgxiutd.mjs.map → EditViewPage-urKxemM0.mjs.map} +1 -1
- package/dist/admin/{EventsTable-rNMPq-X1.mjs → EventsTable-BCAvurrX.mjs} +2 -2
- package/dist/admin/{EventsTable-rNMPq-X1.mjs.map → EventsTable-BCAvurrX.mjs.map} +1 -1
- package/dist/admin/{EventsTable--peC0Geq.js → EventsTable-y0d489dF.js} +2 -2
- package/dist/admin/{EventsTable--peC0Geq.js.map → EventsTable-y0d489dF.js.map} +1 -1
- package/dist/admin/{HomePage-14WM2hIE.js → HomePage-1CH8bE47.js} +2 -2
- package/dist/admin/{HomePage-14WM2hIE.js.map → HomePage-1CH8bE47.js.map} +1 -1
- package/dist/admin/{HomePage-qgAro8dS.mjs → HomePage-hsBKC9UT.mjs} +3 -3
- package/dist/admin/{HomePage-qgAro8dS.mjs.map → HomePage-hsBKC9UT.mjs.map} +1 -1
- package/dist/admin/{HomePage-zQ7HL9y6.mjs → HomePage-jcsulO2V.mjs} +2 -2
- package/dist/admin/{HomePage-zQ7HL9y6.mjs.map → HomePage-jcsulO2V.mjs.map} +1 -1
- package/dist/admin/{HomePage-e2Bs6Kar.js → HomePage-p-eVAC_O.js} +3 -3
- package/dist/admin/{HomePage-e2Bs6Kar.js.map → HomePage-p-eVAC_O.js.map} +1 -1
- package/dist/admin/{Layout-mEj5c1Bi.mjs → Layout-E5qOsA9X.mjs} +3 -3
- package/dist/admin/{Layout-mEj5c1Bi.mjs.map → Layout-E5qOsA9X.mjs.map} +1 -1
- package/dist/admin/{Layout-KAX2c8wc.js → Layout-TtAytojj.js} +3 -3
- package/dist/admin/{Layout-KAX2c8wc.js.map → Layout-TtAytojj.js.map} +1 -1
- package/dist/admin/{ListPage-AI8neqxV.mjs → ListPage-54QP9CgX.mjs} +2 -2
- package/dist/admin/{ListPage-AI8neqxV.mjs.map → ListPage-54QP9CgX.mjs.map} +1 -1
- package/dist/admin/{ListPage-AUimd0cK.js → ListPage-AzfR4Vrk.js} +5 -5
- package/dist/admin/{ListPage-AUimd0cK.js.map → ListPage-AzfR4Vrk.js.map} +1 -1
- package/dist/admin/{ListPage-asZ9aDzG.mjs → ListPage-DVSiz4k2.mjs} +3 -4
- package/dist/admin/ListPage-DVSiz4k2.mjs.map +1 -0
- package/dist/admin/{ListPage-DxI49fdQ.js → ListPage-FJ7Z1gS2.js} +3 -4
- package/dist/admin/ListPage-FJ7Z1gS2.js.map +1 -0
- package/dist/admin/{ListPage-BIpKdUdv.mjs → ListPage-M4WMxB5d.mjs} +2 -2
- package/dist/admin/{ListPage-BIpKdUdv.mjs.map → ListPage-M4WMxB5d.mjs.map} +1 -1
- package/dist/admin/{ListPage-tniramRN.mjs → ListPage-VymLq96p.mjs} +5 -5
- package/dist/admin/{ListPage-tniramRN.mjs.map → ListPage-VymLq96p.mjs.map} +1 -1
- package/dist/admin/{ListPage-ZDEeaYvm.mjs → ListPage-_p5xKu6Q.mjs} +2 -2
- package/dist/admin/{ListPage-ZDEeaYvm.mjs.map → ListPage-_p5xKu6Q.mjs.map} +1 -1
- package/dist/admin/{ListPage-ARW72ceH.js → ListPage-av7186GD.js} +2 -2
- package/dist/admin/{ListPage-ARW72ceH.js.map → ListPage-av7186GD.js.map} +1 -1
- package/dist/admin/{ListPage-romICg1Z.js → ListPage-hhPlIMGc.js} +2 -2
- package/dist/admin/{ListPage-romICg1Z.js.map → ListPage-hhPlIMGc.js.map} +1 -1
- package/dist/admin/{ListPage-MvgbZlgc.js → ListPage-ojfvM5qr.js} +2 -2
- package/dist/admin/{ListPage-MvgbZlgc.js.map → ListPage-ojfvM5qr.js.map} +1 -1
- package/dist/admin/{ListView-ph55AtDF.js → ListView-MHzoKSAg.js} +8 -5
- package/dist/admin/ListView-MHzoKSAg.js.map +1 -0
- package/dist/admin/{ListView-6hlTFx5H.mjs → ListView-QWjCBmaw.mjs} +8 -5
- package/dist/admin/ListView-QWjCBmaw.mjs.map +1 -0
- package/dist/admin/{ListView-1VRmjfh8.js → ListView-WmnatWVx.js} +7 -4
- package/dist/admin/ListView-WmnatWVx.js.map +1 -0
- package/dist/admin/{ListView-GYuN24HV.mjs → ListView-lSCZzdzM.mjs} +7 -4
- package/dist/admin/ListView-lSCZzdzM.mjs.map +1 -0
- package/dist/admin/{Login-LxE58baP.mjs → Login--ZDAgCsE.mjs} +2 -2
- package/dist/admin/{Login-LxE58baP.mjs.map → Login--ZDAgCsE.mjs.map} +1 -1
- package/dist/admin/{Login-WeDT3kAj.js → Login-Qfx7Y8LA.js} +2 -2
- package/dist/admin/{Login-WeDT3kAj.js.map → Login-Qfx7Y8LA.js.map} +1 -1
- package/dist/admin/{MagicLinkEE-AO_SBYi5.mjs → MagicLinkEE-HT2w-ynq.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-AO_SBYi5.mjs.map → MagicLinkEE-HT2w-ynq.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-_fUwHKdf.js → MagicLinkEE-QVRUN_dM.js} +3 -3
- package/dist/admin/{MagicLinkEE-_fUwHKdf.js.map → MagicLinkEE-QVRUN_dM.js.map} +1 -1
- package/dist/admin/{MarketplacePage-m8Lf3adM.js → MarketplacePage-bs_XrVBk.js} +2 -2
- package/dist/admin/{MarketplacePage-m8Lf3adM.js.map → MarketplacePage-bs_XrVBk.js.map} +1 -1
- package/dist/admin/{MarketplacePage-26cUn4e5.mjs → MarketplacePage-e41eJgNp.mjs} +2 -2
- package/dist/admin/{MarketplacePage-26cUn4e5.mjs.map → MarketplacePage-e41eJgNp.mjs.map} +1 -1
- package/dist/admin/{Permissions-NRzJqZEr.js → Permissions-IbcPzM2X.js} +2 -2
- package/dist/admin/{Permissions-NRzJqZEr.js.map → Permissions-IbcPzM2X.js.map} +1 -1
- package/dist/admin/{Permissions-VzklM1ie.mjs → Permissions-eyokRb6a.mjs} +2 -2
- package/dist/admin/{Permissions-VzklM1ie.mjs.map → Permissions-eyokRb6a.mjs.map} +1 -1
- package/dist/admin/{ProfilePage-oSih4pcL.js → ProfilePage-1ptv647K.js} +3 -3
- package/dist/admin/{ProfilePage-oSih4pcL.js.map → ProfilePage-1ptv647K.js.map} +1 -1
- package/dist/admin/{ProfilePage-0d-k7mtP.mjs → ProfilePage-jsFPZpKL.mjs} +3 -3
- package/dist/admin/{ProfilePage-0d-k7mtP.mjs.map → ProfilePage-jsFPZpKL.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-V_PZUtVT.mjs → SelectRoles-9TYXaG64.mjs} +3 -3
- package/dist/admin/{SelectRoles-V_PZUtVT.mjs.map → SelectRoles-9TYXaG64.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-ZsRUnSdr.js → SelectRoles-OEKLwb7S.js} +3 -3
- package/dist/admin/{SelectRoles-ZsRUnSdr.js.map → SelectRoles-OEKLwb7S.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-kbLz1A_y.mjs → SingleSignOnPage-ELEF2pqT.mjs} +4 -4
- package/dist/admin/SingleSignOnPage-ELEF2pqT.mjs.map +1 -0
- package/dist/admin/{SingleSignOnPage-jtjy4_4U.js → SingleSignOnPage-TFMqxPEF.js} +4 -4
- package/dist/admin/SingleSignOnPage-TFMqxPEF.js.map +1 -0
- package/dist/admin/{Table-kMt3jQ2g.js → Table--gMZz8mZ.js} +2 -2
- package/dist/admin/{Table-kMt3jQ2g.js.map → Table--gMZz8mZ.js.map} +1 -1
- package/dist/admin/{Table-ZFyORhH3.mjs → Table-PQ0O80QL.mjs} +2 -2
- package/dist/admin/{Table-ZFyORhH3.mjs.map → Table-PQ0O80QL.mjs.map} +1 -1
- package/dist/admin/{TokenTypeSelect-Ngz4ONEL.js → TokenTypeSelect-QB3M2AO_.js} +2 -2
- package/dist/admin/{TokenTypeSelect-Ngz4ONEL.js.map → TokenTypeSelect-QB3M2AO_.js.map} +1 -1
- package/dist/admin/{TokenTypeSelect-oOKwvsQ2.mjs → TokenTypeSelect-zx8B_1pv.mjs} +2 -2
- package/dist/admin/{TokenTypeSelect-oOKwvsQ2.mjs.map → TokenTypeSelect-zx8B_1pv.mjs.map} +1 -1
- package/dist/admin/{UseCasePage-qrhHiF5S.js → UseCasePage-R3vzwRYQ.js} +2 -2
- package/dist/admin/{UseCasePage-qrhHiF5S.js.map → UseCasePage-R3vzwRYQ.js.map} +1 -1
- package/dist/admin/{UseCasePage-2wum_xzS.mjs → UseCasePage-khHikw1F.mjs} +2 -2
- package/dist/admin/{UseCasePage-2wum_xzS.mjs.map → UseCasePage-khHikw1F.mjs.map} +1 -1
- package/dist/admin/{constants-jQFnBWVd.js → constants-EH1lNehX.js} +2 -2
- package/dist/admin/{constants-jQFnBWVd.js.map → constants-EH1lNehX.js.map} +1 -1
- package/dist/admin/{constants-enREoOEa.mjs → constants-O2S8dPXm.mjs} +2 -2
- package/dist/admin/{constants-enREoOEa.mjs.map → constants-O2S8dPXm.mjs.map} +1 -1
- package/dist/admin/{index-oBxjGftZ.mjs → index-3MYZ88xc.mjs} +52 -56
- package/dist/admin/index-3MYZ88xc.mjs.map +1 -0
- package/dist/admin/{index-dcaxfEDi.js → index-Ze-KuF2r.js} +49 -53
- package/dist/admin/index-Ze-KuF2r.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavBrand.d.ts +1 -0
- package/dist/admin/src/hooks/useAdminRoles.d.ts +2 -2
- package/dist/admin/src/index.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +3 -3
- package/dist/admin/src/services/users.d.ts +4 -4
- package/dist/admin/test.js +2 -2
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +2 -2
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/{useAdminRoles-Q2BxHs4o.js → useAdminRoles-K6leAcQd.js} +2 -2
- package/dist/admin/{useAdminRoles-Q2BxHs4o.js.map → useAdminRoles-K6leAcQd.js.map} +1 -1
- package/dist/admin/{useAdminRoles-HWIbyk2Z.mjs → useAdminRoles-dMrStp_i.mjs} +2 -2
- package/dist/admin/{useAdminRoles-HWIbyk2Z.mjs.map → useAdminRoles-dMrStp_i.mjs.map} +1 -1
- package/dist/admin/{validation-gH-06ERZ.mjs → validation-EKBCSsCp.mjs} +2 -2
- package/dist/admin/{validation-gH-06ERZ.mjs.map → validation-EKBCSsCp.mjs.map} +1 -1
- package/dist/admin/{validation-2MGgF10o.js → validation-FXocLGal.js} +2 -2
- package/dist/admin/{validation-2MGgF10o.js.map → validation-FXocLGal.js.map} +1 -1
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
- package/dist/ee/admin/src/utils/cookies.d.ts +2 -0
- package/dist/ee/server/index.js +102 -1916
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +107 -1920
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +11 -13
- package/dist/server/index.js +66 -49
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +42 -42
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +7 -1
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/package.json +12 -14
- package/dist/admin/AuthResponse-5G-7aJDM.mjs.map +0 -1
- package/dist/admin/AuthResponse-kdo9DYPT.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-1x0WC6c6.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-zaOd05gw.mjs.map +0 -1
- package/dist/admin/ListPage-DxI49fdQ.js.map +0 -1
- package/dist/admin/ListPage-asZ9aDzG.mjs.map +0 -1
- package/dist/admin/ListView-1VRmjfh8.js.map +0 -1
- package/dist/admin/ListView-6hlTFx5H.mjs.map +0 -1
- package/dist/admin/ListView-GYuN24HV.mjs.map +0 -1
- package/dist/admin/ListView-ph55AtDF.js.map +0 -1
- package/dist/admin/SingleSignOnPage-jtjy4_4U.js.map +0 -1
- package/dist/admin/SingleSignOnPage-kbLz1A_y.mjs.map +0 -1
- package/dist/admin/index-dcaxfEDi.js.map +0 -1
- package/dist/admin/index-oBxjGftZ.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;qCAsER;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;AAAzD,wBA6BE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/domain/permission/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAiB3C,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAC1D,UAAU,EACV,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,CAChG,CAAC;AAIF,eAAO,MAAM,gBAAgB,UAQ5B,CAAC;AACF,eAAO,MAAM,yBAAyB,sFAO5B,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,mBACzB,CAAC;AAYlC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,mEAOvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,mEAE1B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,mEAGvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,aACZ,MAAM,SACT,OAAO,cACF,UAAU,KACrB,UAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/domain/permission/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAiB3C,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAC1D,UAAU,EACV,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,CAChG,CAAC;AAIF,eAAO,MAAM,gBAAgB,UAQ5B,CAAC;AACF,eAAO,MAAM,yBAAyB,sFAO5B,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,mBACzB,CAAC;AAYlC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,mEAOvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,mEAE1B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,mEAGvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,aACZ,MAAM,SACT,OAAO,cACF,UAAU,KACrB,UAEF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,uCACf,SAAS,cACP,UAAU,gCACsD,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,MAAM,eAAgB,uBAAuB,eAEzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,mHAa9B,CAAC;AAEF;;;GAGG;AAEH,iBAAS,YAAY,CAAC,CAAC,SAAS,uBAAuB,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;AACrF,iBAAS,YAAY,CAAC,CAAC,SAAS,uBAAuB,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAWjF,OAAO,EAAE,YAAY,EAAE,CAAC;;;;;;;;;;;;;;AAExB,wBAYE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../../server/src/middlewares/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;iCAIlB,GAAG;
|
|
1
|
+
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../../server/src/middlewares/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;iCAIlB,GAAG,cAAc;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,WAClD,OAAO,QAAQ,IAAI;AADjC,wBAyCI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;qCAKd;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;AAAnD,wBAUE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-admin-panel.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/serve-admin-panel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,uBAAuB;
|
|
1
|
+
{"version":3,"file":"serve-admin-panel.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/serve-admin-panel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,uBAAuB,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,SA4CnE,CAAC;AAoBF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/permission/sections-builder/handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;AAE1C;;;;;;GAMG;AACH,QAAA,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/permission/sections-builder/handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,EAAE,CAAC;AAE1C;;;;;;GAMG;AACH,QAAA,MAAM,QAAQ,wBAAyB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,SAWrF,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,OAAO,wBAAyB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,SAUpF,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,gBAAgB,yBAGnB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,mBAAmB,CAAC;CAC9B,SAUA,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,kBAAkB,SACf,MAAM,gDAC8B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,SAmB1F,CAAC;AA2BJ;;GAEG;AACH,QAAA,MAAM,cAAc,wBAAyB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,SAkB5F,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/transfer/token.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,CAAC;AAGvB,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EAEd,MAAM,uCAAuC,CAAC;AAoB/C;;GAEG;AACH,QAAA,MAAM,IAAI,QAAa,QAAQ,sBAAsB,EAAE,CAStD,CAAC;AAiBF,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/transfer/token.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,CAAC;AAGvB,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EAEd,MAAM,uCAAuC,CAAC;AAoB/C;;GAEG;AACH,QAAA,MAAM,IAAI,QAAa,QAAQ,sBAAsB,EAAE,CAStD,CAAC;AAiBF,eAAO,MAAM,YAAY;;eACX,CAAC;eACmB,MAAM;CAEvC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,MAAM,eAAsB,kBAAkB,KAAG,QAAQ,aAAa,CA0C3E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,MAAM,OACN,MAAM,GAAG,MAAM,cACP,kBAAkB,KAC7B,QAAQ,sBAAsB,CA8DhC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,MAAM,OAAc,MAAM,GAAG,MAAM,KAAG,QAAQ,sBAAsB,CAMzE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,KAAK;;;;;;MAQR,QAAQ,sBAAsB,GAAG,IAAI,CAcvC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,OAAO,OAAc,MAAM,GAAG,MAAM,KAAG,QAAQ,sBAAsB,GAAG,IAAI,CAEjF,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,SAAS,SAAgB,MAAM,KAAG,QAAQ,sBAAsB,GAAG,IAAI,CAE5E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,MAAM;;;;;;MAQT,QAAQ,OAAO,CAIjB,CAAC;AAEF,QAAA,MAAM,UAAU,OAAc,MAAM,GAAG,MAAM,KAAG,QAAQ,aAAa,CAoBpE,CAAC;AAeF;;GAEG;AACH,QAAA,MAAM,IAAI,cAAe,MAAM,KAAG,MAWjC,CAAC;AAEF,QAAA,MAAM,kBAAkB,YAevB,CAAC;AA6DF,OAAO,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,UAAU,EACV,IAAI,EACJ,kBAAkB,GACnB,CAAC"}
|
|
@@ -164,6 +164,12 @@ export interface ContentReleasesFeature {
|
|
|
164
164
|
maximumReleases: number;
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
+
export interface ContentHistoryFeature {
|
|
168
|
+
name: 'cms-content-history';
|
|
169
|
+
options: {
|
|
170
|
+
retentionDays: number;
|
|
171
|
+
};
|
|
172
|
+
}
|
|
167
173
|
/**
|
|
168
174
|
* TODO: this response needs refactoring because we're mixing the admin seat limit info with
|
|
169
175
|
* regular EE feature info.
|
|
@@ -177,7 +183,7 @@ export declare namespace GetLicenseLimitInformation {
|
|
|
177
183
|
data: {
|
|
178
184
|
currentActiveUserCount: number;
|
|
179
185
|
enforcementUserCount: number;
|
|
180
|
-
features: (SSOFeature | AuditLogsFeature | ReviewWorkflowsFeature | ContentReleasesFeature)[];
|
|
186
|
+
features: (SSOFeature | AuditLogsFeature | ReviewWorkflowsFeature | ContentReleasesFeature | ContentHistoryFeature)[];
|
|
181
187
|
isHostedOnStrapiCloud: boolean;
|
|
182
188
|
licenseLimitStatus: unknown;
|
|
183
189
|
permittedSeats: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../shared/contracts/admin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../shared/contracts/admin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.5",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
"@radix-ui/react-context": "1.0.1",
|
|
79
79
|
"@radix-ui/react-toolbar": "1.0.4",
|
|
80
80
|
"@reduxjs/toolkit": "1.9.7",
|
|
81
|
-
"@strapi/design-system": "1.
|
|
82
|
-
"@strapi/icons": "1.
|
|
83
|
-
"@strapi/permissions": "5.0.0-beta.
|
|
84
|
-
"@strapi/provider-audit-logs-local": "5.0.0-beta.
|
|
85
|
-
"@strapi/types": "5.0.0-beta.
|
|
86
|
-
"@strapi/typescript-utils": "5.0.0-beta.
|
|
87
|
-
"@strapi/utils": "5.0.0-beta.
|
|
81
|
+
"@strapi/design-system": "1.18.0",
|
|
82
|
+
"@strapi/icons": "1.18.0",
|
|
83
|
+
"@strapi/permissions": "5.0.0-beta.5",
|
|
84
|
+
"@strapi/provider-audit-logs-local": "5.0.0-beta.5",
|
|
85
|
+
"@strapi/types": "5.0.0-beta.5",
|
|
86
|
+
"@strapi/typescript-utils": "5.0.0-beta.5",
|
|
87
|
+
"@strapi/utils": "5.0.0-beta.5",
|
|
88
88
|
"@testing-library/dom": "9.2.0",
|
|
89
89
|
"@testing-library/react": "14.0.0",
|
|
90
90
|
"@testing-library/user-event": "14.4.3",
|
|
@@ -104,7 +104,6 @@
|
|
|
104
104
|
"immer": "9.0.21",
|
|
105
105
|
"inquirer": "8.2.5",
|
|
106
106
|
"invariant": "^2.2.4",
|
|
107
|
-
"js-cookie": "2.2.1",
|
|
108
107
|
"jsonwebtoken": "9.0.0",
|
|
109
108
|
"koa": "2.15.2",
|
|
110
109
|
"koa-compose": "4.1.0",
|
|
@@ -140,12 +139,11 @@
|
|
|
140
139
|
"zod": "^3.22.4"
|
|
141
140
|
},
|
|
142
141
|
"devDependencies": {
|
|
143
|
-
"@strapi/admin-test-utils": "5.0.0-beta.
|
|
144
|
-
"@strapi/data-transfer": "5.0.0-beta.
|
|
145
|
-
"@strapi/pack-up": "5.0.0
|
|
142
|
+
"@strapi/admin-test-utils": "5.0.0-beta.5",
|
|
143
|
+
"@strapi/data-transfer": "5.0.0-beta.5",
|
|
144
|
+
"@strapi/pack-up": "5.0.0",
|
|
146
145
|
"@types/codemirror5": "npm:@types/codemirror@^5.60.15",
|
|
147
146
|
"@types/invariant": "2.2.36",
|
|
148
|
-
"@types/js-cookie": "3.0.6",
|
|
149
147
|
"@types/jsonwebtoken": "9.0.3",
|
|
150
148
|
"@types/koa-passport": "6.0.1",
|
|
151
149
|
"@types/lodash": "^4.14.191",
|
|
@@ -186,5 +184,5 @@
|
|
|
186
184
|
}
|
|
187
185
|
}
|
|
188
186
|
},
|
|
189
|
-
"gitHead": "
|
|
187
|
+
"gitHead": "2aa7d7fb419d7ece2dc1b6c0f45d6c8948abc137"
|
|
190
188
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthResponse-5G-7aJDM.mjs","sources":["../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport Cookies from 'js-cookie';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useAuth } from '../../../../admin/src/features/Auth';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n const setToken = useAuth('AuthResponse', (state) => state.setToken);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = Cookies.get('jwtToken');\n\n if (jwtToken) {\n setToken(jwtToken);\n\n Cookies.remove('jwtToken');\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [match, redirectToOops, setToken, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,eAAe,MAAM;AACzB,EAAM,MAAA,KAAA,GAAQ,SAAS,2BAA2B,CAAA,CAAA;AAClD,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAE7B,EAAM,MAAA,cAAA,GAAiB,KAAM,CAAA,WAAA,CAAY,MAAM;AAC7C,IAAS,QAAA,CAAA;AAAA,MACP,QAAU,EAAA,YAAA;AAAA,MACV,QAAQ,CAAS,MAAA,EAAA,kBAAA;AAAA,QACf,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,wCAAA;AAAA,UACJ,cAAgB,EAAA,sDAAA;AAAA,SACjB,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACA,EAAA,CAAC,QAAU,EAAA,aAAa,CAAC,CAAA,CAAA;AAE5B,EAAA,MAAM,WAAW,OAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,QAAQ,CAAA,CAAA;AAElE,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAI,IAAA,KAAA,EAAO,MAAO,CAAA,YAAA,KAAiB,OAAS,EAAA;AAC1C,MAAe,cAAA,EAAA,CAAA;AAAA,KACjB;AAEA,IAAI,IAAA,KAAA,EAAO,MAAO,CAAA,YAAA,KAAiB,SAAW,EAAA;AAC5C,MAAM,MAAA,QAAA,GAAW,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,CAAA;AAEvC,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAEjB,QAAA,OAAA,CAAQ,OAAO,UAAU,CAAA,CAAA;AAEzB,QAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,OACjB,MAAA;AACL,QAAe,cAAA,EAAA,CAAA;AAAA,OACjB;AAAA,KACF;AAAA,KACC,CAAC,KAAA,EAAO,cAAgB,EAAA,QAAA,EAAU,QAAQ,CAAC,CAAA,CAAA;AAE9C,EAAO,uBAAA,GAAA,CAAC,IAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AACvB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthResponse-kdo9DYPT.js","sources":["../../ee/admin/src/pages/AuthResponse.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport Cookies from 'js-cookie';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { Page } from '../../../../admin/src/components/PageHelpers';\nimport { useAuth } from '../../../../admin/src/features/Auth';\n\nconst AuthResponse = () => {\n const match = useMatch('/auth/login/:authResponse');\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n\n const redirectToOops = React.useCallback(() => {\n navigate({\n pathname: '/auth/oops',\n search: `?info=${encodeURIComponent(\n formatMessage({\n id: 'Auth.form.button.login.providers.error',\n defaultMessage: 'We cannot connect you through the selected provider.',\n })\n )}`,\n });\n }, [navigate, formatMessage]);\n\n const setToken = useAuth('AuthResponse', (state) => state.setToken);\n\n React.useEffect(() => {\n if (match?.params.authResponse === 'error') {\n redirectToOops();\n }\n\n if (match?.params.authResponse === 'success') {\n const jwtToken = Cookies.get('jwtToken');\n\n if (jwtToken) {\n setToken(jwtToken);\n\n Cookies.remove('jwtToken');\n\n navigate('/auth/login');\n } else {\n redirectToOops();\n }\n }\n }, [match, redirectToOops, setToken, navigate]);\n\n return <Page.Loading />;\n};\n\nexport { AuthResponse };\n"],"names":["useMatch","useIntl","useNavigate","React","useAuth","Cookies","jsx","Page"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,eAAe,MAAM;AACzB,EAAM,MAAA,KAAA,GAAQA,wBAAS,2BAA2B,CAAA,CAAA;AAClD,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIC,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,WAAWC,0BAAY,EAAA,CAAA;AAE7B,EAAM,MAAA,cAAA,GAAiBC,gBAAM,CAAA,WAAA,CAAY,MAAM;AAC7C,IAAS,QAAA,CAAA;AAAA,MACP,QAAU,EAAA,YAAA;AAAA,MACV,QAAQ,CAAS,MAAA,EAAA,kBAAA;AAAA,QACf,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,wCAAA;AAAA,UACJ,cAAgB,EAAA,sDAAA;AAAA,SACjB,CAAA;AAAA,OACF,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACA,EAAA,CAAC,QAAU,EAAA,aAAa,CAAC,CAAA,CAAA;AAE5B,EAAA,MAAM,WAAWC,YAAQ,CAAA,cAAA,EAAgB,CAAC,KAAA,KAAU,MAAM,QAAQ,CAAA,CAAA;AAElE,EAAAD,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAI,IAAA,KAAA,EAAO,MAAO,CAAA,YAAA,KAAiB,OAAS,EAAA;AAC1C,MAAe,cAAA,EAAA,CAAA;AAAA,KACjB;AAEA,IAAI,IAAA,KAAA,EAAO,MAAO,CAAA,YAAA,KAAiB,SAAW,EAAA;AAC5C,MAAM,MAAA,QAAA,GAAWE,wBAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,CAAA;AAEvC,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAEjB,QAAAA,wBAAA,CAAQ,OAAO,UAAU,CAAA,CAAA;AAEzB,QAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,OACjB,MAAA;AACL,QAAe,cAAA,EAAA,CAAA;AAAA,OACjB;AAAA,KACF;AAAA,KACC,CAAC,KAAA,EAAO,cAAgB,EAAA,QAAA,EAAU,QAAQ,CAAC,CAAA,CAAA;AAE9C,EAAO,uBAAAC,cAAA,CAACC,SAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AACvB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedLayout-1x0WC6c6.js","sources":["../../admin/src/components/GuidedTour/Modal.tsx","../../admin/src/components/LeftMenu.tsx","../../admin/src/assets/images/onboarding-preview.png","../../admin/src/components/Onboarding.tsx","../../admin/src/components/PluginsInitializer.tsx","../../admin/src/hooks/useMenu.ts","../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n FocusTrap,\n IconButton,\n Portal,\n Typography,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { ArrowRight, Cross } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { LAYOUT_DATA, STATES } from './constants';\nimport { Number, VerticalDivider } from './Ornaments';\nimport { GuidedTourContextValue, useGuidedTour } from './Provider';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourModal = () => {\n const currentStep = useGuidedTour('GuidedTourModal', (state) => state.currentStep);\n const guidedTourState = useGuidedTour('GuidedTourModal', (state) => state.guidedTourState);\n const setCurrentStep = useGuidedTour('GuidedTourModal', (state) => state.setCurrentStep);\n const setStepState = useGuidedTour('GuidedTourModal', (state) => state.setStepState);\n const isGuidedTourVisible = useGuidedTour(\n 'GuidedTourModal',\n (state) => state.isGuidedTourVisible\n );\n const setSkipped = useGuidedTour('GuidedTourModal', (state) => state.setSkipped);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n if (!currentStep || !isGuidedTourVisible) {\n return null;\n }\n\n const stepData = get(LAYOUT_DATA, currentStep);\n const sectionKeys = Object.keys(guidedTourState);\n const [sectionName, stepName] = currentStep.split('.') as [\n keyof GuidedTourContextValue['guidedTourState'],\n string,\n ];\n const sectionIndex = sectionKeys.indexOf(sectionName);\n const stepIndex = Object.keys(guidedTourState[sectionName]).indexOf(stepName);\n const hasSectionAfter = sectionIndex < sectionKeys.length - 1;\n const hasStepAfter = stepIndex < Object.keys(guidedTourState[sectionName]).length - 1;\n\n const handleCtaClick = () => {\n setStepState(currentStep, true);\n\n if (stepData) {\n trackUsage(stepData.trackingEvent);\n }\n\n setCurrentStep(null);\n };\n\n const handleSkip = () => {\n setSkipped(true);\n setCurrentStep(null);\n trackUsage('didSkipGuidedtour');\n };\n\n return (\n <Portal>\n <ModalWrapper onClick={handleCtaClick} padding={8} justifyContent=\"center\">\n <FocusTrap onEscape={handleCtaClick}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n background=\"neutral0\"\n width={`${660 / 16}rem`}\n shadow=\"popupShadow\"\n hasRadius\n padding={4}\n gap={8}\n role=\"dialog\"\n aria-modal\n onClick={(e) => e.stopPropagation()}\n >\n <Flex justifyContent=\"flex-end\">\n <IconButton\n onClick={handleCtaClick}\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n >\n <Cross />\n </IconButton>\n </Flex>\n <Box\n paddingLeft={7}\n paddingRight={7}\n paddingBottom={!hasStepAfter && !hasSectionAfter ? 8 : 0}\n >\n <GuidedTourStepper\n title={stepData && 'title' in stepData ? stepData.title : undefined}\n cta={stepData && 'cta' in stepData ? stepData.cta : undefined}\n onCtaClick={handleCtaClick}\n sectionIndex={sectionIndex}\n stepIndex={stepIndex}\n hasSectionAfter={hasSectionAfter}\n >\n {stepData && 'content' in stepData && <GuidedTourContent {...stepData.content} />}\n </GuidedTourStepper>\n </Box>\n {!(!hasStepAfter && !hasSectionAfter) && (\n <Flex justifyContent=\"flex-end\">\n <Button variant=\"tertiary\" onClick={handleSkip}>\n {formatMessage({\n id: 'app.components.GuidedTour.skip',\n defaultMessage: 'Skip the tour',\n })}\n </Button>\n </Flex>\n )}\n </Flex>\n </FocusTrap>\n </ModalWrapper>\n </Portal>\n );\n};\n\nconst ModalWrapper = styled(Flex)`\n position: fixed;\n z-index: 4;\n inset: 0;\n /* this is theme.colors.neutral800 with opacity */\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourStepper\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourStepperProps {\n title: MessageDescriptor | undefined;\n children: React.ReactNode;\n cta?: {\n title: MessageDescriptor;\n target?: string;\n };\n onCtaClick: () => void;\n sectionIndex: number;\n stepIndex: number;\n hasSectionAfter: boolean;\n}\n\nconst GuidedTourStepper = ({\n title,\n children,\n cta,\n onCtaClick,\n sectionIndex,\n stepIndex,\n hasSectionAfter,\n}: GuidedTourStepperProps) => {\n const { formatMessage } = useIntl();\n\n const hasSectionBefore = sectionIndex > 0;\n const hasStepsBefore = stepIndex > 0;\n const nextSectionIndex = sectionIndex + 1;\n\n return (\n <>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} justifyContent=\"center\" minWidth={`${30 / 16}rem`}>\n {hasSectionBefore && (\n <VerticalDivider state={STATES.IS_DONE} minHeight={`${24 / 16}rem`} />\n )}\n </Flex>\n <Typography variant=\"sigma\" textColor=\"primary600\">\n {formatMessage({\n id: 'app.components.GuidedTour.title',\n defaultMessage: '3 steps to get started',\n })}\n </Typography>\n </Flex>\n <Flex>\n <Flex marginRight={8} minWidth={`${30 / 16}rem`}>\n <Number\n state={hasStepsBefore ? STATES.IS_DONE : STATES.IS_ACTIVE}\n paddingTop={3}\n paddingBottom={3}\n >\n {sectionIndex + 1}\n </Number>\n </Flex>\n {title && (\n <Typography variant=\"alpha\" fontWeight=\"bold\" textColor=\"neutral800\" as=\"h3\" id=\"title\">\n {formatMessage(title)}\n </Typography>\n )}\n </Flex>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} direction=\"column\" justifyContent=\"center\" minWidth={`${30 / 16}rem`}>\n {hasSectionAfter && (\n <>\n <VerticalDivider state={STATES.IS_DONE} />\n {hasStepsBefore && (\n <Number state={STATES.IS_ACTIVE} paddingTop={3}>\n {nextSectionIndex + 1}\n </Number>\n )}\n </>\n )}\n </Flex>\n <Box>\n {children}\n {cta &&\n (cta.target ? (\n <LinkButton\n as={NavLink}\n endIcon={<ArrowRight />}\n onClick={onCtaClick}\n // @ts-expect-error - types are not inferred correctly through the as prop.\n to={cta.target}\n >\n {formatMessage(cta.title)}\n </LinkButton>\n ) : (\n <Button endIcon={<ArrowRight />} onClick={onCtaClick}>\n {formatMessage(cta.title)}\n </Button>\n ))}\n </Box>\n </Flex>\n {hasStepsBefore && hasSectionAfter && (\n <Box paddingTop={3}>\n <Flex marginRight={8} justifyContent=\"center\" width={`${30 / 16}rem`}>\n <VerticalDivider state={STATES.IS_DONE} minHeight={`${24 / 16}rem`} />\n </Flex>\n </Box>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourContentProps\n extends Required<Pick<MessageDescriptor, 'defaultMessage' | 'id'>> {}\n\nconst GuidedTourContent = ({ id, defaultMessage }: GuidedTourContentProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} paddingBottom={6}>\n {formatMessage(\n { id, defaultMessage },\n {\n documentationLink: DocumentationLink,\n b: Bold,\n p: Paragraph,\n light: Light,\n ul: List,\n li: ListItem,\n }\n )}\n </Flex>\n );\n};\n\nconst DocumentationLink = (children: React.ReactNode) => (\n <Typography\n as=\"a\"\n textColor=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters\"\n >\n {children}\n </Typography>\n);\n\nconst Bold = (children: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\">{children}</Typography>\n);\n\nconst Paragraph = (children: React.ReactNode) => <Typography>{children}</Typography>;\n\nconst Light = (children: React.ReactNode) => (\n <Typography textColor=\"neutral600\">{children}</Typography>\n);\n\nconst List = (children: React.ReactNode) => (\n <Box paddingLeft={6}>\n <ul>{children}</ul>\n </Box>\n);\n\nconst LiStyled = styled.li`\n list-style: disc;\n &::marker {\n color: ${({ theme }) => theme.colors.neutral800};\n }\n`;\n\nconst ListItem = (children: React.ReactNode) => <LiStyled>{children}</LiStyled>;\n\nexport { GuidedTourModal };\n","import * as React from 'react';\n\nimport { Box, Divider, Flex, FocusTrap, Icon, Typography } from '@strapi/design-system';\nimport {\n MainNav,\n NavBrand,\n NavCondense,\n NavFooter,\n NavLink,\n NavSection,\n NavSections,\n NavUser,\n} from '@strapi/design-system/v2';\nimport { Exit, Write, Lock } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink as RouterNavLink, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useTracking } from '../features/Tracking';\nimport { Menu } from '../hooks/useMenu';\nimport { usePersistentState } from '../hooks/usePersistentState';\nimport { getDisplayName } from '../utils/users';\n\nconst LinkUserWrapper = styled(Box)`\n width: ${150 / 16}rem;\n position: absolute;\n bottom: ${({ theme }) => theme.spaces[9]};\n left: ${({ theme }) => theme.spaces[5]};\n`;\n\nconst LinkUser = styled(RouterNavLink)<{ logout?: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-decoration: none;\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n border-radius: ${({ theme }) => theme.spaces[1]};\n\n &:hover {\n background: ${({ theme, logout }) =>\n logout ? theme.colors.danger100 : theme.colors.primary100};\n text-decoration: none;\n }\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.danger600};\n }\n }\n`;\n\nconst NavLinkWrapper = styled(Box)`\n div:nth-child(2) {\n /* remove badge background color */\n background: transparent;\n }\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const navUserRef = React.useRef<HTMLDivElement>(null!);\n const [userLinksVisible, setUserLinksVisible] = React.useState(false);\n const {\n logos: { menu },\n } = useConfiguration('LeftMenu');\n const [condensed, setCondensed] = usePersistentState('navbar-condensed', false);\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const logout = useAuth('Logout', (state) => state.logout);\n const userDisplayName = getDisplayName(user);\n\n const initials = userDisplayName\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 2);\n\n const handleToggleUserLinks = () => setUserLinksVisible((prev) => !prev);\n\n const handleBlur: React.FocusEventHandler = (e) => {\n if (\n !e.currentTarget.contains(e.relatedTarget) &&\n /**\n * TODO: can we replace this by just using the navUserRef?\n */\n e.relatedTarget?.parentElement?.id !== 'main-nav-user-button'\n ) {\n setUserLinksVisible(false);\n }\n };\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const menuTitle = formatMessage({\n id: 'app.components.LeftMenu.navbrand.title',\n defaultMessage: 'Strapi Dashboard',\n });\n\n return (\n <MainNav condensed={condensed}>\n <NavBrand\n as={RouterNavLink}\n workplace={formatMessage({\n id: 'app.components.LeftMenu.navbrand.workplace',\n defaultMessage: 'Workplace',\n })}\n title={menuTitle}\n icon={\n <img\n src={menu.custom?.url || menu.default}\n alt={formatMessage({\n id: 'app.components.LeftMenu.logo.alt',\n defaultMessage: 'Application logo',\n })}\n />\n }\n />\n\n <Divider />\n\n <NavSections>\n <NavLink\n as={RouterNavLink}\n // @ts-expect-error the props from the passed as prop are not inferred // joined together\n to=\"/content-manager\"\n icon={<Write />}\n onClick={() => handleClickOnLink('/content-manager')}\n >\n {formatMessage({ id: 'global.content-manager', defaultMessage: 'Content manager' })}\n </NavLink>\n\n {pluginsSectionLinks.length > 0 ? (\n <NavSection\n label={formatMessage({\n id: 'app.components.LeftMenu.plugins',\n defaultMessage: 'Plugins',\n })}\n >\n {pluginsSectionLinks.map((link) => {\n if (link.to === 'content-manager') {\n return null;\n }\n\n const LinkIcon = link.icon;\n return (\n <NavLinkWrapper key={link.to}>\n <NavLink\n as={RouterNavLink}\n to={link.to}\n icon={<LinkIcon />}\n onClick={() => handleClickOnLink(link.to)}\n // @ts-expect-error: badgeContent in the DS accept only strings\n badgeContent={\n link?.lockIcon ? (\n <Icon width={`${15 / 16}rem`} height={`${15 / 16}rem`} as={Lock} />\n ) : undefined\n }\n >\n {formatMessage(link.intlLabel)}\n </NavLink>\n </NavLinkWrapper>\n );\n })}\n </NavSection>\n ) : null}\n\n {generalSectionLinks.length > 0 ? (\n <NavSection\n label={formatMessage({\n id: 'app.components.LeftMenu.general',\n defaultMessage: 'General',\n })}\n >\n {generalSectionLinks.map((link) => {\n const LinkIcon = link.icon;\n\n return (\n <NavLink\n as={RouterNavLink}\n badgeContent={\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined\n }\n // @ts-expect-error the props from the passed as prop are not inferred // joined together\n to={link.to}\n key={link.to}\n icon={<LinkIcon />}\n onClick={() => handleClickOnLink(link.to)}\n >\n {formatMessage(link.intlLabel)}\n </NavLink>\n );\n })}\n </NavSection>\n ) : null}\n </NavSections>\n\n <NavFooter>\n <NavUser\n id=\"main-nav-user-button\"\n ref={navUserRef}\n onClick={handleToggleUserLinks}\n initials={initials}\n >\n {userDisplayName}\n </NavUser>\n {userLinksVisible && (\n <LinkUserWrapper\n onBlur={handleBlur}\n padding={1}\n shadow=\"tableShadow\"\n background=\"neutral0\"\n hasRadius\n >\n <FocusTrap onEscape={handleToggleUserLinks}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={0}>\n <LinkUser tabIndex={0} onClick={handleToggleUserLinks} to=\"/me\">\n <Typography>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n </LinkUser>\n <LinkUser tabIndex={0} onClick={logout} to=\"/auth/login\">\n <Typography textColor=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Logout',\n })}\n </Typography>\n <Exit />\n </LinkUser>\n </Flex>\n </FocusTrap>\n </LinkUserWrapper>\n )}\n\n <NavCondense onClick={() => setCondensed((s) => !s)}>\n {condensed\n ? formatMessage({\n id: 'app.components.LeftMenu.expand',\n defaultMessage: 'Expand the navbar',\n })\n : formatMessage({\n id: 'app.components.LeftMenu.collapse',\n defaultMessage: 'Collapse the navbar',\n })}\n </NavCondense>\n </NavFooter>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABQCAMAAAD2kgFPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAL9UExURff3+fv7+/X19/Pz9/n5+fv7/f39//////39/UdwTPn5+/X1+fHx++/v8fn5/fHx8/Pz9eTk6e/v8/Hx9fHx/e3u7/X19e3t8evr7+fn6YuR96Gl+OLi59LS2dTU2uvr++nq7ff39+Tk697e4ufn6+vr7enq69ra3tDQ1uDg5/nv7+Dg5Nzc4Nzd4tTU2OTk5+fn7djY3tzc5M/Q1NjY3NLS1tbX3MzM0u/w9crK0unp7+np+/37+8rK0MjIzu/v78PEy9ra4djY4eLi6t7e5NbW2s7O1OLk5+/v/Ojp/dra5MPF9+3u89bX3mxz99DQ2fj4+OLi5PHx8dvb29ze+/f3/7C1+t7e5+vr69PX2OPk/Jydl/T09/f393R7+Gdw96ytuNTU3M7O2ODg6a6vumJq9+3u/dTW/PP19cXGzd7e4O3t7cnK+/f3+uLk683O+Z2h+dLU+9/h++no3/j39bq0pu/v7fv7+fHz9XF4911l93V8+bm5waGirffr7Kqrtq+z9qentF9o93mA+fj4+vr6++/v7/f3++vt+83N0/Pz8+vr8dbY+sjJ98zO1crM0vn5//Pz/ra6n/n59d/g4quvp9fa2OTn66Shm8C2prCuq+/r67Gxr9LLvbCwrcfEwK+vqZSahtPVw5WafKiknff5+ZqapvHw7fv4+YGH9dnb++Tn/Ly8xvfo6Oq5v////6WlsNrc3vPz+dLU2Ovr/eTn+drc4JWXo6Wp+cLE++nr74+T+enr4s7Q1m5098bArefk5Nze0ODc1Pf3/MC8tuDi0KWrh/n39+Tk4qmv+77Cqdjc3PX1/c7S0vv7/7ixo/Px7Z+jh62x+8rMtrS6pZebjY+Rn9bayKuvm+vp5+np6aWrjVJa9fX38bi895+fm1pk9620oevp6bS0r+fp6fv19VZg9fn19X6F+fnz89LS3MDAyPXi4uextvX1+vPW2OCVnYmJl9zc4Xh4iff3+mdy97y8xPf3977C96mpsbS29YeHlamv84qS87i89VXx8BYAAAD/dFJOU319fX19fX19fQB9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19bX19fX19fX19fX19Lwd9fX19fX19fX19fX19fX1lfX19fX19fX19fX19fX19fX19fX19fW1dED59fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0PfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1mfX19bX1eXn0/fX19fX0/fSWruQsAAAbiSURBVGje7VkFcBtHFD2SbnXO9UA56dRIiiRbFFlmiO3asWKIE0MYGrQbZmjDDA1T06RJ03DSJA2XMaWUmZmZmWm6ki3lTie59kTSlJ40p5nV//tud//b/28P0WiG/PgdkhBMHKzRaBDNyWXSRoqi4ki57CQk/MZsKna58pqa0N4gnoNcNgQZzBV8ml9aYMYaW4DQRKjvDC8MG7TkG0ff+gmobifD78gXYQZE0++8b08tXFg/4uf6H46VLh5Rf/P8TERtXG1ykkmtI7zmtZFLhtW9NWfOnCUjhy0Z+T2CJOFYJMOS+YtPzV884teDX8879sKIhfUHSxG1AzH0ajXhB3UjPxpaVzd37uyls5cunRv30Fx0vhxRDfXdLLbhZWU2W1mGGNtbEPuXdStz+2ycu/+kbmv4YLOWZ3merdEyNSweW0KMxXkW1+J4RwxeMeRfCIbhMsu7/LUd0QgkSYkW8TS5wznVlg93W8LnEiUooAIqFYBQkxBnSIxkMStJVLUPoah90cCqlSurWkSI6ijdGGv0v0Wv3iaIa1i9KLJ+QoR0Wk0l2YCo6jO5unpq9dTJkyesW7uu+oZp09q0iLDXvOQNG0r9uxbtNdU2hIcidV4YELTpt40C17WIsMk9oAyapxMbNxiCR4uRWAP2TNOZ3S/KCmdEyfggEORQ9Xh4kKPkM8O6AjbIS/BWfZLED+N5StmbisEZRttRTzVD2LZtUdW09gPbFx0tatuE0Y2E/YYeVYlI0E7ELYjET68vJJS9nZdRc1shq7dgzRIeKfrtj0W//LTojTDCOE2pMsjb3BiQhSo+gF3jOJNhKQwPUgqcBdqhER+Cc4efUOvL8nFKwhxn/tjKtNLTY12HO3z15ecnTiz4ODaEkUEBgoKqIRAdgR3u8NmC4wuOd3g/noSoWoILGgHU5w7/jGpxbQ28dJRl3/AoPfR6jKIUqcnKstkm2fpnZOlZGSFBqUgQtLt6/9vvSf0Y/19qENYbgIpHSQBvFk6ekgy2NZO9SIqk1Pag7Ttvvttb6pu3Ps9lTtvsqsiTtmLpnC83L8fpyjXlmpMVhDYS+IKbN6YkBNINaubunWiMphTh9d0L1tcqMj6IDwKdszgeYYR9u6old/bsi1SsRohhs3heVBK2mz1QLQTthOe3Xyj1q8xJ3uwZZ/A5jbI17GlPyUlNTk31jHN6DQoyhgLuQNVm7l7bWZkPb719FBnKCIcOTJ8h9bVi8GO16hCdLAxR1N9E6HSsDlOmDGjLNBOlcnR6KlY6RFitODzFlrCM799qyt1eZV1KEqhU+E+/5EiE8EML/8qgXVdIfbPHZhfkrrp2bL5J2sqmJptL8nOzi9fnFxekKgjLUOB/rub58obMCEGjVoGzI7x8986Z5zydsDcQkMXWQguPJG4No25tslXYt08Vs62N8TaYvUnKNVSh6tVBuxl798iE7/QYuRSO5jhB2koYGCHZ4PBwKV2MnF5BhlPqxsqC1uJshKChUDIk3qsOPPmy1LeXIIgMzToYWtqK6nS0vRNNC+P1gqgUPrwFfYuFP+DiWK5hCwhjFzSF/WuzOnd2uwt9fEcZ4dp+l52VxSWvPueQb4ugMc7lcY8GhA+iC5+CETqLhV8Ww5iwmmbKsD4glPHtg3bIhJ/mMpucuelpabK8jqVyqdkVOea0nOtzTR4FYQoKvM1MadcJfSUjvO+uB2MlfP+hgrtLAoUf5VAhzPCe++MepVD4gAmlw71bZMLvnZ5ucBhpe0+ZDokuUPgpnJETofDtkYSfEjhUKP8ks0G5eaOoVPjbpt8t9XUYOU+6gfZYZIUEytMOzmB39OzJGThaQZgBv1EPFeIr/AiHCnEMmmiHCgMnnJHI4oFNjGzySEBGVDZsD2g+ovChX3DzjpCeptT1AaEdf8CgHbKgcbnSXBUmoykvRyb8ZKMnrSIzz2Q2myKV+iHhY0laJeGRfhLhW/dcqWulxqOOkOFNp7v78IRm/BZkiztiF6WRDxX85zRFIKTDGfu3PCr1SxcEmGd1jMDKhD9+jE6kRZHWdrILSh3CTsVAXZqa5eWUhA8P7UqGuuu0bfpDso3fuJXjDILHIBc+LQgp6XaHMd1o4HpFyvgZzUzpE49Jn5563wv+qRk/ej6culFSCG96RBc74UcmnHJnH2A5K/xdj0t9S0oLirMrvSWrKmSlvvMmZ3GBuTI/u7IkX1nqW1BQ2wzh6FskNY11eyuFH2kC4DJRf581/B+tQHzfK4e9ZsIQBkFHbURgLQMfX9x4vAlh1sMhIYnAhxhYxVgSNE6C+E+F0KWJpZuIrEgs4WBkSI9E8vXQIJrlCWTssRwSajSDJyYoXFYM0Wj+BNjsk7mwYOwbAAAAAElFTkSuQmCC\"","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Divider,\n Flex,\n Icon,\n PopoverPrimitives,\n Portal,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Cross, Message, Play, Question, Book, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport onboardingPreview from '../assets/images/onboarding-preview.png';\nimport { useAppInfo } from '../features/AppInfo';\n\nconst Onboarding = () => {\n const triggerRef = React.useRef<HTMLButtonElement>(null!);\n const [isOpen, setIsOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const communityEdition = useAppInfo('Onboarding', (state) => state.communityEdition);\n\n const handlePopoverVisibility = () => {\n setIsOpen((prev) => !prev);\n };\n\n const docLinks = [\n ...DOCUMENTATION_LINKS,\n {\n label: { id: 'Settings.application.get-help', defaultMessage: 'Get help' },\n icon: Message,\n href: communityEdition\n ? 'https://discord.strapi.io'\n : 'https://support.strapi.io/support/home',\n },\n ];\n\n return (\n <Box as=\"aside\" position=\"fixed\" bottom={2} right={2}>\n <HelperButton\n aria-label={formatMessage(\n isOpen\n ? {\n id: 'app.components.Onboarding.help.button-close',\n defaultMessage: 'Close help menu',\n }\n : {\n id: 'app.components.Onboarding.help.button',\n defaultMessage: 'Open help menu',\n }\n )}\n onClick={handlePopoverVisibility}\n ref={triggerRef}\n >\n <Icon as={isOpen ? Cross : Question} color=\"buttonNeutral0\" />\n </HelperButton>\n\n {isOpen && (\n <Portal>\n <PopoverPrimitives.Content\n padding={0}\n onDismiss={handlePopoverVisibility}\n source={triggerRef}\n placement=\"top-end\"\n spacing={12}\n >\n <Flex\n justifyContent=\"space-between\"\n paddingBottom={5}\n paddingRight={6}\n paddingLeft={6}\n paddingTop={6}\n >\n <TypographyLineHeight fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.Onboarding.title',\n defaultMessage: 'Get started videos',\n })}\n </TypographyLineHeight>\n <TextLink\n as=\"a\"\n href={WATCH_MORE.href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n variant=\"pi\"\n textColor=\"primary600\"\n >\n {formatMessage(WATCH_MORE.label)}\n </TextLink>\n </Flex>\n <Divider />\n {VIDEO_LINKS.map(({ href, duration, label }, index) => (\n <VideoLinkWrapper\n as=\"a\"\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n key={href}\n hasRadius\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={11}\n >\n <Box paddingRight={5}>\n <Typography textColor=\"neutral200\" variant=\"alpha\">\n {index + 1}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <Preview src={onboardingPreview} alt=\"\" />\n <IconWrapper\n position=\"absolute\"\n top=\"50%\"\n left=\"50%\"\n background=\"primary600\"\n borderRadius=\"50%\"\n justifyContent=\"center\"\n width={6}\n height={6}\n >\n <Icon as={Play} color=\"buttonNeutral0\" width={3} height={3} />\n </IconWrapper>\n </Box>\n <Flex direction=\"column\" alignItems=\"start\" paddingLeft={4}>\n <Typography fontWeight=\"bold\">{formatMessage(label)}</Typography>\n <VisuallyHidden>:</VisuallyHidden>\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {duration}\n </Typography>\n </Flex>\n </VideoLinkWrapper>\n ))}\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={2}\n paddingLeft={5}\n paddingTop={2}\n paddingBottom={5}\n >\n {docLinks.map(({ label, href, icon }) => (\n <Flex gap={3} key={href}>\n <Icon as={icon} color=\"primary600\" />\n <TextLink\n as=\"a\"\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n variant=\"sigma\"\n textColor=\"primary700\"\n >\n {formatMessage(label)}\n </TextLink>\n </Flex>\n ))}\n </Flex>\n </PopoverPrimitives.Content>\n </Portal>\n )}\n </Box>\n );\n};\n\n// TODO: use new Button props derived from Box props with next DS release\nconst HelperButton = styled(Button)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[3]};\n /* Resetting 2rem height defined by Button component */\n height: 100%;\n`;\n\nconst IconWrapper = styled(Flex)`\n transform: translate(-50%, -50%);\n`;\n\nconst VideoLinkWrapper = styled(Flex)`\n text-decoration: none;\n\n :focus-visible {\n outline-offset: ${({ theme }) => `-${theme.spaces[1]}`};\n }\n\n :hover {\n background: ${({ theme }) => theme.colors.primary100};\n\n /* Hover style for the number displayed */\n ${Typography}:first-child {\n color: ${({ theme }) => theme.colors.primary500};\n }\n\n /* Hover style for the label */\n ${Typography}:nth-child(1) {\n color: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\nconst Preview = styled.img`\n width: ${({ theme }) => theme.spaces[10]};\n height: ${({ theme }) => theme.spaces[8]};\n /* Same overlay used in ModalLayout */\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n border-radius: ${({ theme }) => theme.borderRadius};\n`;\n\nconst TypographyLineHeight = styled(Typography)`\n /* line height of label and watch more to 1 so they can be better aligned visually */\n line-height: 1;\n`;\n\nconst TextLink = styled(TypographyLineHeight)`\n text-decoration: none;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst VIDEO_LINKS = [\n {\n label: {\n id: 'app.components.Onboarding.link.build-content',\n defaultMessage: 'Build a content architecture',\n },\n href: 'https://www.youtube.com/watch?v=G9GjN0RxhkE',\n duration: '5:48',\n },\n {\n label: {\n id: 'app.components.Onboarding.link.manage-content',\n defaultMessage: 'Add & manage content',\n },\n href: 'https://www.youtube.com/watch?v=DEZw4KbybAI',\n duration: '3:18',\n },\n {\n label: { id: 'app.components.Onboarding.link.manage-media', defaultMessage: 'Manage media' },\n href: 'https://www.youtube.com/watch?v=-61MuiMQb38',\n duration: '3:41',\n },\n];\n\nconst WATCH_MORE = {\n href: 'https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq',\n label: {\n id: 'app.components.Onboarding.link.more-videos',\n defaultMessage: 'Watch more videos',\n },\n};\n\nconst DOCUMENTATION_LINKS = [\n {\n label: { id: 'global.documentation', defaultMessage: 'documentation' },\n href: 'https://docs.strapi.io',\n icon: Book,\n },\n {\n label: { id: 'app.static.links.cheatsheet', defaultMessage: 'cheatsheet' },\n href: 'https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf',\n icon: PaperPlane,\n },\n];\n\nexport { Onboarding };\n","import * as React from 'react';\n\nimport { produce } from 'immer';\nimport set from 'lodash/set';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n set(draftState, ['plugins', action.pluginId, 'isReady'], true);\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n","import * as React from 'react';\n\nimport { Cog, Puzzle, ShoppingCart } from '@strapi/icons';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { useSelector } from 'react-redux';\n\nimport { useAuth, type Permission, AuthContextValue } from '../features/Auth';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\n\n/* -------------------------------------------------------------------------------------------------\n * useMenu\n * -----------------------------------------------------------------------------------------------*/\n\ntype MenuItem = Omit<StrapiAppContextValue['menu'][number], 'Component'>;\n\nexport interface Menu {\n generalSectionLinks: MenuItem[];\n pluginsSectionLinks: MenuItem[];\n isLoading: boolean;\n}\n\nconst useMenu = (shouldUpdateStrapi: boolean) => {\n const checkUserHasPermissions = useAuth('useMenu', (state) => state.checkUserHasPermissions);\n const menu = useStrapiApp('useMenu', (state) => state.menu);\n const permissions = useSelector(selectAdminPermissions);\n const [menuWithUserPermissions, setMenuWithUserPermissions] = React.useState<Menu>({\n generalSectionLinks: [\n {\n icon: Puzzle,\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/list-plugins',\n permissions: permissions.marketplace?.main ?? [],\n },\n {\n icon: ShoppingCart,\n intlLabel: {\n id: 'global.marketplace',\n defaultMessage: 'Marketplace',\n },\n to: '/marketplace',\n permissions: permissions.marketplace?.main ?? [],\n },\n {\n icon: Cog,\n intlLabel: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n to: '/settings',\n // Permissions of this link are retrieved in the init phase\n // using the settings menu\n permissions: [],\n notificationsCount: 0,\n },\n ],\n pluginsSectionLinks: [],\n isLoading: true,\n });\n const generalSectionLinksRef = React.useRef(menuWithUserPermissions.generalSectionLinks);\n\n React.useEffect(() => {\n async function applyMenuPermissions() {\n const authorizedPluginSectionLinks = await getPluginSectionLinks(\n menu,\n checkUserHasPermissions\n );\n\n const authorizedGeneralSectionLinks = await getGeneralLinks(\n generalSectionLinksRef.current,\n shouldUpdateStrapi,\n checkUserHasPermissions\n );\n\n setMenuWithUserPermissions((state) => ({\n ...state,\n generalSectionLinks: authorizedGeneralSectionLinks,\n pluginsSectionLinks: authorizedPluginSectionLinks,\n isLoading: false,\n }));\n }\n\n applyMenuPermissions();\n }, [\n setMenuWithUserPermissions,\n generalSectionLinksRef,\n menu,\n permissions,\n shouldUpdateStrapi,\n checkUserHasPermissions,\n ]);\n\n return menuWithUserPermissions;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\nconst getGeneralLinks = async (\n generalSectionRawLinks: MenuItem[],\n shouldUpdateStrapi: boolean = false,\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const generalSectionLinksPermissions = await Promise.all(\n generalSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedGeneralSectionLinks = generalSectionRawLinks.filter(\n (_, index) => generalSectionLinksPermissions[index].length > 0\n );\n\n const settingsLinkIndex = authorizedGeneralSectionLinks.findIndex(\n (obj) => obj.to === '/settings'\n );\n\n if (settingsLinkIndex === -1) {\n return [];\n }\n\n const authorizedGeneralLinksClone = cloneDeep(authorizedGeneralSectionLinks);\n\n authorizedGeneralLinksClone[settingsLinkIndex].notificationsCount = shouldUpdateStrapi ? 1 : 0;\n\n return authorizedGeneralLinksClone;\n};\n\nconst getPluginSectionLinks = async (\n pluginsSectionRawLinks: MenuItem[],\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const pluginSectionLinksPermissions = await Promise.all(\n pluginsSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedPluginSectionLinks = pluginsSectionRawLinks.filter(\n (_, index) => pluginSectionLinksPermissions[index].length > 0\n );\n\n return authorizedPluginSectionLinks;\n};\n\nexport { useMenu };\n","import * as React from 'react';\n\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { Outlet } from 'react-router-dom';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport packageJSON from '../../../package.json';\nimport { GuidedTourModal } from '../components/GuidedTour/Modal';\nimport { useGuidedTour } from '../components/GuidedTour/Provider';\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Onboarding } from '../components/Onboarding';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useOnce } from '../hooks/useOnce';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst strapiVersion = packageJSON.version;\n\nconst AdminLayout = () => {\n const setGuidedTourVisibility = useGuidedTour(\n 'AdminLayout',\n (state) => state.setGuidedTourVisibility\n );\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n throw new Error();\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n const userRoles = useAuth('AuthenticatedApp', (state) => state.user?.roles);\n\n React.useEffect(() => {\n if (userRoles) {\n const isUserSuperAdmin = userRoles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin && appInfo?.autoReload) {\n setGuidedTourVisibility(true);\n }\n }\n }, [userRoles, appInfo?.autoReload, setGuidedTourVisibility]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n const { showTutorials } = useConfiguration('Admin');\n\n /**\n * Make sure the event is only send once after accessing the admin panel\n * and not at runtime for example when regenerating the permissions with the ctb\n * or with i18n\n */\n useOnce(() => {\n trackUsage('didAccessAuthenticatedAdministration');\n });\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex alignItems=\"flex-start\">\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n />\n <Box flex={1}>\n <Outlet />\n <GuidedTourModal />\n {showTutorials && <Onboarding />}\n </Box>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["useGuidedTour","useIntl","useTracking","get","LAYOUT_DATA","jsx","Portal","FocusTrap","jsxs","Flex","IconButton","Cross","Box","Button","styled","Fragment","VerticalDivider","STATES","Typography","Number","LinkButton","NavLink","ArrowRight","RouterNavLink","React","useConfiguration","usePersistentState","useAuth","useLocation","getDisplayName","MainNav","NavBrand","Divider","NavSections","Write","NavSection","Icon","Lock","NavFooter","NavUser","Exit","NavCondense","useAppInfo","Message","Question","PopoverPrimitives","Play","VisuallyHidden","Book","PaperPlane","useStrapiApp","Page","produce","set","useSelector","selectAdminPermissions","Puzzle","ShoppingCart","Cog","cloneDeep","useInformationQuery","hashAdminUserEmail","useOnce","AppInfoProvider","NpsSurvey","DndProvider","HTML5Backend","SkipToContent","Outlet","PrivateRoute","valid","lt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,kBAAkB,MAAM;AAC5B,EAAA,MAAM,cAAcA,mBAAc,CAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU,MAAM,WAAW,CAAA,CAAA;AACjF,EAAA,MAAM,kBAAkBA,mBAAc,CAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU,MAAM,eAAe,CAAA,CAAA;AACzF,EAAA,MAAM,iBAAiBA,mBAAc,CAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU,MAAM,cAAc,CAAA,CAAA;AACvF,EAAA,MAAM,eAAeA,mBAAc,CAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA,CAAA;AACnF,EAAA,MAAM,mBAAsB,GAAAA,mBAAA;AAAA,IAC1B,iBAAA;AAAA,IACA,CAAC,UAAU,KAAM,CAAA,mBAAA;AAAA,GACnB,CAAA;AACA,EAAA,MAAM,aAAaA,mBAAc,CAAA,iBAAA,EAAmB,CAAC,KAAA,KAAU,MAAM,UAAU,CAAA,CAAA;AAE/E,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIC,iBAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,gBAAY,EAAA,CAAA;AAEnC,EAAI,IAAA,CAAC,WAAe,IAAA,CAAC,mBAAqB,EAAA;AACxC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAM,MAAA,QAAA,GAAWC,oBAAI,CAAAC,qBAAA,EAAa,WAAW,CAAA,CAAA;AAC7C,EAAM,MAAA,WAAA,GAAc,MAAO,CAAA,IAAA,CAAK,eAAe,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAa,EAAA,QAAQ,CAAI,GAAA,WAAA,CAAY,MAAM,GAAG,CAAA,CAAA;AAIrD,EAAM,MAAA,YAAA,GAAe,WAAY,CAAA,OAAA,CAAQ,WAAW,CAAA,CAAA;AACpD,EAAM,MAAA,SAAA,GAAY,OAAO,IAAK,CAAA,eAAA,CAAgB,WAAW,CAAC,CAAA,CAAE,QAAQ,QAAQ,CAAA,CAAA;AAC5E,EAAM,MAAA,eAAA,GAAkB,YAAe,GAAA,WAAA,CAAY,MAAS,GAAA,CAAA,CAAA;AAC5D,EAAM,MAAA,YAAA,GAAe,YAAY,MAAO,CAAA,IAAA,CAAK,gBAAgB,WAAW,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA;AAEpF,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,YAAA,CAAa,aAAa,IAAI,CAAA,CAAA;AAE9B,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,UAAA,CAAW,SAAS,aAAa,CAAA,CAAA;AAAA,KACnC;AAEA,IAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AACf,IAAA,cAAA,CAAe,IAAI,CAAA,CAAA;AACnB,IAAA,UAAA,CAAW,mBAAmB,CAAA,CAAA;AAAA,GAChC,CAAA;AAEA,EAAA,uBACGC,cAAA,CAAAC,mBAAA,EAAA,EACC,QAAC,kBAAAD,cAAA,CAAA,YAAA,EAAA,EAAa,OAAS,EAAA,cAAA,EAAgB,OAAS,EAAA,CAAA,EAAG,cAAe,EAAA,QAAA,EAChE,QAAC,kBAAAA,cAAA,CAAAE,sBAAA,EAAA,EAAU,UAAU,cACnB,EAAA,QAAA,kBAAAC,eAAA;AAAA,IAACC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,QAAA;AAAA,MACV,UAAW,EAAA,SAAA;AAAA,MACX,UAAW,EAAA,UAAA;AAAA,MACX,KAAA,EAAO,CAAG,EAAA,GAAA,GAAM,EAAE,CAAA,GAAA,CAAA;AAAA,MAClB,MAAO,EAAA,aAAA;AAAA,MACP,SAAS,EAAA,IAAA;AAAA,MACT,OAAS,EAAA,CAAA;AAAA,MACT,GAAK,EAAA,CAAA;AAAA,MACL,IAAK,EAAA,QAAA;AAAA,MACL,YAAU,EAAA,IAAA;AAAA,MACV,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,MAElC,QAAA,EAAA;AAAA,wBAACJ,cAAA,CAAAI,iBAAA,EAAA,EAAK,gBAAe,UACnB,EAAA,QAAA,kBAAAJ,cAAA;AAAA,UAACK,uBAAA;AAAA,UAAA;AAAA,YACC,OAAS,EAAA,cAAA;AAAA,YACT,cAAY,aAAc,CAAA;AAAA,cACxB,EAAI,EAAA,uBAAA;AAAA,cACJ,cAAgB,EAAA,OAAA;AAAA,aACjB,CAAA;AAAA,YAED,yCAACC,WAAM,EAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAEX,EAAA,CAAA;AAAA,wBACAN,cAAA;AAAA,UAACO,gBAAA;AAAA,UAAA;AAAA,YACC,WAAa,EAAA,CAAA;AAAA,YACb,YAAc,EAAA,CAAA;AAAA,YACd,aAAe,EAAA,CAAC,YAAgB,IAAA,CAAC,kBAAkB,CAAI,GAAA,CAAA;AAAA,YAEvD,QAAA,kBAAAP,cAAA;AAAA,cAAC,iBAAA;AAAA,cAAA;AAAA,gBACC,KAAO,EAAA,QAAA,IAAY,OAAW,IAAA,QAAA,GAAW,SAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,gBAC1D,GAAK,EAAA,QAAA,IAAY,KAAS,IAAA,QAAA,GAAW,SAAS,GAAM,GAAA,KAAA,CAAA;AAAA,gBACpD,UAAY,EAAA,cAAA;AAAA,gBACZ,YAAA;AAAA,gBACA,SAAA;AAAA,gBACA,eAAA;AAAA,gBAEC,sBAAY,SAAa,IAAA,QAAA,mCAAa,iBAAmB,EAAA,EAAA,GAAG,SAAS,OAAS,EAAA,CAAA;AAAA,eAAA;AAAA,aACjF;AAAA,WAAA;AAAA,SACF;AAAA,QACC,EAAE,CAAC,YAAgB,IAAA,CAAC,oCAClBA,cAAA,CAAAI,iBAAA,EAAA,EAAK,cAAe,EAAA,UAAA,EACnB,yCAACI,mBAAO,EAAA,EAAA,OAAA,EAAQ,UAAW,EAAA,OAAA,EAAS,YACjC,QAAc,EAAA,aAAA,CAAA;AAAA,UACb,EAAI,EAAA,gCAAA;AAAA,UACJ,cAAgB,EAAA,eAAA;AAAA,SACjB,GACH,CACF,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAEJ,EACF,GACF,CACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,YAAA,GAAeC,wBAAOL,iBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAKhB,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,MAAA,CAAO,UAAU,CAAI,EAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAoB7D,MAAM,oBAAoB,CAAC;AAAA,EACzB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AACF,CAA8B,KAAA;AAC5B,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIR,iBAAQ,EAAA,CAAA;AAElC,EAAA,MAAM,mBAAmB,YAAe,GAAA,CAAA,CAAA;AACxC,EAAA,MAAM,iBAAiB,SAAY,GAAA,CAAA,CAAA;AACnC,EAAA,MAAM,mBAAmB,YAAe,GAAA,CAAA,CAAA;AAExC,EAAA,uBAEIO,eAAA,CAAAO,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAACP,eAAA,CAAAC,iBAAA,EAAA,EAAK,YAAW,SACf,EAAA,QAAA,EAAA;AAAA,sBAACJ,cAAA,CAAAI,iBAAA,EAAA,EAAK,aAAa,CAAG,EAAA,cAAA,EAAe,UAAS,QAAU,EAAA,CAAA,EAAG,KAAK,EAAE,CAAA,GAAA,CAAA,EAC/D,8CACEJ,cAAA,CAAAW,yBAAA,EAAA,EAAgB,OAAOC,gBAAO,CAAA,OAAA,EAAS,WAAW,CAAG,EAAA,EAAA,GAAK,EAAE,CAAA,GAAA,CAAA,EAAO,CAExE,EAAA,CAAA;AAAA,qCACCC,uBAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,SAAA,EAAU,cACnC,QAAc,EAAA,aAAA,CAAA;AAAA,QACb,EAAI,EAAA,iCAAA;AAAA,QACJ,cAAgB,EAAA,wBAAA;AAAA,OACjB,CACH,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,oCACCT,iBACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAJ,cAAA,CAACI,qBAAK,WAAa,EAAA,CAAA,EAAG,UAAU,CAAG,EAAA,EAAA,GAAK,EAAE,CACxC,GAAA,CAAA,EAAA,QAAA,kBAAAJ,cAAA;AAAA,QAACc,gBAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA,cAAA,GAAiBF,gBAAO,CAAA,OAAA,GAAUA,gBAAO,CAAA,SAAA;AAAA,UAChD,UAAY,EAAA,CAAA;AAAA,UACZ,aAAe,EAAA,CAAA;AAAA,UAEd,QAAe,EAAA,YAAA,GAAA,CAAA;AAAA,SAAA;AAAA,OAEpB,EAAA,CAAA;AAAA,MACC,KACC,oBAAAZ,cAAA,CAACa,uBAAW,EAAA,EAAA,OAAA,EAAQ,SAAQ,UAAW,EAAA,MAAA,EAAO,SAAU,EAAA,YAAA,EAAa,IAAG,IAAK,EAAA,EAAA,EAAG,OAC7E,EAAA,QAAA,EAAA,aAAA,CAAc,KAAK,CACtB,EAAA,CAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,oBACAV,eAAA,CAACC,iBAAK,EAAA,EAAA,UAAA,EAAW,SACf,EAAA,QAAA,EAAA;AAAA,sBAAAJ,cAAA,CAACI,iBAAK,EAAA,EAAA,WAAA,EAAa,CAAG,EAAA,SAAA,EAAU,QAAS,EAAA,cAAA,EAAe,QAAS,EAAA,QAAA,EAAU,CAAG,EAAA,EAAA,GAAK,EAAE,CAAA,GAAA,CAAA,EAClF,6CAEGD,eAAA,CAAAO,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,wBAACV,cAAA,CAAAW,yBAAA,EAAA,EAAgB,KAAO,EAAAC,gBAAA,CAAO,OAAS,EAAA,CAAA;AAAA,QACvC,cAAA,mCACEE,gBAAO,EAAA,EAAA,KAAA,EAAOF,iBAAO,SAAW,EAAA,UAAA,EAAY,CAC1C,EAAA,QAAA,EAAA,gBAAA,GAAmB,CACtB,EAAA,CAAA;AAAA,OAAA,EAEJ,CAEJ,EAAA,CAAA;AAAA,sCACCL,gBACE,EAAA,EAAA,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,GAAA,KACE,IAAI,MACH,mBAAAP,cAAA;AAAA,UAACe,aAAA;AAAA,UAAA;AAAA,YACC,EAAI,EAAAC,sBAAA;AAAA,YACJ,OAAA,iCAAUC,gBAAW,EAAA,EAAA,CAAA;AAAA,YACrB,OAAS,EAAA,UAAA;AAAA,YAET,IAAI,GAAI,CAAA,MAAA;AAAA,YAEP,QAAA,EAAA,aAAA,CAAc,IAAI,KAAK,CAAA;AAAA,WAAA;AAAA,SAG1B,mBAAAjB,cAAA,CAACQ,mBAAO,EAAA,EAAA,OAAA,kBAAUR,cAAA,CAAAiB,gBAAA,EAAA,EAAW,CAAI,EAAA,OAAA,EAAS,UACvC,EAAA,QAAA,EAAA,aAAA,CAAc,GAAI,CAAA,KAAK,CAC1B,EAAA,CAAA,CAAA;AAAA,OAEN,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,IACC,cAAkB,IAAA,eAAA,oBAChBjB,cAAA,CAAAO,gBAAA,EAAA,EAAI,UAAY,EAAA,CAAA,EACf,QAAC,kBAAAP,cAAA,CAAAI,iBAAA,EAAA,EAAK,WAAa,EAAA,CAAA,EAAG,cAAe,EAAA,QAAA,EAAS,KAAO,EAAA,CAAA,EAAG,EAAK,GAAA,EAAE,CAC7D,GAAA,CAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACW,yBAAgB,EAAA,EAAA,KAAA,EAAOC,gBAAO,CAAA,OAAA,EAAS,SAAW,EAAA,CAAA,EAAG,EAAK,GAAA,EAAE,CAAO,GAAA,CAAA,EAAA,CAAA,EACtE,CACF,EAAA,CAAA;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AASA,MAAM,iBAAoB,GAAA,CAAC,EAAE,EAAA,EAAI,gBAA6C,KAAA;AAC5E,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIhB,iBAAQ,EAAA,CAAA;AAElC,EACE,uBAAAI,cAAA,CAACI,qBAAK,SAAU,EAAA,QAAA,EAAS,YAAW,SAAU,EAAA,GAAA,EAAK,CAAG,EAAA,aAAA,EAAe,CAClE,EAAA,QAAA,EAAA,aAAA;AAAA,IACC,EAAE,IAAI,cAAe,EAAA;AAAA,IACrB;AAAA,MACE,iBAAmB,EAAA,iBAAA;AAAA,MACnB,CAAG,EAAA,IAAA;AAAA,MACH,CAAG,EAAA,SAAA;AAAA,MACH,KAAO,EAAA,KAAA;AAAA,MACP,EAAI,EAAA,IAAA;AAAA,MACJ,EAAI,EAAA,QAAA;AAAA,KACN;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,iBAAA,GAAoB,CAAC,QACzB,qBAAAJ,cAAA;AAAA,EAACa,uBAAA;AAAA,EAAA;AAAA,IACC,EAAG,EAAA,GAAA;AAAA,IACH,SAAU,EAAA,YAAA;AAAA,IACV,MAAO,EAAA,QAAA;AAAA,IACP,GAAI,EAAA,qBAAA;AAAA,IACJ,IAAK,EAAA,uHAAA;AAAA,IAEJ,QAAA;AAAA,GAAA;AACH,CAAA,CAAA;AAGF,MAAM,OAAO,CAAC,QAAA,oCACXA,uBAAW,EAAA,EAAA,UAAA,EAAW,YAAY,QAAS,EAAA,CAAA,CAAA;AAG9C,MAAM,SAAY,GAAA,CAAC,QAA8B,qBAAAb,cAAA,CAACa,2BAAY,QAAS,EAAA,CAAA,CAAA;AAEvE,MAAM,QAAQ,CAAC,QAAA,oCACZA,uBAAW,EAAA,EAAA,SAAA,EAAU,cAAc,QAAS,EAAA,CAAA,CAAA;AAG/C,MAAM,IAAA,GAAO,CAAC,QAAA,qBACXb,cAAA,CAAAO,gBAAA,EAAA,EAAI,aAAa,CAChB,EAAA,QAAA,kBAAAP,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAS,CAChB,EAAA,CAAA,CAAA;AAGF,MAAM,WAAWS,uBAAO,CAAA,EAAA,CAAA;AAAA;AAAA;AAAA,WAAA,EAGX,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA,CAAA,CAAA;AAInD,MAAM,QAAW,GAAA,CAAC,QAA8B,qBAAAT,cAAA,CAAC,YAAU,QAAS,EAAA,CAAA;;AC9RpE,MAAM,eAAA,GAAkBS,wBAAOF,gBAAG,CAAA,CAAA;AAAA,SAAA,EACvB,MAAM,EAAE,CAAA;AAAA;AAAA,UAAA,EAEP,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,QAAA,EAChC,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAGxC,MAAM,QAAA,GAAWE,wBAAOS,sBAAa,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAKxB,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAI,CAAA,EAAA,KAAA,CAAM,MAAO,CAAA,CAAC,CAAC,CAAE,CAAA,CAAA;AAAA,iBAAA,EAChD,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA;AAAA,gBAG/B,EAAA,CAAC,EAAE,KAAA,EAAO,MAAO,EAAA,KAC7B,MAAS,GAAA,KAAA,CAAM,MAAO,CAAA,SAAA,GAAY,KAAM,CAAA,MAAA,CAAO,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAA,EAMjD,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,SAAS,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAKnD,MAAM,cAAA,GAAiBT,wBAAOF,gBAAG,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AASjC,MAAM,QAAW,GAAA,CAAC,EAAE,mBAAA,EAAqB,qBAAyC,KAAA;AAChF,EAAM,MAAA,UAAA,GAAaY,gBAAM,CAAA,MAAA,CAAuB,IAAK,CAAA,CAAA;AACrD,EAAA,MAAM,CAAC,gBAAkB,EAAA,mBAAmB,CAAI,GAAAA,gBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AACpE,EAAM,MAAA;AAAA,IACJ,KAAA,EAAO,EAAE,IAAK,EAAA;AAAA,GAChB,GAAIC,sBAAiB,UAAU,CAAA,CAAA;AAC/B,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAC,wBAAA,CAAmB,oBAAoB,KAAK,CAAA,CAAA;AAC9E,EAAA,MAAM,OAAOC,YAAQ,CAAA,kBAAA,EAAoB,CAAC,KAAA,KAAU,MAAM,IAAI,CAAA,CAAA;AAC9D,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI1B,iBAAQ,EAAA,CAAA;AAClC,EAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,gBAAY,EAAA,CAAA;AACnC,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI0B,0BAAY,EAAA,CAAA;AACjC,EAAA,MAAM,SAASD,YAAQ,CAAA,QAAA,EAAU,CAAC,KAAA,KAAU,MAAM,MAAM,CAAA,CAAA;AACxD,EAAM,MAAA,eAAA,GAAkBE,qBAAe,IAAI,CAAA,CAAA;AAE3C,EAAA,MAAM,WAAW,eACd,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA,IAAA,CAAK,UAAU,CAAG,EAAA,CAAC,CAAC,CAClC,CAAA,IAAA,CAAK,EAAE,CACP,CAAA,SAAA,CAAU,GAAG,CAAC,CAAA,CAAA;AAEjB,EAAA,MAAM,wBAAwB,MAAM,mBAAA,CAAoB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA,CAAA;AAEvE,EAAM,MAAA,UAAA,GAAsC,CAAC,CAAM,KAAA;AACjD,IAAA,IACE,CAAC,CAAA,CAAE,aAAc,CAAA,QAAA,CAAS,EAAE,aAAa,CAAA;AAAA;AAAA;AAAA,IAIzC,CAAE,CAAA,aAAA,EAAe,aAAe,EAAA,EAAA,KAAO,sBACvC,EAAA;AACA,MAAA,mBAAA,CAAoB,KAAK,CAAA,CAAA;AAAA,KAC3B;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,WAAwB,KAAA;AACjD,IAAA,UAAA,CAAW,gBAAgB,EAAE,IAAA,EAAM,QAAU,EAAA,EAAA,EAAI,aAAa,CAAA,CAAA;AAAA,GAChE,CAAA;AAEA,EAAA,MAAM,YAAY,aAAc,CAAA;AAAA,IAC9B,EAAI,EAAA,wCAAA;AAAA,IACJ,cAAgB,EAAA,kBAAA;AAAA,GACjB,CAAA,CAAA;AAED,EACE,uBAAArB,eAAA,CAACsB,cAAQ,SACP,EAAA,QAAA,EAAA;AAAA,oBAAAzB,cAAA;AAAA,MAAC0B,WAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAAR,sBAAA;AAAA,QACJ,WAAW,aAAc,CAAA;AAAA,UACvB,EAAI,EAAA,4CAAA;AAAA,UACJ,cAAgB,EAAA,WAAA;AAAA,SACjB,CAAA;AAAA,QACD,KAAO,EAAA,SAAA;AAAA,QACP,IACE,kBAAAlB,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAK,EAAA,IAAA,CAAK,MAAQ,EAAA,GAAA,IAAO,IAAK,CAAA,OAAA;AAAA,YAC9B,KAAK,aAAc,CAAA;AAAA,cACjB,EAAI,EAAA,kCAAA;AAAA,cACJ,cAAgB,EAAA,kBAAA;AAAA,aACjB,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,OAAA;AAAA,KAEJ;AAAA,mCAEC2B,oBAAQ,EAAA,EAAA,CAAA;AAAA,oCAERC,cACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA5B,cAAA;AAAA,QAACgB,UAAA;AAAA,QAAA;AAAA,UACC,EAAI,EAAAE,sBAAA;AAAA,UAEJ,EAAG,EAAA,kBAAA;AAAA,UACH,IAAA,iCAAOW,WAAM,EAAA,EAAA,CAAA;AAAA,UACb,OAAA,EAAS,MAAM,iBAAA,CAAkB,kBAAkB,CAAA;AAAA,UAElD,wBAAc,EAAE,EAAA,EAAI,wBAA0B,EAAA,cAAA,EAAgB,mBAAmB,CAAA;AAAA,SAAA;AAAA,OACpF;AAAA,MAEC,mBAAA,CAAoB,SAAS,CAC5B,mBAAA7B,cAAA;AAAA,QAAC8B,aAAA;AAAA,QAAA;AAAA,UACC,OAAO,aAAc,CAAA;AAAA,YACnB,EAAI,EAAA,iCAAA;AAAA,YACJ,cAAgB,EAAA,SAAA;AAAA,WACjB,CAAA;AAAA,UAEA,QAAA,EAAA,mBAAA,CAAoB,GAAI,CAAA,CAAC,IAAS,KAAA;AACjC,YAAI,IAAA,IAAA,CAAK,OAAO,iBAAmB,EAAA;AACjC,cAAO,OAAA,IAAA,CAAA;AAAA,aACT;AAEA,YAAA,MAAM,WAAW,IAAK,CAAA,IAAA,CAAA;AACtB,YAAA,sCACG,cACC,EAAA,EAAA,QAAA,kBAAA9B,cAAA;AAAA,cAACgB,UAAA;AAAA,cAAA;AAAA,gBACC,EAAI,EAAAE,sBAAA;AAAA,gBACJ,IAAI,IAAK,CAAA,EAAA;AAAA,gBACT,IAAA,iCAAO,QAAS,EAAA,EAAA,CAAA;AAAA,gBAChB,OAAS,EAAA,MAAM,iBAAkB,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA,gBAExC,cACE,IAAM,EAAA,QAAA,mBACHlB,cAAA,CAAA+B,iBAAA,EAAA,EAAK,OAAO,CAAG,EAAA,EAAA,GAAK,EAAE,CAAA,GAAA,CAAA,EAAO,QAAQ,CAAG,EAAA,EAAA,GAAK,EAAE,CAAO,GAAA,CAAA,EAAA,EAAA,EAAIC,YAAM,CAC/D,GAAA,KAAA,CAAA;AAAA,gBAGL,QAAA,EAAA,aAAA,CAAc,KAAK,SAAS,CAAA;AAAA,eAAA;AAAA,aAC/B,EAAA,EAdmB,KAAK,EAe1B,CAAA,CAAA;AAAA,WAEH,CAAA;AAAA,SAAA;AAAA,OAED,GAAA,IAAA;AAAA,MAEH,mBAAA,CAAoB,SAAS,CAC5B,mBAAAhC,cAAA;AAAA,QAAC8B,aAAA;AAAA,QAAA;AAAA,UACC,OAAO,aAAc,CAAA;AAAA,YACnB,EAAI,EAAA,iCAAA;AAAA,YACJ,cAAgB,EAAA,SAAA;AAAA,WACjB,CAAA;AAAA,UAEA,QAAA,EAAA,mBAAA,CAAoB,GAAI,CAAA,CAAC,IAAS,KAAA;AACjC,YAAA,MAAM,WAAW,IAAK,CAAA,IAAA,CAAA;AAEtB,YACE,uBAAA9B,cAAA;AAAA,cAACgB,UAAA;AAAA,cAAA;AAAA,gBACC,EAAI,EAAAE,sBAAA;AAAA,gBACJ,YAAA,EACE,KAAK,kBAAsB,IAAA,IAAA,CAAK,qBAAqB,CACjD,GAAA,IAAA,CAAK,kBAAmB,CAAA,QAAA,EACxB,GAAA,KAAA,CAAA;AAAA,gBAGN,IAAI,IAAK,CAAA,EAAA;AAAA,gBAET,IAAA,iCAAO,QAAS,EAAA,EAAA,CAAA;AAAA,gBAChB,OAAS,EAAA,MAAM,iBAAkB,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA,gBAEvC,QAAA,EAAA,aAAA,CAAc,KAAK,SAAS,CAAA;AAAA,eAAA;AAAA,cAJxB,IAAK,CAAA,EAAA;AAAA,aAKZ,CAAA;AAAA,WAEH,CAAA;AAAA,SAAA;AAAA,OAED,GAAA,IAAA;AAAA,KACN,EAAA,CAAA;AAAA,oCAECe,YACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAjC,cAAA;AAAA,QAACkC,UAAA;AAAA,QAAA;AAAA,UACC,EAAG,EAAA,sBAAA;AAAA,UACH,GAAK,EAAA,UAAA;AAAA,UACL,OAAS,EAAA,qBAAA;AAAA,UACT,QAAA;AAAA,UAEC,QAAA,EAAA,eAAA;AAAA,SAAA;AAAA,OACH;AAAA,MACC,gBACC,oBAAAlC,cAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,MAAQ,EAAA,UAAA;AAAA,UACR,OAAS,EAAA,CAAA;AAAA,UACT,MAAO,EAAA,aAAA;AAAA,UACP,UAAW,EAAA,UAAA;AAAA,UACX,SAAS,EAAA,IAAA;AAAA,UAET,QAAA,kBAAAA,cAAA,CAACE,sBAAU,EAAA,EAAA,QAAA,EAAU,qBACnB,EAAA,QAAA,kBAAAC,eAAA,CAACC,iBAAK,EAAA,EAAA,SAAA,EAAU,QAAS,EAAA,UAAA,EAAW,SAAU,EAAA,GAAA,EAAK,CACjD,EAAA,QAAA,EAAA;AAAA,4BAACJ,cAAA,CAAA,QAAA,EAAA,EAAS,UAAU,CAAG,EAAA,OAAA,EAAS,uBAAuB,EAAG,EAAA,KAAA,EACxD,QAAC,kBAAAA,cAAA,CAAAa,uBAAA,EAAA,EACE,QAAc,EAAA,aAAA,CAAA;AAAA,cACb,EAAI,EAAA,gBAAA;AAAA,cACJ,cAAgB,EAAA,SAAA;AAAA,aACjB,GACH,CACF,EAAA,CAAA;AAAA,4CACC,QAAS,EAAA,EAAA,QAAA,EAAU,GAAG,OAAS,EAAA,MAAA,EAAQ,IAAG,aACzC,EAAA,QAAA,EAAA;AAAA,8BAACb,cAAA,CAAAa,uBAAA,EAAA,EAAW,SAAU,EAAA,WAAA,EACnB,QAAc,EAAA,aAAA,CAAA;AAAA,gBACb,EAAI,EAAA,gCAAA;AAAA,gBACJ,cAAgB,EAAA,QAAA;AAAA,eACjB,CACH,EAAA,CAAA;AAAA,6CACCsB,UAAK,EAAA,EAAA,CAAA;AAAA,aACR,EAAA,CAAA;AAAA,WAAA,EACF,CACF,EAAA,CAAA;AAAA,SAAA;AAAA,OACF;AAAA,sBAGFnC,cAAA,CAACoC,cAAY,EAAA,EAAA,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,CAAA,KAAM,CAAC,CAAC,CAC/C,EAAA,QAAA,EAAA,SAAA,GACG,aAAc,CAAA;AAAA,QACZ,EAAI,EAAA,gCAAA;AAAA,QACJ,cAAgB,EAAA,mBAAA;AAAA,OACjB,IACD,aAAc,CAAA;AAAA,QACZ,EAAI,EAAA,kCAAA;AAAA,QACJ,cAAgB,EAAA,qBAAA;AAAA,OACjB,CACP,EAAA,CAAA;AAAA,KACF,EAAA,CAAA;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ,CAAA;;ACpQA,0BAAe;;ACoBf,MAAM,aAAa,MAAM;AACvB,EAAM,MAAA,UAAA,GAAajB,gBAAM,CAAA,MAAA,CAA0B,IAAK,CAAA,CAAA;AACxD,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,CAAI,GAAAA,gBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAChD,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIvB,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,mBAAmByC,eAAW,CAAA,YAAA,EAAc,CAAC,KAAA,KAAU,MAAM,gBAAgB,CAAA,CAAA;AAEnF,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAU,SAAA,CAAA,CAAC,IAAS,KAAA,CAAC,IAAI,CAAA,CAAA;AAAA,GAC3B,CAAA;AAEA,EAAA,MAAM,QAAW,GAAA;AAAA,IACf,GAAG,mBAAA;AAAA,IACH;AAAA,MACE,KAAO,EAAA,EAAE,EAAI,EAAA,+BAAA,EAAiC,gBAAgB,UAAW,EAAA;AAAA,MACzE,IAAM,EAAAC,aAAA;AAAA,MACN,IAAA,EAAM,mBACF,2BACA,GAAA,wCAAA;AAAA,KACN;AAAA,GACF,CAAA;AAEA,EACE,uBAAAnC,eAAA,CAACI,oBAAI,EAAG,EAAA,OAAA,EAAQ,UAAS,OAAQ,EAAA,MAAA,EAAQ,CAAG,EAAA,KAAA,EAAO,CACjD,EAAA,QAAA,EAAA;AAAA,oBAAAP,cAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,YAAY,EAAA,aAAA;AAAA,UACV,MACI,GAAA;AAAA,YACE,EAAI,EAAA,6CAAA;AAAA,YACJ,cAAgB,EAAA,iBAAA;AAAA,WAElB,GAAA;AAAA,YACE,EAAI,EAAA,uCAAA;AAAA,YACJ,cAAgB,EAAA,gBAAA;AAAA,WAClB;AAAA,SACN;AAAA,QACA,OAAS,EAAA,uBAAA;AAAA,QACT,GAAK,EAAA,UAAA;AAAA,QAEL,yCAAC+B,iBAAK,EAAA,EAAA,EAAA,EAAI,SAASzB,WAAQ,GAAAiC,cAAA,EAAU,OAAM,gBAAiB,EAAA,CAAA;AAAA,OAAA;AAAA,KAC9D;AAAA,IAEC,MAAA,mCACEtC,mBACC,EAAA,EAAA,QAAA,kBAAAE,eAAA;AAAA,MAACqC,8BAAkB,CAAA,OAAA;AAAA,MAAlB;AAAA,QACC,OAAS,EAAA,CAAA;AAAA,QACT,SAAW,EAAA,uBAAA;AAAA,QACX,MAAQ,EAAA,UAAA;AAAA,QACR,SAAU,EAAA,SAAA;AAAA,QACV,OAAS,EAAA,EAAA;AAAA,QAET,QAAA,EAAA;AAAA,0BAAArC,eAAA;AAAA,YAACC,iBAAA;AAAA,YAAA;AAAA,cACC,cAAe,EAAA,eAAA;AAAA,cACf,aAAe,EAAA,CAAA;AAAA,cACf,YAAc,EAAA,CAAA;AAAA,cACd,WAAa,EAAA,CAAA;AAAA,cACb,UAAY,EAAA,CAAA;AAAA,cAEZ,QAAA,EAAA;AAAA,gCAACJ,cAAA,CAAA,oBAAA,EAAA,EAAqB,UAAW,EAAA,MAAA,EAC9B,QAAc,EAAA,aAAA,CAAA;AAAA,kBACb,EAAI,EAAA,iCAAA;AAAA,kBACJ,cAAgB,EAAA,oBAAA;AAAA,iBACjB,CACH,EAAA,CAAA;AAAA,gCACAA,cAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,EAAG,EAAA,GAAA;AAAA,oBACH,MAAM,UAAW,CAAA,IAAA;AAAA,oBACjB,MAAO,EAAA,QAAA;AAAA,oBACP,GAAI,EAAA,qBAAA;AAAA,oBACJ,OAAQ,EAAA,IAAA;AAAA,oBACR,SAAU,EAAA,YAAA;AAAA,oBAET,QAAA,EAAA,aAAA,CAAc,WAAW,KAAK,CAAA;AAAA,mBAAA;AAAA,iBACjC;AAAA,eAAA;AAAA,aAAA;AAAA,WACF;AAAA,yCACC2B,oBAAQ,EAAA,EAAA,CAAA;AAAA,UACR,WAAA,CAAY,IAAI,CAAC,EAAE,MAAM,QAAU,EAAA,KAAA,IAAS,KAC3C,qBAAAxB,eAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,EAAG,EAAA,GAAA;AAAA,cACH,IAAA;AAAA,cACA,MAAO,EAAA,QAAA;AAAA,cACP,GAAI,EAAA,qBAAA;AAAA,cAEJ,SAAS,EAAA,IAAA;AAAA,cACT,UAAY,EAAA,CAAA;AAAA,cACZ,aAAe,EAAA,CAAA;AAAA,cACf,WAAa,EAAA,CAAA;AAAA,cACb,YAAc,EAAA,EAAA;AAAA,cAEd,QAAA,EAAA;AAAA,gCAACH,cAAA,CAAAO,gBAAA,EAAA,EAAI,YAAc,EAAA,CAAA,EACjB,QAAC,kBAAAP,cAAA,CAAAa,uBAAA,EAAA,EAAW,SAAU,EAAA,YAAA,EAAa,OAAQ,EAAA,OAAA,EACxC,QAAQ,EAAA,KAAA,GAAA,CAAA,EACX,CACF,EAAA,CAAA;AAAA,gCACAV,eAAA,CAACI,gBAAI,EAAA,EAAA,QAAA,EAAS,UACZ,EAAA,QAAA,EAAA;AAAA,kCAAAP,cAAA,CAAC,OAAQ,EAAA,EAAA,GAAA,EAAK,iBAAmB,EAAA,GAAA,EAAI,EAAG,EAAA,CAAA;AAAA,kCACxCA,cAAA;AAAA,oBAAC,WAAA;AAAA,oBAAA;AAAA,sBACC,QAAS,EAAA,UAAA;AAAA,sBACT,GAAI,EAAA,KAAA;AAAA,sBACJ,IAAK,EAAA,KAAA;AAAA,sBACL,UAAW,EAAA,YAAA;AAAA,sBACX,YAAa,EAAA,KAAA;AAAA,sBACb,cAAe,EAAA,QAAA;AAAA,sBACf,KAAO,EAAA,CAAA;AAAA,sBACP,MAAQ,EAAA,CAAA;AAAA,sBAER,QAAA,kBAAAA,cAAA,CAAC+B,qBAAK,EAAI,EAAAU,UAAA,EAAM,OAAM,gBAAiB,EAAA,KAAA,EAAO,CAAG,EAAA,MAAA,EAAQ,CAAG,EAAA,CAAA;AAAA,qBAAA;AAAA,mBAC9D;AAAA,iBACF,EAAA,CAAA;AAAA,gDACCrC,iBAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,OAAA,EAAQ,aAAa,CACvD,EAAA,QAAA,EAAA;AAAA,kCAAAJ,cAAA,CAACa,uBAAW,EAAA,EAAA,UAAA,EAAW,MAAQ,EAAA,QAAA,EAAA,aAAA,CAAc,KAAK,CAAE,EAAA,CAAA;AAAA,kCACpDb,cAAA,CAAC0C,+BAAe,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,iDAChB7B,uBAAW,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA,OAAA,EAAQ,MACxC,QACH,EAAA,QAAA,EAAA,CAAA;AAAA,iBACF,EAAA,CAAA;AAAA,eAAA;AAAA,aAAA;AAAA,YAjCK,IAAA;AAAA,WAmCR,CAAA;AAAA,0BACDb,cAAA;AAAA,YAACI,iBAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,QAAA;AAAA,cACV,UAAW,EAAA,SAAA;AAAA,cACX,GAAK,EAAA,CAAA;AAAA,cACL,WAAa,EAAA,CAAA;AAAA,cACb,UAAY,EAAA,CAAA;AAAA,cACZ,aAAe,EAAA,CAAA;AAAA,cAEd,QAAA,EAAA,QAAA,CAAS,GAAI,CAAA,CAAC,EAAE,KAAA,EAAO,IAAM,EAAA,IAAA,EAC5B,qBAAAD,eAAA,CAACC,iBAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,EAAA;AAAA,gCAAAJ,cAAA,CAAC+B,iBAAK,EAAA,EAAA,EAAA,EAAI,IAAM,EAAA,KAAA,EAAM,YAAa,EAAA,CAAA;AAAA,gCACnC/B,cAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,EAAG,EAAA,GAAA;AAAA,oBACH,IAAA;AAAA,oBACA,MAAO,EAAA,QAAA;AAAA,oBACP,GAAI,EAAA,qBAAA;AAAA,oBACJ,OAAQ,EAAA,OAAA;AAAA,oBACR,SAAU,EAAA,YAAA;AAAA,oBAET,wBAAc,KAAK,CAAA;AAAA,mBAAA;AAAA,iBACtB;AAAA,eAAA,EAAA,EAXiB,IAYnB,CACD,CAAA;AAAA,aAAA;AAAA,WACH;AAAA,SAAA;AAAA,OAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAGA,MAAM,YAAA,GAAeS,wBAAOD,mBAAM,CAAA,CAAA;AAAA;AAAA,WAAA,EAErB,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAK3C,MAAM,WAAA,GAAcC,wBAAOL,iBAAI,CAAA,CAAA;AAAA;AAAA,CAAA,CAAA;AAI/B,MAAM,gBAAA,GAAmBK,wBAAOL,iBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,oBAId,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,IAAI,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAE,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,gBAAA,EAIxC,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA;AAAA,IAAA,EAGlDS,uBAAU,CAAA;AAAA,aAAA,EACD,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA,IAAA,EAI/CA,uBAAU,CAAA;AAAA,aAAA,EACD,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAKrD,MAAM,UAAUJ,uBAAO,CAAA,GAAA,CAAA;AAAA,SAAA,EACZ,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,EAAE,CAAC,CAAA;AAAA,UAAA,EAC9B,CAAC,EAAE,KAAA,OAAY,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA;AAAA,cAE1B,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,GAAG,KAAM,CAAA,MAAA,CAAO,UAAU,CAAI,EAAA,CAAA,CAAA;AAAA,iBAAA,EAC1C,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,YAAY,CAAA;AAAA,CAAA,CAAA;AAGpD,MAAM,oBAAA,GAAuBA,wBAAOI,uBAAU,CAAA,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAK9C,MAAM,QAAA,GAAWJ,wBAAO,oBAAoB,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAQ5C,MAAM,WAAc,GAAA;AAAA,EAClB;AAAA,IACE,KAAO,EAAA;AAAA,MACL,EAAI,EAAA,8CAAA;AAAA,MACJ,cAAgB,EAAA,8BAAA;AAAA,KAClB;AAAA,IACA,IAAM,EAAA,6CAAA;AAAA,IACN,QAAU,EAAA,MAAA;AAAA,GACZ;AAAA,EACA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,EAAI,EAAA,+CAAA;AAAA,MACJ,cAAgB,EAAA,sBAAA;AAAA,KAClB;AAAA,IACA,IAAM,EAAA,6CAAA;AAAA,IACN,QAAU,EAAA,MAAA;AAAA,GACZ;AAAA,EACA;AAAA,IACE,KAAO,EAAA,EAAE,EAAI,EAAA,6CAAA,EAA+C,gBAAgB,cAAe,EAAA;AAAA,IAC3F,IAAM,EAAA,6CAAA;AAAA,IACN,QAAU,EAAA,MAAA;AAAA,GACZ;AACF,CAAA,CAAA;AAEA,MAAM,UAAa,GAAA;AAAA,EACjB,IAAM,EAAA,0EAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,EAAI,EAAA,4CAAA;AAAA,IACJ,cAAgB,EAAA,mBAAA;AAAA,GAClB;AACF,CAAA,CAAA;AAEA,MAAM,mBAAsB,GAAA;AAAA,EAC1B;AAAA,IACE,KAAO,EAAA,EAAE,EAAI,EAAA,sBAAA,EAAwB,gBAAgB,eAAgB,EAAA;AAAA,IACrE,IAAM,EAAA,wBAAA;AAAA,IACN,IAAM,EAAAkC,UAAA;AAAA,GACR;AAAA,EACA;AAAA,IACE,KAAO,EAAA,EAAE,EAAI,EAAA,6BAAA,EAA+B,gBAAgB,YAAa,EAAA;AAAA,IACzE,IAAM,EAAA,mEAAA;AAAA,IACN,IAAM,EAAAC,gBAAA;AAAA,GACR;AACF,CAAA;;AC/PA,MAAM,kBAAqB,GAAA,CAAC,EAAE,QAAA,EAA8C,KAAA;AAC1E,EAAA,MAAM,aAAaC,iBAAa,CAAA,oBAAA,EAAsB,CAAC,KAAA,KAAU,MAAM,OAAO,CAAA,CAAA;AAC9E,EAAA,MAAM,CAAC,EAAE,OAAA,EAAW,EAAA,QAAQ,IAAI1B,gBAAM,CAAA,UAAA;AAAA,IACpC,OAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAM,KAAK,UAAU,CAAA;AAAA,GACvB,CAAA;AACA,EAAA,MAAM,SAAY,GAAAA,gBAAA,CAAM,MAAO,CAAA,CAAC,QAAqB,KAAA;AACnD,IAAA,QAAA,CAAS,EAAE,IAAA,EAAM,kBAAoB,EAAA,QAAA,EAAU,CAAA,CAAA;AAAA,GAChD,CAAA,CAAA;AAED,EAAA,MAAM,kBAAqB,GAAA,MAAA,CAAO,IAAK,CAAA,OAAO,CAAE,CAAA,IAAA;AAAA,IAC9C,CAAC,MAAA,KAAW,OAAQ,CAAA,MAAM,EAAE,OAAY,KAAA,KAAA;AAAA,GAC1C,CAAA;AAyBA,EAAA,IAAI,kBAAoB,EAAA;AACtB,IAAM,MAAA,YAAA,GAAe,OAAO,IAAK,CAAA,OAAO,EAAE,MAAO,CAAA,CAAC,KAAK,OAAY,KAAA;AACjE,MAAM,MAAA,oBAAA,GAAuB,OAAQ,CAAA,OAAO,CAAE,CAAA,WAAA,CAAA;AAE9C,MAAA,IAAI,oBAAsB,EAAA;AACxB,QAAM,MAAA,GAAA,GAAM,OAAQ,CAAA,OAAO,CAAE,CAAA,QAAA,CAAA;AAE7B,QAAA,GAAA,CAAI,qBAAMnB,cAAA,CAAA,oBAAA,EAAA,EAA+B,WAAW,SAAU,CAAA,OAAA,EAAA,EAA1B,GAAmC,CAAE,CAAA,CAAA;AAAA,OAC3E;AAEA,MAAO,OAAA,GAAA,CAAA;AAAA,KACT,EAAG,EAAuB,CAAA,CAAA;AAE1B,IAAA,uBAEKG,eAAA,CAAAO,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,YAAA;AAAA,sBACDV,cAAA,CAAC8C,SAAK,CAAA,OAAA,EAAL,EAAa,CAAA;AAAA,KAChB,EAAA,CAAA,CAAA;AAAA,GAEJ;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA,CAAA;AAUA,MAAM,YAAsB,GAAA;AAAA,EAC1B,SAAS,EAAC;AACZ,CAAA,CAAA;AASA,MAAM,OAAA,GAAwC,CAAC,KAAQ,GAAA,YAAA,EAAc,WACnEC,aAAQ,CAAA,KAAA,EAAO,CAAC,UAAe,KAAA;AAC7B,EAAA,QAAQ,OAAO,IAAM;AAAA,IACnB,KAAK,kBAAoB,EAAA;AACvB,MAAAC,oBAAA,CAAI,YAAY,CAAC,SAAA,EAAW,OAAO,QAAU,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;AAC7D,MAAA,MAAA;AAAA,KACF;AAAA,IACA;AACE,MAAO,OAAA,UAAA,CAAA;AAAA,GACX;AACF,CAAC,CAAA,CAAA;AAMH,MAAM,IAAA,GAAO,CAAC,OAAqC,KAAA;AACjD,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,GACF,CAAA;AACF,CAAA;;AC1FA,MAAM,OAAA,GAAU,CAAC,kBAAgC,KAAA;AAC/C,EAAA,MAAM,0BAA0B1B,YAAQ,CAAA,SAAA,EAAW,CAAC,KAAA,KAAU,MAAM,uBAAuB,CAAA,CAAA;AAC3F,EAAA,MAAM,OAAOuB,iBAAa,CAAA,SAAA,EAAW,CAAC,KAAA,KAAU,MAAM,IAAI,CAAA,CAAA;AAC1D,EAAM,MAAA,WAAA,GAAcI,uBAAYC,gCAAsB,CAAA,CAAA;AACtD,EAAA,MAAM,CAAC,uBAAA,EAAyB,0BAA0B,CAAA,GAAI/B,iBAAM,QAAe,CAAA;AAAA,IACjF,mBAAqB,EAAA;AAAA,MACnB;AAAA,QACE,IAAM,EAAAgC,YAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,EAAI,EAAA,gBAAA;AAAA,UACJ,cAAgB,EAAA,SAAA;AAAA,SAClB;AAAA,QACA,EAAI,EAAA,eAAA;AAAA,QACJ,WAAa,EAAA,WAAA,CAAY,WAAa,EAAA,IAAA,IAAQ,EAAC;AAAA,OACjD;AAAA,MACA;AAAA,QACE,IAAM,EAAAC,kBAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,EAAI,EAAA,oBAAA;AAAA,UACJ,cAAgB,EAAA,aAAA;AAAA,SAClB;AAAA,QACA,EAAI,EAAA,cAAA;AAAA,QACJ,WAAa,EAAA,WAAA,CAAY,WAAa,EAAA,IAAA,IAAQ,EAAC;AAAA,OACjD;AAAA,MACA;AAAA,QACE,IAAM,EAAAC,SAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,EAAI,EAAA,iBAAA;AAAA,UACJ,cAAgB,EAAA,UAAA;AAAA,SAClB;AAAA,QACA,EAAI,EAAA,WAAA;AAAA;AAAA;AAAA,QAGJ,aAAa,EAAC;AAAA,QACd,kBAAoB,EAAA,CAAA;AAAA,OACtB;AAAA,KACF;AAAA,IACA,qBAAqB,EAAC;AAAA,IACtB,SAAW,EAAA,IAAA;AAAA,GACZ,CAAA,CAAA;AACD,EAAA,MAAM,sBAAyB,GAAAlC,gBAAA,CAAM,MAAO,CAAA,uBAAA,CAAwB,mBAAmB,CAAA,CAAA;AAEvF,EAAAA,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,eAAe,oBAAuB,GAAA;AACpC,MAAA,MAAM,+BAA+B,MAAM,qBAAA;AAAA,QACzC,IAAA;AAAA,QACA,uBAAA;AAAA,OACF,CAAA;AAEA,MAAA,MAAM,gCAAgC,MAAM,eAAA;AAAA,QAC1C,sBAAuB,CAAA,OAAA;AAAA,QACvB,kBAAA;AAAA,QACA,uBAAA;AAAA,OACF,CAAA;AAEA,MAAA,0BAAA,CAA2B,CAAC,KAAW,MAAA;AAAA,QACrC,GAAG,KAAA;AAAA,QACH,mBAAqB,EAAA,6BAAA;AAAA,QACrB,mBAAqB,EAAA,4BAAA;AAAA,QACrB,SAAW,EAAA,KAAA;AAAA,OACX,CAAA,CAAA,CAAA;AAAA,KACJ;AAEA,IAAqB,oBAAA,EAAA,CAAA;AAAA,GACpB,EAAA;AAAA,IACD,0BAAA;AAAA,IACA,sBAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,kBAAA;AAAA,IACA,uBAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,uBAAA,CAAA;AACT,CAAA,CAAA;AAMA,MAAM,eAAkB,GAAA,OACtB,sBACA,EAAA,kBAAA,GAA8B,OAC9B,uBACG,KAAA;AACH,EAAM,MAAA,8BAAA,GAAiC,MAAM,OAAQ,CAAA,GAAA;AAAA,IACnD,sBAAA,CAAuB,IAAI,CAAC,EAAE,aAAkB,KAAA,uBAAA,CAAwB,WAAW,CAAC,CAAA;AAAA,GACtF,CAAA;AAEA,EAAA,MAAM,gCAAgC,sBAAuB,CAAA,MAAA;AAAA,IAC3D,CAAC,CAAG,EAAA,KAAA,KAAU,8BAA+B,CAAA,KAAK,EAAE,MAAS,GAAA,CAAA;AAAA,GAC/D,CAAA;AAEA,EAAA,MAAM,oBAAoB,6BAA8B,CAAA,SAAA;AAAA,IACtD,CAAC,GAAQ,KAAA,GAAA,CAAI,EAAO,KAAA,WAAA;AAAA,GACtB,CAAA;AAEA,EAAA,IAAI,sBAAsB,CAAI,CAAA,EAAA;AAC5B,IAAA,OAAO,EAAC,CAAA;AAAA,GACV;AAEA,EAAM,MAAA,2BAAA,GAA8BmC,2BAAU,6BAA6B,CAAA,CAAA;AAE3E,EAAA,2BAAA,CAA4B,iBAAiB,CAAA,CAAE,kBAAqB,GAAA,kBAAA,GAAqB,CAAI,GAAA,CAAA,CAAA;AAE7F,EAAO,OAAA,2BAAA,CAAA;AACT,CAAA,CAAA;AAEA,MAAM,qBAAA,GAAwB,OAC5B,sBAAA,EACA,uBACG,KAAA;AACH,EAAM,MAAA,6BAAA,GAAgC,MAAM,OAAQ,CAAA,GAAA;AAAA,IAClD,sBAAA,CAAuB,IAAI,CAAC,EAAE,aAAkB,KAAA,uBAAA,CAAwB,WAAW,CAAC,CAAA;AAAA,GACtF,CAAA;AAEA,EAAA,MAAM,+BAA+B,sBAAuB,CAAA,MAAA;AAAA,IAC1D,CAAC,CAAG,EAAA,KAAA,KAAU,6BAA8B,CAAA,KAAK,EAAE,MAAS,GAAA,CAAA;AAAA,GAC9D,CAAA;AAEA,EAAO,OAAA,4BAAA,CAAA;AACT,CAAA;;ACnHA,MAAM,gBAAgB,WAAY,CAAA,OAAA,CAAA;AAElC,MAAM,cAAc,MAAM;AACxB,EAAA,MAAM,uBAA0B,GAAA3D,mBAAA;AAAA,IAC9B,aAAA;AAAA,IACA,CAAC,UAAU,KAAM,CAAA,uBAAA;AAAA,GACnB,CAAA;AACA,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIC,iBAAQ,EAAA,CAAA;AAClC,EAAA,MAAM,WAAW0B,YAAQ,CAAA,kBAAA,EAAoB,CAAC,KAAA,KAAU,MAAM,IAAI,CAAA,CAAA;AAClE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIH,iBAAM,QAAiB,EAAA,CAAA;AACnD,EAAA,MAAM,EAAE,uBAAA,EAA4B,GAAAC,qBAAA,CAAiB,kBAAkB,CAAA,CAAA;AAEvE,EAAA,MAAM,EAAE,IAAM,EAAA,OAAA,EAAS,SAAW,EAAA,gBAAA,KAAqBmC,yBAAoB,EAAA,CAAA;AAE3E,EAAA,MAAM,CAAC,OAAS,EAAA,UAAU,CAAI,GAAApC,gBAAA,CAAM,SAAiB,aAAa,CAAA,CAAA;AAElE,EAAAA,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,uBAAyB,EAAA;AAC3B,MAAA,KAAA,CAAM,4DAA4D,CAAA,CAC/D,IAAK,CAAA,OAAO,GAAQ,KAAA;AACnB,QAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,UAAA,MAAM,IAAI,KAAM,EAAA,CAAA;AAAA,SAClB;AAEA,QAAM,MAAA,QAAA,GAAY,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAEjC,QAAI,IAAA,CAAC,SAAS,QAAU,EAAA;AACtB,UAAA,MAAM,IAAI,KAAM,EAAA,CAAA;AAAA,SAClB;AAEA,QAAA,UAAA,CAAW,SAAS,QAAQ,CAAA,CAAA;AAAA,OAC7B,CACA,CAAA,KAAA,CAAM,MAAM;AAAA,OAIZ,CAAA,CAAA;AAAA,KACL;AAAA,GACF,EAAG,CAAC,uBAAuB,CAAC,CAAA,CAAA;AAE5B,EAAA,MAAM,YAAYG,YAAQ,CAAA,kBAAA,EAAoB,CAAC,KAAU,KAAA,KAAA,CAAM,MAAM,KAAK,CAAA,CAAA;AAE1E,EAAAH,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,SAAW,EAAA;AACb,MAAM,MAAA,gBAAA,GAAmB,UAAU,IAAK,CAAA,CAAC,EAAE,IAAK,EAAA,KAAM,SAAS,oBAAoB,CAAA,CAAA;AAEnF,MAAI,IAAA,gBAAA,IAAoB,SAAS,UAAY,EAAA;AAC3C,QAAA,uBAAA,CAAwB,IAAI,CAAA,CAAA;AAAA,OAC9B;AAAA,KACF;AAAA,KACC,CAAC,SAAA,EAAW,OAAS,EAAA,UAAA,EAAY,uBAAuB,CAAC,CAAA,CAAA;AAE5D,EAAAA,gBAAA,CAAM,UAAU,MAAM;AACpB,IAAAqC,wBAAA,CAAmB,QAAQ,CAAA,CAAE,IAAK,CAAA,CAAC,EAAO,KAAA;AACxC,MAAA,IAAI,EAAI,EAAA;AACN,QAAA,SAAA,CAAU,EAAE,CAAA,CAAA;AAAA,OACd;AAAA,KACD,CAAA,CAAA;AAAA,GACH,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI3D,gBAAY,EAAA,CAAA;AAEnC,EAAM,MAAA;AAAA,IACJ,SAAW,EAAA,aAAA;AAAA,IACX,mBAAA;AAAA,IACA,mBAAA;AAAA,GACE,GAAA,OAAA,CAAQ,wBAAyB,CAAA,aAAA,EAAe,OAAO,CAAC,CAAA,CAAA;AAC5D,EAAA,MAAM,EAAE,aAAA,EAAkB,GAAAuB,qBAAA,CAAiB,OAAO,CAAA,CAAA;AAOlD,EAAAqC,eAAA,CAAQ,MAAM;AACZ,IAAA,UAAA,CAAW,sCAAsC,CAAA,CAAA;AAAA,GAClD,CAAA,CAAA;AAID,EAAA,IAAI,iBAAiB,gBAAkB,EAAA;AACrC,IAAO,uBAAAzD,cAAA,CAAC8C,SAAK,CAAA,OAAA,EAAL,EAAa,CAAA,CAAA;AAAA,GACvB;AAEA,EACE,uBAAA3C,eAAA;AAAA,IAACuD,oBAAA;AAAA,IAAA;AAAA,MACE,GAAG,OAAA;AAAA,MACJ,MAAA;AAAA,MACA,sBAAwB,EAAA,OAAA;AAAA,MACxB,kBAAA,EAAoB,wBAAyB,CAAA,aAAA,EAAe,OAAO,CAAA;AAAA,MAEnE,QAAA,EAAA;AAAA,wBAAA1D,cAAA,CAAC2D,eAAU,EAAA,EAAA,CAAA;AAAA,wBACX3D,cAAA,CAAC,sBACC,QAAC,kBAAAA,cAAA,CAAA4D,oBAAA,EAAA,EAAY,SAASC,iCACpB,EAAA,QAAA,kBAAA1D,eAAA,CAACI,gBAAI,EAAA,EAAA,UAAA,EAAW,YACd,EAAA,QAAA,EAAA;AAAA,0BAACP,cAAA,CAAA8D,0BAAA,EAAA,EACE,wBAAc,EAAE,EAAA,EAAI,iBAAiB,cAAgB,EAAA,iBAAA,EAAmB,CAC3E,EAAA,CAAA;AAAA,0BACA3D,eAAA,CAACC,iBAAK,EAAA,EAAA,UAAA,EAAW,YACf,EAAA,QAAA,EAAA;AAAA,4BAAAJ,cAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,mBAAA;AAAA,gBACA,mBAAA;AAAA,eAAA;AAAA,aACF;AAAA,4BACAG,eAAA,CAACI,gBAAI,EAAA,EAAA,IAAA,EAAM,CACT,EAAA,QAAA,EAAA;AAAA,8BAAAP,cAAA,CAAC+D,qBAAO,EAAA,EAAA,CAAA;AAAA,6CACP,eAAgB,EAAA,EAAA,CAAA;AAAA,cAChB,aAAA,mCAAkB,UAAW,EAAA,EAAA,CAAA;AAAA,aAChC,EAAA,CAAA;AAAA,WACF,EAAA,CAAA;AAAA,SAAA,EACF,GACF,CACF,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,EAAA;AAEA,MAAM,qBAAqB,MAAM;AAC/B,EAAA,uBACG/D,cAAA,CAAAgE,yBAAA,EAAA,EACC,QAAC,kBAAAhE,cAAA,CAAA,WAAA,EAAA,EAAY,CACf,EAAA,CAAA,CAAA;AAEJ,EAAA;AAEA,MAAM,wBAA2B,GAAA,CAC/B,qBACA,EAAA,sBAAA,GAAiC,EACrB,KAAA;AACZ,EAAA,IAAI,CAACiE,sBAAM,CAAA,qBAAqB,KAAK,CAACA,sBAAA,CAAM,sBAAsB,CAAG,EAAA;AACnE,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAO,OAAAC,mBAAA,CAAG,uBAAuB,sBAAsB,CAAA,CAAA;AACzD,CAAA;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedLayout-zaOd05gw.mjs","sources":["../../admin/src/components/GuidedTour/Modal.tsx","../../admin/src/components/LeftMenu.tsx","../../admin/src/assets/images/onboarding-preview.png","../../admin/src/components/Onboarding.tsx","../../admin/src/components/PluginsInitializer.tsx","../../admin/src/hooks/useMenu.ts","../../admin/src/layouts/AuthenticatedLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n FocusTrap,\n IconButton,\n Portal,\n Typography,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { ArrowRight, Cross } from '@strapi/icons';\nimport get from 'lodash/get';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { LAYOUT_DATA, STATES } from './constants';\nimport { Number, VerticalDivider } from './Ornaments';\nimport { GuidedTourContextValue, useGuidedTour } from './Provider';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst GuidedTourModal = () => {\n const currentStep = useGuidedTour('GuidedTourModal', (state) => state.currentStep);\n const guidedTourState = useGuidedTour('GuidedTourModal', (state) => state.guidedTourState);\n const setCurrentStep = useGuidedTour('GuidedTourModal', (state) => state.setCurrentStep);\n const setStepState = useGuidedTour('GuidedTourModal', (state) => state.setStepState);\n const isGuidedTourVisible = useGuidedTour(\n 'GuidedTourModal',\n (state) => state.isGuidedTourVisible\n );\n const setSkipped = useGuidedTour('GuidedTourModal', (state) => state.setSkipped);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n if (!currentStep || !isGuidedTourVisible) {\n return null;\n }\n\n const stepData = get(LAYOUT_DATA, currentStep);\n const sectionKeys = Object.keys(guidedTourState);\n const [sectionName, stepName] = currentStep.split('.') as [\n keyof GuidedTourContextValue['guidedTourState'],\n string,\n ];\n const sectionIndex = sectionKeys.indexOf(sectionName);\n const stepIndex = Object.keys(guidedTourState[sectionName]).indexOf(stepName);\n const hasSectionAfter = sectionIndex < sectionKeys.length - 1;\n const hasStepAfter = stepIndex < Object.keys(guidedTourState[sectionName]).length - 1;\n\n const handleCtaClick = () => {\n setStepState(currentStep, true);\n\n if (stepData) {\n trackUsage(stepData.trackingEvent);\n }\n\n setCurrentStep(null);\n };\n\n const handleSkip = () => {\n setSkipped(true);\n setCurrentStep(null);\n trackUsage('didSkipGuidedtour');\n };\n\n return (\n <Portal>\n <ModalWrapper onClick={handleCtaClick} padding={8} justifyContent=\"center\">\n <FocusTrap onEscape={handleCtaClick}>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n background=\"neutral0\"\n width={`${660 / 16}rem`}\n shadow=\"popupShadow\"\n hasRadius\n padding={4}\n gap={8}\n role=\"dialog\"\n aria-modal\n onClick={(e) => e.stopPropagation()}\n >\n <Flex justifyContent=\"flex-end\">\n <IconButton\n onClick={handleCtaClick}\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n >\n <Cross />\n </IconButton>\n </Flex>\n <Box\n paddingLeft={7}\n paddingRight={7}\n paddingBottom={!hasStepAfter && !hasSectionAfter ? 8 : 0}\n >\n <GuidedTourStepper\n title={stepData && 'title' in stepData ? stepData.title : undefined}\n cta={stepData && 'cta' in stepData ? stepData.cta : undefined}\n onCtaClick={handleCtaClick}\n sectionIndex={sectionIndex}\n stepIndex={stepIndex}\n hasSectionAfter={hasSectionAfter}\n >\n {stepData && 'content' in stepData && <GuidedTourContent {...stepData.content} />}\n </GuidedTourStepper>\n </Box>\n {!(!hasStepAfter && !hasSectionAfter) && (\n <Flex justifyContent=\"flex-end\">\n <Button variant=\"tertiary\" onClick={handleSkip}>\n {formatMessage({\n id: 'app.components.GuidedTour.skip',\n defaultMessage: 'Skip the tour',\n })}\n </Button>\n </Flex>\n )}\n </Flex>\n </FocusTrap>\n </ModalWrapper>\n </Portal>\n );\n};\n\nconst ModalWrapper = styled(Flex)`\n position: fixed;\n z-index: 4;\n inset: 0;\n /* this is theme.colors.neutral800 with opacity */\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourStepper\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourStepperProps {\n title: MessageDescriptor | undefined;\n children: React.ReactNode;\n cta?: {\n title: MessageDescriptor;\n target?: string;\n };\n onCtaClick: () => void;\n sectionIndex: number;\n stepIndex: number;\n hasSectionAfter: boolean;\n}\n\nconst GuidedTourStepper = ({\n title,\n children,\n cta,\n onCtaClick,\n sectionIndex,\n stepIndex,\n hasSectionAfter,\n}: GuidedTourStepperProps) => {\n const { formatMessage } = useIntl();\n\n const hasSectionBefore = sectionIndex > 0;\n const hasStepsBefore = stepIndex > 0;\n const nextSectionIndex = sectionIndex + 1;\n\n return (\n <>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} justifyContent=\"center\" minWidth={`${30 / 16}rem`}>\n {hasSectionBefore && (\n <VerticalDivider state={STATES.IS_DONE} minHeight={`${24 / 16}rem`} />\n )}\n </Flex>\n <Typography variant=\"sigma\" textColor=\"primary600\">\n {formatMessage({\n id: 'app.components.GuidedTour.title',\n defaultMessage: '3 steps to get started',\n })}\n </Typography>\n </Flex>\n <Flex>\n <Flex marginRight={8} minWidth={`${30 / 16}rem`}>\n <Number\n state={hasStepsBefore ? STATES.IS_DONE : STATES.IS_ACTIVE}\n paddingTop={3}\n paddingBottom={3}\n >\n {sectionIndex + 1}\n </Number>\n </Flex>\n {title && (\n <Typography variant=\"alpha\" fontWeight=\"bold\" textColor=\"neutral800\" as=\"h3\" id=\"title\">\n {formatMessage(title)}\n </Typography>\n )}\n </Flex>\n <Flex alignItems=\"stretch\">\n <Flex marginRight={8} direction=\"column\" justifyContent=\"center\" minWidth={`${30 / 16}rem`}>\n {hasSectionAfter && (\n <>\n <VerticalDivider state={STATES.IS_DONE} />\n {hasStepsBefore && (\n <Number state={STATES.IS_ACTIVE} paddingTop={3}>\n {nextSectionIndex + 1}\n </Number>\n )}\n </>\n )}\n </Flex>\n <Box>\n {children}\n {cta &&\n (cta.target ? (\n <LinkButton\n as={NavLink}\n endIcon={<ArrowRight />}\n onClick={onCtaClick}\n // @ts-expect-error - types are not inferred correctly through the as prop.\n to={cta.target}\n >\n {formatMessage(cta.title)}\n </LinkButton>\n ) : (\n <Button endIcon={<ArrowRight />} onClick={onCtaClick}>\n {formatMessage(cta.title)}\n </Button>\n ))}\n </Box>\n </Flex>\n {hasStepsBefore && hasSectionAfter && (\n <Box paddingTop={3}>\n <Flex marginRight={8} justifyContent=\"center\" width={`${30 / 16}rem`}>\n <VerticalDivider state={STATES.IS_DONE} minHeight={`${24 / 16}rem`} />\n </Flex>\n </Box>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface GuidedTourContentProps\n extends Required<Pick<MessageDescriptor, 'defaultMessage' | 'id'>> {}\n\nconst GuidedTourContent = ({ id, defaultMessage }: GuidedTourContentProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4} paddingBottom={6}>\n {formatMessage(\n { id, defaultMessage },\n {\n documentationLink: DocumentationLink,\n b: Bold,\n p: Paragraph,\n light: Light,\n ul: List,\n li: ListItem,\n }\n )}\n </Flex>\n );\n};\n\nconst DocumentationLink = (children: React.ReactNode) => (\n <Typography\n as=\"a\"\n textColor=\"primary600\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters\"\n >\n {children}\n </Typography>\n);\n\nconst Bold = (children: React.ReactNode) => (\n <Typography fontWeight=\"semiBold\">{children}</Typography>\n);\n\nconst Paragraph = (children: React.ReactNode) => <Typography>{children}</Typography>;\n\nconst Light = (children: React.ReactNode) => (\n <Typography textColor=\"neutral600\">{children}</Typography>\n);\n\nconst List = (children: React.ReactNode) => (\n <Box paddingLeft={6}>\n <ul>{children}</ul>\n </Box>\n);\n\nconst LiStyled = styled.li`\n list-style: disc;\n &::marker {\n color: ${({ theme }) => theme.colors.neutral800};\n }\n`;\n\nconst ListItem = (children: React.ReactNode) => <LiStyled>{children}</LiStyled>;\n\nexport { GuidedTourModal };\n","import * as React from 'react';\n\nimport { Box, Divider, Flex, FocusTrap, Icon, Typography } from '@strapi/design-system';\nimport {\n MainNav,\n NavBrand,\n NavCondense,\n NavFooter,\n NavLink,\n NavSection,\n NavSections,\n NavUser,\n} from '@strapi/design-system/v2';\nimport { Exit, Write, Lock } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink as RouterNavLink, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useTracking } from '../features/Tracking';\nimport { Menu } from '../hooks/useMenu';\nimport { usePersistentState } from '../hooks/usePersistentState';\nimport { getDisplayName } from '../utils/users';\n\nconst LinkUserWrapper = styled(Box)`\n width: ${150 / 16}rem;\n position: absolute;\n bottom: ${({ theme }) => theme.spaces[9]};\n left: ${({ theme }) => theme.spaces[5]};\n`;\n\nconst LinkUser = styled(RouterNavLink)<{ logout?: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-decoration: none;\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n border-radius: ${({ theme }) => theme.spaces[1]};\n\n &:hover {\n background: ${({ theme, logout }) =>\n logout ? theme.colors.danger100 : theme.colors.primary100};\n text-decoration: none;\n }\n\n svg {\n path {\n fill: ${({ theme }) => theme.colors.danger600};\n }\n }\n`;\n\nconst NavLinkWrapper = styled(Box)`\n div:nth-child(2) {\n /* remove badge background color */\n background: transparent;\n }\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const navUserRef = React.useRef<HTMLDivElement>(null!);\n const [userLinksVisible, setUserLinksVisible] = React.useState(false);\n const {\n logos: { menu },\n } = useConfiguration('LeftMenu');\n const [condensed, setCondensed] = usePersistentState('navbar-condensed', false);\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const logout = useAuth('Logout', (state) => state.logout);\n const userDisplayName = getDisplayName(user);\n\n const initials = userDisplayName\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 2);\n\n const handleToggleUserLinks = () => setUserLinksVisible((prev) => !prev);\n\n const handleBlur: React.FocusEventHandler = (e) => {\n if (\n !e.currentTarget.contains(e.relatedTarget) &&\n /**\n * TODO: can we replace this by just using the navUserRef?\n */\n e.relatedTarget?.parentElement?.id !== 'main-nav-user-button'\n ) {\n setUserLinksVisible(false);\n }\n };\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const menuTitle = formatMessage({\n id: 'app.components.LeftMenu.navbrand.title',\n defaultMessage: 'Strapi Dashboard',\n });\n\n return (\n <MainNav condensed={condensed}>\n <NavBrand\n as={RouterNavLink}\n workplace={formatMessage({\n id: 'app.components.LeftMenu.navbrand.workplace',\n defaultMessage: 'Workplace',\n })}\n title={menuTitle}\n icon={\n <img\n src={menu.custom?.url || menu.default}\n alt={formatMessage({\n id: 'app.components.LeftMenu.logo.alt',\n defaultMessage: 'Application logo',\n })}\n />\n }\n />\n\n <Divider />\n\n <NavSections>\n <NavLink\n as={RouterNavLink}\n // @ts-expect-error the props from the passed as prop are not inferred // joined together\n to=\"/content-manager\"\n icon={<Write />}\n onClick={() => handleClickOnLink('/content-manager')}\n >\n {formatMessage({ id: 'global.content-manager', defaultMessage: 'Content manager' })}\n </NavLink>\n\n {pluginsSectionLinks.length > 0 ? (\n <NavSection\n label={formatMessage({\n id: 'app.components.LeftMenu.plugins',\n defaultMessage: 'Plugins',\n })}\n >\n {pluginsSectionLinks.map((link) => {\n if (link.to === 'content-manager') {\n return null;\n }\n\n const LinkIcon = link.icon;\n return (\n <NavLinkWrapper key={link.to}>\n <NavLink\n as={RouterNavLink}\n to={link.to}\n icon={<LinkIcon />}\n onClick={() => handleClickOnLink(link.to)}\n // @ts-expect-error: badgeContent in the DS accept only strings\n badgeContent={\n link?.lockIcon ? (\n <Icon width={`${15 / 16}rem`} height={`${15 / 16}rem`} as={Lock} />\n ) : undefined\n }\n >\n {formatMessage(link.intlLabel)}\n </NavLink>\n </NavLinkWrapper>\n );\n })}\n </NavSection>\n ) : null}\n\n {generalSectionLinks.length > 0 ? (\n <NavSection\n label={formatMessage({\n id: 'app.components.LeftMenu.general',\n defaultMessage: 'General',\n })}\n >\n {generalSectionLinks.map((link) => {\n const LinkIcon = link.icon;\n\n return (\n <NavLink\n as={RouterNavLink}\n badgeContent={\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined\n }\n // @ts-expect-error the props from the passed as prop are not inferred // joined together\n to={link.to}\n key={link.to}\n icon={<LinkIcon />}\n onClick={() => handleClickOnLink(link.to)}\n >\n {formatMessage(link.intlLabel)}\n </NavLink>\n );\n })}\n </NavSection>\n ) : null}\n </NavSections>\n\n <NavFooter>\n <NavUser\n id=\"main-nav-user-button\"\n ref={navUserRef}\n onClick={handleToggleUserLinks}\n initials={initials}\n >\n {userDisplayName}\n </NavUser>\n {userLinksVisible && (\n <LinkUserWrapper\n onBlur={handleBlur}\n padding={1}\n shadow=\"tableShadow\"\n background=\"neutral0\"\n hasRadius\n >\n <FocusTrap onEscape={handleToggleUserLinks}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={0}>\n <LinkUser tabIndex={0} onClick={handleToggleUserLinks} to=\"/me\">\n <Typography>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile',\n })}\n </Typography>\n </LinkUser>\n <LinkUser tabIndex={0} onClick={logout} to=\"/auth/login\">\n <Typography textColor=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Logout',\n })}\n </Typography>\n <Exit />\n </LinkUser>\n </Flex>\n </FocusTrap>\n </LinkUserWrapper>\n )}\n\n <NavCondense onClick={() => setCondensed((s) => !s)}>\n {condensed\n ? formatMessage({\n id: 'app.components.LeftMenu.expand',\n defaultMessage: 'Expand the navbar',\n })\n : formatMessage({\n id: 'app.components.LeftMenu.collapse',\n defaultMessage: 'Collapse the navbar',\n })}\n </NavCondense>\n </NavFooter>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABQCAMAAAD2kgFPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAL9UExURff3+fv7+/X19/Pz9/n5+fv7/f39//////39/UdwTPn5+/X1+fHx++/v8fn5/fHx8/Pz9eTk6e/v8/Hx9fHx/e3u7/X19e3t8evr7+fn6YuR96Gl+OLi59LS2dTU2uvr++nq7ff39+Tk697e4ufn6+vr7enq69ra3tDQ1uDg5/nv7+Dg5Nzc4Nzd4tTU2OTk5+fn7djY3tzc5M/Q1NjY3NLS1tbX3MzM0u/w9crK0unp7+np+/37+8rK0MjIzu/v78PEy9ra4djY4eLi6t7e5NbW2s7O1OLk5+/v/Ojp/dra5MPF9+3u89bX3mxz99DQ2fj4+OLi5PHx8dvb29ze+/f3/7C1+t7e5+vr69PX2OPk/Jydl/T09/f393R7+Gdw96ytuNTU3M7O2ODg6a6vumJq9+3u/dTW/PP19cXGzd7e4O3t7cnK+/f3+uLk683O+Z2h+dLU+9/h++no3/j39bq0pu/v7fv7+fHz9XF4911l93V8+bm5waGirffr7Kqrtq+z9qentF9o93mA+fj4+vr6++/v7/f3++vt+83N0/Pz8+vr8dbY+sjJ98zO1crM0vn5//Pz/ra6n/n59d/g4quvp9fa2OTn66Shm8C2prCuq+/r67Gxr9LLvbCwrcfEwK+vqZSahtPVw5WafKiknff5+ZqapvHw7fv4+YGH9dnb++Tn/Ly8xvfo6Oq5v////6WlsNrc3vPz+dLU2Ovr/eTn+drc4JWXo6Wp+cLE++nr74+T+enr4s7Q1m5098bArefk5Nze0ODc1Pf3/MC8tuDi0KWrh/n39+Tk4qmv+77Cqdjc3PX1/c7S0vv7/7ixo/Px7Z+jh62x+8rMtrS6pZebjY+Rn9bayKuvm+vp5+np6aWrjVJa9fX38bi895+fm1pk9620oevp6bS0r+fp6fv19VZg9fn19X6F+fnz89LS3MDAyPXi4uextvX1+vPW2OCVnYmJl9zc4Xh4iff3+mdy97y8xPf3977C96mpsbS29YeHlamv84qS87i89VXx8BYAAAD/dFJOU319fX19fX19fQB9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19bX19fX19fX19fX19Lwd9fX19fX19fX19fX19fX1lfX19fX19fX19fX19fX19fX19fX19fW1dED59fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0PfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1mfX19bX1eXn0/fX19fX0/fSWruQsAAAbiSURBVGje7VkFcBtHFD2SbnXO9UA56dRIiiRbFFlmiO3asWKIE0MYGrQbZmjDDA1T06RJ03DSJA2XMaWUmZmZmWm6ki3lTie59kTSlJ40p5nV//tud//b/28P0WiG/PgdkhBMHKzRaBDNyWXSRoqi4ki57CQk/MZsKna58pqa0N4gnoNcNgQZzBV8ml9aYMYaW4DQRKjvDC8MG7TkG0ff+gmobifD78gXYQZE0++8b08tXFg/4uf6H46VLh5Rf/P8TERtXG1ykkmtI7zmtZFLhtW9NWfOnCUjhy0Z+T2CJOFYJMOS+YtPzV884teDX8879sKIhfUHSxG1AzH0ajXhB3UjPxpaVzd37uyls5cunRv30Fx0vhxRDfXdLLbhZWU2W1mGGNtbEPuXdStz+2ycu/+kbmv4YLOWZ3merdEyNSweW0KMxXkW1+J4RwxeMeRfCIbhMsu7/LUd0QgkSYkW8TS5wznVlg93W8LnEiUooAIqFYBQkxBnSIxkMStJVLUPoah90cCqlSurWkSI6ijdGGv0v0Wv3iaIa1i9KLJ+QoR0Wk0l2YCo6jO5unpq9dTJkyesW7uu+oZp09q0iLDXvOQNG0r9uxbtNdU2hIcidV4YELTpt40C17WIsMk9oAyapxMbNxiCR4uRWAP2TNOZ3S/KCmdEyfggEORQ9Xh4kKPkM8O6AjbIS/BWfZLED+N5StmbisEZRttRTzVD2LZtUdW09gPbFx0tatuE0Y2E/YYeVYlI0E7ELYjET68vJJS9nZdRc1shq7dgzRIeKfrtj0W//LTojTDCOE2pMsjb3BiQhSo+gF3jOJNhKQwPUgqcBdqhER+Cc4efUOvL8nFKwhxn/tjKtNLTY12HO3z15ecnTiz4ODaEkUEBgoKqIRAdgR3u8NmC4wuOd3g/noSoWoILGgHU5w7/jGpxbQ28dJRl3/AoPfR6jKIUqcnKstkm2fpnZOlZGSFBqUgQtLt6/9vvSf0Y/19qENYbgIpHSQBvFk6ekgy2NZO9SIqk1Pag7Ttvvttb6pu3Ps9lTtvsqsiTtmLpnC83L8fpyjXlmpMVhDYS+IKbN6YkBNINaubunWiMphTh9d0L1tcqMj6IDwKdszgeYYR9u6old/bsi1SsRohhs3heVBK2mz1QLQTthOe3Xyj1q8xJ3uwZZ/A5jbI17GlPyUlNTk31jHN6DQoyhgLuQNVm7l7bWZkPb719FBnKCIcOTJ8h9bVi8GO16hCdLAxR1N9E6HSsDlOmDGjLNBOlcnR6KlY6RFitODzFlrCM799qyt1eZV1KEqhU+E+/5EiE8EML/8qgXVdIfbPHZhfkrrp2bL5J2sqmJptL8nOzi9fnFxekKgjLUOB/rub58obMCEGjVoGzI7x8986Z5zydsDcQkMXWQguPJG4No25tslXYt08Vs62N8TaYvUnKNVSh6tVBuxl798iE7/QYuRSO5jhB2koYGCHZ4PBwKV2MnF5BhlPqxsqC1uJshKChUDIk3qsOPPmy1LeXIIgMzToYWtqK6nS0vRNNC+P1gqgUPrwFfYuFP+DiWK5hCwhjFzSF/WuzOnd2uwt9fEcZ4dp+l52VxSWvPueQb4ugMc7lcY8GhA+iC5+CETqLhV8Ww5iwmmbKsD4glPHtg3bIhJ/mMpucuelpabK8jqVyqdkVOea0nOtzTR4FYQoKvM1MadcJfSUjvO+uB2MlfP+hgrtLAoUf5VAhzPCe++MepVD4gAmlw71bZMLvnZ5ucBhpe0+ZDokuUPgpnJETofDtkYSfEjhUKP8ks0G5eaOoVPjbpt8t9XUYOU+6gfZYZIUEytMOzmB39OzJGThaQZgBv1EPFeIr/AiHCnEMmmiHCgMnnJHI4oFNjGzySEBGVDZsD2g+ovChX3DzjpCeptT1AaEdf8CgHbKgcbnSXBUmoykvRyb8ZKMnrSIzz2Q2myKV+iHhY0laJeGRfhLhW/dcqWulxqOOkOFNp7v78IRm/BZkiztiF6WRDxX85zRFIKTDGfu3PCr1SxcEmGd1jMDKhD9+jE6kRZHWdrILSh3CTsVAXZqa5eWUhA8P7UqGuuu0bfpDso3fuJXjDILHIBc+LQgp6XaHMd1o4HpFyvgZzUzpE49Jn5563wv+qRk/ej6culFSCG96RBc74UcmnHJnH2A5K/xdj0t9S0oLirMrvSWrKmSlvvMmZ3GBuTI/u7IkX1nqW1BQ2wzh6FskNY11eyuFH2kC4DJRf581/B+tQHzfK4e9ZsIQBkFHbURgLQMfX9x4vAlh1sMhIYnAhxhYxVgSNE6C+E+F0KWJpZuIrEgs4WBkSI9E8vXQIJrlCWTssRwSajSDJyYoXFYM0Wj+BNjsk7mwYOwbAAAAAElFTkSuQmCC\"","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Divider,\n Flex,\n Icon,\n PopoverPrimitives,\n Portal,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Cross, Message, Play, Question, Book, PaperPlane } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport onboardingPreview from '../assets/images/onboarding-preview.png';\nimport { useAppInfo } from '../features/AppInfo';\n\nconst Onboarding = () => {\n const triggerRef = React.useRef<HTMLButtonElement>(null!);\n const [isOpen, setIsOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const communityEdition = useAppInfo('Onboarding', (state) => state.communityEdition);\n\n const handlePopoverVisibility = () => {\n setIsOpen((prev) => !prev);\n };\n\n const docLinks = [\n ...DOCUMENTATION_LINKS,\n {\n label: { id: 'Settings.application.get-help', defaultMessage: 'Get help' },\n icon: Message,\n href: communityEdition\n ? 'https://discord.strapi.io'\n : 'https://support.strapi.io/support/home',\n },\n ];\n\n return (\n <Box as=\"aside\" position=\"fixed\" bottom={2} right={2}>\n <HelperButton\n aria-label={formatMessage(\n isOpen\n ? {\n id: 'app.components.Onboarding.help.button-close',\n defaultMessage: 'Close help menu',\n }\n : {\n id: 'app.components.Onboarding.help.button',\n defaultMessage: 'Open help menu',\n }\n )}\n onClick={handlePopoverVisibility}\n ref={triggerRef}\n >\n <Icon as={isOpen ? Cross : Question} color=\"buttonNeutral0\" />\n </HelperButton>\n\n {isOpen && (\n <Portal>\n <PopoverPrimitives.Content\n padding={0}\n onDismiss={handlePopoverVisibility}\n source={triggerRef}\n placement=\"top-end\"\n spacing={12}\n >\n <Flex\n justifyContent=\"space-between\"\n paddingBottom={5}\n paddingRight={6}\n paddingLeft={6}\n paddingTop={6}\n >\n <TypographyLineHeight fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.Onboarding.title',\n defaultMessage: 'Get started videos',\n })}\n </TypographyLineHeight>\n <TextLink\n as=\"a\"\n href={WATCH_MORE.href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n variant=\"pi\"\n textColor=\"primary600\"\n >\n {formatMessage(WATCH_MORE.label)}\n </TextLink>\n </Flex>\n <Divider />\n {VIDEO_LINKS.map(({ href, duration, label }, index) => (\n <VideoLinkWrapper\n as=\"a\"\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n key={href}\n hasRadius\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={11}\n >\n <Box paddingRight={5}>\n <Typography textColor=\"neutral200\" variant=\"alpha\">\n {index + 1}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <Preview src={onboardingPreview} alt=\"\" />\n <IconWrapper\n position=\"absolute\"\n top=\"50%\"\n left=\"50%\"\n background=\"primary600\"\n borderRadius=\"50%\"\n justifyContent=\"center\"\n width={6}\n height={6}\n >\n <Icon as={Play} color=\"buttonNeutral0\" width={3} height={3} />\n </IconWrapper>\n </Box>\n <Flex direction=\"column\" alignItems=\"start\" paddingLeft={4}>\n <Typography fontWeight=\"bold\">{formatMessage(label)}</Typography>\n <VisuallyHidden>:</VisuallyHidden>\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {duration}\n </Typography>\n </Flex>\n </VideoLinkWrapper>\n ))}\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={2}\n paddingLeft={5}\n paddingTop={2}\n paddingBottom={5}\n >\n {docLinks.map(({ label, href, icon }) => (\n <Flex gap={3} key={href}>\n <Icon as={icon} color=\"primary600\" />\n <TextLink\n as=\"a\"\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n variant=\"sigma\"\n textColor=\"primary700\"\n >\n {formatMessage(label)}\n </TextLink>\n </Flex>\n ))}\n </Flex>\n </PopoverPrimitives.Content>\n </Portal>\n )}\n </Box>\n );\n};\n\n// TODO: use new Button props derived from Box props with next DS release\nconst HelperButton = styled(Button)`\n border-radius: 50%;\n padding: ${({ theme }) => theme.spaces[3]};\n /* Resetting 2rem height defined by Button component */\n height: 100%;\n`;\n\nconst IconWrapper = styled(Flex)`\n transform: translate(-50%, -50%);\n`;\n\nconst VideoLinkWrapper = styled(Flex)`\n text-decoration: none;\n\n :focus-visible {\n outline-offset: ${({ theme }) => `-${theme.spaces[1]}`};\n }\n\n :hover {\n background: ${({ theme }) => theme.colors.primary100};\n\n /* Hover style for the number displayed */\n ${Typography}:first-child {\n color: ${({ theme }) => theme.colors.primary500};\n }\n\n /* Hover style for the label */\n ${Typography}:nth-child(1) {\n color: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\nconst Preview = styled.img`\n width: ${({ theme }) => theme.spaces[10]};\n height: ${({ theme }) => theme.spaces[8]};\n /* Same overlay used in ModalLayout */\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n border-radius: ${({ theme }) => theme.borderRadius};\n`;\n\nconst TypographyLineHeight = styled(Typography)`\n /* line height of label and watch more to 1 so they can be better aligned visually */\n line-height: 1;\n`;\n\nconst TextLink = styled(TypographyLineHeight)`\n text-decoration: none;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst VIDEO_LINKS = [\n {\n label: {\n id: 'app.components.Onboarding.link.build-content',\n defaultMessage: 'Build a content architecture',\n },\n href: 'https://www.youtube.com/watch?v=G9GjN0RxhkE',\n duration: '5:48',\n },\n {\n label: {\n id: 'app.components.Onboarding.link.manage-content',\n defaultMessage: 'Add & manage content',\n },\n href: 'https://www.youtube.com/watch?v=DEZw4KbybAI',\n duration: '3:18',\n },\n {\n label: { id: 'app.components.Onboarding.link.manage-media', defaultMessage: 'Manage media' },\n href: 'https://www.youtube.com/watch?v=-61MuiMQb38',\n duration: '3:41',\n },\n];\n\nconst WATCH_MORE = {\n href: 'https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq',\n label: {\n id: 'app.components.Onboarding.link.more-videos',\n defaultMessage: 'Watch more videos',\n },\n};\n\nconst DOCUMENTATION_LINKS = [\n {\n label: { id: 'global.documentation', defaultMessage: 'documentation' },\n href: 'https://docs.strapi.io',\n icon: Book,\n },\n {\n label: { id: 'app.static.links.cheatsheet', defaultMessage: 'cheatsheet' },\n href: 'https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf',\n icon: PaperPlane,\n },\n];\n\nexport { Onboarding };\n","import * as React from 'react';\n\nimport { produce } from 'immer';\nimport set from 'lodash/set';\n\nimport { Page } from '../components/PageHelpers';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\n\n/**\n * TODO: this isn't great, and we really should focus on fixing this.\n */\nconst PluginsInitializer = ({ children }: { children: React.ReactNode }) => {\n const appPlugins = useStrapiApp('PluginsInitializer', (state) => state.plugins);\n const [{ plugins }, dispatch] = React.useReducer<React.Reducer<State, Action>, State>(\n reducer,\n initialState,\n () => init(appPlugins)\n );\n const setPlugin = React.useRef((pluginId: string) => {\n dispatch({ type: 'SET_PLUGIN_READY', pluginId });\n });\n\n const hasApluginNotReady = Object.keys(plugins).some(\n (plugin) => plugins[plugin].isReady === false\n );\n\n /**\n *\n * I have spent some time trying to understand what is happening here, and wanted to\n * leave that knowledge for my future me:\n *\n * `initializer` is an undocumented property of the `registerPlugin` API. At the time\n * of writing it seems only to be used by the i18n plugin.\n *\n * How does it work?\n *\n * Every plugin that has an `initializer` component defined, receives the\n * `setPlugin` function as a component prop. In the case of i18n the plugin fetches locales\n * first and calls `setPlugin` with `pluginId` once they are loaded, which then triggers the\n * reducer of the admin app defined above.\n *\n * Once all plugins are set to `isReady: true` the app renders.\n *\n * This API is used to block rendering of the admin app. We should remove that in v5 completely\n * and make sure plugins can inject data into the global store before they are initialized, to avoid\n * having a new prop-callback based communication channel between plugins and the core admin app.\n *\n */\n\n if (hasApluginNotReady) {\n const initializers = Object.keys(plugins).reduce((acc, current) => {\n const InitializerComponent = plugins[current].initializer;\n\n if (InitializerComponent) {\n const key = plugins[current].pluginId;\n\n acc.push(<InitializerComponent key={key} setPlugin={setPlugin.current} />);\n }\n\n return acc;\n }, [] as React.ReactNode[]);\n\n return (\n <>\n {initializers}\n <Page.Loading />\n </>\n );\n }\n\n return children;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface State {\n plugins: StrapiAppContextValue['plugins'];\n}\n\nconst initialState: State = {\n plugins: {},\n};\n\ntype SetPluginReadyAction = {\n type: 'SET_PLUGIN_READY';\n pluginId: string;\n};\n\ntype Action = SetPluginReadyAction;\n\nconst reducer: React.Reducer<State, Action> = (state = initialState, action: Action): State =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_PLUGIN_READY': {\n set(draftState, ['plugins', action.pluginId, 'isReady'], true);\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * Init state\n * -----------------------------------------------------------------------------------------------*/\n\nconst init = (plugins: State['plugins']): State => {\n return {\n plugins,\n };\n};\n\nexport { PluginsInitializer };\n","import * as React from 'react';\n\nimport { Cog, Puzzle, ShoppingCart } from '@strapi/icons';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { useSelector } from 'react-redux';\n\nimport { useAuth, type Permission, AuthContextValue } from '../features/Auth';\nimport { StrapiAppContextValue, useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\n\n/* -------------------------------------------------------------------------------------------------\n * useMenu\n * -----------------------------------------------------------------------------------------------*/\n\ntype MenuItem = Omit<StrapiAppContextValue['menu'][number], 'Component'>;\n\nexport interface Menu {\n generalSectionLinks: MenuItem[];\n pluginsSectionLinks: MenuItem[];\n isLoading: boolean;\n}\n\nconst useMenu = (shouldUpdateStrapi: boolean) => {\n const checkUserHasPermissions = useAuth('useMenu', (state) => state.checkUserHasPermissions);\n const menu = useStrapiApp('useMenu', (state) => state.menu);\n const permissions = useSelector(selectAdminPermissions);\n const [menuWithUserPermissions, setMenuWithUserPermissions] = React.useState<Menu>({\n generalSectionLinks: [\n {\n icon: Puzzle,\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/list-plugins',\n permissions: permissions.marketplace?.main ?? [],\n },\n {\n icon: ShoppingCart,\n intlLabel: {\n id: 'global.marketplace',\n defaultMessage: 'Marketplace',\n },\n to: '/marketplace',\n permissions: permissions.marketplace?.main ?? [],\n },\n {\n icon: Cog,\n intlLabel: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n to: '/settings',\n // Permissions of this link are retrieved in the init phase\n // using the settings menu\n permissions: [],\n notificationsCount: 0,\n },\n ],\n pluginsSectionLinks: [],\n isLoading: true,\n });\n const generalSectionLinksRef = React.useRef(menuWithUserPermissions.generalSectionLinks);\n\n React.useEffect(() => {\n async function applyMenuPermissions() {\n const authorizedPluginSectionLinks = await getPluginSectionLinks(\n menu,\n checkUserHasPermissions\n );\n\n const authorizedGeneralSectionLinks = await getGeneralLinks(\n generalSectionLinksRef.current,\n shouldUpdateStrapi,\n checkUserHasPermissions\n );\n\n setMenuWithUserPermissions((state) => ({\n ...state,\n generalSectionLinks: authorizedGeneralSectionLinks,\n pluginsSectionLinks: authorizedPluginSectionLinks,\n isLoading: false,\n }));\n }\n\n applyMenuPermissions();\n }, [\n setMenuWithUserPermissions,\n generalSectionLinksRef,\n menu,\n permissions,\n shouldUpdateStrapi,\n checkUserHasPermissions,\n ]);\n\n return menuWithUserPermissions;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\nconst getGeneralLinks = async (\n generalSectionRawLinks: MenuItem[],\n shouldUpdateStrapi: boolean = false,\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const generalSectionLinksPermissions = await Promise.all(\n generalSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedGeneralSectionLinks = generalSectionRawLinks.filter(\n (_, index) => generalSectionLinksPermissions[index].length > 0\n );\n\n const settingsLinkIndex = authorizedGeneralSectionLinks.findIndex(\n (obj) => obj.to === '/settings'\n );\n\n if (settingsLinkIndex === -1) {\n return [];\n }\n\n const authorizedGeneralLinksClone = cloneDeep(authorizedGeneralSectionLinks);\n\n authorizedGeneralLinksClone[settingsLinkIndex].notificationsCount = shouldUpdateStrapi ? 1 : 0;\n\n return authorizedGeneralLinksClone;\n};\n\nconst getPluginSectionLinks = async (\n pluginsSectionRawLinks: MenuItem[],\n checkUserHasPermissions: AuthContextValue['checkUserHasPermissions']\n) => {\n const pluginSectionLinksPermissions = await Promise.all(\n pluginsSectionRawLinks.map(({ permissions }) => checkUserHasPermissions(permissions))\n );\n\n const authorizedPluginSectionLinks = pluginsSectionRawLinks.filter(\n (_, index) => pluginSectionLinksPermissions[index].length > 0\n );\n\n return authorizedPluginSectionLinks;\n};\n\nexport { useMenu };\n","import * as React from 'react';\n\nimport { Box, Flex, SkipToContent } from '@strapi/design-system';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { Outlet } from 'react-router-dom';\nimport lt from 'semver/functions/lt';\nimport valid from 'semver/functions/valid';\n\nimport packageJSON from '../../../package.json';\nimport { GuidedTourModal } from '../components/GuidedTour/Modal';\nimport { useGuidedTour } from '../components/GuidedTour/Provider';\nimport { LeftMenu } from '../components/LeftMenu';\nimport { NpsSurvey } from '../components/NpsSurvey';\nimport { Onboarding } from '../components/Onboarding';\nimport { Page } from '../components/PageHelpers';\nimport { PluginsInitializer } from '../components/PluginsInitializer';\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { AppInfoProvider } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useConfiguration } from '../features/Configuration';\nimport { useTracking } from '../features/Tracking';\nimport { useMenu } from '../hooks/useMenu';\nimport { useOnce } from '../hooks/useOnce';\nimport { useInformationQuery } from '../services/admin';\nimport { hashAdminUserEmail } from '../utils/users';\n\nconst strapiVersion = packageJSON.version;\n\nconst AdminLayout = () => {\n const setGuidedTourVisibility = useGuidedTour(\n 'AdminLayout',\n (state) => state.setGuidedTourVisibility\n );\n const { formatMessage } = useIntl();\n const userInfo = useAuth('AuthenticatedApp', (state) => state.user);\n const [userId, setUserId] = React.useState<string>();\n const { showReleaseNotification } = useConfiguration('AuthenticatedApp');\n\n const { data: appInfo, isLoading: isLoadingAppInfo } = useInformationQuery();\n\n const [tagName, setTagName] = React.useState<string>(strapiVersion);\n\n React.useEffect(() => {\n if (showReleaseNotification) {\n fetch('https://api.github.com/repos/strapi/strapi/releases/latest')\n .then(async (res) => {\n if (!res.ok) {\n throw new Error();\n }\n\n const response = (await res.json()) as { tag_name: string | null | undefined };\n\n if (!response.tag_name) {\n throw new Error();\n }\n\n setTagName(response.tag_name);\n })\n .catch(() => {\n /**\n * silence is golden & we'll use the strapiVersion as a fallback\n */\n });\n }\n }, [showReleaseNotification]);\n\n const userRoles = useAuth('AuthenticatedApp', (state) => state.user?.roles);\n\n React.useEffect(() => {\n if (userRoles) {\n const isUserSuperAdmin = userRoles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin && appInfo?.autoReload) {\n setGuidedTourVisibility(true);\n }\n }\n }, [userRoles, appInfo?.autoReload, setGuidedTourVisibility]);\n\n React.useEffect(() => {\n hashAdminUserEmail(userInfo).then((id) => {\n if (id) {\n setUserId(id);\n }\n });\n }, [userInfo]);\n\n const { trackUsage } = useTracking();\n\n const {\n isLoading: isLoadingMenu,\n generalSectionLinks,\n pluginsSectionLinks,\n } = useMenu(checkLatestStrapiVersion(strapiVersion, tagName));\n const { showTutorials } = useConfiguration('Admin');\n\n /**\n * Make sure the event is only send once after accessing the admin panel\n * and not at runtime for example when regenerating the permissions with the ctb\n * or with i18n\n */\n useOnce(() => {\n trackUsage('didAccessAuthenticatedAdministration');\n });\n\n // We don't need to wait for the release query to be fetched before rendering the plugins\n // however, we need the appInfos and the permissions\n if (isLoadingMenu || isLoadingAppInfo) {\n return <Page.Loading />;\n }\n\n return (\n <AppInfoProvider\n {...appInfo}\n userId={userId}\n latestStrapiReleaseTag={tagName}\n shouldUpdateStrapi={checkLatestStrapiVersion(strapiVersion, tagName)}\n >\n <NpsSurvey />\n <PluginsInitializer>\n <DndProvider backend={HTML5Backend}>\n <Box background=\"neutral100\">\n <SkipToContent>\n {formatMessage({ id: 'skipToContent', defaultMessage: 'Skip to content' })}\n </SkipToContent>\n <Flex alignItems=\"flex-start\">\n <LeftMenu\n generalSectionLinks={generalSectionLinks}\n pluginsSectionLinks={pluginsSectionLinks}\n />\n <Box flex={1}>\n <Outlet />\n <GuidedTourModal />\n {showTutorials && <Onboarding />}\n </Box>\n </Flex>\n </Box>\n </DndProvider>\n </PluginsInitializer>\n </AppInfoProvider>\n );\n};\n\nconst PrivateAdminLayout = () => {\n return (\n <PrivateRoute>\n <AdminLayout />\n </PrivateRoute>\n );\n};\n\nconst checkLatestStrapiVersion = (\n currentPackageVersion: string,\n latestPublishedVersion: string = ''\n): boolean => {\n if (!valid(currentPackageVersion) || !valid(latestPublishedVersion)) {\n return false;\n }\n\n return lt(currentPackageVersion, latestPublishedVersion);\n};\n\nexport { AdminLayout, PrivateAdminLayout };\n"],"names":["RouterNavLink","NavLink"],"mappings":"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"}
|