@strapi/admin 4.9.2 → 4.10.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/PublicationState.js +26 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/index.js +1 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +2 -0
- package/admin/src/content-manager/components/DynamicTable/index.js +25 -49
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +2 -0
- package/admin/src/content-manager/pages/EditView/Information/index.js +77 -53
- package/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxCE.js +13 -0
- package/admin/src/content-manager/pages/EditView/InformationBox/index.js +3 -0
- package/admin/src/content-manager/pages/EditView/index.js +3 -4
- package/admin/src/content-manager/pages/ListView/index.js +6 -9
- package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +6 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/constants.js +1 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +5 -0
- package/admin/src/index.js +1 -0
- package/admin/src/translations/en.json +6 -0
- package/build/{Admin-authenticatedApp.217db666.chunk.js → Admin-authenticatedApp.52c88751.chunk.js} +2 -2
- package/build/{Admin_settingsPage.1dbfc9ce.chunk.js → Admin_settingsPage.257b3477.chunk.js} +7 -7
- package/build/{admin-app.558af642.chunk.js → admin-app.dfaeea5d.chunk.js} +18 -18
- package/build/content-manager.def692c2.chunk.js +1130 -0
- package/build/content-type-builder-translation-en-json.510e88ca.chunk.js +1 -0
- package/build/content-type-builder.5e1f4afc.chunk.js +126 -0
- package/build/en-json.08303b37.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/{main.ef8db4a2.js → main.120be100.js} +145 -145
- package/build/review-workflows-settings.9092ed72.chunk.js +106 -0
- package/build/{runtime~main.3a92d953.js → runtime~main.112b3101.js} +1 -1
- package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js +15 -0
- package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +45 -0
- package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +3 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +135 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/index.js +3 -0
- package/ee/admin/hooks/useSettingsMenu/utils/customAdminLinks.js +12 -12
- package/ee/admin/hooks/useSettingsMenu/utils/customGlobalLinks.js +21 -13
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +199 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +42 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/AddStage.js +87 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +90 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +92 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +6 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +35 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/index.js +3 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +122 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/getWorkflowValidationSchema.js +25 -0
- package/ee/admin/pages/SettingsPage/utils/customRoutes.js +16 -2
- package/ee/admin/permissions/customPermissions.js +3 -0
- package/ee/server/bootstrap.js +13 -0
- package/ee/server/config/admin-actions.js +10 -0
- package/ee/server/constants/default-stages.json +14 -0
- package/ee/server/constants/default-workflow.json +1 -0
- package/ee/server/constants/workflows.js +8 -0
- package/ee/server/content-types/index.js +9 -0
- package/ee/server/content-types/workflow/index.js +31 -0
- package/ee/server/content-types/workflow-stage/index.js +36 -0
- package/ee/server/controllers/index.js +2 -0
- package/ee/server/controllers/workflows/index.js +36 -0
- package/ee/server/controllers/workflows/stages/index.js +102 -0
- package/ee/server/index.js +1 -0
- package/ee/server/middlewares/review-workflows.js +40 -0
- package/ee/server/register.js +8 -0
- package/ee/server/routes/index.js +104 -0
- package/ee/server/services/index.js +4 -0
- package/ee/server/services/review-workflows/entity-service-decorator.js +54 -0
- package/ee/server/services/review-workflows/review-workflows.js +111 -0
- package/ee/server/services/review-workflows/stages.js +249 -0
- package/ee/server/services/review-workflows/workflows.js +25 -0
- package/ee/server/utils/index.js +8 -0
- package/ee/server/utils/persisted-tables.js +114 -22
- package/ee/server/utils/review-workflows.js +34 -0
- package/ee/server/validation/review-workflows.js +24 -0
- package/package.json +9 -9
- package/build/content-manager.d1565bfc.chunk.js +0 -1132
- package/build/content-type-builder-translation-en-json.6c8e69ab.chunk.js +0 -1
- package/build/content-type-builder.9d780e7f.chunk.js +0 -126
- package/build/en-json.cf600231.chunk.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{74750:function(D,E,t){"use strict";t.r(E),t.d(E,{SettingsPage:function(){return xt},default:function(){return Te}});var e=t(32735),i=t(43383),r=t(53038),p=t(96709),d=t(67879),y=t(74758),h=t(67927),g=t(8997),O=t(20108),U=t(27649),F=t(82055),T=t(41415),S=t(17e3),
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{74750:function(D,E,t){"use strict";t.r(E),t.d(E,{SettingsPage:function(){return xt},default:function(){return Te}});var e=t(32735),i=t(43383),r=t(53038),p=t(96709),d=t(67879),y=t(74758),h=t(67927),g=t(8997),O=t(20108),U=t(27649),F=t(82055),T=t(41415),S=t(17e3),M=t(87933),c=t(49372),P=t(15335),x=t(5803),I=t(50428),z=t(66456),K=t(47361),H=t(83983),V=t(60216),o=t.n(V),A=t(72850);const G=750,$=100,X=["image/jpeg","image/png","image/svg+xml"];var w=t(23272),q=t(68387),J=t(50563),Y=t(98779),_=t(19406),tt=t(44647),et=t(85025),nt=t(55225),j=t(97889);const Et={localImage:void 0};var Rt=(a=Et,n)=>(0,j.ZP)(a,s=>{switch(n.type){case"SET_LOCAL_IMAGE":{s.localImage=n.value;break}default:return s}});const at=({onChangeLogo:a,customLogo:n,goTo:s,Component:l,modalTitle:u,next:v,prev:R,currentStep:C})=>{const[{localImage:f},m]=(0,e.useReducer)(Rt,Et),{formatMessage:B}=(0,d.Z)(),L=Z=>{m({type:"SET_LOCAL_IMAGE",value:Z})},W=()=>{s(null)};return C?e.createElement(et.P,{labelledBy:"modal",onClose:W},e.createElement(nt.x,null,e.createElement(c.Z,{fontWeight:"bold",as:"h2",id:"modal"},B(u))),e.createElement(l,{setLocalImage:L,goTo:s,next:v,prev:R,onClose:W,asset:f||n,onChangeLogo:a})):null};at.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},at.propTypes={Component:o().elementType,currentStep:o().string,customLogo:o().shape({name:o().string,url:o().string,width:o().number,height:o().number,ext:o().string}),goTo:o().func.isRequired,modalTitle:o().shape({id:o().string,defaultMessage:o().string}),next:o().string,onChangeLogo:o().func.isRequired,prev:o().string};var Tt=at;const ft={currentStep:void 0};var Pt=(a=ft,n)=>(0,j.ZP)(a,s=>{switch(n.type){case"GO_TO":{s.currentStep=n.to;break}default:return s}}),Ot=t(91215),ot=t(39291),It=t(9026),st=t(3653),Dt=t(8471),At=t(98275),Bt=t(87107),Ut=t(99140),zt=t(47851),lt=t(11406),Zt=t(47284);const Ft={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},ht={id:"Settings.application.customization.modal.upload.error-size",defaultMessage:"The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)"},Wt=a=>new Promise(n=>{const s=new FileReader;s.onload=()=>{const l=new Image;l.onload=function(){n({width:l.width,height:l.height})},l.src=s.result},s.readAsDataURL(a)}),Kt=(a,n)=>({ext:a.name.split(".").pop(),size:a.size/1e3,name:a.name,url:URL.createObjectURL(a),rawFile:a,width:n.width,height:n.height}),vt=async a=>{let n;if(!X.includes(a.type))throw n=new Error("File format"),n.displayMessage=Ft,n;const l=await Wt(a);if(!(l.width<=G&&l.height<=G))throw n=new Error("File sizing"),n.displayMessage=ht,n;const v=Kt(a,l);if(!(v.size<=$))throw n=new Error("File sizing"),n.displayMessage=ht,n;return v},$t=(0,Dt.ZP)(At._)`
|
|
2
2
|
opacity: 0;
|
|
3
3
|
position: absolute;
|
|
4
4
|
top: 0;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
left: 0;
|
|
7
7
|
right: 0;
|
|
8
8
|
z-index: 1;
|
|
9
|
-
`,it=({setLocalImage:a,goTo:n,next:s,onClose:l})=>{const{formatMessage:u}=(0,d.Z)(),[v,R]=(0,e.useState)(!1),[M,f]=(0,e.useState)(void 0),m=(0,e.useRef)(null),B=()=>R(!0),L=()=>R(!1),W=V=>{V.preventDefault(),m.current.click()},Z=async()=>{L();const V=m.current.files[0];if(V)try{const N=await vt(V);a(N),n(s)}catch(N){if(N.displayMessage)f(u(N.displayMessage,{size:$,dimension:G})),m.current.focus();else throw N}},b=()=>v?"primary500":M?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Bt.g,{name:"logo-upload",error:M},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(C.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(C.k,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:v?"primary100":"neutral100",borderColor:b(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:B,onDragLeave:L},e.createElement(Ut.J,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:Zt.Z,"aria-hidden":!0}),e.createElement(A.x,{paddingTop:3,paddingBottom:5},e.createElement(c.Z,{variant:"delta",as:"span"},u({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement($t,{accept:X,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:Z,ref:m,id:"logo-upload"}),e.createElement(T.z,{type:"button",onClick:W},u({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(A.x,{paddingTop:6},e.createElement(c.Z,{variant:"pi",textColor:"neutral600"},u({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:$,dimension:G})))),e.createElement(zt.c,null)))))),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:l,variant:"tertiary"},u({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};it.defaultProps={next:null},it.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var jt=it,Nt=t(10369),Gt=t(84306),bt=async a=>{try{const n=await Gt.Z.get(a,{responseType:"blob",timeout:8e3});return new File([n.data],n.config.url,{type:n.headers["content-type"]})}catch(n){throw n.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},n}};const rt=({goTo:a,next:n,onClose:s,setLocalImage:l})=>{const{formatMessage:u}=(0,d.Z)(),[v,R]=(0,e.useState)(""),[M,f]=(0,e.useState)(null),m=L=>{R(L.target.value)},B=async()=>{try{const L=await bt(v),W=await vt(L);l(W),a(n)}catch(L){if(L.displayMessage)f(u(L.displayMessage,{size:$,dimension:G}));else throw L}};return e.createElement("form",{onSubmit:L=>{L.preventDefault(),B()}},e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Nt.o,{label:u({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:M,onChange:m,value:v,name:"logo-url"})),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:s,variant:"tertiary"},u({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{type:"submit"},u({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};rt.defaultProps={next:null},rt.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var Ht=rt;const dt=({setLocalImage:a,goTo:n,next:s,onClose:l})=>{const{formatMessage:u}=(0,d.Z)();return e.createElement(Ot.v,{label:u({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(A.x,{paddingLeft:8,paddingRight:8},e.createElement(ot.m,null,e.createElement(ot.O,null,u({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(ot.O,null,u({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(It.i,null)),e.createElement(st.n,null,e.createElement(st.x,null,e.createElement(jt,{onClose:l,setLocalImage:a,goTo:n,next:s})),e.createElement(st.x,null,e.createElement(Ht,{onClose:l,setLocalImage:a,goTo:n,next:s}))))};dt.defaultProps={next:null},dt.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var Qt=dt,Vt=t(42466),Jt=t(20853),Xt=t(2800),Yt=t(26835),wt=t(41048),Mt=t(37083),kt=t(11505);const Ct=({asset:a})=>{const{formatMessage:n}=(0,d.Z)();return e.createElement(Vt.Z,null,e.createElement(Jt.O,null,e.createElement(Xt.H,{size:"S",src:a.url})),e.createElement(Yt.e,null,e.createElement(wt.a,null,e.createElement(Mt.l,null,a.name),e.createElement(Mt._,null,`${a.ext.toUpperCase()} - ${a.width}\u2715${a.height}`)),e.createElement(kt.E,null,n({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};Ct.propTypes={asset:o().shape({name:o().string,url:o().string,width:o().number,height:o().number,ext:o().string}).isRequired};var qt=Ct;const ct=({onClose:a,asset:n,prev:s,next:l,goTo:u,setLocalImage:v,onChangeLogo:R})=>{const{formatMessage:M}=(0,d.Z)(),f=()=>{v(void 0),u(s)},m=()=>{R(n),u(l)};return e.createElement(e.Fragment,null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(C.k,{justifyContent:"space-between",paddingBottom:6},e.createElement(C.k,{direction:"column",alignItems:"flex-start"},e.createElement(c.Z,{variant:"pi",fontWeight:"bold"},M({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(c.Z,{variant:"pi",textColor:"neutral500"},M({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(T.z,{onClick:f,variant:"secondary"},M({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(A.x,{maxWidth:(0,i.Q1)(180)},e.createElement(qt,{asset:n}))),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:a,variant:"tertiary"},M({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{onClick:m},M({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};ct.defaultProps={next:null,prev:null},ct.propTypes={goTo:o().func.isRequired,asset:o().shape({name:o().string,url:o().string,width:o().number,height:o().number,ext:o().string}).isRequired,next:o().string,onClose:o().func.isRequired,onChangeLogo:o().func.isRequired,prev:o().string,setLocalImage:o().func.isRequired};var _t=ct,te={upload:{Component:Qt,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:_t,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const mt=({canUpdate:a,customLogo:n,defaultLogo:s,hint:l,label:u,onChangeLogo:v,onResetLogo:R})=>{const[{currentStep:M},f]=(0,e.useReducer)(Pt,ft),{Component:m,next:B,prev:L,modalTitle:W}=te[M]||{},{formatMessage:Z}=(0,d.Z)(),b=V=>{f({type:"GO_TO",to:V})};return e.createElement(e.Fragment,null,e.createElement(w.F,{label:u,selectedSlide:0,hint:l,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:n?.name||"logo.png",actions:e.createElement(q.b,null,e.createElement(J.h,{disabled:!a,onClick:()=>b(n?"pending":"upload"),label:Z({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(_.Z,null)}),n&&e.createElement(J.h,{disabled:!a,onClick:R,label:Z({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(tt.Z,null)}))},e.createElement(Y.q,{label:Z({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(A.x,{maxHeight:"40%",maxWidth:"40%",as:"img",src:n?.url||s,alt:Z({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(Tt,{Component:m,currentStep:M,onChangeLogo:v,customLogo:n,goTo:b,next:B,prev:L,modalTitle:W}))};mt.defaultProps={canUpdate:!1,customLogo:null,hint:null},mt.propTypes={canUpdate:o().bool,customLogo:o().shape({url:o().string,name:o().string}),label:o().string.isRequired,hint:o().string,defaultLogo:o().string.isRequired,onChangeLogo:o().func.isRequired,onResetLogo:o().func.isRequired};var Lt=mt;const ut={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var ee=(a=ut,n)=>(0,j.ZP)(a,s=>{switch(n.type){case"SET_CUSTOM_MENU_LOGO":{s.menuLogo.display=n.value,s.menuLogo.submit.rawFile=n.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{s.authLogo.display=n.value,s.authLogo.submit.rawFile=n.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{s.menuLogo.display=null,s.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{s.authLogo.display=null,s.authLogo.submit={rawFile:null,isReset:!0};break}default:return s}}),ne=t(86349),ae=t.n(ne),oe=(a,n)=>ae()(a,{menuLogo:{display:n.menuLogo},authLogo:{display:n.authLogo}});const gt=(0,e.forwardRef)(({canUpdate:a,projectSettingsStored:n},s)=>{const{formatMessage:l}=(0,d.Z)(),{trackUsage:u}=(0,i.rS)(),{logos:{menu:v,auth:R}}=(0,h.um)(),[{menuLogo:M,authLogo:f},m]=(0,e.useReducer)(ee,ut,()=>oe(ut,n)),B=b=>{m({type:"SET_CUSTOM_MENU_LOGO",value:b})},L=()=>{u("didClickResetLogo",{logo:"menu"}),m({type:"RESET_CUSTOM_MENU_LOGO"})},W=b=>{m({type:"SET_CUSTOM_AUTH_LOGO",value:b})},Z=()=>{u("didClickResetLogo",{logo:"auth"}),m({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(s,()=>({getValues:()=>({menuLogo:M.submit,authLogo:f.submit})})),e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(c.Z,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(c.Z,{variant:"pi",textColor:"neutral600"},l({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:G,size:$})),e.createElement(P.r,{paddingTop:4,gap:4},e.createElement(x.P,{col:6,s:12},e.createElement(Lt,{canUpdate:a,customLogo:M.display,defaultLogo:v.default,hint:l({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:l({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:B,onResetLogo:L})),e.createElement(x.P,{col:6,s:12},e.createElement(Lt,{canUpdate:a,customLogo:f.display,defaultLogo:R.default,hint:l({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:l({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:W,onResetLogo:Z}))))});gt.defaultProps={canUpdate:!1,projectSettingsStored:null},gt.propTypes={canUpdate:o().bool,projectSettingsStored:o().shape({menuLogo:o().shape({url:o().string,name:o().string})})};var se=gt,le=t(48344),ie=t.n(le),yt=a=>ie()(a,(n,s,l)=>{s&&s.url?n[l]={...s,url:(0,i.CR)(s.url)}:n[l]=s},{});const re=async()=>{const{get:a}=(0,i.tg)(),{data:n}=await a("/admin/project-settings");return yt(n)},de=async a=>{const{post:n}=(0,i.tg)(),{data:s}=await n("/admin/project-settings",a,{headers:{"Content-Type":"multipart/form-data"}});return yt(s)};var ce=a=>{const n=new FormData;return Object.entries(a).forEach(([s,l])=>{l&&l.rawFile instanceof File&&n.append(s,l.rawFile),l&&l.isReset&&n.append(s,null)}),n};const me=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var ue=()=>{const a=(0,e.useRef)(),n=(0,i.lm)(),{trackUsage:s}=(0,i.rS)(),{formatMessage:l}=(0,d.Z)(),u=(0,O.useQueryClient)();(0,i.go)();const v=(0,i.QI)(),{latestStrapiReleaseTag:R,shouldUpdateStrapi:M,strapiVersion:f}=v,{updateProjectSettings:m}=(0,h.um)(),{allowedActions:{canRead:B,canUpdate:L}}=(0,i.ss)(H.Z.settings["project-settings"]),W=B&&L,{data:Z}=(0,O.useQuery)("project-settings",re,{enabled:B}),b=(0,O.useMutation)(N=>de(N),{async onSuccess(N){let{menuLogo:k,authLogo:pt}=N;await u.invalidateQueries("project-settings",{refetchActive:!0}),m({menuLogo:k?.url,authLogo:pt?.url})}}),V=N=>{if(N.preventDefault(),!L)return;const k=a.current.getValues(),pt=ce(k);b.mutate(pt,{onSuccess(){const{menuLogo:Pe,authLogo:Oe}=k;Pe.rawFile&&s("didChangeLogo",{logo:"menu"}),Oe.rawFile&&s("didChangeLogo",{logo:"auth"}),n({type:"success",message:l({id:"app",defaultMessage:"Saved"})})},onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(p.A,null,e.createElement(i.SL,{name:"Application"}),e.createElement(U.o,null,e.createElement("form",{onSubmit:V},e.createElement(F.T,{title:l({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:l({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:W&&e.createElement(T.z,{type:"submit",startIcon:e.createElement(z.Z,null)},l({id:"global.save",defaultMessage:"Save"}))}),e.createElement(S.D,null,e.createElement(C.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(C.k,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(c.Z,{variant:"delta",as:"h3"},l({id:"global.details",defaultMessage:"Details"})),e.createElement(P.r,{gap:5,as:"dl"},e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(C.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(c.Z,null,"v",f),M&&e.createElement(I.r,{href:`https://github.com/strapi/strapi/releases/tag/${R}`,isExternal:!0,endIcon:e.createElement(K.Z,null)},l({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(C.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(c.Z,null,l({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:v.communityEdition})),e.createElement(I.r,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(K.Z,null)},l({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(c.Z,{as:"dd"},v.nodeVersion)),e.createElement(me,null))),B&&Z&&e.createElement(se,{canUpdate:L,ref:a,projectSettingsStored:Z}))))))},ge=t(3704),pe=t.n(ge),Ee=a=>pe()(a,s=>s.links).map(s=>(0,g.ot)(s.Component,s.to,s.exact||!1)),fe=a=>a.filter(n=>!n.links.every(s=>s.isDisplayed===!1)),he=[{async Component(){return await t.e(3455).then(t.bind(t,67249))},to:"/settings/roles",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,92034))},to:"/settings/roles/duplicate/:id",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,92034))},to:"/settings/roles/new",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,76949))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,40874))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,74767))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(5563),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(5563),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(7259),t.e(2492)]).then(t.bind(t,73607))},to:"/settings/transfer-tokens/:id",exact:!0}],ve=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...he],Me=t(14911),Ce=t(90700),Le=t(78090),ye=t(77013),Se=t(79318),xe=t(66618);const St=({menu:a})=>{const{formatMessage:n}=(0,d.Z)(),{trackUsage:s}=(0,i.rS)(),{pathname:l}=(0,r.TH)(),v=fe(a).map(f=>({...f,title:f.intlLabel,links:f.links.map(m=>({...m,title:m.intlLabel,name:m.id}))})),R=n({id:"global.settings",defaultMessage:"Settings"}),M=(f=null)=>{s("willNavigate",{from:l,to:f})};return e.createElement(Ce.m,{ariaLabel:R},e.createElement(Le.p,{label:R}),e.createElement(ye.Z,null,v.map(f=>e.createElement(Se.D,{key:f.id,label:n(f.intlLabel)},f.links.map(m=>e.createElement(xe.E,{as:Me.OL,withBullet:m.hasNotification,to:m.to,onClick:()=>M(m.to),key:m.id},n(m.intlLabel)))))))};St.propTypes={menu:o().array.isRequired};var Re=St;function xt(){const{settingId:a}=(0,r.UO)(),{settings:n}=(0,i.j1)(),{formatMessage:s}=(0,d.Z)(),{isLoading:l,menu:u}=(0,h.Te)(),v=(0,e.useMemo)(()=>(0,g.WW)(ve.map(({to:f,Component:m,exact:B})=>(0,g.ot)(m,f,B))),[]),R=Ee(n);if(l)return e.createElement(i.dO,null);if(!a)return e.createElement(r.l_,{to:"/settings/application-infos"});const M=s({id:"global.settings",defaultMessage:"Settings"});return e.createElement(p.A,{sideNav:e.createElement(Re,{menu:u})},e.createElement(y.q,{title:M}),e.createElement(r.rs,null,e.createElement(r.AW,{path:"/settings/application-infos",component:ue,exact:!0}),v,R))}var Te=(0,e.memo)(xt)},17891:function(D,E){"use strict";const t=()=>null;E.Z=t},75936:function(D,E){"use strict";const t=[];E.Z=t},78999:function(D,E,t){"use strict";var e=t(32735),i=t(67879),r=t(5803),p=t(49372),d=t(87933),y=t(63919),h=t(99140),g=t(41502),O=t(69932),U=t(47361),F=t(43383),T=t(58414);const S="https://cloud.strapi.io/profile/billing",C="https://strapi.io/billing/request-seats",c=()=>{const{formatMessage:P}=(0,i.Z)(),{license:x}=(0,T.q5)(),{licenseLimitStatus:I,enforcementUserCount:z,permittedSeats:K,isHostedOnStrapiCloud:H}=x?.data??{};return K?e.createElement(r.P,{col:6,s:12},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},P({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(d.k,{gap:2},e.createElement(d.k,null,e.createElement(p.Z,{as:"p"},P({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:K,enforcementUserCount:z,text:Q=>e.createElement(p.Z,{fontWeight:"semiBold",textColor:z>K?"danger500":null},Q)}))),I==="OVER_LIMIT"&&e.createElement(y.u,{description:P({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(h.J,{width:`${(0,F.Q1)(14)}rem`,height:`${(0,F.Q1)(14)}rem`,color:"danger500",as:O.Z}))),e.createElement(g.r,{href:H?S:C,isExternal:!0,endIcon:e.createElement(U.Z,null)},P({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:H}))):null};E.Z=c},63775:function(D,E,t){"use strict";const e=[];strapi.features.isEnabled(strapi.features.SSO)&&e.push({async Component(){return await t.e(302).then(t.bind(t,26930))},to:"/settings/single-sign-on",exact:!0}),strapi.features.isEnabled(strapi.features.AUDIT_LOGS)&&e.push({async Component(){return await t.e(2812).then(t.bind(t,71765))},to:"/settings/audit-logs",exact:!0}),E.Z=e},3704:function(D,E,t){var e=t(40314),i=t(37213);function r(p,d){return e(i(p,d),1)}D.exports=r},37213:function(D,E,t){var e=t(26460),i=t(88904),r=t(52920),p=t(77236);function d(y,h){var g=p(y)?e:r;return g(y,i(h,3))}D.exports=d},96709:function(D,E,t){"use strict";t.d(E,{A:function(){return h}});var e=t(32735),i=t(60216),r=t(8471),p=t(72850);const d=(0,r.ZP)(p.x)`
|
|
9
|
+
`,it=({setLocalImage:a,goTo:n,next:s,onClose:l})=>{const{formatMessage:u}=(0,d.Z)(),[v,R]=(0,e.useState)(!1),[C,f]=(0,e.useState)(void 0),m=(0,e.useRef)(null),B=()=>R(!0),L=()=>R(!1),W=Q=>{Q.preventDefault(),m.current.click()},Z=async()=>{L();const Q=m.current.files[0];if(Q)try{const N=await vt(Q);a(N),n(s)}catch(N){if(N.displayMessage)f(u(N.displayMessage,{size:$,dimension:G})),m.current.focus();else throw N}},b=()=>v?"primary500":C?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Bt.g,{name:"logo-upload",error:C},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(M.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(M.k,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:v?"primary100":"neutral100",borderColor:b(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:B,onDragLeave:L},e.createElement(Ut.J,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:Zt.Z,"aria-hidden":!0}),e.createElement(A.x,{paddingTop:3,paddingBottom:5},e.createElement(c.Z,{variant:"delta",as:"span"},u({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement($t,{accept:X,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:Z,ref:m,id:"logo-upload"}),e.createElement(T.z,{type:"button",onClick:W},u({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(A.x,{paddingTop:6},e.createElement(c.Z,{variant:"pi",textColor:"neutral600"},u({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:$,dimension:G})))),e.createElement(zt.c,null)))))),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:l,variant:"tertiary"},u({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};it.defaultProps={next:null},it.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var jt=it,Nt=t(10369),Gt=t(84306),bt=async a=>{try{const n=await Gt.Z.get(a,{responseType:"blob",timeout:8e3});return new File([n.data],n.config.url,{type:n.headers["content-type"]})}catch(n){throw n.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},n}};const rt=({goTo:a,next:n,onClose:s,setLocalImage:l})=>{const{formatMessage:u}=(0,d.Z)(),[v,R]=(0,e.useState)(""),[C,f]=(0,e.useState)(null),m=L=>{R(L.target.value)},B=async()=>{try{const L=await bt(v),W=await vt(L);l(W),a(n)}catch(L){if(L.displayMessage)f(u(L.displayMessage,{size:$,dimension:G}));else throw L}};return e.createElement("form",{onSubmit:L=>{L.preventDefault(),B()}},e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Nt.o,{label:u({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:C,onChange:m,value:v,name:"logo-url"})),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:s,variant:"tertiary"},u({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{type:"submit"},u({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};rt.defaultProps={next:null},rt.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var Ht=rt;const dt=({setLocalImage:a,goTo:n,next:s,onClose:l})=>{const{formatMessage:u}=(0,d.Z)();return e.createElement(Ot.v,{label:u({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(A.x,{paddingLeft:8,paddingRight:8},e.createElement(ot.m,null,e.createElement(ot.O,null,u({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(ot.O,null,u({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(It.i,null)),e.createElement(st.n,null,e.createElement(st.x,null,e.createElement(jt,{onClose:l,setLocalImage:a,goTo:n,next:s})),e.createElement(st.x,null,e.createElement(Ht,{onClose:l,setLocalImage:a,goTo:n,next:s}))))};dt.defaultProps={next:null},dt.propTypes={goTo:o().func.isRequired,next:o().string,onClose:o().func.isRequired,setLocalImage:o().func.isRequired};var Vt=dt,Qt=t(42466),Jt=t(20853),Xt=t(2800),Yt=t(26835),wt=t(41048),Ct=t(37083),kt=t(11505);const Mt=({asset:a})=>{const{formatMessage:n}=(0,d.Z)();return e.createElement(Qt.Z,null,e.createElement(Jt.O,null,e.createElement(Xt.H,{size:"S",src:a.url})),e.createElement(Yt.e,null,e.createElement(wt.a,null,e.createElement(Ct.l,null,a.name),e.createElement(Ct._,null,`${a.ext.toUpperCase()} - ${a.width}\u2715${a.height}`)),e.createElement(kt.E,null,n({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};Mt.propTypes={asset:o().shape({name:o().string,url:o().string,width:o().number,height:o().number,ext:o().string}).isRequired};var qt=Mt;const ct=({onClose:a,asset:n,prev:s,next:l,goTo:u,setLocalImage:v,onChangeLogo:R})=>{const{formatMessage:C}=(0,d.Z)(),f=()=>{v(void 0),u(s)},m=()=>{R(n),u(l)};return e.createElement(e.Fragment,null,e.createElement(A.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(M.k,{justifyContent:"space-between",paddingBottom:6},e.createElement(M.k,{direction:"column",alignItems:"flex-start"},e.createElement(c.Z,{variant:"pi",fontWeight:"bold"},C({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(c.Z,{variant:"pi",textColor:"neutral500"},C({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(T.z,{onClick:f,variant:"secondary"},C({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(A.x,{maxWidth:(0,i.Q1)(180)},e.createElement(qt,{asset:n}))),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:a,variant:"tertiary"},C({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{onClick:m},C({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};ct.defaultProps={next:null,prev:null},ct.propTypes={goTo:o().func.isRequired,asset:o().shape({name:o().string,url:o().string,width:o().number,height:o().number,ext:o().string}).isRequired,next:o().string,onClose:o().func.isRequired,onChangeLogo:o().func.isRequired,prev:o().string,setLocalImage:o().func.isRequired};var _t=ct,te={upload:{Component:Vt,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:_t,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const mt=({canUpdate:a,customLogo:n,defaultLogo:s,hint:l,label:u,onChangeLogo:v,onResetLogo:R})=>{const[{currentStep:C},f]=(0,e.useReducer)(Pt,ft),{Component:m,next:B,prev:L,modalTitle:W}=te[C]||{},{formatMessage:Z}=(0,d.Z)(),b=Q=>{f({type:"GO_TO",to:Q})};return e.createElement(e.Fragment,null,e.createElement(w.F,{label:u,selectedSlide:0,hint:l,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:n?.name||"logo.png",actions:e.createElement(q.b,null,e.createElement(J.h,{disabled:!a,onClick:()=>b(n?"pending":"upload"),label:Z({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(_.Z,null)}),n&&e.createElement(J.h,{disabled:!a,onClick:R,label:Z({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(tt.Z,null)}))},e.createElement(Y.q,{label:Z({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(A.x,{maxHeight:"40%",maxWidth:"40%",as:"img",src:n?.url||s,alt:Z({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(Tt,{Component:m,currentStep:C,onChangeLogo:v,customLogo:n,goTo:b,next:B,prev:L,modalTitle:W}))};mt.defaultProps={canUpdate:!1,customLogo:null,hint:null},mt.propTypes={canUpdate:o().bool,customLogo:o().shape({url:o().string,name:o().string}),label:o().string.isRequired,hint:o().string,defaultLogo:o().string.isRequired,onChangeLogo:o().func.isRequired,onResetLogo:o().func.isRequired};var Lt=mt;const ut={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var ee=(a=ut,n)=>(0,j.ZP)(a,s=>{switch(n.type){case"SET_CUSTOM_MENU_LOGO":{s.menuLogo.display=n.value,s.menuLogo.submit.rawFile=n.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{s.authLogo.display=n.value,s.authLogo.submit.rawFile=n.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{s.menuLogo.display=null,s.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{s.authLogo.display=null,s.authLogo.submit={rawFile:null,isReset:!0};break}default:return s}}),ne=t(86349),ae=t.n(ne),oe=(a,n)=>ae()(a,{menuLogo:{display:n.menuLogo},authLogo:{display:n.authLogo}});const gt=(0,e.forwardRef)(({canUpdate:a,projectSettingsStored:n},s)=>{const{formatMessage:l}=(0,d.Z)(),{trackUsage:u}=(0,i.rS)(),{logos:{menu:v,auth:R}}=(0,h.um)(),[{menuLogo:C,authLogo:f},m]=(0,e.useReducer)(ee,ut,()=>oe(ut,n)),B=b=>{m({type:"SET_CUSTOM_MENU_LOGO",value:b})},L=()=>{u("didClickResetLogo",{logo:"menu"}),m({type:"RESET_CUSTOM_MENU_LOGO"})},W=b=>{m({type:"SET_CUSTOM_AUTH_LOGO",value:b})},Z=()=>{u("didClickResetLogo",{logo:"auth"}),m({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(s,()=>({getValues:()=>({menuLogo:C.submit,authLogo:f.submit})})),e.createElement(A.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(c.Z,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(c.Z,{variant:"pi",textColor:"neutral600"},l({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:G,size:$})),e.createElement(P.r,{paddingTop:4,gap:4},e.createElement(x.P,{col:6,s:12},e.createElement(Lt,{canUpdate:a,customLogo:C.display,defaultLogo:v.default,hint:l({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:l({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:B,onResetLogo:L})),e.createElement(x.P,{col:6,s:12},e.createElement(Lt,{canUpdate:a,customLogo:f.display,defaultLogo:R.default,hint:l({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:l({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:W,onResetLogo:Z}))))});gt.defaultProps={canUpdate:!1,projectSettingsStored:null},gt.propTypes={canUpdate:o().bool,projectSettingsStored:o().shape({menuLogo:o().shape({url:o().string,name:o().string})})};var se=gt,le=t(48344),ie=t.n(le),yt=a=>ie()(a,(n,s,l)=>{s&&s.url?n[l]={...s,url:(0,i.CR)(s.url)}:n[l]=s},{});const re=async()=>{const{get:a}=(0,i.tg)(),{data:n}=await a("/admin/project-settings");return yt(n)},de=async a=>{const{post:n}=(0,i.tg)(),{data:s}=await n("/admin/project-settings",a,{headers:{"Content-Type":"multipart/form-data"}});return yt(s)};var ce=a=>{const n=new FormData;return Object.entries(a).forEach(([s,l])=>{l&&l.rawFile instanceof File&&n.append(s,l.rawFile),l&&l.isReset&&n.append(s,null)}),n};const me=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var ue=()=>{const a=(0,e.useRef)(),n=(0,i.lm)(),{trackUsage:s}=(0,i.rS)(),{formatMessage:l}=(0,d.Z)(),u=(0,O.useQueryClient)();(0,i.go)();const v=(0,i.QI)(),{latestStrapiReleaseTag:R,shouldUpdateStrapi:C,strapiVersion:f}=v,{updateProjectSettings:m}=(0,h.um)(),{allowedActions:{canRead:B,canUpdate:L}}=(0,i.ss)(H.Z.settings["project-settings"]),W=B&&L,{data:Z}=(0,O.useQuery)("project-settings",re,{enabled:B}),b=(0,O.useMutation)(N=>de(N),{async onSuccess(N){let{menuLogo:k,authLogo:pt}=N;await u.invalidateQueries("project-settings",{refetchActive:!0}),m({menuLogo:k?.url,authLogo:pt?.url})}}),Q=N=>{if(N.preventDefault(),!L)return;const k=a.current.getValues(),pt=ce(k);b.mutate(pt,{onSuccess(){const{menuLogo:Pe,authLogo:Oe}=k;Pe.rawFile&&s("didChangeLogo",{logo:"menu"}),Oe.rawFile&&s("didChangeLogo",{logo:"auth"}),n({type:"success",message:l({id:"app",defaultMessage:"Saved"})})},onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(p.A,null,e.createElement(i.SL,{name:"Application"}),e.createElement(U.o,null,e.createElement("form",{onSubmit:Q},e.createElement(F.T,{title:l({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:l({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:W&&e.createElement(T.z,{type:"submit",startIcon:e.createElement(z.Z,null)},l({id:"global.save",defaultMessage:"Save"}))}),e.createElement(S.D,null,e.createElement(M.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(M.k,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(c.Z,{variant:"delta",as:"h3"},l({id:"global.details",defaultMessage:"Details"})),e.createElement(P.r,{gap:5,as:"dl"},e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(M.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(c.Z,null,"v",f),C&&e.createElement(I.r,{href:`https://github.com/strapi/strapi/releases/tag/${R}`,isExternal:!0,endIcon:e.createElement(K.Z,null)},l({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(M.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(c.Z,null,l({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:v.communityEdition})),e.createElement(I.r,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(K.Z,null)},l({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(x.P,{col:6,s:12},e.createElement(c.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(c.Z,{as:"dd"},v.nodeVersion)),e.createElement(me,null))),B&&Z&&e.createElement(se,{canUpdate:L,ref:a,projectSettingsStored:Z}))))))},ge=t(3704),pe=t.n(ge),Ee=a=>pe()(a,s=>s.links).map(s=>(0,g.ot)(s.Component,s.to,s.exact||!1)),fe=a=>a.filter(n=>!n.links.every(s=>s.isDisplayed===!1)),he=[{async Component(){return await t.e(3455).then(t.bind(t,67249))},to:"/settings/roles",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,92034))},to:"/settings/roles/duplicate/:id",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,92034))},to:"/settings/roles/new",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(2544)]).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,76949))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,40874))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,74767))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(5563),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(5563),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(1387),t.e(4628),t.e(7259),t.e(2492)]).then(t.bind(t,73607))},to:"/settings/transfer-tokens/:id",exact:!0}],ve=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...he],Ce=t(14911),Me=t(90700),Le=t(78090),ye=t(77013),Se=t(79318),xe=t(66618);const St=({menu:a})=>{const{formatMessage:n}=(0,d.Z)(),{trackUsage:s}=(0,i.rS)(),{pathname:l}=(0,r.TH)(),v=fe(a).map(f=>({...f,title:f.intlLabel,links:f.links.map(m=>({...m,title:m.intlLabel,name:m.id}))})),R=n({id:"global.settings",defaultMessage:"Settings"}),C=(f=null)=>{s("willNavigate",{from:l,to:f})};return e.createElement(Me.m,{ariaLabel:R},e.createElement(Le.p,{label:R}),e.createElement(ye.Z,null,v.map(f=>e.createElement(Se.D,{key:f.id,label:n(f.intlLabel)},f.links.map(m=>e.createElement(xe.E,{as:Ce.OL,withBullet:m.hasNotification,to:m.to,onClick:()=>C(m.to),key:m.id},n(m.intlLabel)))))))};St.propTypes={menu:o().array.isRequired};var Re=St;function xt(){const{settingId:a}=(0,r.UO)(),{settings:n}=(0,i.j1)(),{formatMessage:s}=(0,d.Z)(),{isLoading:l,menu:u}=(0,h.Te)(),v=(0,e.useMemo)(()=>(0,g.WW)(ve.map(({to:f,Component:m,exact:B})=>(0,g.ot)(m,f,B))),[]),R=Ee(n);if(l)return e.createElement(i.dO,null);if(!a)return e.createElement(r.l_,{to:"/settings/application-infos"});const C=s({id:"global.settings",defaultMessage:"Settings"});return e.createElement(p.A,{sideNav:e.createElement(Re,{menu:u})},e.createElement(y.q,{title:C}),e.createElement(r.rs,null,e.createElement(r.AW,{path:"/settings/application-infos",component:ue,exact:!0}),v,R))}var Te=(0,e.memo)(xt)},17891:function(D,E){"use strict";const t=()=>null;E.Z=t},75936:function(D,E){"use strict";const t=[];E.Z=t},78999:function(D,E,t){"use strict";var e=t(32735),i=t(67879),r=t(5803),p=t(49372),d=t(87933),y=t(63919),h=t(99140),g=t(41502),O=t(69932),U=t(47361),F=t(43383),T=t(58414);const S="https://cloud.strapi.io/profile/billing",M="https://strapi.io/billing/request-seats",c=()=>{const{formatMessage:P}=(0,i.Z)(),{license:x}=(0,T.q5)(),{licenseLimitStatus:I,enforcementUserCount:z,permittedSeats:K,isHostedOnStrapiCloud:H}=x?.data??{};return K?e.createElement(r.P,{col:6,s:12},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600"},P({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(d.k,{gap:2},e.createElement(d.k,null,e.createElement(p.Z,{as:"p"},P({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:K,enforcementUserCount:z,text:V=>e.createElement(p.Z,{fontWeight:"semiBold",textColor:z>K?"danger500":null},V)}))),I==="OVER_LIMIT"&&e.createElement(y.u,{description:P({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(h.J,{width:`${(0,F.Q1)(14)}rem`,height:`${(0,F.Q1)(14)}rem`,color:"danger500",as:O.Z}))),e.createElement(g.r,{href:H?S:M,isExternal:!0,endIcon:e.createElement(U.Z,null)},P({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:H}))):null};E.Z=c},63775:function(D,E,t){"use strict";const e=[];window.strapi.features.isEnabled(window.strapi.features.SSO)&&e.push({async Component(){return await t.e(302).then(t.bind(t,26930))},to:"/settings/single-sign-on",exact:!0}),window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)&&e.push({async Component(){return await t.e(8155).then(t.bind(t,16633))},to:"/settings/review-workflows",exact:!0}),window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)&&e.push({async Component(){return await t.e(2812).then(t.bind(t,71765))},to:"/settings/audit-logs",exact:!0}),E.Z=e},3704:function(D,E,t){var e=t(40314),i=t(37213);function r(p,d){return e(i(p,d),1)}D.exports=r},37213:function(D,E,t){var e=t(26460),i=t(88904),r=t(52920),p=t(77236);function d(y,h){var g=p(y)?e:r;return g(y,i(h,3))}D.exports=d},96709:function(D,E,t){"use strict";t.d(E,{A:function(){return h}});var e=t(32735),i=t(60216),r=t(8471),p=t(72850);const d=(0,r.ZP)(p.x)`
|
|
10
10
|
display: grid;
|
|
11
11
|
grid-template-columns: ${({hasSideNav:g})=>g?"auto 1fr":"1fr"};
|
|
12
12
|
`,y=(0,r.ZP)(p.x)`
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
overflow-y: auto;
|
|
21
21
|
border-right: 1px solid ${({theme:g})=>g.colors.neutral200};
|
|
22
22
|
z-index: 1;
|
|
23
|
-
`,h=({ariaLabel:g,...O})=>e.createElement(y,{"aria-label":g,as:"nav",...O});h.propTypes={ariaLabel:i.string.isRequired}},78090:function(D,E,t){"use strict";t.d(E,{p:function(){return P}});var e=t(32735),i=t(6792),r=t(60216),p=t(8471),d=t(72850),y=t(9026),h=t(87933),g=t(94486),O=t(74971);const U=x=>{const I=(0,e.useRef)();return(0,e.useEffect)(()=>{I.current=x}),I.current};var F=t(50563),T=t(61774),S=t(89252),
|
|
23
|
+
`,h=({ariaLabel:g,...O})=>e.createElement(y,{"aria-label":g,as:"nav",...O});h.propTypes={ariaLabel:i.string.isRequired}},78090:function(D,E,t){"use strict";t.d(E,{p:function(){return P}});var e=t(32735),i=t(6792),r=t(60216),p=t(8471),d=t(72850),y=t(9026),h=t(87933),g=t(94486),O=t(74971);const U=x=>{const I=(0,e.useRef)();return(0,e.useEffect)(()=>{I.current=x}),I.current};var F=t(50563),T=t(61774),S=t(89252),M=t(49372);const c=(0,p.ZP)(y.i)`
|
|
24
24
|
width: ${24/16}rem;
|
|
25
25
|
background-color: ${({theme:x})=>x.colors.neutral200};
|
|
26
|
-
`,P=({as:x,label:I,searchLabel:z,searchable:K,onChange:H,value:
|
|
26
|
+
`,P=({as:x,label:I,searchLabel:z,searchable:K,onChange:H,value:V,onClear:o,onSubmit:A,id:G})=>{const[$,X]=(0,e.useState)(!1),w=U($),q=(0,O.M)(G),J=(0,e.useRef)(),Y=(0,e.useRef)();(0,e.useEffect)(()=>{$&&J.current&&J.current.focus(),w&&!$&&Y.current&&Y.current.focus()},[$,w]);const _=()=>{X(j=>!j)},tt=j=>{o(j),J.current.focus()},et=j=>{j.relatedTarget?.id!==q&&X(!1)},nt=j=>{j.key===g.y.ESCAPE&&X(!1)};return $?e.createElement(d.x,{paddingLeft:4,paddingTop:5,paddingBottom:2,paddingRight:4},e.createElement(S.U,null,e.createElement(T.w,{name:"searchbar",value:V,onChange:H,placeholder:"e.g: strapi-plugin-abcd",onKeyDown:nt,ref:J,onBlur:et,onClear:tt,onSubmit:A,clearLabel:"Clear",size:"S"},z)),e.createElement(d.x,{paddingLeft:2,paddingTop:4},e.createElement(c,null))):e.createElement(d.x,{paddingLeft:6,paddingTop:6,paddingBottom:2,paddingRight:4},e.createElement(h.k,{justifyContent:"space-between",alignItems:"flex-start"},e.createElement(M.Z,{variant:"beta",as:x},I),K&&e.createElement(F.h,{ref:Y,onClick:_,label:z,icon:e.createElement(i.Z,null)})),e.createElement(d.x,{paddingTop:4},e.createElement(c,null)))};P.defaultProps={as:"h2",searchable:!1,onChange(){},onClear(){},onSubmit(){},value:"",searchLabel:"",id:void 0},P.propTypes={as:r.string,id:r.string,label:r.string.isRequired,onChange:r.func,onClear:r.func,onSubmit:r.func,searchLabel:r.string,searchable:r.bool,value:r.string}},66618:function(D,E,t){"use strict";t.d(E,{E:function(){return T}});var e=t(32735),i=t(56243),r=t(60216),p=t(8471),d=t(62499),y=t(72850),h=t(87933),g=t(49372);const O=(0,p.ZP)(y.x)`
|
|
27
27
|
display: flex;
|
|
28
28
|
align-items: center;
|
|
29
29
|
justify-content: space-between;
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
width: ${12/16}rem;
|
|
55
55
|
height: ${4/16}rem;
|
|
56
56
|
* {
|
|
57
|
-
fill: ${({theme:S,$active:
|
|
57
|
+
fill: ${({theme:S,$active:M})=>M?S.colors.primary600:S.colors.neutral600};
|
|
58
58
|
}
|
|
59
59
|
`,F=p.ZP.div`
|
|
60
60
|
svg {
|
|
61
61
|
height: ${12/16}rem;
|
|
62
62
|
width: ${12/16}rem;
|
|
63
63
|
}
|
|
64
|
-
`,T=e.forwardRef(({children:S,icon:
|
|
64
|
+
`,T=e.forwardRef(({children:S,icon:M,withBullet:c,as:P,isSubSectionChild:x,...I},z)=>e.createElement(O,{as:P,icon:M,background:"neutral100",paddingLeft:x?9:7,paddingBottom:2,paddingTop:2,ref:z,...I},e.createElement(h.k,null,M?e.createElement(F,null,M):e.createElement(U,null),e.createElement(y.x,{paddingLeft:2},e.createElement(g.Z,{as:"span"},S))),c&&e.createElement(y.x,{as:h.k,paddingRight:4},e.createElement(U,{$active:!0}))));T.displayName="SubNavLink",T.defaultProps={as:d.f,icon:null,isSubSectionChild:!1,withBullet:!1},T.propTypes={as:r.elementType,children:r.node.isRequired,icon:r.element,isSubSectionChild:r.bool,withBullet:r.bool}},79318:function(D,E,t){"use strict";t.d(E,{D:function(){return M}});var e=t(32735),i=t(60216),r=t(8471),p=t(16899),d=t(72850),y=t(87933),h=t(49372);const g=(0,r.ZP)(y.k)`
|
|
65
65
|
border: none;
|
|
66
66
|
padding: 0;
|
|
67
67
|
background: transparent;
|
|
@@ -76,4 +76,4 @@
|
|
|
76
76
|
fill: ${({theme:c})=>c.colors.neutral500};
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
`,
|
|
79
|
+
`,M=({collapsable:c,label:P,badgeLabel:x,children:I,id:z})=>{const[K,H]=(0,e.useState)(!0),V=(0,T.M)(z),o=()=>{H(A=>!A)};return e.createElement(y.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(S,{paddingLeft:6,paddingTop:2,paddingBottom:2,paddingRight:4},e.createElement(d.x,{position:"relative",paddingRight:x?6:0},e.createElement(U,{onClick:o,ariaExpanded:K,ariaControls:V,collapsable:c,label:P}),x&&e.createElement(F.C,{backgroundColor:"neutral150",textColor:"neutral600",position:"absolute",right:0,top:"50%",transform:"translateY(-50%)"},x))),(!c||K)&&e.createElement("ol",{id:V},e.Children.map(I,(A,G)=>e.createElement("li",{key:G},A))))};M.defaultProps={badgeLabel:null,collapsable:!1,id:void 0},M.propTypes={badgeLabel:i.string,children:i.node.isRequired,collapsable:i.bool,id:i.string,label:i.string.isRequired}},77013:function(D,E,t){"use strict";t.d(E,{Z:function(){return d}});var e=t(32735),i=t(60216),r=t(72850),p=t(87933);const d=({children:y,spacing:h=2,horizontal:g=!1,...O})=>e.createElement(r.x,{paddingTop:2,paddingBottom:4},e.createElement(p.k,{as:"ol",gap:h,direction:g?"row":"column",alignItems:g?"center":"stretch",...O},e.Children.map(y,(U,F)=>e.createElement("li",{key:F},U))));d.propTypes={children:i.node.isRequired}},56243:function(D,E,t){"use strict";t.d(E,{Z:function(){return r}});var e=t(74512);const i=p=>(0,e.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 4 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",...p,children:(0,e.jsx)("rect",{width:4,height:4,rx:2,fill:"#A5A5BA"})}),r=i}}]);
|