@strapi/admin 4.7.0 → 4.7.2-exp.24dd7d95972fa822bf43e9b095b51027402c229e
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/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +4 -4
- package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +2 -2
- package/admin/src/components/GuidedTour/Homepage/index.js +3 -3
- package/admin/src/components/GuidedTour/Modal/components/Content.js +35 -23
- package/admin/src/components/GuidedTour/Modal/components/Modal.js +6 -4
- package/admin/src/components/LeftMenu/index.js +3 -3
- package/admin/src/components/Notifications/index.js +6 -4
- package/admin/src/components/UpgradePlanModal/index.js +6 -7
- package/admin/src/content-manager/components/ComponentInitializer/index.js +3 -3
- package/admin/src/content-manager/components/DragLayer/RelationDragPreview.js +3 -3
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +3 -11
- package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +3 -11
- package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +4 -4
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +3 -4
- package/admin/src/content-manager/components/DynamicZone/index.js +3 -3
- package/admin/src/content-manager/components/FieldComponent/index.js +3 -3
- package/admin/src/content-manager/components/NonRepeatableComponent/index.js +3 -3
- package/admin/src/content-manager/components/RelationInput/components/Relation.js +9 -3
- package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +4 -4
- package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +12 -6
- package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -2
- package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
- package/admin/src/content-manager/components/Wysiwyg/utils/continueList.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +5 -5
- package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +3 -3
- package/admin/src/content-manager/pages/EditSettingsView/index.js +3 -3
- package/admin/src/content-manager/pages/EditView/Header/index.js +6 -7
- package/admin/src/content-manager/pages/EditView/Information/index.js +9 -9
- package/admin/src/content-manager/pages/EditView/index.js +9 -9
- package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +3 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +5 -5
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +3 -11
- package/admin/src/pages/Admin/Onboarding/index.js +11 -5
- package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +3 -3
- package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +3 -12
- package/admin/src/pages/AuthPage/components/Register/index.js +2 -3
- package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -3
- package/admin/src/pages/HomePage/ContentBlocks.js +3 -3
- package/admin/src/pages/HomePage/HomeHeader.js +3 -7
- package/admin/src/pages/HomePage/SocialLinks.js +5 -5
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +3 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +3 -3
- package/admin/src/pages/ProfilePage/index.js +11 -11
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +2 -3
- package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +7 -6
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +4 -6
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +2 -3
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +7 -7
- package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +5 -5
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +3 -3
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +2 -3
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +9 -9
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +7 -7
- package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +158 -165
- package/admin/src/pages/UseCasePage/index.js +2 -3
- package/admin/src/translations/zh-Hans.json +31 -1
- package/build/{4849.7abafe52.chunk.js → 3094.1cac9087.chunk.js} +2 -2
- package/build/{4049.16583eee.chunk.js → 4049.64715f20.chunk.js} +1 -1
- package/build/4649.daa290f6.chunk.js +30 -0
- package/build/{6487.83e219bf.chunk.js → 6891.ef7464be.chunk.js} +6 -6
- package/build/7259.63e91b59.chunk.js +1 -0
- package/build/Admin-authenticatedApp.884faefa.chunk.js +79 -0
- package/build/Admin_homePage.1411fb7c.chunk.js +68 -0
- package/build/{Admin_marketplace.a8ea585f.chunk.js → Admin_marketplace.0f6c8ee2.chunk.js} +4 -4
- package/build/Admin_profilePage.d2a8f9ab.chunk.js +15 -0
- package/build/{Admin_settingsPage.f6d02df6.chunk.js → Admin_settingsPage.6814a96e.chunk.js} +17 -18
- package/build/admin-app.d9d96db4.chunk.js +112 -0
- package/build/admin-edit-roles-page.bf130aaf.chunk.js +1 -0
- package/build/{admin-edit-users.f06c4a53.chunk.js → admin-edit-users.48031e30.chunk.js} +2 -2
- package/build/admin-users.77b4188a.chunk.js +11 -0
- package/build/{content-manager.6ed87531.chunk.js → content-manager.d792c194.chunk.js} +40 -40
- package/build/{content-type-builder-list-view.c2f917b6.chunk.js → content-type-builder-list-view.cf38fe2f.chunk.js} +9 -9
- package/build/content-type-builder-translation-zh-Hans-json.415577fb.chunk.js +1 -0
- package/build/content-type-builder.cdd117c3.chunk.js +126 -0
- package/build/email-settings-page.4bdbef9a.chunk.js +3 -0
- package/build/{i18n-settings-page.c7bc29fc.chunk.js → i18n-settings-page.2bb5be96.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/main.64fe0c37.js +3928 -0
- package/build/{runtime~main.bc7de2d8.js → runtime~main.684b5fed.js} +1 -1
- package/build/sso-settings-page.5a8588ef.chunk.js +1 -0
- package/build/upload-settings.0200561d.chunk.js +1 -0
- package/build/upload-translation-zh-Hans-json.db163b6b.chunk.js +1 -0
- package/build/upload.c7da1611.chunk.js +13 -0
- package/build/{users-advanced-settings-page.677e1973.chunk.js → users-advanced-settings-page.c0cae03a.chunk.js} +1 -1
- package/build/users-providers-settings-page.5f86e45c.chunk.js +1 -0
- package/build/users-roles-settings-page.b02986df.chunk.js +30 -0
- package/build/webhook-edit-page.a2a2b7bb.chunk.js +23 -0
- package/build/webhook-list-page.029957a4.chunk.js +1 -0
- package/build/zh-Hans-json.993d085f.chunk.js +1 -0
- package/ee/admin/hooks/useLicenseLimitNotification/index.js +2 -1
- package/ee/admin/pages/AuthPage/components/Login/index.js +3 -3
- package/ee/admin/pages/AuthPage/components/Providers/index.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +3 -3
- package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +6 -7
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +11 -3
- package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +5 -4
- package/ee/server/controllers/admin.js +4 -3
- package/ee/server/controllers/user.js +2 -2
- package/ee/server/services/seat-enforcement.js +2 -2
- package/package.json +13 -12
- package/server/content-types/User.js +4 -0
- package/server/content-types/api-token.js +1 -0
- package/server/controllers/user.js +7 -1
- package/server/services/permission/permissions-manager/index.js +9 -5
- package/server/services/permission/permissions-manager/sanitize.js +101 -4
- package/build/4649.ffa2f59a.chunk.js +0 -30
- package/build/7259.cd2f7bad.chunk.js +0 -1
- package/build/Admin-authenticatedApp.bce108cd.chunk.js +0 -79
- package/build/Admin_homePage.cec3f510.chunk.js +0 -70
- package/build/Admin_profilePage.b27e40f6.chunk.js +0 -15
- package/build/admin-app.d3b3237b.chunk.js +0 -112
- package/build/admin-edit-roles-page.fd041d89.chunk.js +0 -1
- package/build/admin-users.8c9bfda4.chunk.js +0 -11
- package/build/content-type-builder-translation-zh-Hans-json.52a30266.chunk.js +0 -1
- package/build/content-type-builder.b7fb1e65.chunk.js +0 -126
- package/build/email-settings-page.884cfb8b.chunk.js +0 -3
- package/build/main.8009bfe8.js +0 -3930
- package/build/sso-settings-page.82d84043.chunk.js +0 -1
- package/build/upload-settings.c18b010f.chunk.js +0 -1
- package/build/upload-translation-zh-Hans-json.3da5cf56.chunk.js +0 -1
- package/build/upload.0876ab69.chunk.js +0 -13
- package/build/users-providers-settings-page.87a9c77d.chunk.js +0 -1
- package/build/users-roles-settings-page.79c19845.chunk.js +0 -30
- package/build/webhook-edit-page.cfbdd3fd.chunk.js +0 -23
- package/build/webhook-list-page.3daa4fe2.chunk.js +0 -1
- package/build/zh-Hans-json.6e26e359.chunk.js +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5538],{90597:function(I,E,t){"use strict";t.r(E),t.d(E,{default:function(){return As}});var e=t(32735),r=t(5141),n=t(39161),f=t(86349),m=t.n(f),g=t(88423),d=t.n(g),B=t(93839),R=t.n(B),j=t(56784),v=t.n(j),x=t(99357),T=t(463),W=()=>{const u=[];return{register(s){u.push(s)},delete(s){u.splice(u.indexOf(s),1)},runWaterfall(s,o){return u.reduce((i,c)=>c(i,o),s)},async runWaterfallAsync(s,o){let i=s;for(const c of u)i=await c(i,o);return i},runSeries(...s){return u.map(o=>o(...s))},async runSeriesAsync(...s){const o=[];for(const i of u)o.push(await i(...s));return o},runParallel(...s){return Promise.all(u.map(o=>o(...s)))}}},L=t(13055);const w=(u,s)=>{let o=L.compose;const i=[];u.forEach(y=>{i.push(y())});const c=(0,L.createStore)($(s,{}),{},o((0,L.applyMiddleware)(...i)));return c.asyncReducers={},c.injectReducer=(y,A)=>{c.asyncReducers[y]=A,c.replaceReducer($(s,c.asyncReducers))},c},$=(u,s)=>(0,L.combineReducers)({...u,...s});var Q=w,fe=t(20284),P=t(13478),oe=t(55721),Y=t(5636),ue=t(60216),a=t.n(ue);const D=({component:u,path:s,...o})=>{const{pathname:i,search:c}=(0,r.useLocation)();return e.createElement(r.Route,{path:s,render:y=>P.auth.getToken()!==null?e.createElement(u,{...o,...y}):e.createElement(r.Redirect,{to:{pathname:"/auth/login",search:i!=="/"&&`?redirectTo=${encodeURIComponent(`${i}${c}`)}`}})})};D.propTypes={component:a().any.isRequired,path:a().string.isRequired};var b=(0,e.memo)(D),H=t(64421),ve=t(41925),le=t(39935),ce=t.n(le),de=t(33795),z=t.n(de),qe=t(9086),et=t.n(qe);const Ge="GUIDED_TOUR_CURRENT_STEP",_="GUIDED_TOUR_COMPLETED_STEPS",Oe="GUIDED_TOUR_SKIPPED",ae=JSON.parse,Se=JSON.stringify;var he={clear(){localStorage.removeItem(Ge),localStorage.removeItem(_)},addCompletedStep(u){const s=ae(localStorage.getItem(_))?.slice()||[];s.includes(u)||(s.push(u),localStorage.setItem(_,Se(s)))},addCurrentStep(u){localStorage.setItem(Ge,Se(u))},setSkipped(u){localStorage.setItem(Oe,Se(u))},get(u){return ae(localStorage.getItem(u))}},me=t(20139),Be=t(41832),te=u=>u,Le=t(97889),Ue=t(92891);const ze={formErrors:{},modifiedData:{},requestError:null},Ke=(u,s)=>(0,Le.default)(u,o=>{switch(s.type){case"ON_CHANGE":{(0,Ue.set)(o.modifiedData,s.keys.split("."),s.value);break}case"RESET_PROPS":return ze;case"SET_DATA":{o.modifiedData=s.data;break}case"SET_ERRORS":{o.formErrors=s.errors;break}case"SET_REQUEST_ERROR":{o.requestError={errorMessage:s.errorMessage,errorStatus:s.errorStatus};break}default:return o}}),Ve=(()=>window&&window.strapi&&window.strapi.isEE?t(7277).Z:t(56355).Z)(),He=u=>{let{hasAdmin:s,setHasAdmin:o}=u;const{push:i,location:{search:c}}=(0,r.useHistory)(),{changeLocale:y}=(0,me.Z)(),{setSkipped:A}=(0,P.useGuidedTour)(),{trackUsage:S}=(0,P.useTracking)(),{params:{authType:k}}=(0,r.useRouteMatch)("/auth/:authType"),V=(0,P.useQuery)(),{Component:G,endPoint:O,fieldsToDisable:X,fieldsToOmit:K,inputsPrefix:ne,schema:N,...Ee}=z()(Ve,k,{}),[{formErrors:be,modifiedData:at,requestError:rt},$e]=(0,e.useReducer)(Ke,ze,te),We=oe.Z.CancelToken.source();(0,e.useEffect)(()=>()=>{We.cancel("Component unmounted")},[]),(0,e.useEffect)(()=>{$e({type:"RESET_PROPS"})},[k]);const Cs=re=>{let{target:{name:Me,value:Pe}}=re;$e({type:"ON_CHANGE",keys:Me,value:Pe})},Ls=async(re,Me)=>{let{setSubmitting:Pe,setErrors:Ie}=Me;Pe(!0);const xe=et()(re,K),ee=`/admin/${O}`;k==="login"&&await Ss(re,ee,{setSubmitting:Pe,setErrors:Ie}),(k==="register"||k==="register-admin")&&await Ds(re,ee,{setSubmitting:Pe,setErrors:Ie}),k==="forgot-password"&&await Ms(xe,ee,{setSubmitting:Pe,setErrors:Ie}),k==="reset-password"&&await bs(xe,ee,{setSubmitting:Pe,setErrors:Ie})},Ms=async(re,Me,Pe)=>{let{setSubmitting:Ie,setErrors:xe}=Pe;try{await(0,oe.Z)({method:"POST",url:`${strapi.backendURL}${Me}`,data:re,cancelToken:We.token}),i("/auth/forgot-password-success")}catch(ee){console.error(ee),xe({errorMessage:"notification.error"})}finally{Ie(!1)}},Ss=async(re,Me,Pe)=>{let{setSubmitting:Ie,setErrors:xe}=Pe;try{const{data:{data:{token:ee,user:ye}}}=await(0,oe.Z)({method:"POST",url:`${strapi.backendURL}${Me}`,data:et()(re,K),cancelToken:We.token});ye.preferedLanguage&&y(ye.preferedLanguage),P.auth.setToken(ee,re.rememberMe),P.auth.setUserInfo(ye,re.rememberMe),Jt()}catch(ee){if(ee.response){const ye=z()(ee,["response","data","error","message"],"Something went wrong");if(ce()(ye).toLowerCase()==="usernotactive"){i("/auth/oops"),$e({type:"RESET_PROPS"});return}xe({errorMessage:ye})}}finally{Ie(!1)}},Ds=async(re,Me,Pe)=>{let{setSubmitting:Ie,setErrors:xe}=Pe;try{S("willCreateFirstAdmin");const{data:{data:{token:ee,user:ye}}}=await(0,oe.Z)({method:"POST",url:`${strapi.backendURL}${Me}`,data:et()(re,K),cancelToken:We.token});P.auth.setToken(ee,!1),P.auth.setUserInfo(ye,!1),Ie(!1),o(!0);const{roles:Xe}=ye;if(Xe&&Xe.find(Is=>{let{code:Os}=Is;return Os==="strapi-super-admin"})&&(he.setSkipped(!1),A(!1),S("didLaunchGuidedtour")),k==="register"&&re.userInfo.news===!0||k==="register-admin"&&re.news===!0){i({pathname:"/usecase",search:`?hasAdmin=${s}`});return}Jt()}catch(ee){if(S("didNotCreateFirstAdmin"),ee.response){const{data:ye}=ee.response,Xe=(0,Be.Z)(ye);xe({apiErrors:Xe})}}},bs=async(re,Me,Pe)=>{let{setErrors:Ie,setSubmitting:xe}=Pe;try{const{data:{data:{token:ee,user:ye}}}=await(0,oe.Z)({method:"POST",url:`${strapi.backendURL}${Me}`,data:{...re,resetPasswordToken:V.get("code")},cancelToken:We.token});P.auth.setToken(ee,!1),P.auth.setUserInfo(ye,!1),i("/")}catch(ee){if(ee.response){const ye=z()(ee,["response","data","message"],"Something went wrong"),Xe=z()(ee,["response","data","statusCode"],400);$e({type:"SET_REQUEST_ERROR",errorMessage:ye,errorStatus:Xe}),Ie({errorMessage:ye})}}finally{xe(!1)}},Jt=()=>{if(k==="login"){const re=V.get("redirectTo"),Me=re?decodeURIComponent(re):"/";i(Me)}else i("/")};return!Ve[k]||s&&k==="register-admin"||P.auth.getToken()?e.createElement(r.Redirect,{to:"/"}):!s&&k!=="register-admin"?e.createElement(r.Redirect,{to:{pathname:"/auth/register-admin",search:c}}):e.createElement(G,(0,ve.Z)({},Ee,{authType:k,fieldsToDisable:X,formErrors:be,inputsPrefix:ne,modifiedData:at,onChange:Cs,onSubmit:Ls,requestError:rt,schema:N}))};He.defaultProps={hasAdmin:!1},He.propTypes={hasAdmin:a().bool,setHasAdmin:a().func.isRequired};var J=He,gt=t(53951),pe=t(83292),Re=t(33348),se=t(10190),Te=t(954);const we=[{intlLabel:{id:"Usecase.front-end",defaultMessage:"Front-end developer"},value:"front_end_developer"},{intlLabel:{id:"Usecase.back-end",defaultMessage:"Back-end developer"},value:"back_end_developer"},{intlLabel:{id:"Usecase.full-stack",defaultMessage:"Full-stack developer"},value:"full_stack_developer"},{intlLabel:{id:"global.content-manager",defaultMessage:"Content Manager"},value:"content_manager"},{intlLabel:{id:"Usecase.content-creator",defaultMessage:"Content Creator"},value:"content_creator"},{intlLabel:{id:"Usecase.other",defaultMessage:"Other"},value:"other"}],Qe=(0,pe.default)(n.Typography)`
|
|
2
|
+
text-align: center;
|
|
3
|
+
`;var It=()=>{const u=(0,P.useNotification)(),{push:s,location:o}=(0,r.useHistory)(),{formatMessage:i}=(0,Y.useIntl)(),[c,y]=(0,e.useState)(),[A,S]=(0,e.useState)(""),{firstname:k,email:V}=P.auth.getUserInfo(),{hasAdmin:G}=(0,Re.parse)(o?.search,{ignoreQueryPrefix:!0}),O=c==="other",X=K=>{try{(0,oe.Z)({method:"POST",url:"https://analytics.strapi.io/register",data:{email:V,username:k,firstAdmin:Boolean(!G),persona:{role:K?void 0:c,otherRole:K?void 0:A}}}),u({type:"success",message:{id:"Usecase.notification.success.project-created",defaultMessage:"Project has been successfully created"}}),s("/")}catch{}};return e.createElement(Te.ZP,null,e.createElement(n.Main,{labelledBy:"usecase-title"},e.createElement(Te.bU,null,e.createElement("form",{onSubmit:()=>X(!1)},e.createElement(n.Flex,{direction:"column",paddingBottom:7},e.createElement(se.Z,null),e.createElement(n.Box,{paddingTop:6,paddingBottom:1,width:(0,P.pxToRem)(250)},e.createElement(Qe,{variant:"alpha",as:"h1",id:"usecase-title"},i({id:"Usecase.title",defaultMessage:"Tell us a bit more about yourself"})))),e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Select,{id:"usecase","data-testid":"usecase",label:i({id:"Usecase.input.work-type",defaultMessage:"What type of work do you do?"}),onChange:y,value:c},we.map(({intlLabel:K,value:ne})=>e.createElement(n.Option,{key:ne,value:ne},i(K)))),O&&e.createElement(n.TextInput,{name:"other",label:i({id:"Usecase.other",defaultMessage:"Other"}),value:A,onChange:K=>S(K.target.value),"data-testid":"other"}),e.createElement(n.Button,{type:"submit",size:"L",fullWidth:!0,disabled:!c},i({id:"global.finish",defaultMessage:"Finish"}))))),e.createElement(n.Flex,{justifyContent:"center"},e.createElement(n.Box,{paddingTop:4},e.createElement(n.TextButton,{onClick:()=>X(!0)},i({id:"Usecase.button.skip",defaultMessage:"Skip this question"}))))))},ft=t(61605),ht=async()=>`web-fingerprint-${(await(await ft.ZP.load()).get()).visitorId}`,Et=[],yt=[...(()=>window&&window.strapi&&window.strapi.isEE?t(68944).Z:t(56761).Z)(),...Et],tt=t(8888);const it=(0,e.lazy)(()=>Promise.all([t.e(9816),t.e(801)]).then(t.bind(t,29761)));function vt(){const u=(0,P.useNotification)(),{updateProjectSettings:s}=(0,tt.um)(),{formatMessage:o}=(0,Y.useIntl)(),[{isLoading:i,hasAdmin:c,uuid:y,deviceId:A},S]=(0,e.useState)({isLoading:!0,hasAdmin:!1}),k=(0,P.useAppInfos)(),{get:V}=(0,P.useFetchClient)(),G=(0,e.useMemo)(()=>(0,H.WW)(yt.map(({to:N,Component:Ee,exact:be})=>(0,H.ot)(Ee,N,be))),[]),[O,X]=(0,e.useState)(null);(0,e.useEffect)(()=>{const N=P.auth.getToken();N&&(async()=>{try{const{data:{token:be}}=await(0,P.request)("/admin/renew-token",{method:"POST",body:{token:N}});P.auth.updateToken(be)}catch{P.auth.clearAppStorage(),window.location.reload()}})()},[]),(0,e.useEffect)(()=>{(async()=>{try{const{data:{data:{hasAdmin:Ee,uuid:be,menuLogo:at,authLogo:rt}}}=await oe.Z.get(`${strapi.backendURL}/admin/init`);s({menuLogo:(0,P.prefixFileUrlWithBackendUrl)(at),authLogo:(0,P.prefixFileUrlWithBackendUrl)(rt)});const $e=await ht();if(be){const{data:{data:Dt}}=await V("/admin/telemetry-properties",{validateStatus:We=>We<500});X(Dt);try{await fetch("https://analytics.strapi.io/api/v2/track",{method:"POST",body:JSON.stringify({event:"didInitializeAdministration",userId:"",deviceId:$e,eventPropeties:{},userProperties:{environment:k.currentEnvironment},groupProperties:{...Dt,projectId:be}}),headers:{"Content-Type":"application/json"}})}catch{}}S({isLoading:!1,hasAdmin:Ee,uuid:be,deviceId:$e})}catch{u({type:"warning",message:{id:"app.containers.App.notification.error.init"}})}})()},[u,s]);const K=N=>S(Ee=>({...Ee,hasAdmin:N})),ne=(0,e.useMemo)(()=>({uuid:y,telemetryProperties:O,deviceId:A}),[y,O,A]);return i?e.createElement(P.LoadingIndicatorPage,null):e.createElement(e.Suspense,{fallback:e.createElement(P.LoadingIndicatorPage,null)},e.createElement(n.SkipToContent,null,o({id:"skipToContent"})),e.createElement(P.TrackingProvider,{value:ne},e.createElement(r.Switch,null,G,e.createElement(r.Route,{path:"/auth/:authType",render:N=>e.createElement(J,{...N,setHasAdmin:K,hasAdmin:c}),exact:!0}),e.createElement(b,{path:"/usecase",component:It}),e.createElement(b,{path:"/",component:it}),e.createElement(r.Route,{path:"",component:gt.default}))))}var kt=vt,lt=t(47750),Tt=t(84968),Pt=t(4409),ut=t(66694);const ct={menuLogo:null,authLogo:null};var Ut=(u=ct,s)=>(0,Le.default)(u,o=>{switch(s.type){case"UPDATE_PROJECT_SETTINGS":{Object.assign(o,s.values);break}default:return o}});const Rt=({children:u,authLogo:s,menuLogo:o,showReleaseNotification:i,showTutorials:c})=>{const[{menuLogo:y,authLogo:A},S]=(0,e.useReducer)(Ut,ct),k=(0,e.useCallback)(({menuLogo:G,authLogo:O})=>S({type:"UPDATE_PROJECT_SETTINGS",values:{menuLogo:G||o,authLogo:O||s}}),[s,o]),V=(0,e.useMemo)(()=>({logos:{menu:{custom:y,default:o},auth:{custom:A,default:s}},updateProjectSettings:k,showReleaseNotification:i,showTutorials:c}),[y,o,A,s,k,i,c]);return e.createElement(ut._5.Provider,{value:V},u)};Rt.propTypes={authLogo:a().string.isRequired,children:a().element.isRequired,menuLogo:a().string.isRequired,showReleaseNotification:a().bool.isRequired,showTutorials:a().bool.isRequired};var jt=Rt,At=t(58732),xt=t.n(At),Ct=t(5985);const h=({changeLocale:u,children:s,localeNames:o,messages:i})=>e.createElement(Ct.Z.Provider,{value:{changeLocale:u,localeNames:o,messages:i}},s);h.propTypes={changeLocale:a().func.isRequired,children:a().element.isRequired,localeNames:a().object.isRequired,messages:a().object.isRequired};var p=h,C="strapi-admin-language",F=u=>{const s=window.localStorage.getItem(C);return{locale:u[s]?s:"en",localeNames:u}};const Z={localeNames:{en:"English"},locale:"en"};var ie=(u=Z,s)=>{switch(s.type){case"CHANGE_LOCALE":{const{locale:o}=s;return u.localeNames[o]?{...u,locale:o}:u}default:return u}};const De=({children:u,localeNames:s,messages:o})=>{const[{locale:i},c]=(0,e.useReducer)(ie,Z,()=>F(s));(0,e.useEffect)(()=>{window.localStorage.setItem(C,i),document.documentElement.setAttribute("lang",i)},[i]);const y=S=>{c({type:"CHANGE_LOCALE",locale:S})},A=xt()(o[i],o.en);return e.createElement(Y.IntlProvider,{locale:i,defaultLocale:"en",messages:A,textComponent:"span"},e.createElement(p,{changeLocale:y,localeNames:s,messages:A},u))};De.propTypes={children:a().element.isRequired,localeNames:a().objectOf(a().string).isRequired,messages:a().object.isRequired};var Ae=De,Ne=(u,s)=>{const o=Object.entries(s),i=o.findIndex(([y])=>y===u);return o.slice(0,i).every(([,y])=>Object.values(y).every(Boolean))},st=(u,s)=>{const o=u.split("."),i=o[1],c=Object.entries(s[o[0]]),y=c.findIndex(([S])=>S===i);return c.slice(0,y).every(([,S])=>S)};const nt={currentStep:null,guidedTourState:{contentTypeBuilder:{create:!1,success:!1},contentManager:{create:!1,success:!1},apiTokens:{create:!1,success:!1}},isGuidedTourVisible:!1,isSkipped:!0};var ot=(u=nt,s)=>(0,Le.default)(u,o=>{switch(s.type){case"SET_CURRENT_STEP":{o.currentStep=s.step;break}case"SET_STEP_STATE":{const[i,c]=s.currentStep.split(".");o.guidedTourState[i][c]=s.value;break}case"SET_SKIPPED":{o.isSkipped=s.value;break}case"SET_GUIDED_TOUR_VISIBILITY":{o.isGuidedTourVisible=s.value;break}default:return o}}),Fe=t(3040),ge=t.n(Fe),je=u=>{const s={...u},o=he.get(_),i=he.get(Ge),c=he.get(Oe);if(o&&o.forEach(y=>{const[A,S]=y.split(".");ge()(s,["guidedTourState",A,S],!0)}),i){const[y,A]=i.split(".");ge()(s,["guidedTourState",y,A],!0),he.addCompletedStep(i),he.addCurrentStep(null)}return c!==null&&ge()(s,"isSkipped",c),s};const Je=({children:u})=>{const[{currentStep:s,guidedTourState:o,isGuidedTourVisible:i,isSkipped:c},y]=(0,e.useReducer)(ot,nt,je),A=O=>{if(O!==null){const X=z()(o,O),K=st(O,o);if(X||c||!K)return null}return he.addCurrentStep(O),y({type:"SET_CURRENT_STEP",step:O})},S=O=>{y({type:"SET_GUIDED_TOUR_VISIBILITY",value:O})},k=(O,X)=>{he.addCompletedStep(O),y({type:"SET_STEP_STATE",currentStep:O,value:X})},V=O=>{const X=o[O];if(X){const K=Ne(O,o),ne=Object.keys(X)[0],N=X[ne];if(K&&!s&&!N)return A(`${O}.${ne}`)}return null},G=O=>{he.setSkipped(O),y({type:"SET_SKIPPED",value:O})};return e.createElement(P.GuidedTourProvider,{guidedTourState:o,currentStep:s,setCurrentStep:A,setGuidedTourVisibility:S,setSkipped:G,setStepState:k,startSection:V,isGuidedTourVisible:i,isSkipped:c},u)};Je.propTypes={children:a().element.isRequired};var es=Je,Bt=t(12788),_t=t(57269),Nt=t(41502);const ts=(0,pe.default)(n.Box)`
|
|
4
|
+
position: fixed;
|
|
5
|
+
top: 0;
|
|
6
|
+
right: 0;
|
|
7
|
+
bottom: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
z-index: 1140;
|
|
10
|
+
&:before {
|
|
11
|
+
content: '';
|
|
12
|
+
position: fixed;
|
|
13
|
+
top: 0;
|
|
14
|
+
right: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
left: 0;
|
|
17
|
+
background: ${({theme:u})=>u.colors.neutral0};
|
|
18
|
+
opacity: 0.9;
|
|
19
|
+
}
|
|
20
|
+
`,ss=(0,pe.default)(n.Flex)`
|
|
21
|
+
position: fixed;
|
|
22
|
+
top: 0;
|
|
23
|
+
right: 0;
|
|
24
|
+
bottom: 0;
|
|
25
|
+
left: 0;
|
|
26
|
+
padding-top: ${(0,P.pxToRem)(160)};
|
|
27
|
+
`,Ft=(0,pe.default)(n.Box)`
|
|
28
|
+
border-radius: 50%;
|
|
29
|
+
svg {
|
|
30
|
+
> path {
|
|
31
|
+
fill: ${({theme:u})=>u.colors.primary600} !important;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
`,dt=document.createElement("div"),ns="autoReloadOverlayBlocker";dt.setAttribute("id",ns);const os=pe.keyframes`
|
|
35
|
+
from {
|
|
36
|
+
transform: rotate(0deg);
|
|
37
|
+
}
|
|
38
|
+
to {
|
|
39
|
+
transform: rotate(359deg);
|
|
40
|
+
}
|
|
41
|
+
`,as=(0,pe.default)(_t.Refresh)`
|
|
42
|
+
animation: ${os} 1s infinite linear;
|
|
43
|
+
`,Zt=({displayedIcon:u,description:s,title:o,isOpen:i})=>{const{formatMessage:c}=(0,Y.useIntl)();return(0,e.useEffect)(()=>(document.body.appendChild(dt),()=>{document.body.removeChild(dt)}),[]),i?Bt.createPortal(e.createElement(ts,null,e.createElement(ss,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Flex,{justifyContent:"center"},e.createElement(n.Typography,{as:"h1",variant:"alpha"},c(o))),e.createElement(n.Flex,{justifyContent:"center"},e.createElement(n.Typography,{as:"h2",textColor:"neutral600",fontSize:4,fontWeight:"regular"},c(s)))),e.createElement(n.Flex,{justifyContent:"center"},u==="reload"&&e.createElement(Ft,{padding:6,background:"primary100",borderColor:"primary200"},e.createElement(as,{width:(0,P.pxToRem)(36),height:(0,P.pxToRem)(36)})),u==="time"&&e.createElement(Ft,{padding:6,background:"primary100",borderColor:"primary200"},e.createElement(_t.Clock,{width:(0,P.pxToRem)(40),height:(0,P.pxToRem)(40)}))),e.createElement(n.Flex,{justifyContent:"center"},e.createElement(n.Box,{paddingTop:2},e.createElement(Nt.r,{href:"https://docs.strapi.io",isExternal:!0},c({id:"global.documentation",defaultMessage:"Read the documentation"})))))),dt):null};Zt.propTypes={displayedIcon:a().oneOfType([a().string,a().array]).isRequired,description:a().object.isRequired,isOpen:a().bool.isRequired,title:a().object.isRequired};var rs=Zt;const Wt=30,Gt=({children:u})=>{const[s,o]=(0,e.useState)(!1),[{elapsed:i},c]=(0,e.useState)({elapsed:0,start:0}),[y,A]=(0,e.useState)(void 0),S=(N=void 0)=>{o(!0),A(N),c(Ee=>({...Ee,start:Date.now()}))},k=()=>{o(!1),c({start:0,elapsed:0}),A(void 0)},V=(0,e.useRef)(S),G=(0,e.useRef)(k);(0,e.useEffect)(()=>{let N=null;return s?N=setInterval(()=>i>Wt?(clearInterval(N),null):(c(Ee=>({...Ee,elapsed:Math.round(Date.now()-Ee.start)/1e3})),null),1e3):clearInterval(N),()=>{clearInterval(N)}},[s,i]);let O=y?.icon||"reload",X={id:y?.description||"components.OverlayBlocker.description",defaultMessage:"You're using a feature that needs the server to restart. Please wait until the server is up."},K={id:y?.title||"components.OverlayBlocker.title",defaultMessage:"Waiting for restart"};i>Wt&&(O="time",X={id:"components.OverlayBlocker.description.serverError",defaultMessage:"The server should have restarted, please check your logs in the terminal."},K={id:"components.OverlayBlocker.title.serverError",defaultMessage:"The restart is taking longer than expected"});const ne=(0,e.useMemo)(()=>({lockApp:V.current,unlockApp:G.current}),[V,G]);return e.createElement(P.AutoReloadOverlayBockerContext.Provider,{value:ne},e.createElement(rs,{displayedIcon:O,isOpen:s,description:X,title:K}),u)};Gt.propTypes={children:a().element.isRequired};var is=Gt;const Mt=({dispatch:u,notification:s})=>{const{formatMessage:o}=(0,Y.useIntl)(),{message:i,link:c,type:y,id:A,onClose:S,timeout:k,blockTransition:V,title:G}=s,O=N=>typeof N=="string"?N:o(N,N.values),X=(0,e.useCallback)(()=>{S&&S(),u({type:"HIDE_NOTIFICATION",id:A})},[A]);(0,e.useEffect)(()=>{let N;return V||(N=setTimeout(()=>{X()},k||2500)),()=>clearTimeout(N)},[V,X,k]);let K,ne;return y==="info"?(K="default",ne=o({id:"notification.default.title",defaultMessage:"Information:"})):y==="warning"?(K="danger",ne=o({id:"notification.warning.title",defaultMessage:"Warning:"})):y==="softWarning"?(K="warning",ne=o({id:"notification.warning.title",defaultMessage:"Warning:"})):(K="success",ne=o({id:"notification.success.title",defaultMessage:"Success:"})),G&&(ne=typeof G=="string"?G:O({id:G?.id||G,defaultMessage:G?.defaultMessage||G?.id||G,values:G?.values})),e.createElement(n.Alert,{action:c?e.createElement(Nt.r,{href:c.url,isExternal:!0},o({id:c.label?.id||c.label,defaultMessage:c.label?.defaultMessage||c.label?.id||c.label})):void 0,onClose:X,closeLabel:"Close",title:ne,variant:K},O({id:i?.id||i,defaultMessage:i?.defaultMessage||i?.id||i,values:i?.values}))};Mt.defaultProps={notification:{id:1,type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"},onClose:()=>null,timeout:2500,blockTransition:!1}},Mt.propTypes={dispatch:a().func.isRequired,notification:a().shape({id:a().number,message:a().oneOfType([a().string,a().shape({id:a().string.isRequired,defaultMessage:a().string,values:a().object})]),link:a().shape({target:a().string,url:a().string.isRequired,label:a().oneOfType([a().string,a().shape({id:a().string.isRequired,defaultMessage:a().string,values:a().object})]).isRequired}),type:a().string,onClose:a().func,timeout:a().number,blockTransition:a().bool,title:a().oneOfType([a().string,a().shape({id:a().string.isRequired,defaultMessage:a().string,values:a().object})])})};var ls=Mt;const Kt={notifId:0,notifications:[]};var us=(u=Kt,s)=>(0,Le.default)(u,o=>{switch(s.type){case"SHOW_NOTIFICATION":{o.notifications.push({id:u.notifId,type:z()(s,["config","type"],"success"),message:z()(s,["config","message"],{id:"notification.success.saved",defaultMessage:"Saved"}),link:z()(s,["config","link"],null),timeout:z()(s,["config","timeout"],2500),blockTransition:z()(s,["config","blockTransition"],!1),onClose:z()(s,["config","onClose"],null),title:z()(s,["config","title"],null)}),o.notifId=u.notifId+1;break}case"HIDE_NOTIFICATION":{const i=u.notifications.findIndex(c=>c.id===s.id);i!==-1&&o.notifications.splice(i,1);break}default:return o}});const Ht=({children:u})=>{const[{notifications:s},o]=(0,e.useReducer)(us,Kt),i=c=>{o({type:"SHOW_NOTIFICATION",config:c})};return e.createElement(P.NotificationsProvider,{toggleNotification:i},e.createElement(n.Flex,{left:"50%",marginLeft:"-250px",position:"fixed",direction:"column",alignItems:"stretch",gap:2,top:`${46/16}rem`,width:`${500/16}rem`,zIndex:10},s.map(c=>e.createElement(ls,{key:c.id,dispatch:o,notification:c}))),u)};Ht.propTypes={children:a().element.isRequired};var cs=Ht;const mt=document.createElement("div");mt.setAttribute("id","overlayBlocker");const ds=pe.default.div`
|
|
44
|
+
position: fixed;
|
|
45
|
+
top: 0;
|
|
46
|
+
right: 0;
|
|
47
|
+
bottom: 0;
|
|
48
|
+
left: 0;
|
|
49
|
+
z-index: 1140;
|
|
50
|
+
`,$t=({isOpen:u})=>((0,e.useEffect)(()=>(document.body.appendChild(mt),()=>{document.body.removeChild(mt)}),[]),u?Bt.createPortal(e.createElement(ds,null),mt):null);$t.propTypes={isOpen:a().bool.isRequired};const zt=({children:u})=>{const[s,o]=(0,e.useState)(!1),i=()=>{o(!0)},c=()=>{o(!1)};return e.createElement(P.OverlayBlockerContext.Provider,{value:{lockApp:i,unlockApp:c}},u,e.createElement($t,{isOpen:s}))};zt.propTypes={children:a().node.isRequired};var ms=zt;const St="STRAPI_THEME",ps=()=>{const u=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",s=localStorage.getItem(St);return s||localStorage.setItem(St,u),s||u},Vt=({children:u,themes:s})=>{const[o,i]=(0,e.useState)(ps()),c=(0,e.useCallback)(A=>{i(A),localStorage.setItem(St,A)},[i]),y=(0,e.useMemo)(()=>({currentTheme:o,onChangeTheme:c,themes:s}),[o,c,s]);return e.createElement(ut.Rj.Provider,{value:y},u)};Vt.propTypes={children:a().node.isRequired,themes:a().shape({light:a().shape({colors:a().object.isRequired,shadows:a().object.isRequired,sizes:a().object.isRequired,zIndices:a().array.isRequired,spaces:a().array.isRequired,borderRadius:a().string.isRequired,mediaQueries:a().object.isRequired,fontSizes:a().array.isRequired,lineHeights:a().array.isRequired,fontWeights:a().object.isRequired}).isRequired,dark:a().shape({colors:a().object.isRequired,shadows:a().object.isRequired,sizes:a().object.isRequired,zIndices:a().array.isRequired,spaces:a().array.isRequired,borderRadius:a().string.isRequired,mediaQueries:a().object.isRequired,fontSizes:a().array.isRequired,lineHeights:a().array.isRequired,fontWeights:a().object.isRequired}).isRequired,custom:a().object}).isRequired};var gs=Vt,fs=pe.createGlobalStyle`
|
|
51
|
+
body {
|
|
52
|
+
background: ${({theme:u})=>u.colors.neutral100};
|
|
53
|
+
}
|
|
54
|
+
`;const Qt=({children:u})=>{const{currentTheme:s,themes:o}=(0,tt.M1)();return e.createElement(n.ThemeProvider,{theme:o[s]||o.light},u,e.createElement(fs,null))};Qt.propTypes={children:a().element.isRequired};var hs=Qt;const Es=new Tt.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1}}}),Yt=({authLogo:u,children:s,components:o,customFields:i,fields:c,getAdminInjectedComponents:y,getPlugin:A,localeNames:S,menu:k,menuLogo:V,messages:G,plugins:O,runHookParallel:X,runHookSeries:K,runHookWaterfall:ne,settings:N,showReleaseNotification:Ee,showTutorials:be,store:at,themes:rt})=>e.createElement(gs,{themes:rt},e.createElement(hs,null,e.createElement(Tt.QueryClientProvider,{client:Es},e.createElement(Pt.Provider,{store:at},e.createElement(ut.ux.Provider,{value:{getAdminInjectedComponents:y}},e.createElement(jt,{authLogo:u,menuLogo:V,showReleaseNotification:Ee,showTutorials:be},e.createElement(P.StrapiAppProvider,{getPlugin:A,menu:k,plugins:O,runHookParallel:X,runHookWaterfall:ne,runHookSeries:K,settings:N},e.createElement(P.LibraryProvider,{components:o,fields:c},e.createElement(P.CustomFieldsProvider,{customFields:i},e.createElement(Ae,{messages:G,localeNames:S},e.createElement(is,null,e.createElement(ms,null,e.createElement(es,null,e.createElement(cs,null,s))))))))))))));Yt.propTypes={authLogo:a().oneOfType([a().string,a().any]).isRequired,children:a().element.isRequired,components:a().object.isRequired,customFields:a().object.isRequired,fields:a().object.isRequired,getAdminInjectedComponents:a().func.isRequired,getPlugin:a().func.isRequired,localeNames:a().objectOf(a().string).isRequired,menu:a().arrayOf(a().shape({to:a().string.isRequired,icon:a().func.isRequired,intlLabel:a().shape({id:a().string.isRequired,defaultMessage:a().string.isRequired}).isRequired,permissions:a().array,Component:a().func})).isRequired,menuLogo:a().oneOfType([a().string,a().any]).isRequired,messages:a().object.isRequired,plugins:a().object.isRequired,runHookParallel:a().func.isRequired,runHookWaterfall:a().func.isRequired,runHookSeries:a().func.isRequired,settings:a().object.isRequired,showReleaseNotification:a().bool.isRequired,showTutorials:a().bool.isRequired,store:a().object.isRequired,themes:a().shape({light:a().shape({colors:a().object.isRequired,shadows:a().object.isRequired,sizes:a().object.isRequired,zIndices:a().array.isRequired,spaces:a().array.isRequired,borderRadius:a().string.isRequired,mediaQueries:a().object.isRequired,fontSizes:a().array.isRequired,lineHeights:a().array.isRequired,fontWeights:a().object.isRequired}).isRequired,dark:a().shape({colors:a().object.isRequired,shadows:a().object.isRequired,sizes:a().object.isRequired,zIndices:a().array.isRequired,spaces:a().array.isRequired,borderRadius:a().string.isRequired,mediaQueries:a().object.isRequired,fontSizes:a().array.isRequired,lineHeights:a().array.isRequired,fontWeights:a().object.isRequired}).isRequired,custom:a().object}).isRequired};var ys=Yt,vs={ar:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",ca:"Catal\xE0",cs:"\u010Ce\u0161tina",de:"Deutsch",dk:"Dansk",en:"English",es:"Espa\xF1ol",eu:"Euskara",fr:"Fran\xE7ais",gu:"Gujarati",he:"\u05E2\u05D1\u05E8\u05D9\u05EA",hu:"Magyar",id:"Indonesian",it:"Italiano",ja:"\u65E5\u672C\u8A9E",ko:"\uD55C\uAD6D\uC5B4",ml:"Malayalam",ms:"Melayu",nl:"Nederlands",no:"Norwegian",pl:"Polski","pt-BR":"Portugu\xEAs (Brasil)",pt:"Portugu\xEAs (Portugal)",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",sk:"Sloven\u010Dina",sv:"Swedish",th:"\u0E44\u0E17\u0E22",tr:"T\xFCrk\xE7e",uk:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",vi:"Ti\u1EBFng Vi\u1EC7t","zh-Hans":"\u4E2D\u6587 (\u7B80\u4F53)",zh:"\u4E2D\u6587 (\u7E41\u9AD4)",sa:"\u0938\u0902\u0938\u094D\u0915\u0943\u0924",hi:"\u0939\u093F\u0928\u094D\u0926\u0940"},pt=t(70836),Ts={admin:{tutorials:{links:[]}},contentManager:{editView:{informations:[],"right-links":[]},listView:{actions:[],deleteModalAdditionalInfos:[]}}},Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAXVBMVEUAAABIRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9IRP9JRf9IRf9IRP5IRP5JRP9JRf////+Vk/+zsv++vf9mY/9taf9/fP+Jh//c3P9RTf/Ibar2AAAAFHRSTlMA/MJX+fPt48cahaff1dMaGqcahSpTPmAAAAEvSURBVFjD7dfNTsMwEATgXcf5cdKEtixtcYH3f0xEibIguba1g8Slc+58iqUedmhNaMbJzX3Xema5G2bfdv3iprE50s80g7Yqw0Oz1Z+cmOL2a38nxuy+BSfmuNv7BUhDRAMCDESBEYCDvsD6hmcMGGnCgIkcBjhaMGCmHgN66jCgoxYDWvIY4IkxgHFAkrmeU7kmfpkG4uUllXMtEE82QPs2QPs2QPs2QPs2QPsAoH0DoH0LoH0QeN3ydtnyXg38ok76MQ/gAfwf8JH8V18LQOljomBAFAyIkga4CGT7XAtEuQf4IpDri6e2BoiZA6OrAGLuxOnLQMweWXMRyPVlwQ/NAwZMNGLACJ/76ODYo5MHHl3o7EOHZ6BbjtbpG/5kfOv8P7ilbv7PX/M/rMVPqrI3XI3nd3sAAAAASUVORK5CYII=";class Rs{constructor({adminConfig:s,appPlugins:o,library:i,middlewares:c,reducers:y}){this.customConfigurations=s.config,this.customBootstrapConfiguration=s.bootstrap,this.configurations={authLogo:lt,head:{favicon:Ps},locales:["en"],menuLogo:lt,notifications:{releases:!0},themes:{light:n.lightTheme,dark:n.darkTheme},translations:{},tutorials:!0},this.appPlugins=o||{},this.library=i,this.middlewares=c,this.plugins={},this.reducers=y,this.translations={},this.hooksDict={},this.admin={injectionZones:Ts},this.customFields=fe.rh,this.menu=[],this.settings={global:{id:"global",intlLabel:{id:"Settings.global",defaultMessage:"Global Settings"},links:[]}}}addComponents=s=>{Array.isArray(s)?s.map(o=>this.library.components.add(o)):this.library.components.add(s)};addCorePluginMenuLink=s=>{const o=JSON.stringify(s);v()(s.to,`link.to should be defined for ${o}`),v()(typeof s.to=="string",`Expected link.to to be a string instead received ${typeof s.to}`),v()(["/plugins/content-type-builder","/plugins/upload"].includes(s.to),"This method is not available for your plugin"),v()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${o}`),this.menu.push(s)};addFields=s=>{Array.isArray(s)?s.map(o=>this.library.fields.add(o)):this.library.fields.add(s)};addMenuLink=s=>{const o=JSON.stringify(s);v()(s.to,`link.to should be defined for ${o}`),v()(typeof s.to=="string",`Expected link.to to be a string instead received ${typeof s.to}`),v()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${o}`),v()(s.Component&&typeof s.Component=="function","link.Component should be a valid React Component"),v()(s.icon&&typeof s.icon=="function","link.Icon should be a valid React Component"),this.menu.push(s)};addMiddlewares=s=>{s.forEach(o=>{this.middlewares.add(o)})};addReducers=s=>{Object.keys(s).forEach(o=>{this.reducers.add(o,s[o])})};addSettingsLink=(s,o)=>{v()(this.settings[s],"The section does not exist");const i=JSON.stringify(o);v()(o.id,`link.id should be defined for ${i}`),v()(o.intlLabel?.id&&o.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${i}`),v()(o.to,`link.to should be defined for ${i}`),v()(o.Component&&typeof o.Component=="function","link.Component should be a valid React Component"),this.settings[s].links.push(o)};addSettingsLinks=(s,o)=>{v()(this.settings[s],"The section does not exist"),v()(Array.isArray(o),"TypeError expected links to be an array"),o.forEach(i=>{this.addSettingsLink(s,i)})};async bootstrap(){Object.keys(this.appPlugins).forEach(s=>{const o=this.appPlugins[s].bootstrap;o&&o({addSettingsLink:this.addSettingsLink,addSettingsLinks:this.addSettingsLinks,getPlugin:this.getPlugin,injectContentManagerComponent:this.injectContentManagerComponent,injectAdminComponent:this.injectAdminComponent,registerHook:this.registerHook})}),R()(this.customBootstrapConfiguration)&&this.customBootstrapConfiguration({addComponents:this.addComponents,addFields:this.addFields,addMenuLink:this.addMenuLink,addReducers:this.addReducers,addSettingsLink:this.addSettingsLink,addSettingsLinks:this.addSettingsLinks,getPlugin:this.getPlugin,injectContentManagerComponent:this.injectContentManagerComponent,injectAdminComponent:this.injectAdminComponent,registerHook:this.registerHook})}bootstrapAdmin=async()=>(await this.createCustomConfigurations(),this.createHook(pt.No),this.createHook(pt.LK),this.createHook(pt.dV),this.createHook(pt.Eo),Promise.resolve());createCustomConfigurations=async()=>{if(this.customConfigurations?.locales&&(this.configurations.locales=["en",...this.customConfigurations.locales?.filter(s=>s!=="en")||[]]),this.customConfigurations?.auth?.logo&&(this.configurations.authLogo=this.customConfigurations.auth.logo),this.customConfigurations?.menu?.logo&&(this.configurations.menuLogo=this.customConfigurations.menu.logo),this.customConfigurations?.head?.favicon&&(this.configurations.head.favicon=this.customConfigurations.head.favicon),this.customConfigurations?.theme){const s=this.customConfigurations.theme.dark,o=this.customConfigurations.theme.light;!s&&!o&&(console.warn("[deprecated] In future versions, Strapi will stop supporting this theme customization syntax. The theme configuration accepts a light and a dark key to customize each theme separately. See https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#theme-extension."),m()(this.configurations.themes.light,this.customConfigurations.theme)),o&&m()(this.configurations.themes.light,o),s&&m()(this.configurations.themes.dark,s)}this.customConfigurations?.notifications?.releases!==void 0&&(this.configurations.notifications.releases=this.customConfigurations.notifications.releases),this.customConfigurations?.tutorials!==void 0&&(this.configurations.tutorials=this.customConfigurations.tutorials)};createHook=s=>{this.hooksDict[s]=W()};createSettingSection=(s,o)=>{v()(s.id,"section.id should be defined"),v()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,"section.intlLabel should be defined"),v()(Array.isArray(o),"TypeError expected links to be an array"),v()(this.settings[s.id]===void 0,"A similar section already exists"),this.settings[s.id]={...s,links:[]},o.forEach(i=>{this.addSettingsLink(s.id,i)})};createStore=()=>Q(this.middlewares.middlewares,this.reducers.reducers);getAdminInjectedComponents=(s,o,i)=>{try{return this.admin.injectionZones[s][o][i]||[]}catch(c){return console.error("Cannot get injected component",c),c}};getPlugin=s=>this.plugins[s];async initialize(){Object.keys(this.appPlugins).forEach(s=>{this.appPlugins[s].register(this)})}injectContentManagerComponent=(s,o,i)=>{v()(this.admin.injectionZones.contentManager[s]?.[o],`The ${s} ${o} zone is not defined in the content manager`),v()(i,"A Component must be provided"),this.admin.injectionZones.contentManager[s][o].push(i)};injectAdminComponent=(s,o,i)=>{v()(this.admin.injectionZones.admin[s]?.[o],`The ${s} ${o} zone is not defined in the admin`),v()(i,"A Component must be provided"),this.admin.injectionZones.admin[s][o].push(i)};async loadAdminTrads(){const s=this.configurations.locales.map(c=>t(48224)(`./${c}.json`).then(({default:y})=>({data:y,locale:c})).catch(()=>({data:null,locale:c})));return(await Promise.all(s)).reduce((c,y)=>(y.data&&(c[y.locale]=y.data),c),{})}async loadTrads(){const s=await this.loadAdminTrads(),o=Object.keys(this.appPlugins).map(A=>{const S=this.appPlugins[A].registerTrads;return S?S({locales:this.configurations.locales}):null}).filter(A=>A),c=(await Promise.all(o)).reduce((A,S)=>{const k=S.reduce((V,G)=>(V[G.locale]=G.data,V),{});return Object.keys(k).forEach(V=>{A[V]={...A[V],...k[V]}}),A},{}),y=this.configurations.locales.reduce((A,S)=>(A[S]={...s[S],...c[S]||{},...this.customConfigurations?.translations?.[S]},A),{});return this.configurations.translations=y,Promise.resolve()}registerHook=(s,o)=>{v()(this.hooksDict[s],`The hook ${s} is not defined. You are trying to register a hook that does not exist in the application.`),this.hooksDict[s].register(o)};registerPlugin=s=>{const o=(0,fe.Sy)(s);this.plugins[o.pluginId]=o};runHookSeries=(s,o=!1)=>o?this.hooksDict[s].runSeriesAsync():this.hooksDict[s].runSeries();runHookWaterfall=(s,o,i=!1,c)=>i?this.hooksDict[s].runWaterfallAsync(o,c):this.hooksDict[s].runWaterfall(o,c);runHookParallel=s=>this.hooksDict[s].runParallel();render(){const s=this.createStore(),o=d()(vs,this.configurations.locales||[]),{components:{components:i},fields:{fields:c}}=this.library;return e.createElement(ys,{authLogo:this.configurations.authLogo,components:i,fields:c,customFields:this.customFields,localeNames:o,getAdminInjectedComponents:this.getAdminInjectedComponents,getPlugin:this.getPlugin,messages:this.configurations.translations,menu:this.menu,menuLogo:this.configurations.menuLogo,plugins:this.plugins,runHookParallel:this.runHookParallel,runHookWaterfall:(y,A,S=!1)=>this.runHookWaterfall(y,A,S,s),runHookSeries:this.runHookSeries,themes:this.configurations.themes,settings:this.settings,showTutorials:this.configurations.tutorials,showReleaseNotification:this.configurations.notifications.releases,store:s},e.createElement(e.Fragment,null,e.createElement(x.Helmet,{link:[{rel:"icon",type:"image/png",href:this.configurations.head.favicon}],htmlAttributes:{lang:localStorage.getItem(C)||"en"}}),e.createElement(r.BrowserRouter,{basename:T.Z},e.createElement(kt,{store:s}))))}}var As=({adminConfig:u={},appPlugins:s,library:o,middlewares:i,reducers:c})=>new Rs({adminConfig:u,appPlugins:s,library:o,middlewares:i,reducers:c})},5985:function(I,E,t){"use strict";var e=t(32735);const r=(0,e.createContext)();E.Z=r},20139:function(I,E,t){"use strict";var e=t(32735),r=t(5985);const n=()=>{const{changeLocale:f,localeNames:m,messages:g}=(0,e.useContext)(r.Z);return{changeLocale:f,localeNames:m,messages:g}};E.Z=n},10190:function(I,E,t){"use strict";var e=t(32735),r=t(83292),n=t(8888);const f=r.default.img`
|
|
55
|
+
height: ${72/16}rem;
|
|
56
|
+
`,m=()=>{const{logos:{auth:g}}=(0,n.um)();return e.createElement(f,{src:g?.custom??g.default,"aria-hidden":!0,alt:""})};E.Z=m},66694:function(I,E,t){"use strict";t.d(E,{ux:function(){return n},_5:function(){return m},$l:function(){return d},Rj:function(){return R}});var e=t(32735),n=(0,e.createContext)({}),m=(0,e.createContext)({}),d=(0,e.createContext)({}),R=(0,e.createContext)({})},463:function(I,E){"use strict";const t="/admin/".replace(window.location.origin,"");E.Z=t},70836:function(I,E,t){"use strict";t.d(E,{Eo:function(){return n},LK:function(){return r},No:function(){return e},dV:function(){return f}});const e="Admin/CM/pages/ListView/inject-column-in-table",r="Admin/CM/pages/App/mutate-collection-types-links",n="Admin/CM/pages/EditView/mutate-edit-view-layout",f="Admin/CM/pages/App/mutate-single-types-links"},8888:function(I,E,t){"use strict";t.d(E,{um:function(){return f},U_:function(){return L},Dq:function(){return P},H9:function(){return Ge},bP:function(){return v},$_:function(){return ct},rW:function(){return Ct},bF:function(){return ke},G4:function(){return Pt},Te:function(){return yt},M1:function(){return At}});var e=t(32735),r=t(66694),f=()=>(0,e.useContext)(r._5),m=t(13478),g=t(97889);const d={collectionTypes:[],components:[],isLoading:!0,singleTypes:[]};var R=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"GET_MODELS":{l.collectionTypes=d.collectionTypes,l.singleTypes=d.singleTypes,l.components=d.components,l.isLoading=!0;break}case"GET_MODELS_ERROR":{l.collectionTypes=d.collectionTypes,l.singleTypes=d.singleTypes,l.components=d.components,l.isLoading=!1;break}case"GET_MODELS_SUCCEDED":{const C=U=>p.contentTypes.filter(F=>F.isDisplayed&&F.kind===U);l.isLoading=!1,l.collectionTypes=C("collectionType"),l.singleTypes=C("singleType"),l.components=p.components;break}default:return l}}),v=()=>{const h=(0,m.useNotification)(),[p,l]=(0,e.useReducer)(R,d);(0,e.useEffect)(()=>{C()},[]);const C=async()=>{l({type:"GET_MODELS"});try{const[{data:U},{data:F}]=await Promise.all(["components","content-types"].map(Z=>(0,m.request)(`/content-manager/${Z}`,{method:"GET"})));l({type:"GET_MODELS_SUCCEDED",contentTypes:F,components:U})}catch{l({type:"GET_MODELS_ERROR"}),h({type:"warning",message:{id:"notification.error"}})}};return{...p,getData:C}};const x={data:{},error:null,isLoading:!0};var M=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"GET_DATA":{l.isLoading=!0,l.data={},l.error=null;break}case"GET_DATA_SUCCEEDED":{l.data=p.data,l.isLoading=!1,l.error=null;break}case"GET_DATA_ERROR":{l.isLoading=!1,l.error=p.error;break}default:return l}}),L=h=>{const[{data:p,error:l,isLoading:C},U]=(0,e.useReducer)(M,x);return(0,e.useEffect)(()=>{(async()=>{U({type:"GET_DATA"});const{data:Z}=await(0,m.request)("/admin/permissions",{method:"GET",params:{role:h}});U({type:"GET_DATA_SUCCEEDED",data:Z})})()},[h]),{data:p,error:l,isLoading:C}};const w={role:{},permissions:{},isLoading:!0};var Q=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"GET_DATA_SUCCEEDED":{l.role=p.role,l.permissions=p.permissions,l.isLoading=!1;break}case"GET_DATA_ERROR":{l.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{l.role.name=p.name,l.role.description=p.description;break}default:return l}}),P=h=>{const p=(0,m.useNotification)(),[l,C]=(0,e.useReducer)(Q,w);(0,e.useEffect)(()=>{h?U(h):C({type:"GET_DATA_SUCCEEDED",role:{},permissions:[]})},[h]);const U=async Z=>{try{const[{data:q},{data:ie}]=await Promise.all([`roles/${Z}`,`roles/${Z}/permissions`].map(De=>(0,m.request)(`/admin/${De}`,{method:"GET"})));C({type:"GET_DATA_SUCCEEDED",role:q,permissions:ie})}catch(q){console.error(q),C({type:"GET_DATA_ERROR"}),p({type:"warning",message:{id:"notification.error"}})}},F=(0,e.useCallback)(Z=>{C({type:"ON_SUBMIT_SUCCEEDED",...Z})},[]);return{...l,onSubmitSucceeded:F}},Y=(h,p)=>p.map(({permissions:l})=>(0,m.hasPermissions)(h,l)),a=async(h,p)=>{const l=Y(h,p),C=await Promise.all(l);return p.filter((F,Z)=>C[Z])},D=t(99381),b=t.n(D),ve=async(h,p,l)=>{const C=Y(h,p),U=await Promise.all(C),F=p.filter((ie,De)=>U[De]),Z=F.findIndex(ie=>ie.to==="/settings");if(Z===-1)return[];const q=b()(F);return q[Z].notificationsCount=l?1:0,q},le=t(57269),ce=t(72041);const de={generalSectionLinks:[{icon:le.Puzzle,intlLabel:{id:"global.plugins",defaultMessage:"Plugins"},to:"/list-plugins",permissions:ce.Z.marketplace.main},{icon:le.ShoppingCart,intlLabel:{id:"global.marketplace",defaultMessage:"Marketplace"},to:"/marketplace",permissions:ce.Z.marketplace.main},{icon:le.Cog,intlLabel:{id:"global.settings",defaultMessage:"Settings"},to:"/settings",permissions:[],notificationsCount:0}],pluginsSectionLinks:[],isLoading:!0};var qe=(h=de,p)=>(0,g.default)(h,l=>{switch(p.type){case"SET_SECTION_LINKS":{const{authorizedGeneralSectionLinks:C,authorizedPluginSectionLinks:U}=p.data;l.generalSectionLinks=C,l.pluginsSectionLinks=U;break}case"UNSET_IS_LOADING":{l.isLoading=!1;break}default:return l}}),Ge=()=>{const[h,p]=(0,e.useReducer)(qe,de),{allPermissions:l}=(0,m.useRBACProvider)(),{shouldUpdateStrapi:C}=(0,m.useAppInfos)(),{menu:U}=(0,m.useStrapiApp)(),F=(0,e.useRef)(h.generalSectionLinks),Z=(0,e.useRef)(C),q=async(De=l)=>{const _e=await a(De,U),Ne=await ve(De,F.current,Z.current);p({type:"SET_SECTION_LINKS",data:{authorizedGeneralSectionLinks:Ne,authorizedPluginSectionLinks:_e}}),p({type:"UNSET_IS_LOADING"})},ie=(0,e.useRef)(q);return(0,e.useEffect)(()=>{ie.current(l)},[l,p]),h},_=t(33795),Oe=t.n(_),Se=(h,p)=>({...h,isLoading:p});const Ce={roles:[],isLoading:!0};var me=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"GET_DATA":{l.isLoading=!0,l.roles=[];break}case"GET_DATA_SUCCEEDED":{l.roles=p.data,l.isLoading=!1;break}case"GET_DATA_ERROR":{l.isLoading=!1;break}default:return l}}),ke=(h=!0)=>{const p=(0,m.useNotification)(),[{roles:l,isLoading:C},U]=(0,e.useReducer)(me,Ce,()=>Se(Ce,h));(0,e.useEffect)(()=>{h&&F()},[h]);const F=(0,e.useCallback)(async()=>{const Z=(0,m.getFetchClient)();try{U({type:"GET_DATA"});const{data:{data:q}}=await Z.get("/admin/roles");U({type:"GET_DATA_SUCCEEDED",data:q})}catch(q){const ie=Oe()(q,["response","payload","message"],"An error occured");U({type:"GET_DATA_ERROR"}),ie!=="Forbidden"&&p({type:"warning",message:ie})}},[p]);return{roles:l,isLoading:C,getData:F}},te=t(92891);const Le={menu:[],isLoading:!0};var ze=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"CHECK_PERMISSIONS_SUCCEEDED":{p.data.forEach(C=>{C.hasPermission&&(0,te.set)(l,["menu",...C.path.split("."),"isDisplayed"],C.hasPermission)}),l.menu.forEach((C,U)=>{l.menu[U].links=C.links.filter(F=>F.isDisplayed===!0)}),l.isLoading=!1;break}default:return l}}),Ke=t(9086),Ve=t.n(Ke),He=t(98978),J=t.n(He),pe=h=>J()(h,p=>p.id),se=h=>h.map(p=>{const l=p.links.map(C=>({...C,isDisplayed:!1}));return{...p,links:l}}),we=[{intlLabel:{id:"global.roles",defaultMessage:"Roles"},to:"/settings/roles",id:"roles",isDisplayed:!1,permissions:ce.Z.settings.roles.main},{intlLabel:{id:"global.users"},to:"/settings/users?pageSize=10&page=1&sort=firstname",id:"users",isDisplayed:!1,permissions:ce.Z.settings.users.main}],bt=[...(()=>window&&window.strapi&&window.strapi.isEE?t(66334).Z:t(47950).Z)(),...we],ft=[{intlLabel:{id:"Settings.application.title",defaultMessage:"Overview"},to:"/settings/application-infos",id:"000-application-infos",isDisplayed:!1,permissions:[]},{intlLabel:{id:"Settings.webhooks.title",defaultMessage:"Webhooks"},to:"/settings/webhooks",id:"webhooks",isDisplayed:!1,permissions:ce.Z.settings.webhooks.main},{intlLabel:{id:"Settings.apiTokens.title",defaultMessage:"API Tokens"},to:"/settings/api-tokens?sort=name:ASC",id:"api-tokens",isDisplayed:!1,permissions:ce.Z.settings["api-tokens"].main},{intlLabel:{id:"Settings.transferTokens.title",defaultMessage:"Transfer Tokens"},to:"/settings/transfer-tokens?sort=name:ASC",id:"transfer-tokens",isDisplayed:!1,permissions:ce.Z.settings["transfer-tokens"].main}];const Ot=(()=>window&&window.strapi&&window.strapi.isEE?t(11545).Z:t(73086).Z)();var ht=[...ft,...Ot],Et=(h,{settings:p,shouldUpdateStrapi:l})=>{const C=p.global.links,U=pe([...C,...ht]).map(q=>({...q,hasNotification:q.id==="000-application-infos"&&l})),F=Object.values(Ve()(p,"global")),Z=[{...p.global,links:U},{id:"permissions",intlLabel:{id:"Settings.permissions",defaultMessage:"Administration Panel"},links:bt},...F];return{...h,menu:se(Z)}},yt=(h=!1)=>{const{allPermissions:p}=(0,m.useRBACProvider)(),{shouldUpdateStrapi:l}=(0,m.useAppInfos)(),{settings:C}=(0,m.useStrapiApp)(),[{isLoading:U,menu:F},Z]=(0,e.useReducer)(ze,Le,()=>Et(Le,{settings:C,shouldUpdateStrapi:l}));return(0,e.useEffect)(()=>{h||(async()=>{const ie=async(Ne,Ye)=>({hasPermission:await(0,m.hasPermissions)(p,Ne),path:Ye}),Ae=(Ne=>Ne.reduce((Ye,st,nt)=>{const Lt=ot=>ot.map((Fe,ge)=>ie(ot[ge].permissions,`${nt}.links.${ge}`));return[...Ye,...Lt(st.links)]},[]))(F),_e=await Promise.all(Ae);Z({type:"CHECK_PERMISSIONS_SUCCEEDED",data:_e})})()},[p,h]),{isLoading:U,menu:F}},tt=t(64421);const it={fieldsToPick:[],formErrors:{},initialData:{},isLoading:!0,modifiedData:{},showHeaderButtonLoader:!1,showHeaderLoader:!0},vt=(h,p)=>(0,g.default)(h,l=>{switch(p.type){case"GET_DATA_SUCCEEDED":{l.isLoading=!1,l.showHeaderLoader=!1,l.initialData=(0,te.pick)(p.data,h.fieldsToPick),l.modifiedData=(0,te.pick)(p.data,h.fieldsToPick);break}case"ON_CANCEL":{l.modifiedData=h.initialData,l.formErrors={};break}case"ON_CHANGE":{p.inputType==="password"&&!p.value?(0,te.unset)(l.modifiedData,p.keys.split(".")):p.keys.includes("username")&&!p.value?(0,te.set)(l.modifiedData,p.keys.split("."),null):(0,te.set)(l.modifiedData,p.keys.split("."),p.value);break}case"ON_SUBMIT":{l.showHeaderButtonLoader=!0;break}case"ON_SUBMIT_SUCCEEDED":{l.initialData=(0,te.pick)(p.data,h.fieldsToPick),l.modifiedData=(0,te.pick)(p.data,h.fieldsToPick),l.showHeaderButtonLoader=!1;break}case"SET_ERRORS":{l.formErrors=p.errors,l.showHeaderButtonLoader=!1;break}default:return l}});var lt=(h,p)=>({...h,fieldsToPick:p}),Pt=(h,p,l,C)=>{const[{formErrors:U,initialData:F,isLoading:Z,modifiedData:q,showHeaderButtonLoader:ie,showHeaderLoader:De},Ae]=(0,e.useReducer)(vt,it,()=>lt(it,C)),_e=(0,m.useNotification)(),{lockApp:Ne,unlockApp:Ye}=(0,m.useOverlayBlocker)();return(0,e.useEffect)(()=>{h&&(async()=>{try{const{data:ge}=await(0,m.request)(h,{method:"GET"});Ae({type:"GET_DATA_SUCCEEDED",data:ge,fieldsToPick:C})}catch(ge){console.error(ge.response),_e({type:"warning",message:{id:"notification.error"}})}})()},[h]),[{formErrors:U,initialData:F,isLoading:Z,modifiedData:q,showHeaderButtonLoader:ie,showHeaderLoader:De},Ae,{handleCancel:()=>{Ae({type:"ON_CANCEL"})},handleChange:({target:{name:Fe,value:ge,type:Ze}})=>{Ae({type:"ON_CHANGE",inputType:Ze,keys:Fe,value:ge})},handleSubmit:async Fe=>{Fe.preventDefault();const ge=await(0,tt.R6)(q,p);if(Ae({type:"SET_ERRORS",errors:ge||{}}),!ge)try{Ne(),Ae({type:"ON_SUBMIT"});const Ze=(0,te.omit)(q,["confirmPassword","registrationToken"]);Ze.roles&&(Ze.roles=Ze.roles.map(Je=>Je.id));const{data:je}=await(0,m.request)(h,{method:"PUT",body:Ze});l(je),Ae({type:"ON_SUBMIT_SUCCEEDED",data:je}),_e({type:"success",message:{id:"notification.success.saved"}})}catch(Ze){const je=(0,te.get)(Ze,"response.payload",{data:{}});(0,te.has)(je,"data")&&typeof je.data=="string"?_e({type:"warning",message:je.data}):_e({type:"warning",message:je.message});const Je=(0,tt.Iz)(je);Ae({type:"SET_ERRORS",errors:Je})}finally{Ye()}},setField:(Fe,ge)=>{Ae({type:"ON_CHANGE",keys:Fe,value:ge})}}]},ct=()=>(0,e.useContext)(r.$l);const wt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),Ut=()=>{const{latestStrapiReleaseTag:h,shouldUpdateStrapi:p}=useAppInfos(),l=useNotification();return useEffect(()=>{p&&wt&&l({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${h}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)})},[h,p,l]),null};var Rt=null,At=()=>(0,e.useContext)(r.Rj),Ct=(h,p,l)=>{const[C,U]=(0,e.useState)(!1),F=(0,m.useNotification)(),{post:Z}=(0,m.useFetchClient)();return{regenerateData:async()=>{try{const{data:{data:{accessKey:ie}}}=await Z(`${h}${p}/regenerate`);U(!1),l(ie)}catch(ie){U(!1),F({type:"warning",message:(0,te.get)(ie,"response.data.message","notification.error")})}},isLoadingConfirmation:C}}},47950:function(I,E){"use strict";E.Z=[]},73086:function(I,E){"use strict";E.Z=[]},954:function(I,E,t){"use strict";t.d(E,{sg:function(){return v},bU:function(){return x},ZP:function(){return M}});var e=t(32735),r=t(83292),n=t(60216),f=t.n(n),m=t(39161),g=t(5636),d=t(20139),R=()=>{const{changeLocale:W,localeNames:L}=(0,d.Z)(),{locale:w}=(0,g.useIntl)();return e.createElement(m.SimpleMenu,{label:L[w]},Object.keys(L).map($=>e.createElement(m.MenuItem,{onClick:()=>W($),key:$},L[$])))};const j=(0,r.default)(m.Box)`
|
|
57
|
+
margin: 0 auto;
|
|
58
|
+
width: 552px;
|
|
59
|
+
`,v=(0,r.default)(m.Flex)`
|
|
60
|
+
flex-direction: column;
|
|
61
|
+
`,x=({children:W})=>e.createElement(j,{shadow:"tableShadow",hasRadius:!0,paddingTop:9,paddingBottom:9,paddingLeft:10,paddingRight:10,background:"neutral0",justifyContent:"center"},W);x.propTypes={children:f().node.isRequired};const T=({children:W})=>e.createElement("div",null,e.createElement(m.Flex,{as:"header",justifyContent:"flex-end"},e.createElement(m.Box,{paddingTop:6,paddingRight:8},e.createElement(R,null))),e.createElement(m.Box,{paddingTop:2,paddingBottom:11},W));T.propTypes={children:f().node.isRequired};var M=T},56761:function(I,E){"use strict";const t=[];E.Z=t},72218:function(I,E,t){"use strict";var e=t(83292),r=t(39161),n=t.n(r);const f=(0,e.default)(r.FieldAction)`
|
|
62
|
+
svg {
|
|
63
|
+
height: 1rem;
|
|
64
|
+
width: 1rem;
|
|
65
|
+
path {
|
|
66
|
+
fill: ${({theme:m})=>m.colors.neutral600};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
`;E.Z=f},1115:function(I,E,t){"use strict";var e=t(32735),r=t(13478),n=t.n(r),f=t(57269),m=t.n(f),g=t(39161),d=t.n(g),B=t(60216),R=t.n(B),j=t(5636),v=t(83292),x=t(83281),T=t(954),M=t(10190),W=t(72218);const L=(0,v.default)(g.TextInput)`
|
|
70
|
+
::-ms-reveal {
|
|
71
|
+
display: none;
|
|
72
|
+
}
|
|
73
|
+
`,w=({onSubmit:$,schema:Q,children:fe})=>{const[P,oe]=(0,e.useState)(!1),{formatMessage:Y}=(0,j.useIntl)();return e.createElement(g.Main,null,e.createElement(T.bU,null,e.createElement(x.Formik,{enableReinitialize:!0,initialValues:{email:"",password:"",rememberMe:!1},onSubmit:$,validationSchema:Q,validateOnChange:!1},({values:ue,errors:a,handleChange:D})=>e.createElement(r.Form,{noValidate:!0},e.createElement(T.sg,null,e.createElement(M.Z,null),e.createElement(g.Box,{paddingTop:6,paddingBottom:1},e.createElement(g.Typography,{variant:"alpha",as:"h1"},Y({id:"Auth.form.welcome.title",defaultMessage:"Welcome!"}))),e.createElement(g.Box,{paddingBottom:7},e.createElement(g.Typography,{variant:"epsilon",textColor:"neutral600"},Y({id:"Auth.form.welcome.subtitle",defaultMessage:"Log in to your Strapi account"}))),a.errorMessage&&e.createElement(g.Typography,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},a.errorMessage)),e.createElement(g.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(g.TextInput,{error:a.email?Y({id:a.email,defaultMessage:"This value is required."}):"",value:ue.email,onChange:D,label:Y({id:"Auth.form.email.label",defaultMessage:"Email"}),placeholder:Y({id:"Auth.form.email.placeholder",defaultMessage:"kai@doe.com"}),name:"email",required:!0}),e.createElement(L,{error:a.password?Y({id:a.password,defaultMessage:"This value is required."}):"",onChange:D,value:ue.password,label:Y({id:"global.password",defaultMessage:"Password"}),name:"password",type:P?"text":"password",endAction:e.createElement(W.Z,{onClick:b=>{b.stopPropagation(),oe(H=>!H)},label:Y(P?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},P?e.createElement(f.Eye,null):e.createElement(f.EyeStriked,null)),required:!0}),e.createElement(g.Checkbox,{onValueChange:b=>{D({target:{value:b,name:"rememberMe"}})},value:ue.rememberMe,"aria-label":"rememberMe",name:"rememberMe"},Y({id:"Auth.form.rememberMe.label",defaultMessage:"Remember me"})),e.createElement(g.Button,{fullWidth:!0,type:"submit"},Y({id:"Auth.form.button.login",defaultMessage:"Login"}))))),fe),e.createElement(g.Flex,{justifyContent:"center"},e.createElement(g.Box,{paddingTop:4},e.createElement(r.Link,{to:"/auth/forgot-password"},Y({id:"Auth.link.forgot-password",defaultMessage:"Forgot your password?"})))))};w.defaultProps={children:null,onSubmit(){}},w.propTypes={children:R().node,onSubmit:R().func,schema:R().shape({type:R().string.isRequired}).isRequired},E.Z=w},5365:function(I,E,t){"use strict";var e=t(32735),r=t(60216),n=t.n(r),f=t(1115),m=t(954);const g=d=>e.createElement(m.ZP,null,e.createElement(f.Z,{...d}));g.defaultProps={onSubmit:d=>d.preventDefault()},g.propTypes={onSubmit:n().func},E.Z=g},53951:function(I,E,t){"use strict";t.r(E);var e=t(32735),r=t(13478),n=t.n(r),f=t(39161),m=t.n(f),g=t(57269),d=t.n(g),B=t(5636);const R=()=>{const{formatMessage:j}=(0,B.useIntl)();return(0,r.useFocusWhenNavigate)(),e.createElement(f.Main,{labelledBy:"title"},e.createElement(f.HeaderLayout,{id:"title",title:j({id:"content-manager.pageNotFound",defaultMessage:"Page not found"})}),e.createElement(f.ContentLayout,null,e.createElement(f.EmptyStateLayout,{action:e.createElement(r.LinkButton,{variant:"secondary",endIcon:e.createElement(g.ArrowRight,null),to:"/"},j({id:"app.components.NotFoundPage.back",defaultMessage:"Back to homepage"})),content:j({id:"app.page.not.found",defaultMessage:"Oops! We can't seem to find the page you're looging for..."}),hasRadius:!0,icon:e.createElement(g.EmptyPictures,{width:"10rem"}),shadow:"tableShadow"})))};E.default=R},26123:function(I,E){"use strict";E.Z={}},41832:function(I,E){"use strict";const t=({data:e})=>{try{return Object.keys(e).reduce((r,n)=>{const f=e[n][0];return r[n]={id:f,defaultMessage:f},r},{})}catch{return{}}};E.Z=t},64421:function(I,E,t){"use strict";t.d(E,{R6:function(){return n},ot:function(){return j},Iz:function(){return v.Z},Pp:function(){return Y},IF:function(){return oe},Qy:function(){return a},WW:function(){return L}});var e=t(13478),n=async(D,b)=>{let H=null;try{await b.validate(D,{abortEarly:!1})}catch(ve){H=(0,e.getYupInnerErrors)(ve)}return H},f=t(32735),m=t(60216),g=t.n(m),d=t(5141);const B=({loadComponent:D})=>{const[b,H]=(0,f.useState)(null);return(0,f.useEffect)(()=>{(async()=>{try{const le=await D();H(()=>le.default)}catch(le){console.log(le)}})()},[D]),b?f.createElement(b,null):f.createElement(e.LoadingIndicatorPage,null)},R=(D,b,H)=>f.createElement(d.Route,{render:()=>f.createElement(B,{loadComponent:D}),key:b,path:b,exact:H||!1});B.propTypes={loadComponent:g().func.isRequired};var j=R,v=t(41832),x=t(92891);const T=D=>{const b=get(D,["options","timestamps"]);let H=Array.isArray(b)?b:[];const le=[...["id","_id"],...H,"publishedAt"],ce=get(D,["attributes"],{});return Object.keys(ce).reduce((de,z)=>(le.includes(z)||de.push({...ce[z],attributeName:z}),de),[])};var M=null,L=D=>D.filter((b,H,ve)=>ve.findIndex(le=>le.key===b.key)===H);const w=D=>sortBy(D,b=>b.name);var $=null;const Q=D=>Array.from(new Set(Object.entries(D).reduce((b,H)=>{const ve=le=>le.reduce((ce,de)=>{let z=ce;return de.actions&&(z=[...z,...de.actions]),typeof de=="object"&&!de.actions&&(z=[...z,...Object.keys(de)]),z},[]);return[...b,...ve([...Object.values(H[1].attributes||{}),get(H[1],"contentTypeActions",{})])]},[])));var fe=null,oe=D=>`/admin/${D}`,Y=(D,b="")=>[D,b].filter(H=>H).join(" ");const ue={bufferToHex(D){return[...new Uint8Array(D)].map(b=>b.toString(16).padStart(2,"0")).join("")},async digestMessage(D){const b=new TextEncoder().encode(D),H=await crypto.subtle.digest("SHA-256",b);return this.bufferToHex(H)}};async function a(D){if(!D)return null;try{return await ue.digestMessage(D.email)}catch{return null}}},58414:function(I,E,t){"use strict";t.d(E,{pl:function(){return R},q5:function(){return v.Z}});var e=t(32735),r=t(13478),n=t(64421),f=t(97889);const m={data:[],isLoading:!0};var d=(x,T)=>(0,f.default)(x,M=>{switch(T.type){case"GET_DATA_SUCCEEDED":{M.data=T.data,M.isLoading=!1;break}case"GET_DATA_ERROR":{M.isLoading=!1;break}default:return M}}),R=({ssoEnabled:x})=>{const[T,M]=(0,e.useReducer)(d,m),W=(0,r.useNotification)();(0,e.useEffect)(()=>{L()},[]);const L=async()=>{try{if(!x){M({type:"GET_DATA_SUCCEEDED",data:[]});return}const w=(0,n.IF)("providers"),$=await(0,r.request)(w,{method:"GET"});M({type:"GET_DATA_SUCCEEDED",data:$})}catch(w){console.error(w),M({type:"GET_DATA_ERROR"}),W({type:"warning",message:{id:"notification.error"}})}};return T},j=t(21306),v=t(2690)},21306:function(I,E,t){"use strict";var e=t(32735),r=t(5636),n=t(44096),f=t(13478),m=t.n(f),g=t(36866),d=t.n(g),B=t(2690);const R="strapi-notification-seat-limit",j="https://cloud.strapi.io/profile/billing",v="https://strapi.io/billing/request-seats",x=()=>{const{formatMessage:T}=(0,r.useIntl)();let{license:M}=(0,B.Z)();const W=(0,f.useNotification)(),{pathname:L}=(0,n.useLocation)();(0,e.useEffect)(()=>{if(!M?.data)return;const{enforcementUserCount:w,permittedSeats:$,licenseLimitStatus:Q,isHostedOnStrapiCloud:fe}=M?.data??{},P=!d()($)&&!window.sessionStorage.getItem(`${R}-${L}`)&&(Q==="AT_LIMIT"||Q==="OVER_LIMIT");let oe;Q==="OVER_LIMIT"?oe="warning":Q==="AT_LIMIT"&&(oe="softWarning"),P&&W({type:oe,message:T({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:Q}),title:T({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:Q,enforcementUserCount:w,permittedSeats:$}),link:{url:fe?j:v,label:T({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:fe})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${R}-${L}`,!0)}})},[W,M.data,L,T])};E.Z=x},2690:function(I,E,t){"use strict";var e=t(13478),r=t.n(e),n=t(84968),f=t.n(n),m=t(72041);const g=()=>{const d=(0,e.useRBAC)(m.Z.settings.users),{isLoading:B,allowedActions:{canRead:R,canCreate:j,canUpdate:v,canDelete:x}}=d,T=R&&j&&v&&x,{get:M}=(0,e.useFetchClient)(),W=async()=>{const{data:{data:w}}=await M("/admin/license-limit-information");return w};return{license:(0,n.useQuery)(["ee","license-limit-info"],W,{enabled:!B&&T})}};E.Z=g},66334:function(I,E,t){"use strict";var e=t(72041);const n=[...strapi.features.isEnabled(strapi.features.AUDIT_LOGS)?[{intlLabel:{id:"global.auditLogs",defaultMessage:"Audit Logs"},to:"/settings/audit-logs?pageSize=50&page=1&sort=date:DESC",id:"auditLogs",isDisplayed:!1,permissions:e.Z.settings.auditLogs.main}]:[]];E.Z=n},11545:function(I,E,t){"use strict";var e=t(72041);const n=[...strapi.features.isEnabled(strapi.features.SSO)?[{intlLabel:{id:"Settings.sso.title",defaultMessage:"Single Sign-On"},to:"/settings/single-sign-on",id:"sso",isDisplayed:!1,permissions:e.Z.settings.sso.main}]:[]];E.Z=n},68944:function(I,E,t){"use strict";t.d(E,{Z:function(){return v}});var e=t(32735),r=t(5141),n=t(5636),f=t(49189),m=t.n(f),g=t(13478),d=t(64421),R=()=>{const{params:{authResponse:x}}=(0,r.useRouteMatch)("/auth/login/:authResponse"),{formatMessage:T}=(0,n.useIntl)(),{push:M}=(0,r.useHistory)(),W=(0,e.useRef)(T);let L=(0,e.useCallback)(()=>{M(`/auth/oops?info=${encodeURIComponent(W.current({id:"Auth.form.button.login.providers.error",defaultMessage:"We cannot connect you through the selected provider."}))}`)},[M]);const w=(0,e.useCallback)(async()=>{try{const $=m().get("jwtToken");if(g.auth.clearAppStorage(),$){g.auth.setToken($,!0);const Q=(0,d.IF)("users/me"),{data:fe}=await(0,g.request)(Q,{method:"GET"});g.auth.setUserInfo(fe,!0),m().remove("jwtToken"),M("/auth/login")}}catch{L()}},[M,L]);return(0,e.useEffect)(()=>{x==="error"&&L(),x==="success"&&w()},[x,w,L]),e.createElement(g.LoadingIndicatorPage,null)},v=[{Component:()=>({default:R}),to:"/auth/login/:authResponse",exact:!0}]},98768:function(I,E,t){"use strict";var e=t(32735),r=t(60216),n=t.n(r),f=t(83292),m=t(39161),g=t.n(m),d=t(5636),B=t(1115),R=t(58414),j=t(954),v=t(33205);const x=(0,f.default)(m.Divider)`
|
|
74
|
+
flex: 1;
|
|
75
|
+
`,T=M=>{const W=strapi.features.isEnabled(strapi.features.SSO),{isLoading:L,data:w}=(0,R.pl)({ssoEnabled:W}),{formatMessage:$}=(0,d.useIntl)();return!W||!L&&w.length===0?e.createElement(j.ZP,null,e.createElement(B.Z,{...M})):e.createElement(j.ZP,null,e.createElement(B.Z,{...M},e.createElement(m.Box,{paddingTop:7},e.createElement(m.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(m.Flex,null,e.createElement(x,null),e.createElement(m.Box,{paddingLeft:3,paddingRight:3},e.createElement(m.Typography,{variant:"sigma",textColor:"neutral600"},$({id:"Auth.login.sso.divider"}))),e.createElement(x,null)),e.createElement(v.Z,{providers:w,displayAllProviders:!1})))))};T.defaultProps={onSubmit:M=>M.preventDefault(),requestError:null},T.propTypes={formErrors:n().object.isRequired,modifiedData:n().object.isRequired,onChange:n().func.isRequired,onSubmit:n().func,requestError:n().object},E.Z=T},33205:function(I,E,t){"use strict";var e=t(32735),r=t(60216),n=t.n(r),f=t(39161),m=t.n(f),g=t(83292),d=t(5636),B=t(5141);const R=g.default.a`
|
|
76
|
+
width: ${136/16}rem;
|
|
77
|
+
display: flex;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
align-items: center;
|
|
80
|
+
height: ${48/16}rem;
|
|
81
|
+
border: 1px solid ${({theme:T})=>T.colors.neutral150};
|
|
82
|
+
border-radius: ${({theme:T})=>T.borderRadius};
|
|
83
|
+
text-decoration: inherit;
|
|
84
|
+
&:link {
|
|
85
|
+
text-decoration: none;
|
|
86
|
+
}
|
|
87
|
+
color: ${({theme:T})=>T.colors.neutral600};
|
|
88
|
+
`,j=(0,g.default)(f.Flex)`
|
|
89
|
+
& a:not(:first-child):not(:last-child) {
|
|
90
|
+
margin: 0 ${({theme:T})=>T.spaces[2]};
|
|
91
|
+
}
|
|
92
|
+
& a:first-child {
|
|
93
|
+
margin-right: ${({theme:T})=>T.spaces[2]};
|
|
94
|
+
}
|
|
95
|
+
& a:last-child {
|
|
96
|
+
margin-left: ${({theme:T})=>T.spaces[2]};
|
|
97
|
+
}
|
|
98
|
+
`,v=({provider:T})=>e.createElement(f.Tooltip,{label:T.displayName},e.createElement(R,{href:`${strapi.backendURL}/admin/connect/${T.uid}`},T.icon?e.createElement("img",{src:T.icon,"aria-hidden":!0,alt:"",height:"32px"}):e.createElement(f.Typography,null,T.displayName)));v.propTypes={provider:n().shape({icon:n().string,displayName:n().string.isRequired,uid:n().string.isRequired}).isRequired};const x=({providers:T,displayAllProviders:M})=>{const{formatMessage:W}=(0,d.useIntl)();return M?e.createElement(f.Grid,{gap:4},T.map(L=>e.createElement(f.GridItem,{key:L.uid,col:4},e.createElement(v,{provider:L})))):T.length>2&&!M?e.createElement(f.Grid,{gap:4},T.slice(0,2).map(L=>e.createElement(f.GridItem,{key:L.uid,col:4},e.createElement(v,{provider:L}))),e.createElement(f.GridItem,{col:4},e.createElement(f.Tooltip,{label:W({id:"global.see-more"})},e.createElement(R,{as:B.Link,to:"/auth/providers"},e.createElement("span",{"aria-hidden":!0},"\u2022\u2022\u2022"))))):e.createElement(j,{justifyContent:"center"},T.map(L=>e.createElement(v,{key:L.uid,provider:L})))};x.defaultProps={displayAllProviders:!0},x.propTypes={providers:n().arrayOf(n().object).isRequired,displayAllProviders:n().bool},E.Z=x},7277:function(I,E,t){"use strict";t.d(E,{Z:function(){return L}});var e=t(32735),r=t(5141),n=t(83292),f=t(13478),m=t(39161),g=t(5636),d=t(58414),B=t(954),R=t(33205),j=t(10190);const v=(0,n.default)(m.Divider)`
|
|
99
|
+
flex: 1;
|
|
100
|
+
`;var T=()=>{const w=strapi.features.isEnabled(strapi.features.SSO),{push:$}=(0,r.useHistory)(),{formatMessage:Q}=(0,g.useIntl)(),{isLoading:fe,data:P}=(0,d.pl)({ssoEnabled:w}),oe=()=>{$("/auth/login")};return!w||!fe&&P.length===0?e.createElement(r.Redirect,{to:"/auth/login"}):e.createElement(B.ZP,null,e.createElement(m.Main,null,e.createElement(B.bU,null,e.createElement(B.sg,null,e.createElement(j.Z,null),e.createElement(m.Box,{paddingTop:6,paddingBottom:1},e.createElement(m.Typography,{as:"h1",variant:"alpha"},Q({id:"Auth.form.welcome.title"}))),e.createElement(m.Box,{paddingBottom:7},e.createElement(m.Typography,{variant:"epsilon",textColor:"neutral600"},Q({id:"Auth.login.sso.subtitle"})))),e.createElement(m.Flex,{direction:"column",alignItems:"stretch",gap:7},fe?e.createElement(m.Flex,{justifyContent:"center"},e.createElement(m.Loader,null,Q({id:"Auth.login.sso.loading"}))):e.createElement(R.Z,{providers:P}),e.createElement(m.Flex,null,e.createElement(v,null),e.createElement(m.Box,{paddingLeft:3,paddingRight:3},e.createElement(m.Typography,{variant:"sigma",textColor:"neutral600"},Q({id:"or"}))),e.createElement(v,null)),e.createElement(m.Button,{fullWidth:!0,size:"L",onClick:oe},Q({id:"Auth.form.button.login.strapi"})))),e.createElement(m.Flex,{justifyContent:"center"},e.createElement(m.Box,{paddingTop:4},e.createElement(f.Link,{to:"/auth/forgot-password"},e.createElement(m.Typography,{variant:"pi"},Q({id:"Auth.link.forgot-password"})))))))},M=t(56355),L={...M.Z,providers:{Component:T,endPoint:null,fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""}}},99568:function(I,E){"use strict";const t={settings:{auditLogs:{main:[{action:"admin::audit-logs.read",subject:null}],read:[{action:"admin::audit-logs.read",subject:null}]},sso:{main:[{action:"admin::provider-login.read",subject:null}],read:[{action:"admin::provider-login.read",subject:null}],update:[{action:"admin::provider-login.update",subject:null}]}}};E.Z=t},48224:function(I,E,t){var e={"./ar.json":[38677,7958],"./ca.json":[90169,3516],"./cs.json":[43186,7519],"./de.json":[8343,6901],"./dk.json":[65668,7898],"./en.json":[10329,320],"./es.json":[45445,8367],"./eu.json":[69511,8360],"./fr.json":[8399,8006],"./gu.json":[10182,2248],"./he.json":[21757,830],"./hi.json":[43206,6332],"./hu.json":[72320,5894],"./id.json":[74221,8897],"./it.json":[90685,6817],"./ja.json":[21727,1312],"./ko.json":[30986,1377],"./ml.json":[11309,9903],"./ms.json":[75973,3025],"./nl.json":[80381,2671],"./no.json":[82446,562],"./pl.json":[84008,7846],"./pt-BR.json":[91417,9647],"./pt.json":[41830,3340],"./ru.json":[57098,123],"./sa.json":[92900,9726],"./sk.json":[52204,606],"./sv.json":[43211,9303],"./th.json":[49582,749],"./tr.json":[99154,395],"./uk.json":[2987,7403],"./vi.json":[50576,3278],"./zh-Hans.json":[35964,2553],"./zh.json":[91999,1011]};function r(n){if(!t.o(e,n))return Promise.resolve().then(function(){var g=new Error("Cannot find module '"+n+"'");throw g.code="MODULE_NOT_FOUND",g});var f=e[n],m=f[0];return t.e(f[1]).then(function(){return t.t(m,19)})}r.keys=function(){return Object.keys(e)},r.id=48224,I.exports=r},56355:function(I,E,t){"use strict";t.d(E,{Z:function(){return Ge}});var e=t(5173),r=t(13478),n=t(32735),f=t(5636),m=t(60216),g=t.n(m),d=t(39161),B=t(83281),R=t(954),j=t(10190);const v=({onSubmit:_,schema:Oe})=>{const{formatMessage:ae}=(0,f.useIntl)();return n.createElement(R.ZP,null,n.createElement(d.Main,null,n.createElement(R.bU,null,n.createElement(B.Formik,{enableReinitialize:!0,initialValues:{email:""},onSubmit:_,validationSchema:Oe,validateOnChange:!1},({values:Se,errors:Ce,handleChange:he})=>n.createElement(r.Form,{noValidate:!0},n.createElement(R.sg,null,n.createElement(j.Z,null),n.createElement(d.Box,{paddingTop:6,paddingBottom:7},n.createElement(d.Typography,{as:"h1",variant:"alpha"},ae({id:"Auth.form.button.password-recovery",defaultMessage:"Password Recovery"}))),Ce.errorMessage&&n.createElement(d.Typography,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},ae({id:Ce.errorMessage,defaultMessage:"An error occurred"}))),n.createElement(d.Flex,{direction:"column",alignItems:"stretch",gap:6},n.createElement(d.TextInput,{error:Ce.email?ae({id:Ce.email,defaultMessage:"This email is invalid."}):"",value:Se.email,onChange:he,label:ae({id:"Auth.form.email.label",defaultMessage:"Email"}),placeholder:ae({id:"Auth.form.email.placeholder",defaultMessage:"kai@doe.com"}),name:"email",required:!0}),n.createElement(d.Button,{type:"submit",fullWidth:!0},ae({id:"Auth.form.button.forgot-password",defaultMessage:"Send Email"})))))),n.createElement(d.Flex,{justifyContent:"center"},n.createElement(d.Box,{paddingTop:4},n.createElement(r.Link,{to:"/auth/login"},ae({id:"Auth.link.ready",defaultMessage:"Ready to sign in?"}))))))};v.defaultProps={onSubmit:_=>_.preventDefault()},v.propTypes={onSubmit:g().func,schema:g().shape({type:g().string.isRequired}).isRequired};var x=v,M=()=>{const{formatMessage:_}=(0,f.useIntl)();return n.createElement(R.ZP,null,n.createElement(d.Main,null,n.createElement(R.bU,null,n.createElement(R.sg,null,n.createElement(j.Z,null),n.createElement(d.Box,{paddingTop:6,paddingBottom:7},n.createElement(d.Typography,{as:"h1",variant:"alpha"},_({id:"app.containers.AuthPage.ForgotPasswordSuccess.title",defaultMessage:"Email sent"}))),n.createElement(d.Typography,null,_({id:"app.containers.AuthPage.ForgotPasswordSuccess.text.email",defaultMessage:"It can take a few minutes to receive your password recovery link."})),n.createElement(d.Box,{paddingTop:4},n.createElement(d.Typography,null,_({id:"app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin",defaultMessage:"If you do not receive this link, please contact your administrator."}))))),n.createElement(d.Flex,{justifyContent:"center"},n.createElement(d.Box,{paddingTop:4},n.createElement(r.Link,{to:"/auth/login"},_({id:"Auth.link.signin",defaultMessage:"Sign in"}))))))},L=()=>{const{formatMessage:_}=(0,f.useIntl)(),ae=(0,r.useQuery)().get("info")||_({id:"Auth.components.Oops.text",defaultMessage:"Your account has been suspended."});return n.createElement(R.ZP,null,n.createElement(d.Main,null,n.createElement(R.bU,null,n.createElement(R.sg,null,n.createElement(j.Z,null),n.createElement(d.Box,{paddingTop:6,paddingBottom:7},n.createElement(d.Typography,{as:"h1",variant:"alpha"},_({id:"Auth.components.Oops.title",defaultMessage:"Oops..."}))),n.createElement(d.Typography,null,ae),n.createElement(d.Box,{paddingTop:4},n.createElement(d.Typography,null,_({id:"Auth.components.Oops.text.admin",defaultMessage:"If this is a mistake, please contact your administrator."}))))),n.createElement(d.Flex,{justifyContent:"center"},n.createElement(d.Box,{paddingTop:4},n.createElement(r.Link,{to:"/auth/login"},_({id:"Auth.link.signin",defaultMessage:"Sign in"}))))))},w=t(83292),$=t(33795),Q=t.n($),fe=t(9086),P=t.n(fe),oe=t(5141),Y=t(55721),ue=t(57269),a=t(72218);const D=(0,w.default)(d.Box)`
|
|
101
|
+
text-align: center;
|
|
102
|
+
`,b=w.default.a`
|
|
103
|
+
color: ${({theme:_})=>_.colors.primary600};
|
|
104
|
+
`,H=(0,w.default)(d.TextInput)`
|
|
105
|
+
::-ms-reveal {
|
|
106
|
+
display: none;
|
|
107
|
+
}
|
|
108
|
+
`,ve=({authType:_,fieldsToDisable:Oe,noSignin:ae,onSubmit:Se,schema:Ce})=>{const he=(0,r.useNotification)(),{push:me}=(0,oe.useHistory)(),[Be,ke]=(0,n.useState)(!1),[te,Le]=(0,n.useState)(!1),[Ue,ze]=(0,n.useState)(0),[Ke,Ve]=(0,n.useState)({}),{trackUsage:He}=(0,r.useTracking)(),{formatMessage:J}=(0,f.useIntl)(),pe=(0,r.useQuery)().get("registrationToken");return(0,n.useEffect)(()=>{pe&&(async()=>{try{const{data:{data:se}}=await Y.Z.get(`${strapi.backendURL}/admin/registration-info?registrationToken=${pe}`);se&&Ve(se)}catch(se){const Te=Q()(se,["response","data","message"],"An error occurred");he({type:"warning",message:Te}),me(`/auth/oops?info=${encodeURIComponent(Te)}`)}})()},[pe]),n.createElement(R.ZP,null,n.createElement(R.bU,null,n.createElement(B.Formik,{enableReinitialize:!0,initialValues:{firstname:Ke.firstname||"",lastname:Ke.lastname||"",email:Ke.email||"",password:"",confirmPassword:"",registrationToken:pe||void 0,news:!1},onSubmit:async(Re,se)=>{try{await Ce.validate(Re,{abortEarly:!1}),Ue>0&&_==="register-admin"&&He("didSubmitWithErrorsFirstAdmin",{count:Ue.toString()}),Se(pe?{userInfo:P()(Re,["registrationToken"]),registrationToken:pe}:Re,se)}catch(Te){const we=(0,r.getYupInnerErrors)(Te);ze(Ue+1),se.setErrors(we)}},validateOnChange:!1},({values:Re,errors:se,handleChange:Te})=>n.createElement(r.Form,{noValidate:!0},n.createElement(d.Main,null,n.createElement(R.sg,null,n.createElement(j.Z,null),n.createElement(d.Box,{paddingTop:6,paddingBottom:1},n.createElement(d.Typography,{as:"h1",variant:"alpha"},J({id:"Auth.form.welcome.title",defaultMessage:"Welcome to Strapi!"}))),n.createElement(D,{paddingBottom:7},n.createElement(d.Typography,{variant:"epsilon",textColor:"neutral600"},J({id:"Auth.form.register.subtitle",defaultMessage:"Credentials are only used to authenticate in Strapi. All saved data will be stored in your database."})))),n.createElement(d.Flex,{direction:"column",alignItems:"stretch",spacing:6},n.createElement(d.Grid,{gap:4},n.createElement(d.GridItem,{col:6},n.createElement(d.TextInput,{name:"firstname",required:!0,value:Re.firstname,error:se.firstname?J(se.firstname):void 0,onChange:Te,label:J({id:"Auth.form.firstname.label",defaultMessage:"Firstname"})})),n.createElement(d.GridItem,{col:6},n.createElement(d.TextInput,{name:"lastname",value:Re.lastname,onChange:Te,label:J({id:"Auth.form.lastname.label",defaultMessage:"Lastname"})}))),n.createElement(d.TextInput,{name:"email",disabled:Oe.includes("email"),value:Re.email,onChange:Te,error:se.email?J(se.email):void 0,required:!0,label:J({id:"Auth.form.email.label",defaultMessage:"Email"}),type:"email"}),n.createElement(H,{name:"password",onChange:Te,value:Re.password,error:se.password?J(se.password):void 0,endAction:n.createElement(a.Z,{onClick:we=>{we.preventDefault(),ke(Qe=>!Qe)},label:J(Be?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},Be?n.createElement(ue.Eye,null):n.createElement(ue.EyeStriked,null)),hint:J({id:"Auth.form.password.hint",defaultMessage:"Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number"}),required:!0,label:J({id:"global.password",defaultMessage:"Password"}),type:Be?"text":"password"}),n.createElement(H,{name:"confirmPassword",onChange:Te,value:Re.confirmPassword,error:se.confirmPassword?J(se.confirmPassword):void 0,endAction:n.createElement(a.Z,{onClick:we=>{we.preventDefault(),Le(Qe=>!Qe)},label:J(te?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},te?n.createElement(ue.Eye,null):n.createElement(ue.EyeStriked,null)),required:!0,label:J({id:"Auth.form.confirmPassword.label",defaultMessage:"Confirm Password"}),type:te?"text":"password"}),n.createElement(d.Checkbox,{onValueChange:we=>{Te({target:{value:we,name:"news"}})},value:Re.news,name:"news","aria-label":"news"},J({id:"Auth.form.register.news.label",defaultMessage:"Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy})."},{terms:n.createElement(b,{target:"_blank",href:"https://strapi.io/terms",rel:"noreferrer"},J({id:"Auth.privacy-policy-agreement.terms",defaultMessage:"terms"})),policy:n.createElement(b,{target:"_blank",href:"https://strapi.io/privacy",rel:"noreferrer"},J({id:"Auth.privacy-policy-agreement.policy",defaultMessage:"policy"}))})),n.createElement(d.Button,{fullWidth:!0,size:"L",type:"submit"},J({id:"Auth.form.button.register",defaultMessage:"Let's start"})))))),!ae&&n.createElement(d.Box,{paddingTop:4},n.createElement(d.Flex,{justifyContent:"center"},n.createElement(r.Link,{label:"Auth.link.signin",to:"/auth/login"},J({id:"Auth.link.signin.account",defaultMessage:"Already have an account?"}))))))};ve.defaultProps={fieldsToDisable:[],noSignin:!1,onSubmit:_=>_.preventDefault()},ve.propTypes={authType:g().string.isRequired,fieldsToDisable:g().array,noSignin:g().bool,onSubmit:g().func,schema:g().shape({validate:g().func.isRequired,type:g().string.isRequired}).isRequired};var le=ve;const ce=(0,w.default)(d.TextInput)`
|
|
109
|
+
::-ms-reveal {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|
|
112
|
+
`,de=({onSubmit:_,schema:Oe})=>{const[ae,Se]=(0,n.useState)(!1),[Ce,he]=(0,n.useState)(!1),{formatMessage:me}=(0,f.useIntl)();return n.createElement(R.ZP,null,n.createElement(d.Main,null,n.createElement(R.bU,null,n.createElement(B.Formik,{enableReinitialize:!0,initialValues:{password:"",confirmPassword:""},onSubmit:_,validationSchema:Oe,validateOnChange:!1},({values:Be,errors:ke,handleChange:te})=>n.createElement(r.Form,{noValidate:!0},n.createElement(R.sg,null,n.createElement(j.Z,null),n.createElement(d.Box,{paddingTop:6,paddingBottom:7},n.createElement(d.Typography,{as:"h1",variant:"alpha"},me({id:"global.reset-password",defaultMessage:"Reset password"}))),ke.errorMessage&&n.createElement(d.Typography,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},me({id:ke.errorMessage,defaultMessage:"An error occurred"}))),n.createElement(d.Flex,{direction:"column",alignItems:"stretch",gap:6},n.createElement(ce,{name:"password",onChange:te,value:Be.password,error:ke.password?me({id:ke.password,defaultMessage:"This field is required."}):void 0,endAction:n.createElement(a.Z,{onClick:Le=>{Le.preventDefault(),Se(Ue=>!Ue)},label:me(ae?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},ae?n.createElement(ue.Eye,null):n.createElement(ue.EyeStriked,null)),hint:me({id:"Auth.form.password.hint",defaultMessage:"Password must contain at least 8 characters, 1 uppercase, 1 lowercase and 1 number"}),required:!0,label:me({id:"global.password",defaultMessage:"Password"}),type:ae?"text":"password"}),n.createElement(ce,{name:"confirmPassword",onChange:te,value:Be.confirmPassword,error:ke.confirmPassword?me({id:ke.confirmPassword,defaultMessage:"This value is required."}):void 0,endAction:n.createElement(a.Z,{onClick:Le=>{Le.preventDefault(),he(Ue=>!Ue)},label:me(ae?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},Ce?n.createElement(ue.Eye,null):n.createElement(ue.EyeStriked,null)),required:!0,label:me({id:"Auth.form.confirmPassword.label",defaultMessage:"Confirm Password"}),type:Ce?"text":"password"}),n.createElement(d.Button,{fullwidth:!0,type:"submit"},me({id:"global.change-password",defaultMessage:"Change password"})))))),n.createElement(d.Flex,{justifyContent:"center"},n.createElement(d.Box,{paddingTop:4},n.createElement(r.Link,{to:"/auth/login"},me({id:"Auth.link.ready",defaultMessage:"Ready to sign in?"}))))))};de.defaultProps={onSubmit:_=>_.preventDefault()},de.propTypes={onSubmit:g().func,schema:g().shape({type:g().string.isRequired}).isRequired};var z=de;const qe=(()=>window&&window.strapi&&window.strapi.isEE?t(98768).Z:t(5365).Z)();var Ge={"forgot-password":{Component:x,endPoint:"forgot-password",fieldsToDisable:[],fieldsToOmit:[],schema:e.Ry().shape({email:e.Z_().email(r.translatedErrors.email).required(r.translatedErrors.required)}),inputsPrefix:""},"forgot-password-success":{Component:M,endPoint:"",fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""},login:{Component:qe,endPoint:"login",fieldsToDisable:[],fieldsToOmit:["rememberMe"],schema:e.Ry().shape({email:e.Z_().email(r.translatedErrors.email).required(r.translatedErrors.required),password:e.Z_().required(r.translatedErrors.required),rememberMe:e.Xg().nullable()}),inputsPrefix:""},oops:{Component:L,endPoint:null,fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""},register:{Component:le,endPoint:"register",fieldsToDisable:["email"],fieldsToOmit:["userInfo.confirmPassword","userInfo.news","userInfo.email"],schema:e.Ry().shape({firstname:e.Z_().trim().required(r.translatedErrors.required),lastname:e.Z_(),password:e.Z_().min(8,r.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number").required(r.translatedErrors.required),confirmPassword:e.Z_().oneOf([e.iH("password"),null],"components.Input.error.password.noMatch").required(r.translatedErrors.required),registrationToken:e.Z_().required(r.translatedErrors.required)}),inputsPrefix:"userInfo."},"register-admin":{Component:le,endPoint:"register-admin",noSignin:!0,fieldsToDisable:[],fieldsToOmit:["confirmPassword","news"],schema:e.Ry().shape({firstname:e.Z_().trim().required(r.translatedErrors.required),lastname:e.Z_(),password:e.Z_().min(8,r.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number").required(r.translatedErrors.required),email:e.Z_().email(r.translatedErrors.email).strict().lowercase(r.translatedErrors.lowercase).required(r.translatedErrors.required),confirmPassword:e.Z_().oneOf([e.iH("password"),null],"components.Input.error.password.noMatch").required(r.translatedErrors.required)}),inputsPrefix:""},"reset-password":{Component:z,endPoint:"reset-password",fieldsToDisable:[],fieldsToOmit:["confirmPassword"],schema:e.Ry().shape({password:e.Z_().min(8,r.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number").required(r.translatedErrors.required),confirmPassword:e.Z_().oneOf([e.iH("password"),null],"components.Input.error.password.noMatch").required(r.translatedErrors.required)})}}},72041:function(I,E,t){"use strict";t.d(E,{Z:function(){return g}});var e=t(92891),n={contentManager:{main:[],collectionTypesConfigurations:[{action:"plugin::content-manager.collection-types.configure-view",subject:null}],componentsConfigurations:[{action:"plugin::content-manager.components.configure-layout",subject:null}],singleTypesConfigurations:[{action:"plugin::content-manager.single-types.configure-view",subject:null}]},marketplace:{main:[{action:"admin::marketplace.read",subject:null}],read:[{action:"admin::marketplace.read",subject:null}]},settings:{roles:{main:[{action:"admin::roles.create",subject:null},{action:"admin::roles.update",subject:null},{action:"admin::roles.read",subject:null},{action:"admin::roles.delete",subject:null}],create:[{action:"admin::roles.create",subject:null}],delete:[{action:"admin::roles.delete",subject:null}],read:[{action:"admin::roles.read",subject:null}],update:[{action:"admin::roles.update",subject:null}]},users:{main:[{action:"admin::users.create",subject:null},{action:"admin::users.read",subject:null},{action:"admin::users.update",subject:null},{action:"admin::users.delete",subject:null}],create:[{action:"admin::users.create",subject:null}],delete:[{action:"admin::users.delete",subject:null}],read:[{action:"admin::users.read",subject:null}],update:[{action:"admin::users.update",subject:null}]},webhooks:{main:[{action:"admin::webhooks.create",subject:null},{action:"admin::webhooks.read",subject:null},{action:"admin::webhooks.update",subject:null},{action:"admin::webhooks.delete",subject:null}],create:[{action:"admin::webhooks.create",subject:null}],delete:[{action:"admin::webhooks.delete",subject:null}],read:[{action:"admin::webhooks.read",subject:null},{action:"admin::webhooks.update",subject:null},{action:"admin::webhooks.delete",subject:null}],update:[{action:"admin::webhooks.update",subject:null}]},"api-tokens":{main:[{action:"admin::api-tokens.access",subject:null}],create:[{action:"admin::api-tokens.create",subject:null}],delete:[{action:"admin::api-tokens.delete",subject:null}],read:[{action:"admin::api-tokens.read",subject:null}],update:[{action:"admin::api-tokens.update",subject:null}],regenerate:[{action:"admin::api-tokens.regenerate",subject:null}]},"transfer-tokens":{main:[{action:"admin::transfer.tokens.access",subject:null}],create:[{action:"admin::transfer.tokens.create",subject:null}],delete:[{action:"admin::transfer.tokens.delete",subject:null}],read:[{action:"admin::transfer.tokens.read",subject:null}],update:[{action:"admin::transfer.tokens.update",subject:null}],regenerate:[{action:"admin::transfer.tokens.regenerate",subject:null}]},"project-settings":{read:[{action:"admin::project-settings.read",subject:null}],update:[{action:"admin::project-settings.update",subject:null}]}}};const f=(()=>window&&window.strapi&&window.strapi.isEE?t(99568).Z:t(26123).Z)();var g=(0,e.merge)(n,f)},47750:function(I,E,t){"use strict";I.exports=t.p+"70674f63fc3904c20de0.svg"}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2544],{33778:function(V,v,a){a.r(v),a.d(v,{default:function(){return j}});var e=a(32735),n=a(13478),y=a(5141),b=a(72041),t=a(39161),B=a(83281),C=a(57269),I=a(33795),R=a.n(I),S=a(5636),T=a(78974),A=a(60216),c=a.n(A);const E=({disabled:l,role:s,values:i,errors:r,onChange:p,onBlur:m})=>{const{formatMessage:o}=(0,S.useIntl)();return e.createElement(t.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Flex,{justifyContent:"space-between"},e.createElement(t.Box,null,e.createElement(t.Box,null,e.createElement(t.Typography,{fontWeight:"bold"},s?s.name:o({id:"global.details",defaultMessage:"Details"}))),e.createElement(t.Box,null,e.createElement(t.Typography,{textColor:"neutral500",variant:"pi"},s?s.description:o({id:"Settings.roles.form.description",defaultMessage:"Name and description of the role"})))),e.createElement(t.Button,{disabled:!0,variant:"secondary"},o({id:"Settings.roles.form.button.users-with-role",defaultMessage:"{number, plural, =0 {# users} one {# user} other {# users}} with this role"},{number:s.usersCount}))),e.createElement(t.Grid,{gap:4},e.createElement(t.GridItem,{col:6},e.createElement(t.TextInput,{disabled:l,name:"name",error:r.name&&o({id:r.name}),label:o({id:"global.name",defaultMessage:"Name"}),onChange:p,onBlur:m,value:i.name||""})),e.createElement(t.GridItem,{col:6},e.createElement(t.Textarea,{disabled:l,label:o({id:"global.description",defaultMessage:"Description"}),name:"description",error:r.name&&o({id:r.name}),onChange:p,onBlur:m},i.description||"")))))};E.defaultProps={disabled:!1,role:null,values:{name:"",description:""}},E.propTypes={disabled:c().bool,errors:c().object.isRequired,onBlur:c().func.isRequired,onChange:c().func.isRequired,role:c().object,values:c().object};var F=E,P=a(8888),L=a(5173),U=L.Ry().shape({name:L.Z_().required(n.translatedErrors.required)}),D=()=>{const l=(0,n.useNotification)(),{formatMessage:s}=(0,S.useIntl)(),{params:{id:i}}=(0,y.useRouteMatch)("/settings/roles/:id"),[r,p]=(0,e.useState)(!1),m=(0,e.useRef)(),{lockApp:o,unlockApp:N}=(0,n.useOverlayBlocker)(),{trackUsage:Z}=(0,n.useTracking)(),{isLoading:G,data:k}=(0,P.U_)(i),{role:u,permissions:z,isLoading:M,onSubmitSucceeded:O}=(0,P.Dq)(i),$=async g=>{try{o(),p(!0);const{permissionsToSend:d,didUpdateConditions:f}=m.current.getPermissions();await(0,n.request)(`/admin/roles/${i}`,{method:"PUT",body:g}),u.code!=="strapi-super-admin"&&(await(0,n.request)(`/admin/roles/${i}/permissions`,{method:"PUT",body:{permissions:d}}),f&&Z("didUpdateConditions")),m.current.setFormAfterSubmit(),O({name:g.name,description:g.description}),l({type:"success",message:{id:"notification.success.saved"}})}catch(d){console.error(d.response);const f=R()(d,"response.payload.message","An error occured"),h=R()(d,"response.payload.data.permissions[0]",f);l({type:"warning",message:h})}finally{p(!1),N()}},x=u.code==="strapi-super-admin";return e.createElement(t.Main,null,e.createElement(n.SettingsPageTitle,{name:"Roles"}),e.createElement(B.Formik,{enableReinitialize:!0,initialValues:{name:u.name,description:u.description},onSubmit:$,validationSchema:U,validateOnChange:!1},({handleSubmit:g,values:d,errors:f,handleChange:h,handleBlur:H})=>e.createElement("form",{onSubmit:g},e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Flex,{gap:2},e.createElement(t.Button,{disabled:u.code==="strapi-super-admin",onClick:g,loading:r,size:"L"},s({id:"global.save",defaultMessage:"Save"}))),title:s({id:"Settings.roles.edit.title",defaultMessage:"Edit a role"}),subtitle:s({id:"Settings.roles.create.description",defaultMessage:"Define the rights given to the role"}),navigationAction:e.createElement(n.Link,{startIcon:e.createElement(C.ArrowLeft,null),to:"/settings/roles"},s({id:"global.back",defaultMessage:"Back"}))}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(F,{isLoading:M,disabled:x,errors:f,values:d,onChange:h,onBlur:H,role:u}),!G&&!M?e.createElement(t.Box,{shadow:"filterShadow",hasRadius:!0},e.createElement(T.Z,{isFormDisabled:x,permissions:z,ref:m,layout:k})):e.createElement(t.Box,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(n.LoadingIndicatorPage,null)))))))},j=()=>{const l=(0,e.useMemo)(()=>({read:b.Z.settings.roles.read,update:b.Z.settings.roles.update}),[]),{isLoading:s,allowedActions:{canRead:i,canUpdate:r}}=(0,n.useRBAC)(l);return s?e.createElement(n.LoadingIndicatorPage,null):!i&&!r?e.createElement(y.Redirect,{to:"/"}):e.createElement(D,null)}}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,u,e){e.r(u),e.d(u,{default:function(){return
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4263],{34669:function(R,u,e){e.r(u),e.d(u,{default:function(){return k}});var t=e(32735),a=e(13478),n=e(5141),g=e(92891),l=e(72041),d=e(41925),o=e(5636),p=e(60216),m=e.n(p),c=e(88423),h=e.n(c),P=e(33795),A=e.n(P),W=e(9086),T=e.n(W),K=e(84968),Z=e(83281),s=e(39161),f=e(57269),v=e(64421);const b=async y=>{const{get:_}=(0,a.getFetchClient)(),{data:r}=await _(`/admin/users/${y}`);return r.data},G=async(y,_)=>{const{put:r}=(0,a.getFetchClient)(),{data:M}=await r(`/admin/users/${y}`,_);return M.data};var H=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.username.label",defaultMessage:"Username"},name:"username",placeholder:{id:"Auth.form.username.placeholder",defaultMessage:"e.g. Kai_Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"global.password",defaultMessage:"Password"},name:"password",type:"password",size:{col:6,xs:12},autoComplete:"new-password"},{intlLabel:{id:"Auth.form.confirmPassword.label",defaultMessage:"Password confirmation"},name:"confirmPassword",type:"password",size:{col:6,xs:12},autoComplete:"new-password"}],[{intlLabel:{id:"Auth.form.active.label",defaultMessage:"Active"},name:"isActive",type:"bool",size:{col:6,xs:12}}]],C=e(1057),Y=e(4397);const j=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),z=["email","firstname","lastname","username","isActive","roles"],F=y=>{let{canUpdate:_}=y;const{formatMessage:r}=(0,o.useIntl)(),{params:{id:M}}=(0,n.useRouteMatch)("/settings/users/:id"),{push:U}=(0,n.useHistory)(),{setUserDisplayName:Q}=(0,a.useAppInfos)(),S=(0,a.useNotification)(),{lockApp:q,unlockApp:ee}=(0,a.useOverlayBlocker)();(0,a.useFocusWhenNavigate)();const{status:te,data:x}=(0,K.useQuery)(["user",M],()=>b(M),{retry:!1,onError(i){i.response.status===403&&(S({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}}),U("/")),console.log(i.response.status)}}),ae=async(i,E)=>{q();try{const D=await G(M,T()(i,"confirmPassword"));S({type:"success",message:r({id:"notification.success.saved",defaultMessage:"Saved"})});const O=a.auth.getUserInfo();if(M.toString()===O.id.toString()){a.auth.setUserInfo(D);const B=A()(i,"username")||(0,v.Pp)(i.firstname,i.lastname);Q(B)}E.setValues(h()(i,z))}catch(D){const O=(0,v.Iz)(D.response.data),B=Object.keys(O).reduce((N,L)=>(N[L]=O[L].id,N),{});E.setErrors(B),S({type:"warning",message:A()(D,"response.data.error.message","notification.error")})}ee()},X=te!=="success",se=X?{id:"app.containers.Users.EditPage.header.label-loading",defaultMessage:"Edit user"}:{id:"app.containers.Users.EditPage.header.label",defaultMessage:"Edit {name}"},$=Object.keys(h()(x,z)).reduce((i,E)=>E==="roles"?(i[E]=(x?.roles||[]).map(D=>{let{id:O}=D;return O}),i):(i[E]=x?.[E],i),{}),ne=$.username||(0,v.Pp)($.firstname,$.lastname),J=r(se,{name:ne});return X?t.createElement(s.Main,{"aria-busy":"true"},t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:!0,startIcon:t.createElement(f.Check,null),type:"button",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,t.createElement(a.LoadingIndicatorPage,null))):t.createElement(s.Main,null,t.createElement(a.SettingsPageTitle,{name:"Users"}),t.createElement(Z.Formik,{onSubmit:ae,initialValues:$,validateOnChange:!1,validationSchema:C.YM},i=>{let{errors:E,values:D,handleChange:O,isSubmitting:B}=i;return t.createElement(a.Form,null,t.createElement(s.HeaderLayout,{primaryAction:t.createElement(s.Button,{disabled:B||!_,startIcon:t.createElement(f.Check,null),loading:B,type:"submit",size:"L"},r({id:"global.save",defaultMessage:"Save"})),title:J,navigationAction:t.createElement(a.Link,{startIcon:t.createElement(f.ArrowLeft,null),to:"/settings/users?pageSize=10&page=1&sort=firstname"},r({id:"global.back",defaultMessage:"Back"}))}),t.createElement(s.ContentLayout,null,x?.registrationToken&&t.createElement(s.Box,{paddingBottom:6},t.createElement(j,{registrationToken:x.registrationToken})),t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:7},t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"Details"})),t.createElement(s.Grid,{gap:5},H.map(N=>N.map(L=>t.createElement(s.GridItem,(0,d.Z)({key:L.name},L.size),t.createElement(a.GenericInput,(0,d.Z)({},L,{disabled:!_,error:E[L.name],onChange:O,value:D[L.name]||""})))))))),t.createElement(s.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(s.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(s.Typography,{variant:"delta",as:"h2"},r({id:"global.roles",defaultMessage:"User's role"})),t.createElement(s.Grid,{gap:5},t.createElement(s.GridItem,{col:6,xs:12},t.createElement(Y.Z,{disabled:!_,error:E.roles,onChange:O,value:D.roles}))))))))}))};F.propTypes={canUpdate:m().bool.isRequired};var w=F,k=()=>{const y=(0,a.useNotification)(),_=(0,t.useMemo)(()=>({read:l.Z.settings.users.read,update:l.Z.settings.users.update}),[]),{isLoading:r,allowedActions:{canRead:M,canUpdate:U}}=(0,a.useRBAC)(_),{state:Q}=(0,n.useLocation)(),S=(0,g.get)(Q,"from","/");return(0,t.useEffect)(()=>{r||!M&&!U&&y({type:"info",message:{id:"notification.permission.not-allowed-read",defaultMessage:"You are not allowed to see this document"}})},[r,M,U,y]),r?t.createElement(a.LoadingIndicatorPage,null):!M&&!U?t.createElement(n.Redirect,{to:S}):t.createElement(w,{canUpdate:U})}},76779:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(39161),l=e.n(g),d=e(13478),o=e.n(d),p=e(57269),m=e.n(p),c=e(59087),h=e.n(c),P=e(5636);const A=({children:W,target:T})=>{const K=(0,d.useNotification)(),{formatMessage:Z}=(0,P.useIntl)(),s=()=>{K({type:"info",message:{id:"notification.link-copied"}})},f=Z({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(d.ContentBox,{endAction:t.createElement(c.CopyToClipboard,{onCopy:s,text:T},t.createElement(g.IconButton,{label:f,noBorder:!0,icon:t.createElement(p.Duplicate,null)})),title:T,titleEllipsis:!0,subtitle:W,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};A.propTypes={children:n().oneOfType([n().element,n().string]).isRequired,target:n().string.isRequired},u.Z=A},16325:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)(),c=`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`;return t.createElement(d.Z,{target:c},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:g().string},u.Z=o},4397:function(R,u,e){var t=e(32735),a=e(60216),n=e.n(a),g=e(5636),l=e(39161),d=e.n(l),o=e(84968),p=e.n(o),m=e(83292),c=e(57269),h=e.n(c),P=e(13478),A=e.n(P);const W=m.keyframes`
|
|
2
2
|
from {
|
|
3
3
|
transform: rotate(0deg);
|
|
4
4
|
}
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
}
|
|
8
8
|
`,T=m.default.div`
|
|
9
9
|
animation: ${W} 2s infinite linear;
|
|
10
|
-
`,K=()=>t.createElement(T,null,t.createElement(c.Loader,null)),
|
|
10
|
+
`,K=()=>t.createElement(T,null,t.createElement(c.Loader,null)),Z=async()=>{const{get:f}=(0,P.getFetchClient)(),{data:v}=await f("/admin/roles");return v.data},s=({disabled:f,error:v,onChange:b,value:G})=>{const{status:V,data:H}=(0,o.useQuery)(["roles"],Z,{staleTime:5e4}),{formatMessage:C}=(0,g.useIntl)(),Y=v?C({id:v,defaultMessage:v}):"",j=C({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),z=C({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),F=C({id:"app.components.Select.placeholder",defaultMessage:"Select"}),w=V==="loading"?t.createElement(K,null):void 0;return t.createElement(l.Select,{id:"roles",disabled:f,error:Y,hint:z,label:j,name:"roles",onChange:I=>{b({target:{name:"roles",value:I}})},placeholder:F,multi:!0,startIcon:w,value:G,withTags:!0,required:!0},(H||[]).map(I=>t.createElement(l.Option,{key:I.id,value:I.id},C({id:`global.${I.code}`,defaultMessage:I.name}))))};s.defaultProps={disabled:!1,error:void 0},s.propTypes={disabled:n().bool,error:n().string,onChange:n().func.isRequired,value:n().array.isRequired},u.Z=s},1057:function(R,u,e){e.d(u,{YM:function(){return m},Rw:function(){return l}});var t=e(5173),a=e(13478);const n={firstname:t.Z_().trim().required(a.translatedErrors.required),lastname:t.Z_(),email:t.Z_().email(a.translatedErrors.email).lowercase().required(a.translatedErrors.required),username:t.Z_().nullable(),password:t.Z_().min(8,a.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number"),confirmPassword:t.Z_().min(8,a.translatedErrors.minLength).oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").when("password",(c,h)=>c?h.required(a.translatedErrors.required):h)};var l={...n,currentPassword:t.Z_().when(["password","confirmPassword"],(c,h,P)=>c||h?P.required(a.translatedErrors.required):P),preferedLanguage:t.Z_().nullable()},o={roles:t.IX().min(1,a.translatedErrors.required).required(a.translatedErrors.required)},m=t.Ry().shape({...n,isActive:t.Xg(),...o})},28890:function(R,u,e){var t=e(32735),a=e(5636),n=e(60216),g=e.n(n),l=e(463),d=e(76779);const o=({registrationToken:p})=>{const{formatMessage:m}=(0,a.useIntl)();return p?t.createElement(d.Z,{target:`${window.location.origin}${l.Z}auth/register?registrationToken=${p}`},m({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(d.Z,{target:`${window.location.origin}${l.Z}auth/login`},m({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:g().string},u.Z=o}}]);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5199],{83119:function(D,l){const e=()=>null;l.Z=e},83196:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(13478),E=e.n(n);const y=({displayedFilters:p})=>{const[C,T]=(0,t.useState)(!1),{formatMessage:_}=(0,a.useIntl)(),L=(0,t.useRef)(),O=()=>{T(K=>!K)};return t.createElement(t.Fragment,null,t.createElement(i.Box,{paddingTop:1,paddingBottom:1},t.createElement(i.Button,{variant:"tertiary",ref:L,startIcon:t.createElement(o.Filter,null),onClick:O,size:"S"},_({id:"app.utils.filters",defaultMessage:"Filters"})),C&&t.createElement(n.FilterPopoverURLQuery,{displayedFilters:p,isVisible:C,onToggle:O,source:L})),t.createElement(n.FilterListURLQuery,{filtersSchema:p}))};y.propTypes={displayedFilters:r().arrayOf(r().shape({name:r().string.isRequired,metadatas:r().shape({label:r().string}),fieldSchema:r().shape({type:r().string})})).isRequired},l.Z=y},9814:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o);const n=({onClick:E})=>{const{formatMessage:y}=(0,s.useIntl)();return t.createElement(i.Button,{onClick:E,startIcon:t.createElement(o.Envelop,null),size:"S"},y({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}))};n.propTypes={onClick:a().func.isRequired},l.Z=n},62658:function(D,l){const e={firstname:"",lastname:"",email:"",roles:[]};l.Z=e},61358:function(D,l){const e=[];l.Z=e},54865:function(D,l,e){e.r(l),e.d(l,{default:function(){return ge}});var t=e(32735),s=e(13478),r=e(72041),a=e(39161),i=e(5141),m=e(5636),o=e(84968),g=e(60216),n=e.n(g),E=e(57269),y=e(64421);const p=({canDelete:d,headers:M,entriesToDelete:f,onClickDelete:R,onSelectRow:$,withMainAction:A,withBulkActions:U,rows:Q})=>{const{push:I,location:{pathname:F}}=(0,i.useHistory)(),{formatMessage:P}=(0,m.useIntl)();return t.createElement(a.Tbody,null,Q.map(c=>{const z=f.findIndex(h=>h===c.id)!==-1;return t.createElement(a.Tr,{key:c.id,...(0,s.onRowClick)({fn:()=>I(`${F}/${c.id}`),condition:U})},A&&t.createElement(a.Td,{...s.stopPropagation},t.createElement(a.BaseCheckbox,{"aria-label":P({id:"app.component.table.select.one-entry",defaultMessage:"Select {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),checked:z,onChange:()=>{$({name:c.id,value:!z})}})),M.map(({key:h,cellFormatter:G,name:S,...Z})=>t.createElement(a.Td,{key:h},typeof G=="function"?G(c,{key:h,name:S,formatMessage:P,...Z}):t.createElement(a.Typography,{textColor:"neutral800"},c[S]||"-"))),U&&t.createElement(a.Td,null,t.createElement(a.Flex,{justifyContent:"end"},t.createElement(a.IconButton,{onClick:()=>I(`${F}/${c.id}`),label:P({id:"app.component.table.edit",defaultMessage:"Edit {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Pencil,null)}),d&&t.createElement(a.Box,{paddingLeft:1,...s.stopPropagation},t.createElement(a.IconButton,{onClick:()=>R(c.id),label:P({id:"global.delete-target",defaultMessage:"Delete {target}"},{target:(0,y.Pp)(c.firstname,c.lastname)}),noBorder:!0,icon:t.createElement(E.Trash,null)})))))}))};p.defaultProps={canDelete:!1,entriesToDelete:[],onClickDelete(){},onSelectRow(){},rows:[],withBulkActions:!1,withMainAction:!1},p.propTypes={canDelete:n().bool,entriesToDelete:n().array,headers:n().array.isRequired,onClickDelete:n().func,onSelectRow:n().func,rows:n().array,withBulkActions:n().bool,withMainAction:n().bool};var C=p,T=e(83196),_=e(41925),L=e(83281),O=e(4397),x=[[{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},name:"firstname",placeholder:{id:"Auth.form.firstname.placeholder",defaultMessage:"e.g. Kai"},type:"text",size:{col:6,xs:12},required:!0},{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},name:"lastname",placeholder:{id:"Auth.form.lastname.placeholder",defaultMessage:"e.g. Doe"},type:"text",size:{col:6,xs:12}}],[{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},name:"email",placeholder:{id:"Auth.form.email.placeholder",defaultMessage:"e.g. kai.doe@strapi.io"},type:"email",size:{col:6,xs:12},required:!0}]],v=e(5173),q=v.Ry().shape({firstname:v.Z_().trim().required(s.translatedErrors.required),lastname:v.Z_(),email:v.Z_().email(s.translatedErrors.email).required(s.translatedErrors.required),roles:v.IX().min(1,s.translatedErrors.required).required(s.translatedErrors.required)}),ee={create:{buttonSubmitLabel:{id:"app.containers.Users.ModalForm.footer.button-success",defaultMessage:"Invite user"},isDisabled:!1,next:"magic-link"},"magic-link":{buttonSubmitLabel:{id:"global.finish",defaultMessage:"Finish"},isDisabled:!0,next:null}};const N=(()=>window&&window.strapi&&window.strapi.isEE?e(64746).Z:e(62658).Z)(),te=(()=>window&&window.strapi&&window.strapi.isEE?e(43116).Z:e(61358).Z)(),ae=(()=>window&&window.strapi&&window.strapi.isEE?e(28890).Z:e(16325).Z)(),Y=d=>{let{queryName:M,onToggle:f}=d;const[R,$]=(0,t.useState)("create"),[A,U]=(0,t.useState)(!1),[Q,I]=(0,t.useState)(null),F=(0,o.useQueryClient)(),{formatMessage:P}=(0,m.useIntl)(),c=(0,s.useNotification)(),{lockApp:z,unlockApp:h}=(0,s.useOverlayBlocker)(),{post:G}=(0,s.useFetchClient)(),S=(0,o.useMutation)(W=>G("/admin/users",W),{async onSuccess(W){let{data:j}=W;I(j.data.registrationToken),await F.refetchQueries(M),await F.refetchQueries(["ee","license-limit-info"]),k(),U(!1)},onError(W){throw U(!1),c({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),W},onSettled(){h()}}),Z=P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"}),ne=async(W,j)=>{let{setErrors:J}=j;z(),U(!0);try{await S.mutateAsync(W)}catch(V){h(),V?.response?.data?.error.message==="Email already taken"&&J({email:V.response.data.error.message})}},k=()=>{u?$(u):f()},{buttonSubmitLabel:X,isDisabled:H,next:u}=ee[R],_e=R==="create"?t.createElement(a.Button,{type:"submit",loading:A},P(X)):t.createElement(a.Button,{type:"button",loading:A,onClick:f},P(X));return t.createElement(a.ModalLayout,{onClose:f,labelledBy:"title"},t.createElement(a.ModalHeader,null,t.createElement(a.Breadcrumbs,{label:Z},t.createElement(a.Crumb,null,Z))),t.createElement(L.Formik,{initialValues:N,onSubmit:ne,validationSchema:q,validateOnChange:!1},W=>{let{errors:j,handleChange:J,values:V}=W;return t.createElement(s.Form,null,t.createElement(a.ModalBody,null,t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:6},R!=="create"&&t.createElement(ae,{registrationToken:Q}),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"app.components.Users.ModalCreateBody.block-title.details",defaultMessage:"User details"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{direction:"column",alignItems:"stretch",gap:1},t.createElement(a.Grid,{gap:5},x.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,error:j[B.name],onChange:J,value:V[B.name]}))))))))),t.createElement(a.Box,null,t.createElement(a.Typography,{variant:"beta",as:"h2"},P({id:"global.roles",defaultMessage:"User's role"})),t.createElement(a.Box,{paddingTop:4},t.createElement(a.Grid,{gap:5},t.createElement(a.GridItem,{col:6,xs:12},t.createElement(O.Z,{disabled:H,error:j.roles,onChange:J,value:V.roles})),te.map(re=>re.map(B=>t.createElement(a.GridItem,(0,_.Z)({key:B.name},B.size),t.createElement(s.GenericInput,(0,_.Z)({},B,{disabled:H,onChange:J,value:V[B.name]})))))))))),t.createElement(a.ModalFooter,{startActions:t.createElement(a.Button,{variant:"tertiary",onClick:f,type:"button"},P({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:_e}))}))};Y.propTypes={onToggle:n().func.isRequired,queryName:n().array.isRequired};var se=Y;const w=({pagination:d})=>t.createElement(a.Box,{paddingTop:4},t.createElement(a.Flex,{alignItems:"flex-end",justifyContent:"space-between"},t.createElement(s.PageSizeURLQuery,null),t.createElement(s.PaginationURLQuery,{pagination:d})));w.defaultProps={pagination:{pageCount:0,pageSize:10,total:0}},w.propTypes={pagination:n().shape({page:n().number,pageCount:n().number,pageSize:n().number,total:n().number})};var b=w;const ie=async(d,M)=>{const{get:f}=(0,s.getFetchClient)(),{data:{data:R}}=await f(`/admin/users${d}`);return M(),R},ce=async d=>{const{post:M}=(0,s.getFetchClient)();await M("/admin/users/batch-delete",{ids:d})};var de=[{name:"firstname",metadatas:{label:"Firstname"},fieldSchema:{type:"string"}},{name:"lastname",metadatas:{label:"Lastname"},fieldSchema:{type:"string"}},{name:"email",metadatas:{label:"Email"},fieldSchema:{type:"email"}},{name:"username",metadatas:{label:"Username"},fieldSchema:{type:"string"}},{name:"isActive",metadatas:{label:"Active user"},fieldSchema:{type:"boolean"}}],me=[{name:"firstname",key:"firstname",metadatas:{label:{id:"Settings.permissions.users.firstname",defaultMessage:"Firstname"},sortable:!0}},{name:"lastname",key:"lastname",metadatas:{label:{id:"Settings.permissions.users.lastname",defaultMessage:"Lastname"},sortable:!0}},{key:"email",name:"email",metadatas:{label:{id:"Settings.permissions.users.email",defaultMessage:"Email"},sortable:!0}},{key:"roles",name:"roles",metadatas:{label:{id:"Settings.permissions.users.roles",defaultMessage:"Roles"},sortable:!1},cellFormatter({roles:d},{formatMessage:M}){return t.createElement(a.Typography,{textColor:"neutral800"},d.map(f=>M({id:`Settings.permissions.users.${f.code}`,defaultMessage:f.name})).join(`,
|
|
2
|
+
`))}},{key:"username",name:"username",metadatas:{label:{id:"Settings.permissions.users.username",defaultMessage:"Username"},sortable:!0}},{key:"isActive",name:"isActive",metadatas:{label:{id:"Settings.permissions.users.user-status",defaultMessage:"User status"},sortable:!1},cellFormatter({isActive:d},{formatMessage:M}){return t.createElement(a.Flex,null,t.createElement(s.Status,{isActive:d,variant:d?"success":"danger"}),t.createElement(a.Typography,{textColor:"neutral800"},M({id:d?"Settings.permissions.users.active":"Settings.permissions.users.inactive",defaultMessage:d?"Active":"Inactive"})))}}];const ue=(()=>window&&window.strapi&&window.strapi.isEE?e(99724).Z:e(9814).Z)(),Ee=(()=>window&&window.strapi&&window.strapi.isEE?e(21306).Z:e(83119).Z)();var pe=()=>{const{formatAPIError:d}=(0,s.useAPIErrorHandler)(),[M,f]=(0,t.useState)(!1),{allowedActions:{canCreate:R,canDelete:$,canRead:A}}=(0,s.useRBAC)(r.Z.settings.users),U=(0,o.useQueryClient)(),Q=(0,s.useNotification)(),{formatMessage:I}=(0,m.useIntl)(),{search:F}=(0,i.useLocation)();(0,s.useFocusWhenNavigate)(),Ee();const{notifyStatus:P}=(0,a.useNotifyAT)(),c=["users",F],z=me.map(u=>({...u,metadatas:{...u.metadatas,label:I(u.metadatas.label)}})),h=I({id:"global.users",defaultMessage:"Users"}),G=()=>{P(I({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:h}))},{status:S,data:Z,isFetching:ne}=(0,o.useQuery)(c,()=>ie(F,G),{enabled:A,retry:!1,onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),k=()=>{f(u=>!u)},X=(0,o.useMutation)(u=>ce(u),{async onSuccess(){await U.refetchQueries(c),await U.refetchQueries(["ee","license-limit-info"])},onError(u){Q({type:"warning",message:{id:"notification.error",message:d(u),defaultMessage:"An error occured"}})}}),H=S!=="success"&&S!=="error"||S==="success"&≠return t.createElement(a.Main,{"aria-busy":H},t.createElement(s.SettingsPageTitle,{name:"Users"}),t.createElement(a.HeaderLayout,{primaryAction:R&&t.createElement(ue,{onClick:k}),title:h,subtitle:I({id:"Settings.permissions.users.listview.header.subtitle",defaultMessage:"All the users who have access to the Strapi admin panel"})}),A&&t.createElement(a.ActionLayout,{startActions:t.createElement(t.Fragment,null,t.createElement(s.SearchURLQuery,{label:I({id:"app.component.search.label",defaultMessage:"Search for {target}"},{target:h})}),t.createElement(T.Z,{displayedFilters:de}))}),t.createElement(a.ContentLayout,{canRead:A},!A&&t.createElement(s.NoPermissions,null),S==="error"&&t.createElement("div",null,"TODO: An error occurred"),A&&t.createElement(t.Fragment,null,t.createElement(s.DynamicTable,{contentType:"Users",isLoading:H,onConfirmDeleteAll:X.mutateAsync,onConfirmDelete:u=>X.mutateAsync([u]),headers:z,rows:Z?.results,withBulkActions:!0,withMainAction:$},t.createElement(C,{canDelete:$,headers:z,rows:Z?.results||[],withBulkActions:!0,withMainAction:$})),t.createElement(b,{pagination:Z?.pagination}))),M&&t.createElement(se,{onToggle:k,queryName:c}))},ge=()=>t.createElement(s.CheckPagePermissions,{permissions:r.Z.settings.users.main},t.createElement(pe,null))},76779:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(39161),i=e.n(a),m=e(13478),o=e.n(m),g=e(57269),n=e.n(g),E=e(59087),y=e.n(E),p=e(5636);const C=({children:T,target:_})=>{const L=(0,m.useNotification)(),{formatMessage:O}=(0,p.useIntl)(),K=()=>{L({type:"info",message:{id:"notification.link-copied"}})},x=O({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"});return t.createElement(m.ContentBox,{endAction:t.createElement(E.CopyToClipboard,{onCopy:K,text:_},t.createElement(a.IconButton,{label:x,noBorder:!0,icon:t.createElement(g.Duplicate,null)})),title:_,titleEllipsis:!0,subtitle:T,icon:t.createElement("span",{style:{fontSize:32}},"\u2709\uFE0F"),iconBackground:"neutral100"})};C.propTypes={children:r().oneOfType([r().element,r().string]).isRequired,target:r().string.isRequired},l.Z=C},16325:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(463),m=e(76779);const o=({registrationToken:g})=>{const{formatMessage:n}=(0,s.useIntl)(),E=`${window.location.origin}${i.Z}auth/register?registrationToken=${g}`;return t.createElement(m.Z,{target:E},n({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:a().string},l.Z=o},4397:function(D,l,e){var t=e(32735),s=e(60216),r=e.n(s),a=e(5636),i=e(39161),m=e.n(i),o=e(84968),g=e.n(o),n=e(83292),E=e(57269),y=e.n(E),p=e(13478),C=e.n(p);const T=n.keyframes`
|
|
3
|
+
from {
|
|
4
|
+
transform: rotate(0deg);
|
|
5
|
+
}
|
|
6
|
+
to {
|
|
7
|
+
transform: rotate(359deg);
|
|
8
|
+
}
|
|
9
|
+
`,_=n.default.div`
|
|
10
|
+
animation: ${T} 2s infinite linear;
|
|
11
|
+
`,L=()=>t.createElement(_,null,t.createElement(E.Loader,null)),O=async()=>{const{get:x}=(0,p.getFetchClient)(),{data:v}=await x("/admin/roles");return v.data},K=({disabled:x,error:v,onChange:oe,value:q})=>{const{status:le,data:ee}=(0,o.useQuery)(["roles"],O,{staleTime:5e4}),{formatMessage:N}=(0,a.useIntl)(),te=v?N({id:v,defaultMessage:v}):"",ae=N({id:"app.components.Users.ModalCreateBody.block-title.roles",defaultMessage:"User's roles"}),Y=N({id:"app.components.Users.ModalCreateBody.block-title.roles.description",defaultMessage:"A user can have one or several roles"}),se=N({id:"app.components.Select.placeholder",defaultMessage:"Select"}),w=le==="loading"?t.createElement(L,null):void 0;return t.createElement(i.Select,{id:"roles",disabled:x,error:te,hint:Y,label:ae,name:"roles",onChange:b=>{oe({target:{name:"roles",value:b}})},placeholder:se,multi:!0,startIcon:w,value:q,withTags:!0,required:!0},(ee||[]).map(b=>t.createElement(i.Option,{key:b.id,value:b.id},N({id:`global.${b.code}`,defaultMessage:b.name}))))};K.defaultProps={disabled:!1,error:void 0},K.propTypes={disabled:r().bool,error:r().string,onChange:r().func.isRequired,value:r().array.isRequired},l.Z=K},99724:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(39161),m=e.n(i),o=e(57269),g=e.n(o),n=e(36866),E=e.n(n),y=e(58414);const p=({onClick:C})=>{const{formatMessage:T}=(0,s.useIntl)(),{license:_}=(0,y.q5)(),{permittedSeats:L,shouldStopCreate:O}=_?.data??{};return t.createElement(i.Flex,{gap:2},!E()(L)&&O&&t.createElement(i.Tooltip,{description:T({id:"Settings.application.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"}),position:"left"},t.createElement(i.Icon,{width:`${14/16}rem`,height:`${14/16}rem`,color:"danger500",as:o.ExclamationMarkCircle})),t.createElement(i.Button,{"data-testid":"create-user-button",onClick:C,startIcon:t.createElement(o.Envelop,null),size:"S",disabled:O},T({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"})))};p.propTypes={onClick:a().func.isRequired},l.Z=p},64746:function(D,l,e){var t=e(62658);const s=strapi.features.isEnabled(strapi.features.SSO)?{useSSORegistration:!0}:{},r={...t.Z,...s};l.Z=r},43116:function(D,l){const e=strapi.features.isEnabled(strapi.features.SSO)?[[{intlLabel:{id:"Settings.permissions.users.form.sso",defaultMessage:"Connect with SSO"},hint:{id:"Settings.permissions.users.form.sso.description",defaultMessage:"When enabled (ON), users can login via SSO"},name:"useSSORegistration",type:"bool",size:{col:6,xs:12}}]]:[];l.Z=e},28890:function(D,l,e){var t=e(32735),s=e(5636),r=e(60216),a=e.n(r),i=e(463),m=e(76779);const o=({registrationToken:g})=>{const{formatMessage:n}=(0,s.useIntl)();return g?t.createElement(m.Z,{target:`${window.location.origin}${i.Z}auth/register?registrationToken=${g}`},n({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):t.createElement(m.Z,{target:`${window.location.origin}${i.Z}auth/login`},n({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};o.defaultProps={registrationToken:""},o.propTypes={registrationToken:a().string},l.Z=o}}]);
|