@strapi/admin 4.10.5 → 4.10.6

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.
Files changed (82) hide show
  1. package/admin/src/components/AuthenticatedApp/utils/api.js +5 -4
  2. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +1 -2
  3. package/admin/src/content-manager/components/DynamicZone/index.js +1 -1
  4. package/admin/src/content-manager/components/FieldComponent/index.js +1 -1
  5. package/admin/src/content-manager/components/Inputs/index.js +1 -1
  6. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +67 -71
  7. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/index.js +3 -5
  8. package/admin/src/content-manager/pages/App/useContentManagerInitData.js +2 -3
  9. package/admin/src/content-manager/pages/ComponentSetttingsView/index.js +2 -5
  10. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +1 -1
  11. package/admin/src/content-manager/pages/EditView/Header/index.js +1 -1
  12. package/admin/src/content-manager/pages/EditViewLayoutManager/Permissions.js +1 -1
  13. package/admin/src/content-manager/pages/ListView/index.js +1 -2
  14. package/admin/src/hooks/marketplace/constants.js +1 -0
  15. package/admin/src/hooks/{useFetchMarketplacePlugins → marketplace/useFetchMarketplacePlugins}/index.js +21 -1
  16. package/admin/src/hooks/{useFetchMarketplaceProviders → marketplace/useFetchMarketplaceProviders}/index.js +21 -1
  17. package/admin/src/hooks/useReleaseNotification/utils/api.js +6 -5
  18. package/admin/src/pages/Admin/Onboarding/index.js +89 -91
  19. package/admin/src/pages/App/index.js +1 -5
  20. package/admin/src/pages/AuthPage/components/Register/index.js +3 -4
  21. package/admin/src/pages/AuthPage/index.js +11 -26
  22. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +39 -41
  23. package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +2 -2
  24. package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +1 -1
  25. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +3 -2
  26. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  27. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +1 -1
  28. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +12 -1
  29. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +120 -205
  30. package/admin/src/pages/UseCasePage/index.js +13 -15
  31. package/admin/src/translations/en.json +11 -9
  32. package/build/1387.a86ac314.chunk.js +1 -0
  33. package/build/{1657.85034334.chunk.js → 1657.ca8562dd.chunk.js} +46 -46
  34. package/build/{3816.1a828046.chunk.js → 3816.60f858cf.chunk.js} +12 -12
  35. package/build/{5563.44e0ef15.chunk.js → 5563.2c8334ef.chunk.js} +1 -1
  36. package/build/{617.2c8c7183.chunk.js → 617.87b2fe96.chunk.js} +1 -1
  37. package/build/{6970.e8422af3.chunk.js → 6970.36d3ffff.chunk.js} +1 -1
  38. package/build/7259.116a9960.chunk.js +1 -0
  39. package/build/Admin-authenticatedApp.0318dfb3.chunk.js +79 -0
  40. package/build/{Admin_marketplace.87f51b29.chunk.js → Admin_marketplace.f446ba2b.chunk.js} +10 -10
  41. package/build/Admin_settingsPage.f8c46a9a.chunk.js +79 -0
  42. package/build/admin-app.6d48536c.chunk.js +63 -0
  43. package/build/{admin-edit-roles-page.6fe9de49.chunk.js → admin-edit-roles-page.02c3b136.chunk.js} +3 -3
  44. package/build/{admin-users.16bb6e77.chunk.js → admin-users.69f4900a.chunk.js} +11 -11
  45. package/build/{audit-logs-settings-page.7ec976e1.chunk.js → audit-logs-settings-page.482909d7.chunk.js} +1 -1
  46. package/build/{content-manager.a97db8a1.chunk.js → content-manager.cd71cb6e.chunk.js} +95 -95
  47. package/build/content-type-builder-translation-en-json.af293c9e.chunk.js +1 -0
  48. package/build/content-type-builder.b10576e7.chunk.js +126 -0
  49. package/build/en-json.d965e364.chunk.js +1 -0
  50. package/build/{i18n-settings-page.e34ec940.chunk.js → i18n-settings-page.55628f74.chunk.js} +1 -1
  51. package/build/index.html +1 -1
  52. package/build/main.adab8b96.js +2630 -0
  53. package/build/{runtime~main.df78e1c7.js → runtime~main.0201a49b.js} +2 -2
  54. package/build/{upload.bf183c0c.chunk.js → upload.c50d8c7a.chunk.js} +1 -1
  55. package/build/{users-email-settings-page.756aa7ab.chunk.js → users-email-settings-page.d2429d0a.chunk.js} +1 -1
  56. package/build/{users-providers-settings-page.ff9e4c0a.chunk.js → users-providers-settings-page.50c5ba27.chunk.js} +1 -1
  57. package/build/{users-roles-settings-page.eeb3a339.chunk.js → users-roles-settings-page.2549794b.chunk.js} +2 -2
  58. package/build/webhook-edit-page.cb2cf1a5.chunk.js +128 -0
  59. package/build/webhook-list-page.e2fca9f8.chunk.js +71 -0
  60. package/ee/LICENSE +1 -21
  61. package/ee/admin/pages/AuthPage/components/Login/index.js +1 -1
  62. package/ee/admin/pages/AuthPage/components/Providers/SSOProviders.js +1 -1
  63. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  64. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/formDataModel.js +1 -1
  65. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/roleSettingsForm.js +1 -1
  66. package/package.json +13 -15
  67. package/webpack.alias.js +0 -1
  68. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +0 -18
  69. package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +0 -18
  70. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/utils/formatValue.js +0 -13
  71. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/reducer.js +0 -72
  72. package/build/1387.437eb420.chunk.js +0 -1
  73. package/build/7259.3ed2b60e.chunk.js +0 -1
  74. package/build/Admin-authenticatedApp.6b74c5fd.chunk.js +0 -79
  75. package/build/Admin_settingsPage.20884a40.chunk.js +0 -79
  76. package/build/admin-app.d4fd9379.chunk.js +0 -63
  77. package/build/content-type-builder-translation-en-json.5e5f8607.chunk.js +0 -1
  78. package/build/content-type-builder.51c64fe5.chunk.js +0 -126
  79. package/build/en-json.1f6af924.chunk.js +0 -1
  80. package/build/main.57970a57.js +0 -2674
  81. package/build/webhook-edit-page.550be445.chunk.js +0 -128
  82. package/build/webhook-list-page.0983d83f.chunk.js +0 -71
@@ -1,79 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{74750:function(A,h,t){"use strict";t.r(h),t.d(h,{SettingsPage:function(){return St},default:function(){return Pe}});var e=t(32735),l=t(24989),d=t(53038),r=t(96709),c=t(67879),L=t(74758),C=t(67927),v=t(8997),E=t(20108),P=t(27649),B=t(82055),T=t(41415),F=t(17e3),g=t(87933),p=t(49372),y=t(15335),O=t(5803),D=t(50428),I=t(66456),U=t(47361),H=t(83983),Q=t(60216),a=t.n(Q),j=t(72850);const $=750,J=100,b=["image/jpeg","image/png","image/svg+xml"];var Y=t(23272),q=t(68387),_=t(50563),X=t(98779),w=t(19406),et=t(44647),nt=t(85025),ot=t(55225),k=t(97889);const N={localImage:void 0};var Rt=(o=N,n)=>(0,k.ZP)(o,s=>{switch(n.type){case"SET_LOCAL_IMAGE":{s.localImage=n.value;break}default:return s}});const at=({onChangeLogo:o,customLogo:n,goTo:s,Component:i,modalTitle:m,next:M,prev:R,currentStep:x})=>{const[{localImage:f},u]=(0,e.useReducer)(Rt,N),{formatMessage:z}=(0,c.Z)(),S=Z=>{u({type:"SET_LOCAL_IMAGE",value:Z})},W=()=>{s(null)};return x?e.createElement(nt.P,{labelledBy:"modal",onClose:W},e.createElement(ot.x,null,e.createElement(p.Z,{fontWeight:"bold",as:"h2",id:"modal"},z(m))),e.createElement(i,{setLocalImage:S,goTo:s,next:M,prev:R,onClose:W,asset:f||n,onChangeLogo:o})):null};at.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},at.propTypes={Component:a().elementType,currentStep:a().string,customLogo:a().shape({name:a().string,url:a().string,width:a().number,height:a().number,ext:a().string}),goTo:a().func.isRequired,modalTitle:a().shape({id:a().string,defaultMessage:a().string}),next:a().string,onChangeLogo:a().func.isRequired,prev:a().string};var Pt=at;const Et={currentStep:void 0};var Tt=(o=Et,n)=>(0,k.ZP)(o,s=>{switch(n.type){case"GO_TO":{s.currentStep=n.to;break}default:return s}}),Ot=t(91215),st=t(39291),Dt=t(9026),it=t(3653),It=t(8471),At=t(98275),Bt=t(87107),Ut=t(99140),jt=t(47851),lt=t(11406),zt=t(47284);const Zt={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},ft={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)"},Ft=o=>new Promise(n=>{const s=new FileReader;s.onload=()=>{const i=new Image;i.onload=function(){n({width:i.width,height:i.height})},i.src=s.result},s.readAsDataURL(o)}),Wt=(o,n)=>({ext:o.name.split(".").pop(),size:o.size/1e3,name:o.name,url:URL.createObjectURL(o),rawFile:o,width:n.width,height:n.height}),vt=async o=>{let n;if(!b.includes(o.type))throw n=new Error("File format"),n.displayMessage=Zt,n;const i=await Ft(o);if(!(i.width<=$&&i.height<=$))throw n=new Error("File sizing"),n.displayMessage=ft,n;const M=Wt(o,i);if(!(M.size<=J))throw n=new Error("File sizing"),n.displayMessage=ft,n;return M},Kt=(0,It.ZP)(At._)`
2
- opacity: 0;
3
- position: absolute;
4
- top: 0;
5
- bottom: 0;
6
- left: 0;
7
- right: 0;
8
- z-index: 1;
9
- `,rt=({setLocalImage:o,goTo:n,next:s,onClose:i})=>{const{formatMessage:m}=(0,c.Z)(),[M,R]=(0,e.useState)(!1),[x,f]=(0,e.useState)(void 0),u=(0,e.useRef)(null),z=()=>R(!0),S=()=>R(!1),W=V=>{V.preventDefault(),u.current.click()},Z=async()=>{S();const V=u.current.files[0];if(V)try{const K=await vt(V);o(K),n(s)}catch(K){if(K.displayMessage)f(m(K.displayMessage,{size:J,dimension:$})),u.current.focus();else throw K}},G=()=>M?"primary500":x?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(j.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Bt.g,{name:"logo-upload",error:x},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:2},e.createElement(g.k,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:M?"primary100":"neutral100",borderColor:G(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:z,onDragLeave:S},e.createElement(Ut.J,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:zt.Z,"aria-hidden":!0}),e.createElement(j.x,{paddingTop:3,paddingBottom:5},e.createElement(p.Z,{variant:"delta",as:"span"},m({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(Kt,{accept:b,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:Z,ref:u,id:"logo-upload"}),e.createElement(T.z,{type:"button",onClick:W},m({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(j.x,{paddingTop:6},e.createElement(p.Z,{variant:"pi",textColor:"neutral600"},m({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:J,dimension:$})))),e.createElement(jt.c,null)))))),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:i,variant:"tertiary"},m({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};rt.defaultProps={next:null},rt.propTypes={goTo:a().func.isRequired,next:a().string,onClose:a().func.isRequired,setLocalImage:a().func.isRequired};var $t=rt,Nt=t(10369),Gt=t(84306),Ht=async o=>{try{const n=await Gt.default.get(o,{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 dt=({goTo:o,next:n,onClose:s,setLocalImage:i})=>{const{formatMessage:m}=(0,c.Z)(),[M,R]=(0,e.useState)(""),[x,f]=(0,e.useState)(null),u=S=>{R(S.target.value)},z=async()=>{try{const S=await Ht(M),W=await vt(S);i(W),o(n)}catch(S){if(S.displayMessage)f(m(S.displayMessage,{size:J,dimension:$}));else throw S}};return e.createElement("form",{onSubmit:S=>{S.preventDefault(),z()}},e.createElement(j.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(Nt.o,{label:m({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:x,onChange:u,value:M,name:"logo-url"})),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:s,variant:"tertiary"},m({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{type:"submit"},m({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};dt.defaultProps={next:null},dt.propTypes={goTo:a().func.isRequired,next:a().string,onClose:a().func.isRequired,setLocalImage:a().func.isRequired};var bt=dt;const ct=({setLocalImage:o,goTo:n,next:s,onClose:i})=>{const{formatMessage:m}=(0,c.Z)();return e.createElement(Ot.v,{label:m({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(j.x,{paddingLeft:8,paddingRight:8},e.createElement(st.m,null,e.createElement(st.O,null,m({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(st.O,null,m({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(Dt.i,null)),e.createElement(it.n,null,e.createElement(it.x,null,e.createElement($t,{onClose:i,setLocalImage:o,goTo:n,next:s})),e.createElement(it.x,null,e.createElement(bt,{onClose:i,setLocalImage:o,goTo:n,next:s}))))};ct.defaultProps={next:null},ct.propTypes={goTo:a().func.isRequired,next:a().string,onClose:a().func.isRequired,setLocalImage:a().func.isRequired};var Vt=ct,Qt=t(42466),Jt=t(20853),Xt=t(2800),Yt=t(26835),wt=t(41048),Mt=t(37083),kt=t(11505);const xt=({asset:o})=>{const{formatMessage:n}=(0,c.Z)();return e.createElement(Qt.Z,null,e.createElement(Jt.O,null,e.createElement(Xt.H,{size:"S",src:o.url})),e.createElement(Yt.e,null,e.createElement(wt.a,null,e.createElement(Mt.l,null,o.name),e.createElement(Mt._,null,`${o.ext.toUpperCase()} - ${o.width}\u2715${o.height}`)),e.createElement(kt.E,null,n({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};xt.propTypes={asset:a().shape({name:a().string,url:a().string,width:a().number,height:a().number,ext:a().string}).isRequired};var qt=xt;const ut=({onClose:o,asset:n,prev:s,next:i,goTo:m,setLocalImage:M,onChangeLogo:R})=>{const{formatMessage:x}=(0,c.Z)(),f=()=>{M(void 0),m(s)},u=()=>{R(n),m(i)};return e.createElement(e.Fragment,null,e.createElement(j.x,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(g.k,{justifyContent:"space-between",paddingBottom:6},e.createElement(g.k,{direction:"column",alignItems:"flex-start"},e.createElement(p.Z,{variant:"pi",fontWeight:"bold"},x({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(p.Z,{variant:"pi",textColor:"neutral500"},x({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(T.z,{onClick:f,variant:"secondary"},x({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(j.x,{maxWidth:(0,l.Q1)(180)},n.url?e.createElement(qt,{asset:n}):null)),e.createElement(lt.m,{startActions:e.createElement(T.z,{onClick:o,variant:"tertiary"},x({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(T.z,{onClick:u},x({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};ut.defaultProps={next:null,prev:null},ut.propTypes={goTo:a().func.isRequired,asset:a().shape({name:a().string,url:a().string,width:a().number,height:a().number,ext:a().string}).isRequired,next:a().string,onClose:a().func.isRequired,onChangeLogo:a().func.isRequired,prev:a().string,setLocalImage:a().func.isRequired};var _t=ut,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:o,customLogo:n,defaultLogo:s,hint:i,label:m,onChangeLogo:M,onResetLogo:R})=>{const[{currentStep:x},f]=(0,e.useReducer)(Tt,Et),{Component:u,next:z,prev:S,modalTitle:W}=te[x]||{},{formatMessage:Z}=(0,c.Z)(),G=V=>{f({type:"GO_TO",to:V})};return e.createElement(e.Fragment,null,e.createElement(Y.F,{label:m,selectedSlide:0,hint:i,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:n?.name||"logo.png",actions:e.createElement(q.b,null,e.createElement(_.h,{disabled:!o,onClick:()=>G(n?"pending":"upload"),label:Z({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(w.Z,null)}),n&&e.createElement(_.h,{disabled:!o,onClick:R,label:Z({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(et.Z,null)}))},e.createElement(X.q,{label:Z({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(j.x,{maxHeight:"40%",maxWidth:"40%",as:"img",src:n?.url||s,alt:Z({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(Pt,{Component:u,currentStep:x,onChangeLogo:M,customLogo:n,goTo:G,next:z,prev:S,modalTitle:W}))};mt.defaultProps={canUpdate:!1,customLogo:null,hint:null},mt.propTypes={canUpdate:a().bool,customLogo:a().shape({url:a().string,name:a().string}),label:a().string.isRequired,hint:a().string,defaultLogo:a().string.isRequired,onChangeLogo:a().func.isRequired,onResetLogo:a().func.isRequired};var Ct=mt;const gt={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var ee=(o=gt,n)=>(0,k.ZP)(o,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),oe=t.n(ne),ae=(o,n)=>oe()(o,{menuLogo:{display:n.menuLogo},authLogo:{display:n.authLogo}});const pt=(0,e.forwardRef)(({canUpdate:o,projectSettingsStored:n},s)=>{const{formatMessage:i}=(0,c.Z)(),{trackUsage:m}=(0,l.rS)(),{logos:{menu:M,auth:R}}=(0,C.um)(),[{menuLogo:x,authLogo:f},u]=(0,e.useReducer)(ee,gt,()=>ae(gt,n)),z=G=>{u({type:"SET_CUSTOM_MENU_LOGO",value:G})},S=()=>{m("didClickResetLogo",{logo:"menu"}),u({type:"RESET_CUSTOM_MENU_LOGO"})},W=G=>{u({type:"SET_CUSTOM_AUTH_LOGO",value:G})},Z=()=>{m("didClickResetLogo",{logo:"auth"}),u({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(s,()=>({getValues:()=>({menuLogo:x.submit,authLogo:f.submit})})),e.createElement(j.x,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(p.Z,{variant:"delta",as:"h3"},i({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(p.Z,{variant:"pi",textColor:"neutral600"},i({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:$,size:J})),e.createElement(y.r,{paddingTop:4,gap:4},e.createElement(O.P,{col:6,s:12},e.createElement(Ct,{canUpdate:o,customLogo:x.display,defaultLogo:M.default,hint:i({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:i({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:z,onResetLogo:S})),e.createElement(O.P,{col:6,s:12},e.createElement(Ct,{canUpdate:o,customLogo:f.display,defaultLogo:R.default,hint:i({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:i({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:W,onResetLogo:Z}))))});pt.defaultProps={canUpdate:!1,projectSettingsStored:null},pt.propTypes={canUpdate:a().bool,projectSettingsStored:a().shape({menuLogo:a().shape({url:a().string,name:a().string})})};var se=pt,ie=t(48344),le=t.n(ie),Lt=o=>le()(o,(n,s,i)=>{s&&s.url?n[i]={...s,url:(0,l.CR)(s.url)}:n[i]=s},{});const re=async()=>{const{get:o}=(0,l.tg)(),{data:n}=await o("/admin/project-settings");return Lt(n)},de=async o=>{const{post:n}=(0,l.tg)(),{data:s}=await n("/admin/project-settings",o,{headers:{"Content-Type":"multipart/form-data"}});return Lt(s)};var ce=o=>{const n=new FormData;return Object.entries(o).forEach(([s,i])=>{i&&i.rawFile instanceof File&&n.append(s,i.rawFile),i&&i.isReset&&n.append(s,null)}),n};const ue=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var me=()=>{const o=(0,e.useRef)(),n=(0,l.lm)(),{trackUsage:s}=(0,l.rS)(),{formatMessage:i}=(0,c.Z)(),m=(0,E.useQueryClient)();(0,l.go)();const M=(0,l.L7)(),{latestStrapiReleaseTag:R,shouldUpdateStrapi:x,strapiVersion:f}=M,{updateProjectSettings:u}=(0,C.um)(),{allowedActions:{canRead:z,canUpdate:S}}=(0,l.ss)(H.Z.settings["project-settings"]),W=z&&S,{data:Z}=(0,E.useQuery)("project-settings",re,{enabled:z}),G=(0,E.useMutation)(K=>de(K),{async onSuccess(K){let{menuLogo:tt,authLogo:ht}=K;await m.invalidateQueries("project-settings",{refetchActive:!0}),u({menuLogo:tt?.url,authLogo:ht?.url})}}),V=K=>{if(K.preventDefault(),!S)return;const tt=o.current.getValues(),ht=ce(tt);G.mutate(ht,{onSuccess(){const{menuLogo:Te,authLogo:Oe}=tt;Te.rawFile&&s("didChangeLogo",{logo:"menu"}),Oe.rawFile&&s("didChangeLogo",{logo:"auth"}),n({type:"success",message:i({id:"app",defaultMessage:"Saved"})})},onError(){n({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(r.A,null,e.createElement(l.SL,{name:"Application"}),e.createElement(P.o,null,e.createElement("form",{onSubmit:V},e.createElement(B.T,{title:i({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:i({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:W&&e.createElement(T.z,{type:"submit",startIcon:e.createElement(I.Z,null)},i({id:"global.save",defaultMessage:"Save"}))}),e.createElement(F.D,null,e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(p.Z,{variant:"delta",as:"h3"},i({id:"global.details",defaultMessage:"Details"})),e.createElement(y.r,{gap:5,as:"dl"},e.createElement(O.P,{col:6,s:12},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},i({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(g.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(p.Z,null,"v",f),x&&e.createElement(D.r,{href:`https://github.com/strapi/strapi/releases/tag/${R}`,isExternal:!0,endIcon:e.createElement(U.Z,null)},i({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(O.P,{col:6,s:12},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},i({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(g.k,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(p.Z,null,i({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:M.communityEdition})),e.createElement(D.r,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(U.Z,null)},i({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(O.P,{col:6,s:12},e.createElement(p.Z,{variant:"sigma",textColor:"neutral600",as:"dt"},i({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(p.Z,{as:"dd"},M.nodeVersion)),e.createElement(ue,null))),z&&Z&&e.createElement(se,{canUpdate:S,ref:o,projectSettingsStored:Z}))))))},ge=t(3704),pe=t.n(ge),he=o=>pe()(o,s=>s.links).map(s=>(0,v.ot)(s.Component,s.to,s.exact||!1)),Ee=o=>o.filter(n=>!n.links.every(s=>s.isDisplayed===!1)),fe=[{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)(),...fe],Me=t(14911),xe=t(90700),Ce=t(78090),Le=t(77013),ye=t(79318),Se=t(66618);const yt=({menu:o})=>{const{formatMessage:n}=(0,c.Z)(),{trackUsage:s}=(0,l.rS)(),{pathname:i}=(0,d.TH)(),M=Ee(o).map(f=>({...f,title:f.intlLabel,links:f.links.map(u=>({...u,title:u.intlLabel,name:u.id}))})),R=n({id:"global.settings",defaultMessage:"Settings"}),x=(f=null)=>{s("willNavigate",{from:i,to:f})};return e.createElement(xe.m,{ariaLabel:R},e.createElement(Ce.p,{label:R}),e.createElement(Le.Z,null,M.map(f=>e.createElement(ye.D,{key:f.id,label:n(f.intlLabel)},f.links.map(u=>e.createElement(Se.E,{as:Me.OL,withBullet:u.hasNotification,to:u.to,onClick:()=>x(u.to),key:u.id},n(u.intlLabel)))))))};yt.propTypes={menu:a().array.isRequired};var Re=yt;function St(){const{settingId:o}=(0,d.UO)(),{settings:n}=(0,l.j1)(),{formatMessage:s}=(0,c.Z)(),{isLoading:i,menu:m}=(0,C.Te)(),M=(0,e.useMemo)(()=>(0,v.WW)(ve.map(({to:f,Component:u,exact:z})=>(0,v.ot)(u,f,z))),[]),R=he(n);if(i)return e.createElement(l.dO,null);if(!o)return e.createElement(d.l_,{to:"/settings/application-infos"});const x=s({id:"global.settings",defaultMessage:"Settings"});return e.createElement(r.A,{sideNav:e.createElement(Re,{menu:m})},e.createElement(L.q,{title:x}),e.createElement(d.rs,null,e.createElement(d.AW,{path:"/settings/application-infos",component:me,exact:!0}),M,R))}var Pe=(0,e.memo)(St)},17891:function(A,h){"use strict";const t=()=>null;h.Z=t},75936:function(A,h){"use strict";const t=[];h.Z=t},78999:function(A,h,t){"use strict";var e=t(32735),l=t(67879),d=t(5803),r=t(49372),c=t(87933),L=t(63919),C=t(99140),v=t(41502),E=t(69932),P=t(47361),B=t(24989),T=t(58414);const F="https://cloud.strapi.io/profile/billing",g="https://strapi.io/billing/request-seats",p=()=>{const{formatMessage:y}=(0,l.Z)(),{license:O}=(0,T.q5)(),{licenseLimitStatus:D,enforcementUserCount:I,permittedSeats:U,isHostedOnStrapiCloud:H}=O?.data??{};return U?e.createElement(d.P,{col:6,s:12},e.createElement(r.Z,{variant:"sigma",textColor:"neutral600"},y({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(c.k,{gap:2},e.createElement(c.k,null,e.createElement(r.Z,{as:"p"},y({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:U,enforcementUserCount:I,text:Q=>e.createElement(r.Z,{fontWeight:"semiBold",textColor:I>U?"danger500":null},Q)}))),D==="OVER_LIMIT"&&e.createElement(L.u,{description:y({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(C.J,{width:`${(0,B.Q1)(14)}rem`,height:`${(0,B.Q1)(14)}rem`,color:"danger500",as:E.Z}))),e.createElement(v.r,{href:H?F:g,isExternal:!0,endIcon:e.createElement(P.Z,null)},y({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:H}))):null};h.Z=p},63775:function(A,h,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 Promise.all([t.e(6858),t.e(6970),t.e(8155)]).then(t.bind(t,96594))},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}),h.Z=e},3704:function(A,h,t){var e=t(40314),l=t(37213);function d(r,c){return e(l(r,c),1)}A.exports=d},37213:function(A,h,t){var e=t(26460),l=t(88904),d=t(52920),r=t(77236);function c(L,C){var v=r(L)?e:d;return v(L,l(C,3))}A.exports=c},96709:function(A,h,t){"use strict";t.d(h,{A:function(){return v}});var e=t(74512),l=t(32735),d=t(60216),r=t(8471),c=t(72850);const L=(0,r.ZP)(c.x)`
10
- display: grid;
11
- grid-template-columns: ${({hasSideNav:E})=>E?"auto 1fr":"1fr"};
12
- `,C=(0,r.ZP)(c.x)`
13
- overflow-x: hidden;
14
- `,v=({sideNav:E,children:P})=>(0,e.jsxs)(L,{hasSideNav:!!E,children:[E,(0,e.jsx)(C,{paddingBottom:10,children:P})]});v.defaultProps={sideNav:void 0},v.propTypes={children:d.node.isRequired,sideNav:d.node}},90700:function(A,h,t){"use strict";t.d(h,{m:function(){return v}});var e=t(74512),l=t(32735),d=t(60216),r=t(8471),c=t(15335);const L=`${232/16}rem`,C=(0,r.ZP)(c.r)`
15
- width: ${L};
16
- background: ${({theme:E})=>E.colors.neutral100};
17
- position: sticky;
18
- top: 0;
19
- height: 100vh;
20
- overflow-y: auto;
21
- border-right: 1px solid ${({theme:E})=>E.colors.neutral200};
22
- z-index: 1;
23
- `,v=({ariaLabel:E,...P})=>(0,e.jsx)(C,{"aria-label":E,as:"nav",...P});v.propTypes={ariaLabel:d.string.isRequired}},78090:function(A,h,t){"use strict";t.d(h,{p:function(){return O}});var e=t(74512),l=t(32735),d=t(6792),r=t(60216),c=t(8471),L=t(94486),C=t(74971);const v=D=>{const I=(0,l.useRef)();return(0,l.useEffect)(()=>{I.current=D}),I.current};var E=t(9026),P=t(72850),B=t(89252),T=t(61774),F=t(87933),g=t(49372),p=t(50563);const y=(0,c.ZP)(E.i)`
24
- width: ${24/16}rem;
25
- background-color: ${({theme:D})=>D.colors.neutral200};
26
- `,O=({as:D,label:I,searchLabel:U,searchable:H,onChange:Q,value:a,onClear:j,onSubmit:$,id:J})=>{const[b,Y]=(0,l.useState)(!1),q=v(b),_=(0,C.M)(J),X=(0,l.useRef)(),w=(0,l.useRef)();(0,l.useEffect)(()=>{b&&X.current&&X.current.focus(),q&&!b&&w.current&&w.current.focus()},[b,q]);const et=()=>{Y(N=>!N)},nt=N=>{j(N),X.current.focus()},ot=N=>{N.relatedTarget?.id!==_&&Y(!1)},k=N=>{N.key===L.y.ESCAPE&&Y(!1)};return b?(0,e.jsxs)(P.x,{paddingLeft:4,paddingTop:5,paddingBottom:2,paddingRight:4,children:[(0,e.jsx)(B.U,{children:(0,e.jsx)(T.w,{name:"searchbar",value:a,onChange:Q,placeholder:"e.g: strapi-plugin-abcd",onKeyDown:k,ref:X,onBlur:ot,onClear:nt,onSubmit:$,clearLabel:"Clear",size:"S",children:U})}),(0,e.jsx)(P.x,{paddingLeft:2,paddingTop:4,children:(0,e.jsx)(y,{})})]}):(0,e.jsxs)(P.x,{paddingLeft:6,paddingTop:6,paddingBottom:2,paddingRight:4,children:[(0,e.jsxs)(F.k,{justifyContent:"space-between",alignItems:"flex-start",children:[(0,e.jsx)(g.Z,{variant:"beta",as:D,children:I}),H&&(0,e.jsx)(p.h,{ref:w,onClick:et,label:U,icon:(0,e.jsx)(d.Z,{})})]}),(0,e.jsx)(P.x,{paddingTop:4,children:(0,e.jsx)(y,{})})]})};O.defaultProps={as:"h2",searchable:!1,onChange(){},onClear(){},onSubmit(){},value:"",searchLabel:"",id:void 0},O.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(A,h,t){"use strict";t.d(h,{E:function(){return F}});var e=t(74512),l=t(32735),d=t(56243),r=t(60216),c=t(8471),L=t(72850),C=t(49372),v=t(87933),E=t(62499);const P=(0,c.ZP)(L.x)`
27
- display: flex;
28
- align-items: center;
29
- justify-content: space-between;
30
- text-decoration: none;
31
- color: ${({theme:g})=>g.colors.neutral800};
32
- svg > * {
33
- fill: ${({theme:g})=>g.colors.neutral600};
34
- }
35
-
36
- &.active {
37
- ${({theme:g})=>`
38
- background-color: ${g.colors.primary100};
39
- border-right: 2px solid ${g.colors.primary600};
40
- svg > * {
41
- fill: ${g.colors.primary700};
42
- }
43
- ${C.Z} {
44
- color: ${g.colors.primary700};
45
- font-weight: 500;
46
- }
47
- `}
48
- }
49
-
50
- &:focus-visible {
51
- outline-offset: -2px;
52
- }
53
- `,B=(0,c.ZP)(d.Z)`
54
- width: ${12/16}rem;
55
- height: ${4/16}rem;
56
- * {
57
- fill: ${({theme:g,$active:p})=>p?g.colors.primary600:g.colors.neutral600};
58
- }
59
- `,T=c.ZP.div`
60
- svg {
61
- height: ${12/16}rem;
62
- width: ${12/16}rem;
63
- }
64
- `,F=l.forwardRef(({children:g,icon:p,withBullet:y,as:O,isSubSectionChild:D,...I},U)=>(0,e.jsxs)(P,{as:O,icon:p,background:"neutral100",paddingLeft:D?9:7,paddingBottom:2,paddingTop:2,ref:U,...I,children:[(0,e.jsxs)(v.k,{children:[p?(0,e.jsx)(T,{children:p}):(0,e.jsx)(B,{}),(0,e.jsx)(L.x,{paddingLeft:2,children:(0,e.jsx)(C.Z,{as:"span",children:g})})]}),y&&(0,e.jsx)(L.x,{as:v.k,paddingRight:4,children:(0,e.jsx)(B,{$active:!0})})]}));F.displayName="SubNavLink",F.defaultProps={as:E.f,icon:null,isSubSectionChild:!1,withBullet:!1},F.propTypes={as:r.elementType,children:r.node.isRequired,icon:r.element,isSubSectionChild:r.bool,withBullet:r.bool}},79318:function(A,h,t){"use strict";t.d(h,{D:function(){return p}});var e=t(74512),l=t(32735),d=t(60216),r=t(8471),c=t(16899),L=t(87933),C=t(72850),v=t(49372);const E=(0,r.ZP)(L.k)`
65
- border: none;
66
- padding: 0;
67
- background: transparent;
68
- `,P=r.ZP.div`
69
- display: flex;
70
- align-items: center;
71
- transform: rotateX(${({rotated:y})=>y?"0deg":"180deg"});
72
- `,B=({collapsable:y,label:O,onClick:D,ariaExpanded:I,ariaControls:U})=>y?(0,e.jsxs)(E,{as:"button",onClick:D,"aria-expanded":I,"aria-controls":U,textAlign:"left",children:[(0,e.jsx)(C.x,{paddingRight:1,children:(0,e.jsx)(v.Z,{variant:"sigma",textColor:"neutral600",children:O})}),y&&(0,e.jsx)(P,{rotated:I,children:(0,e.jsx)(c.Z,{"aria-hidden":!0})})]}):(0,e.jsx)(E,{children:(0,e.jsx)(C.x,{paddingRight:1,children:(0,e.jsx)(v.Z,{variant:"sigma",textColor:"neutral600",children:O})})});B.defaultProps={ariaControls:null,ariaExpanded:null,collapsable:!1,onClick(){}},B.propTypes={ariaControls:d.string,ariaExpanded:d.bool,collapsable:d.bool,label:d.string.isRequired,onClick:d.func};var T=t(74971),F=t(6518);const g=(0,r.ZP)(C.x)`
73
- svg {
74
- height: ${4/16}rem;
75
- path {
76
- fill: ${({theme:y})=>y.colors.neutral500};
77
- }
78
- }
79
- `,p=({collapsable:y,label:O,badgeLabel:D,children:I,id:U})=>{const[H,Q]=(0,l.useState)(!0),a=(0,T.M)(U);return(0,e.jsxs)(L.k,{direction:"column",alignItems:"stretch",gap:1,children:[(0,e.jsx)(g,{paddingLeft:6,paddingTop:2,paddingBottom:2,paddingRight:4,children:(0,e.jsxs)(C.x,{position:"relative",paddingRight:D?6:0,children:[(0,e.jsx)(B,{onClick:()=>{Q(j=>!j)},ariaExpanded:H,ariaControls:a,collapsable:y,label:O}),D&&(0,e.jsx)(F.C,{backgroundColor:"neutral150",textColor:"neutral600",position:"absolute",right:0,top:"50%",transform:"translateY(-50%)",children:D})]})}),(!y||H)&&(0,e.jsx)("ol",{id:a,children:l.Children.map(I,(j,$)=>(0,e.jsx)("li",{children:j},$))})]})};p.defaultProps={badgeLabel:null,collapsable:!1,id:void 0},p.propTypes={badgeLabel:d.string,children:d.node.isRequired,collapsable:d.bool,id:d.string,label:d.string.isRequired}},77013:function(A,h,t){"use strict";t.d(h,{Z:function(){return L}});var e=t(74512),l=t(32735),d=t(60216),r=t(72850),c=t(87933);const L=({children:C,spacing:v=2,horizontal:E=!1,...P})=>(0,e.jsx)(r.x,{paddingTop:2,paddingBottom:4,children:(0,e.jsx)(c.k,{as:"ol",gap:v,direction:E?"row":"column",alignItems:E?"center":"stretch",...P,children:l.Children.map(C,(B,T)=>(0,e.jsx)("li",{children:B},T))})});L.propTypes={children:d.node.isRequired}},56243:function(A,h,t){"use strict";t.d(h,{Z:function(){return d}});var e=t(74512);const l=r=>(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 4 4",...r,children:(0,e.jsx)("rect",{width:4,height:4,fill:"#A5A5BA",rx:2})}),d=l}}]);
@@ -1,63 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5538],{78834:function(I,g,e){"use strict";e.d(g,{Z:function(){return et}});var t=e(24346),r=e(24989),n=e(32735),E=e(67879),p=e(60216),m=e.n(p),P=e(27649),A=e(72850),L=e(49372),B=e(87933),O=e(10369),h=e(41415),b=e(92802),v=e(954),k=e(10190);const y=({onSubmit:N,schema:Fe})=>{const{formatMessage:K}=(0,E.Z)();return n.createElement(v.ZP,null,n.createElement(P.o,null,n.createElement(v.bU,null,n.createElement(b.J9,{enableReinitialize:!0,initialValues:{email:""},onSubmit:N,validationSchema:Fe,validateOnChange:!1},({values:Ne,errors:he,handleChange:He})=>n.createElement(r.l0,{noValidate:!0},n.createElement(v.sg,null,n.createElement(k.Z,null),n.createElement(A.x,{paddingTop:6,paddingBottom:7},n.createElement(L.Z,{as:"h1",variant:"alpha"},K({id:"Auth.form.button.password-recovery",defaultMessage:"Password Recovery"}))),he.errorMessage&&n.createElement(L.Z,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},K({id:he.errorMessage,defaultMessage:"An error occurred"}))),n.createElement(B.k,{direction:"column",alignItems:"stretch",gap:6},n.createElement(O.o,{error:he.email?K({id:he.email,defaultMessage:"This email is invalid."}):"",value:Ne.email,onChange:He,label:K({id:"Auth.form.email.label",defaultMessage:"Email"}),placeholder:K({id:"Auth.form.email.placeholder",defaultMessage:"kai@doe.com"}),name:"email",required:!0}),n.createElement(h.z,{type:"submit",fullWidth:!0},K({id:"Auth.form.button.forgot-password",defaultMessage:"Send Email"})))))),n.createElement(B.k,{justifyContent:"center"},n.createElement(A.x,{paddingTop:4},n.createElement(r.rU,{to:"/auth/login"},K({id:"Auth.link.ready",defaultMessage:"Ready to sign in?"}))))))};y.defaultProps={onSubmit:N=>N.preventDefault()},y.propTypes={onSubmit:m().func,schema:m().shape({type:m().string.isRequired}).isRequired};var U=y,Z=()=>{const{formatMessage:N}=(0,E.Z)();return n.createElement(v.ZP,null,n.createElement(P.o,null,n.createElement(v.bU,null,n.createElement(v.sg,null,n.createElement(k.Z,null),n.createElement(A.x,{paddingTop:6,paddingBottom:7},n.createElement(L.Z,{as:"h1",variant:"alpha"},N({id:"app.containers.AuthPage.ForgotPasswordSuccess.title",defaultMessage:"Email sent"}))),n.createElement(L.Z,null,N({id:"app.containers.AuthPage.ForgotPasswordSuccess.text.email",defaultMessage:"It can take a few minutes to receive your password recovery link."})),n.createElement(A.x,{paddingTop:4},n.createElement(L.Z,null,N({id:"app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin",defaultMessage:"If you do not receive this link, please contact your administrator."}))))),n.createElement(B.k,{justifyContent:"center"},n.createElement(A.x,{paddingTop:4},n.createElement(r.rU,{to:"/auth/login"},N({id:"Auth.link.signin",defaultMessage:"Sign in"}))))))},ne=()=>{const{formatMessage:N}=(0,E.Z)(),K=(0,r.aM)().get("info")||N({id:"Auth.components.Oops.text",defaultMessage:"Your account has been suspended."});return n.createElement(v.ZP,null,n.createElement(P.o,null,n.createElement(v.bU,null,n.createElement(v.sg,null,n.createElement(k.Z,null),n.createElement(A.x,{paddingTop:6,paddingBottom:7},n.createElement(L.Z,{as:"h1",variant:"alpha"},N({id:"Auth.components.Oops.title",defaultMessage:"Oops..."}))),n.createElement(L.Z,null,K),n.createElement(A.x,{paddingTop:4},n.createElement(L.Z,null,N({id:"Auth.components.Oops.text.admin",defaultMessage:"If this is a mistake, please contact your administrator."}))))),n.createElement(B.k,{justifyContent:"center"},n.createElement(A.x,{paddingTop:4},n.createElement(r.rU,{to:"/auth/login"},N({id:"Auth.link.signin",defaultMessage:"Sign in"}))))))},C=e(8471),D=e(9086),T=e.n(D),J=e(53038),ie=e(84306),Q=e(15335),o=e(5803),ge=e(8284),pe=e(54894),fe=e(60492),Ue=e(72218);const Re=C.ZP.a`
2
- color: ${({theme:N})=>N.colors.primary600};
3
- `,Ye=(0,C.ZP)(O.o)`
4
- ::-ms-reveal {
5
- display: none;
6
- }
7
- `,qe=({authType:N,fieldsToDisable:Fe,noSignin:K,onSubmit:Ne,schema:he})=>{const He=(0,r.lm)(),{push:ae}=(0,J.k6)(),[Ee,Ie]=(0,n.useState)(!1),[ve,je]=(0,n.useState)(!1),[Ae,tt]=(0,n.useState)(0),[Ke,mt]=(0,n.useState)({}),{trackUsage:lt}=(0,r.rS)(),{formatMessage:z}=(0,E.Z)(),ut=(0,r.aM)(),{formatAPIError:gt}=(0,r.So)(),Ze=ut.get("registrationToken");(0,n.useEffect)(()=>{Ze&&(async()=>{try{const{data:{data:V}}=await ie.default.get(`${strapi.backendURL}/admin/registration-info?registrationToken=${Ze}`);V&&mt(V)}catch(V){const X=gt(V);He({type:"warning",message:X}),ae(`/auth/oops?info=${encodeURIComponent(X)}`)}})()},[Ze]);function st(le){return Object.entries(le).reduce((V,[X,me])=>{let Pe=me;return!["password","confirmPassword"].includes(X)&&typeof me=="string"&&(Pe=Pe.trim()),V[X]=Pe,V},{})}return n.createElement(v.ZP,null,n.createElement(v.bU,null,n.createElement(b.J9,{enableReinitialize:!0,initialValues:{firstname:Ke.firstname||"",lastname:Ke.lastname||"",email:Ke.email||"",password:"",confirmPassword:"",registrationToken:Ze||void 0,news:!1},onSubmit:async(le,V)=>{const X=st(le);try{await he.validate(X,{abortEarly:!1}),Ae>0&&N==="register-admin"&&lt("didSubmitWithErrorsFirstAdmin",{count:Ae.toString()}),Ne(Ze?{userInfo:T()(X,["registrationToken"]),registrationToken:Ze}:X,V)}catch(me){const Pe=(0,r.CJ)(me);tt(Ae+1),V.setErrors(Pe)}},validateOnChange:!1},({values:le,errors:V,handleChange:X})=>n.createElement(r.l0,{noValidate:!0},n.createElement(P.o,null,n.createElement(B.k,{direction:"column",alignItems:"center",gap:3},n.createElement(k.Z,null),n.createElement(L.Z,{as:"h1",variant:"alpha",textAlign:"center"},z({id:"Auth.form.welcome.title",defaultMessage:"Welcome to Strapi!"})),n.createElement(L.Z,{variant:"epsilon",textColor:"neutral600",textAlign:"center"},z({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(B.k,{direction:"column",alignItems:"stretch",gap:6,marginTop:7},n.createElement(Q.r,{gap:4},n.createElement(o.P,{col:6},n.createElement(O.o,{name:"firstname",required:!0,value:le.firstname,error:V.firstname?z(V.firstname):void 0,onChange:X,label:z({id:"Auth.form.firstname.label",defaultMessage:"Firstname"})})),n.createElement(o.P,{col:6},n.createElement(O.o,{name:"lastname",value:le.lastname,onChange:X,label:z({id:"Auth.form.lastname.label",defaultMessage:"Lastname"})}))),n.createElement(O.o,{name:"email",disabled:Fe.includes("email"),value:le.email,onChange:X,error:V.email?z(V.email):void 0,required:!0,label:z({id:"Auth.form.email.label",defaultMessage:"Email"}),type:"email"}),n.createElement(Ye,{name:"password",onChange:X,value:le.password,error:V.password?z(V.password):void 0,endAction:n.createElement(Ue.Z,{onClick:me=>{me.preventDefault(),Ie(Pe=>!Pe)},label:z(Ee?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},Ee?n.createElement(pe.Z,null):n.createElement(fe.Z,null)),hint:z({id:"Auth.form.password.hint",defaultMessage:"Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number"}),required:!0,label:z({id:"global.password",defaultMessage:"Password"}),type:Ee?"text":"password"}),n.createElement(Ye,{name:"confirmPassword",onChange:X,value:le.confirmPassword,error:V.confirmPassword?z(V.confirmPassword):void 0,endAction:n.createElement(Ue.Z,{onClick:me=>{me.preventDefault(),je(Pe=>!Pe)},label:z(ve?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},ve?n.createElement(pe.Z,null):n.createElement(fe.Z,null)),required:!0,label:z({id:"Auth.form.confirmPassword.label",defaultMessage:"Confirm Password"}),type:ve?"text":"password"}),n.createElement(ge.X,{onValueChange:me=>{X({target:{value:me,name:"news"}})},value:le.news,name:"news","aria-label":"news"},z({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(Re,{target:"_blank",href:"https://strapi.io/terms",rel:"noreferrer"},z({id:"Auth.privacy-policy-agreement.terms",defaultMessage:"terms"})),policy:n.createElement(Re,{target:"_blank",href:"https://strapi.io/privacy",rel:"noreferrer"},z({id:"Auth.privacy-policy-agreement.policy",defaultMessage:"policy"}))})),n.createElement(h.z,{fullWidth:!0,size:"L",type:"submit"},z({id:"Auth.form.button.register",defaultMessage:"Let's start"})))))),!K&&n.createElement(A.x,{paddingTop:4},n.createElement(B.k,{justifyContent:"center"},n.createElement(r.rU,{label:"Auth.link.signin",to:"/auth/login"},z({id:"Auth.link.signin.account",defaultMessage:"Already have an account?"}))))))};qe.defaultProps={fieldsToDisable:[],noSignin:!1,onSubmit:N=>N.preventDefault()},qe.propTypes={authType:m().string.isRequired,fieldsToDisable:m().array,noSignin:m().bool,onSubmit:m().func,schema:m().shape({validate:m().func.isRequired,type:m().string.isRequired}).isRequired};var we=qe;const rt=(0,C.ZP)(O.o)`
8
- ::-ms-reveal {
9
- display: none;
10
- }
11
- `,We=({onSubmit:N,schema:Fe})=>{const[K,Ne]=(0,n.useState)(!1),[he,He]=(0,n.useState)(!1),{formatMessage:ae}=(0,E.Z)();return n.createElement(v.ZP,null,n.createElement(P.o,null,n.createElement(v.bU,null,n.createElement(b.J9,{enableReinitialize:!0,initialValues:{password:"",confirmPassword:""},onSubmit:N,validationSchema:Fe,validateOnChange:!1},({values:Ee,errors:Ie,handleChange:ve})=>n.createElement(r.l0,{noValidate:!0},n.createElement(v.sg,null,n.createElement(k.Z,null),n.createElement(A.x,{paddingTop:6,paddingBottom:7},n.createElement(L.Z,{as:"h1",variant:"alpha"},ae({id:"global.reset-password",defaultMessage:"Reset password"}))),Ie.errorMessage&&n.createElement(L.Z,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},ae({id:Ie.errorMessage,defaultMessage:"An error occurred"}))),n.createElement(B.k,{direction:"column",alignItems:"stretch",gap:6},n.createElement(rt,{name:"password",onChange:ve,value:Ee.password,error:Ie.password?ae({id:Ie.password,defaultMessage:"This field is required."}):void 0,endAction:n.createElement(Ue.Z,{onClick:je=>{je.preventDefault(),Ne(Ae=>!Ae)},label:ae(K?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},K?n.createElement(pe.Z,null):n.createElement(fe.Z,null)),hint:ae({id:"Auth.form.password.hint",defaultMessage:"Password must contain at least 8 characters, 1 uppercase, 1 lowercase and 1 number"}),required:!0,label:ae({id:"global.password",defaultMessage:"Password"}),type:K?"text":"password"}),n.createElement(rt,{name:"confirmPassword",onChange:ve,value:Ee.confirmPassword,error:Ie.confirmPassword?ae({id:Ie.confirmPassword,defaultMessage:"This value is required."}):void 0,endAction:n.createElement(Ue.Z,{onClick:je=>{je.preventDefault(),He(Ae=>!Ae)},label:ae(K?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},he?n.createElement(pe.Z,null):n.createElement(fe.Z,null)),required:!0,label:ae({id:"Auth.form.confirmPassword.label",defaultMessage:"Confirm Password"}),type:he?"text":"password"}),n.createElement(h.z,{fullwidth:!0,type:"submit"},ae({id:"global.change-password",defaultMessage:"Change password"})))))),n.createElement(B.k,{justifyContent:"center"},n.createElement(A.x,{paddingTop:4},n.createElement(r.rU,{to:"/auth/login"},ae({id:"Auth.link.ready",defaultMessage:"Ready to sign in?"}))))))};We.defaultProps={onSubmit:N=>N.preventDefault()},We.propTypes={onSubmit:m().func,schema:m().shape({type:m().string.isRequired}).isRequired};var Je=We;const Ge=(()=>window&&window.strapi&&window.strapi.isEE?e(98768).Z:e(5365).Z)();var et={"forgot-password":{Component:U,endPoint:"forgot-password",fieldsToDisable:[],fieldsToOmit:[],schema:t.Ry().shape({email:t.Z_().email(r.I0.email).required(r.I0.required)}),inputsPrefix:""},"forgot-password-success":{Component:Z,endPoint:"",fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""},login:{Component:Ge,endPoint:"login",fieldsToDisable:[],fieldsToOmit:["rememberMe"],schema:t.Ry().shape({email:t.Z_().email(r.I0.email).required(r.I0.required),password:t.Z_().required(r.I0.required),rememberMe:t.Xg().nullable()}),inputsPrefix:""},oops:{Component:ne,endPoint:null,fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""},register:{Component:we,endPoint:"register",fieldsToDisable:["email"],fieldsToOmit:["userInfo.confirmPassword","userInfo.news","userInfo.email"],schema:t.Ry().shape({firstname:t.Z_().trim().required(r.I0.required),lastname:t.Z_(),password:t.Z_().min(8,r.I0.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.I0.required),confirmPassword:t.Z_().oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").required(r.I0.required),registrationToken:t.Z_().required(r.I0.required)}),inputsPrefix:"userInfo."},"register-admin":{Component:we,endPoint:"register-admin",noSignin:!0,fieldsToDisable:[],fieldsToOmit:["confirmPassword","news"],schema:t.Ry().shape({firstname:t.Z_().trim().required(r.I0.required),lastname:t.Z_(),password:t.Z_().min(8,r.I0.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.I0.required),email:t.Z_().email(r.I0.email).strict().lowercase(r.I0.lowercase).required(r.I0.required),confirmPassword:t.Z_().oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").required(r.I0.required)}),inputsPrefix:""},"reset-password":{Component:Je,endPoint:"reset-password",fieldsToDisable:[],fieldsToOmit:["confirmPassword"],schema:t.Ry().shape({password:t.Z_().min(8,r.I0.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.I0.required),confirmPassword:t.Z_().oneOf([t.iH("password"),null],"components.Input.error.password.noMatch").required(r.I0.required)})}}},83983:function(I,g,e){"use strict";e.d(g,{Z:function(){return P}});var t=e(86349),r=e.n(t),E={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 p=(()=>window&&window.strapi&&window.strapi.isEE?e(99568).Z:e(26123).Z)();var P=r()(E,p)},39691:function(I,g,e){"use strict";e.r(g),e.d(g,{default:function(){return ds}});var t=e(32735),r=e(14911),n=e(12301),E=e(65810),p=e(86349),m=e.n(p),P=e(88423),A=e.n(P),L=e(93839),B=e.n(L),O=e(56784),h=e.n(O),b=e(74758),v=e(78246),y=()=>{const c=[];return{register(s){c.push(s)},delete(s){c.splice(c.indexOf(s),1)},runWaterfall(s,a){return c.reduce((u,f)=>f(u,a),s)},async runWaterfallAsync(s,a){let u=s;for(const f of c)u=await f(u,a);return u},runSeries(...s){return c.map(a=>a(...s))},async runSeriesAsync(...s){const a=[];for(const u of c)a.push(await u(...s));return a},runParallel(...s){return Promise.all(c.map(a=>a(...s)))}}},U=e(6680);const W=(c,s)=>{let a=U.compose;const u=[];c.forEach(R=>{u.push(R())});const f=(0,U.createStore)(Z(s,{}),{},a((0,U.applyMiddleware)(...u)));return f.asyncReducers={},f.injectReducer=(R,S)=>{f.asyncReducers[R]=S,f.replaceReducer(Z(s,f.asyncReducers))},f},Z=(c,s)=>(0,U.combineReducers)({...c,...s});var se=W,ne=e(20284),C=e(53038),D=e(84306),T=e(24989),J=e(10728),ie=e(67879),Q=e(60216),o=e.n(Q);const ge=({component:c,path:s,...a})=>{const{pathname:u,search:f}=(0,C.TH)();return t.createElement(C.AW,{path:s,render:R=>T.I8.getToken()!==null?t.createElement(c,{...a,...R}):t.createElement(C.l_,{to:{pathname:"/auth/login",search:u!=="/"&&`?redirectTo=${encodeURIComponent(`${u}${f}`)}`}})})};ge.propTypes={component:o().any.isRequired,path:o().string.isRequired};var pe=(0,t.memo)(ge),fe=e(8997),Ue=e(20011),Re=e(39935),Ye=e.n(Re),qe=e(33795),we=e.n(qe),rt=e(9086),We=e.n(rt);const Je="GUIDED_TOUR_CURRENT_STEP",Ge="GUIDED_TOUR_COMPLETED_STEPS",dt="GUIDED_TOUR_SKIPPED",et=JSON.parse,N=JSON.stringify;var K={clear(){localStorage.removeItem(Je),localStorage.removeItem(Ge)},addCompletedStep(c){const s=et(localStorage.getItem(Ge))?.slice()||[];s.includes(c)||(s.push(c),localStorage.setItem(Ge,N(s)))},addCurrentStep(c){localStorage.setItem(Je,N(c))},setSkipped(c){localStorage.setItem(dt,N(c))},get(c){return et(localStorage.getItem(c))}},Ne=e(20139),he=e(41832),ae=c=>c,Ee=e(97889),Ie=e(3040),ve=e.n(Ie);const je={formErrors:{},modifiedData:{},requestError:null},Ae=(c,s)=>(0,Ee.ZP)(c,a=>{switch(s.type){case"ON_CHANGE":{ve()(a.modifiedData,s.keys.split("."),s.value);break}case"RESET_PROPS":return je;case"SET_DATA":{a.modifiedData=s.data;break}case"SET_ERRORS":{a.formErrors=s.errors;break}case"SET_REQUEST_ERROR":{a.requestError={errorMessage:s.errorMessage,errorStatus:s.errorStatus};break}default:return a}}),tt=(()=>window&&window.strapi&&window.strapi.isEE?e(7277).Z:e(78834).Z)(),Ke=c=>{let{hasAdmin:s,setHasAdmin:a}=c;const{push:u,location:{search:f}}=(0,C.k6)(),{changeLocale:R}=(0,Ne.Z)(),{setSkipped:S}=(0,T.c1)(),{trackUsage:j}=(0,T.rS)(),{params:{authType:F}}=(0,C.$B)("/auth/:authType"),ee=(0,T.aM)(),{Component:ce,endPoint:H,fieldsToDisable:re,fieldsToOmit:oe,inputsPrefix:Me,schema:_e,...ye}=we()(tt,F,{}),[{formErrors:ke,modifiedData:Se,requestError:ct},ot]=(0,t.useReducer)(Ae,je,ae),Ve=D.default.CancelToken.source();(0,t.useEffect)(()=>()=>{Ve.cancel("Component unmounted")},[]),(0,t.useEffect)(()=>{ot({type:"RESET_PROPS"})},[F]);const Lt=te=>{let{target:{name:Te,value:de}}=te;ot({type:"ON_CHANGE",keys:Te,value:de})},ms=async(te,Te)=>{let{setSubmitting:de,setErrors:De}=Te;de(!0);const Be=We()(te,oe),Y=`/admin/${H}`;F==="login"&&await ps(te,Y,{setSubmitting:de,setErrors:De}),(F==="register"||F==="register-admin")&&await fs(te,Y,{setSubmitting:de,setErrors:De}),F==="forgot-password"&&await gs(Be,Y,{setSubmitting:de,setErrors:De}),F==="reset-password"&&await hs(Be,Y,{setSubmitting:de,setErrors:De})},gs=async(te,Te,de)=>{let{setSubmitting:De,setErrors:Be}=de;try{await(0,D.default)({method:"POST",url:`${strapi.backendURL}${Te}`,data:te,cancelToken:Ve.token}),u("/auth/forgot-password-success")}catch(Y){console.error(Y),Be({errorMessage:"notification.error"})}finally{De(!1)}},ps=async(te,Te,de)=>{let{setSubmitting:De,setErrors:Be}=de;try{const{data:{data:{token:Y,user:ue}}}=await(0,D.default)({method:"POST",url:`${strapi.backendURL}${Te}`,data:We()(te,oe),cancelToken:Ve.token});ue.preferedLanguage&&R(ue.preferedLanguage),T.I8.setToken(Y,te.rememberMe),T.I8.setUserInfo(ue,te.rememberMe),Qt()}catch(Y){if(Y.response){const ue=we()(Y,["response","data","error","message"],"Something went wrong");if(Ye()(ue).toLowerCase()==="usernotactive"){u("/auth/oops"),ot({type:"RESET_PROPS"});return}Be({errorMessage:ue})}}finally{De(!1)}},fs=async(te,Te,de)=>{let{setSubmitting:De,setErrors:Be}=de;try{j("willCreateFirstAdmin");const{data:{data:{token:Y,user:ue}}}=await(0,D.default)({method:"POST",url:`${strapi.backendURL}${Te}`,data:We()(te,oe),cancelToken:Ve.token});T.I8.setToken(Y,!1),T.I8.setUserInfo(ue,!1),De(!1),a(!0);const{roles:it}=ue;if(it&&it.find(Es=>{let{code:vs}=Es;return vs==="strapi-super-admin"})&&(K.setSkipped(!1),S(!1),j("didLaunchGuidedtour")),F==="register"&&te.userInfo.news===!0||F==="register-admin"&&te.news===!0){u({pathname:"/usecase",search:`?hasAdmin=${s}`});return}Qt()}catch(Y){if(j("didNotCreateFirstAdmin"),Y.response){const{data:ue}=Y.response,it=(0,he.Z)(ue);Be({apiErrors:it})}}},hs=async(te,Te,de)=>{let{setErrors:De,setSubmitting:Be}=de;try{const{data:{data:{token:Y,user:ue}}}=await(0,D.default)({method:"POST",url:`${strapi.backendURL}${Te}`,data:{...te,resetPasswordToken:ee.get("code")},cancelToken:Ve.token});T.I8.setToken(Y,!1),T.I8.setUserInfo(ue,!1),u("/")}catch(Y){if(Y.response){const ue=we()(Y,["response","data","message"],"Something went wrong"),it=we()(Y,["response","data","statusCode"],400);ot({type:"SET_REQUEST_ERROR",errorMessage:ue,errorStatus:it}),De({errorMessage:ue})}}finally{Be(!1)}},Qt=()=>{if(F==="login"){const te=ee.get("redirectTo"),Te=te?decodeURIComponent(te):"/";u(Te)}else u("/")};return!tt[F]||s&&F==="register-admin"||T.I8.getToken()?t.createElement(C.l_,{to:"/"}):!s&&F!=="register-admin"?t.createElement(C.l_,{to:{pathname:"/auth/register-admin",search:f}}):t.createElement(ce,(0,Ue.Z)({},ye,{authType:F,fieldsToDisable:re,formErrors:ke,inputsPrefix:Me,modifiedData:Se,onChange:Lt,onSubmit:ms,requestError:ct,schema:_e}))};Ke.defaultProps={hasAdmin:!1},Ke.propTypes={hasAdmin:o().bool,setHasAdmin:o().func.isRequired};var mt=Ke,lt=e(53951),z=e(8471),ut=e(33348),gt=e(49372),Ze=e(27649),st=e(87933),le=e(72850),V=e(68465),X=e(84967),me=e(10369),Pe=e(41415),Zt=e(7563),Ct=e(10190),Mt=e(954);const St=[{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"}],pt=(0,z.ZP)(gt.Z)`
12
- text-align: center;
13
- `;var nt=()=>{const c=(0,T.lm)(),{push:s,location:a}=(0,C.k6)(),{formatMessage:u}=(0,ie.Z)(),[f,R]=(0,t.useState)(),[S,j]=(0,t.useState)(""),{firstname:F,email:ee}=T.I8.getUserInfo(),{hasAdmin:ce}=(0,ut.parse)(a?.search,{ignoreQueryPrefix:!0}),H=f==="other",re=oe=>{try{(0,D.default)({method:"POST",url:"https://analytics.strapi.io/register",data:{email:ee,username:F,firstAdmin:Boolean(!ce),persona:{role:oe?void 0:f,otherRole:oe?void 0:S}}}),c({type:"success",message:{id:"Usecase.notification.success.project-created",defaultMessage:"Project has been successfully created"}}),s("/")}catch{}};return t.createElement(Mt.ZP,null,t.createElement(Ze.o,{labelledBy:"usecase-title"},t.createElement(Mt.bU,null,t.createElement("form",{onSubmit:()=>re(!1)},t.createElement(st.k,{direction:"column",paddingBottom:7},t.createElement(Ct.Z,null),t.createElement(le.x,{paddingTop:6,paddingBottom:1,width:(0,T.Q1)(250)},t.createElement(pt,{variant:"alpha",as:"h1",id:"usecase-title"},u({id:"Usecase.title",defaultMessage:"Tell us a bit more about yourself"})))),t.createElement(st.k,{direction:"column",alignItems:"stretch",gap:6},t.createElement(V.P,{id:"usecase","data-testid":"usecase",label:u({id:"Usecase.input.work-type",defaultMessage:"What type of work do you do?"}),onChange:R,value:f},St.map(({intlLabel:oe,value:Me})=>t.createElement(X.W,{key:Me,value:Me},u(oe)))),H&&t.createElement(me.o,{name:"other",label:u({id:"Usecase.other",defaultMessage:"Other"}),value:S,onChange:oe=>j(oe.target.value),"data-testid":"other"}),t.createElement(Pe.z,{type:"submit",size:"L",fullWidth:!0,disabled:!f},u({id:"global.finish",defaultMessage:"Finish"}))))),t.createElement(st.k,{justifyContent:"center"},t.createElement(le.x,{paddingTop:4},t.createElement(Zt.A,{onClick:()=>re(!0)},u({id:"Usecase.button.skip",defaultMessage:"Skip this question"}))))))},Dt=e(73307),ft=async()=>`web-fingerprint-${(await(await Dt.ZP.load()).get()).visitorId}`,Nt=[],Gt=[...(()=>window&&window.strapi&&window.strapi.isEE?e(68944).Z:e(56761).Z)(),...Nt],ht=e(67927);const Ft=(0,t.lazy)(()=>Promise.all([e.e(3081),e.e(801)]).then(e.bind(e,29761)));function It(){const c=(0,T.lm)(),{updateProjectSettings:s}=(0,ht.um)(),{formatMessage:a}=(0,ie.Z)(),[{isLoading:u,hasAdmin:f,uuid:R,deviceId:S},j]=(0,t.useState)({isLoading:!0,hasAdmin:!1}),F=(0,T.L7)(),{get:ee,post:ce}=(0,T.kY)(),H=(0,t.useMemo)(()=>(0,fe.WW)(Gt.map(({to:ye,Component:ke,exact:Se})=>(0,fe.ot)(ke,ye,Se))),[]),[re,oe]=(0,t.useState)(null);(0,t.useEffect)(()=>{const ye=T.I8.getToken();ye&&(async()=>{try{const{data:{data:{token:Se}}}=await ce("/admin/renew-token",{token:ye});T.I8.updateToken(Se)}catch{T.I8.clearAppStorage(),window.location.reload()}})()},[ce]),(0,t.useEffect)(()=>{(async()=>{try{const{data:{data:{hasAdmin:ke,uuid:Se,menuLogo:ct,authLogo:ot}}}=await ee("/admin/init");s({menuLogo:(0,T.CR)(ct),authLogo:(0,T.CR)(ot)});const jt=await ft();if(Se){const{data:{data:Ve}}=await ee("/admin/telemetry-properties",{validateStatus:Lt=>Lt<500});oe(Ve);try{await D.default.post("https://analytics.strapi.io/api/v2/track",{event:"didInitializeAdministration",userId:"",deviceId:jt,eventPropeties:{},userProperties:{environment:F.currentEnvironment},groupProperties:{...Ve,projectId:Se}})}catch{}}j({isLoading:!1,hasAdmin:ke,uuid:Se,deviceId:jt})}catch{c({type:"warning",message:{id:"app.containers.App.notification.error.init"}})}})()},[c,s]);const Me=ye=>j(ke=>({...ke,hasAdmin:ye})),_e=(0,t.useMemo)(()=>({uuid:R,telemetryProperties:re,deviceId:S}),[R,re,S]);return u?t.createElement(T.dO,null):t.createElement(t.Suspense,{fallback:t.createElement(T.dO,null)},t.createElement(J.z,null,a({id:"skipToContent"})),t.createElement(T.L8,{value:_e},t.createElement(C.rs,null,H,t.createElement(C.AW,{path:"/auth/:authType",render:ye=>t.createElement(mt,{...ye,setHasAdmin:Me,hasAdmin:f}),exact:!0}),t.createElement(pe,{path:"/usecase",component:nt}),t.createElement(pe,{path:"/",component:Ft}),t.createElement(C.AW,{path:"",component:lt.default}))))}var Ot=It,bt=e(47750),Ht=e(86113),$t=e(20108),kt=e(15062),Et=e(66694);const vt={menuLogo:null,authLogo:null};var l=(c=vt,s)=>(0,Ee.ZP)(c,a=>{switch(s.type){case"UPDATE_PROJECT_SETTINGS":{Object.assign(a,s.values);break}default:return a}});const i=({children:c,authLogo:s,menuLogo:a,showReleaseNotification:u,showTutorials:f})=>{const[{menuLogo:R,authLogo:S},j]=(0,t.useReducer)(l,vt),F=(0,t.useCallback)(({menuLogo:ce,authLogo:H})=>j({type:"UPDATE_PROJECT_SETTINGS",values:{menuLogo:ce||a,authLogo:H||s}}),[s,a]),ee=(0,t.useMemo)(()=>({logos:{menu:{custom:R,default:a},auth:{custom:S,default:s}},updateProjectSettings:F,showReleaseNotification:u,showTutorials:f}),[R,a,S,s,F,u,f]);return t.createElement(Et._5.Provider,{value:ee},c)};i.propTypes={authLogo:o().string.isRequired,children:o().element.isRequired,menuLogo:o().string.isRequired,showReleaseNotification:o().bool.isRequired,showTutorials:o().bool.isRequired};var M=i,w=e(78023),x=e(58732),$=e.n(x),G=e(5985);const _=({changeLocale:c,children:s,localeNames:a})=>t.createElement(G.Z.Provider,{value:{changeLocale:c,localeNames:a}},s);_.propTypes={changeLocale:o().func.isRequired,children:o().element.isRequired,localeNames:o().object.isRequired};var Le=_,Ce="strapi-admin-language",Qe=c=>{const s=window.localStorage.getItem(Ce);return{locale:c[s]?s:"en",localeNames:c}};const Xe={localeNames:{en:"English"},locale:"en"};var yt=(c=Xe,s)=>{switch(s.type){case"CHANGE_LOCALE":{const{locale:a}=s;return c.localeNames[a]?{...c,locale:a}:c}default:return c}};const at=({children:c,localeNames:s,messages:a})=>{const[{locale:u},f]=(0,t.useReducer)(yt,Xe,()=>Qe(s));(0,t.useEffect)(()=>{window.localStorage.setItem(Ce,u),document.documentElement.setAttribute("lang",u)},[u]);const R=j=>{f({type:"CHANGE_LOCALE",locale:j})},S=$()(a[u],a.en);return t.createElement(w.Z,{locale:u,defaultLocale:"en",messages:S,textComponent:"span"},t.createElement(Le,{changeLocale:R,localeNames:s},c))};at.propTypes={children:o().element.isRequired,localeNames:o().objectOf(o().string).isRequired,messages:o().object.isRequired};var Ut=at,ze=(c,s)=>{const a=Object.entries(s),u=a.findIndex(([R])=>R===c);return a.slice(0,u).every(([,R])=>Object.values(R).every(Boolean))},xe=(c,s)=>{const a=c.split("."),u=a[1],f=Object.entries(s[a[0]]),R=f.findIndex(([j])=>j===u);return f.slice(0,R).every(([,j])=>j)};const be={currentStep:null,guidedTourState:{contentTypeBuilder:{create:!1,success:!1},contentManager:{create:!1,success:!1},apiTokens:{create:!1,success:!1}},isGuidedTourVisible:!1,isSkipped:!0};var Xt=(c=be,s)=>(0,Ee.ZP)(c,a=>{switch(s.type){case"SET_CURRENT_STEP":{a.currentStep=s.step;break}case"SET_STEP_STATE":{const[u,f]=s.currentStep.split(".");a.guidedTourState[u][f]=s.value;break}case"SET_SKIPPED":{a.isSkipped=s.value;break}case"SET_GUIDED_TOUR_VISIBILITY":{a.isGuidedTourVisible=s.value;break}default:return a}}),_t=c=>{const s={...c},a=K.get(Ge),u=K.get(Je),f=K.get(dt);if(a&&a.forEach(R=>{const[S,j]=R.split(".");ve()(s,["guidedTourState",S,j],!0)}),u){const[R,S]=u.split(".");ve()(s,["guidedTourState",R,S],!0),K.addCompletedStep(u),K.addCurrentStep(null)}return f!==null&&ve()(s,"isSkipped",f),s};const zt=({children:c})=>{const[{currentStep:s,guidedTourState:a,isGuidedTourVisible:u,isSkipped:f},R]=(0,t.useReducer)(Xt,be,_t),S=H=>{if(H!==null){const re=we()(a,H),oe=xe(H,a);if(re||f||!oe)return null}return K.addCurrentStep(H),R({type:"SET_CURRENT_STEP",step:H})},j=H=>{R({type:"SET_GUIDED_TOUR_VISIBILITY",value:H})},F=(H,re)=>{K.addCompletedStep(H),R({type:"SET_STEP_STATE",currentStep:H,value:re})},ee=H=>{const re=a[H];if(re){const oe=ze(H,a),Me=Object.keys(re)[0],_e=re[Me];if(oe&&!s&&!_e)return S(`${H}.${Me}`)}return null},ce=H=>{K.setSkipped(H),R({type:"SET_SKIPPED",value:H})};return t.createElement(T.Zc,{guidedTourState:a,currentStep:s,setCurrentStep:S,setGuidedTourVisibility:j,setSkipped:ce,setStepState:F,startSection:ee,isGuidedTourVisible:u,isSkipped:f},c)};zt.propTypes={children:o().element.isRequired};var qt=zt;const wt="STRAPI_THEME",es=()=>{const c=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",s=localStorage.getItem(wt);return s||localStorage.setItem(wt,c),s||c},Vt=({children:c,themes:s})=>{const[a,u]=(0,t.useState)(es()),f=(0,t.useCallback)(S=>{u(S),localStorage.setItem(wt,S)},[u]),R=(0,t.useMemo)(()=>({currentTheme:a,onChangeTheme:f,themes:s}),[a,f,s]);return t.createElement(Et.Rj.Provider,{value:R},c)};Vt.propTypes={children:o().node.isRequired,themes:o().shape({light:o().shape({colors:o().object.isRequired,shadows:o().object.isRequired,sizes:o().object.isRequired,zIndices:o().array.isRequired,spaces:o().array.isRequired,borderRadius:o().string.isRequired,mediaQueries:o().object.isRequired,fontSizes:o().array.isRequired,lineHeights:o().array.isRequired,fontWeights:o().object.isRequired}).isRequired,dark:o().shape({colors:o().object.isRequired,shadows:o().object.isRequired,sizes:o().object.isRequired,zIndices:o().array.isRequired,spaces:o().array.isRequired,borderRadius:o().string.isRequired,mediaQueries:o().object.isRequired,fontSizes:o().array.isRequired,lineHeights:o().array.isRequired,fontWeights:o().object.isRequired}).isRequired,custom:o().object}).isRequired};var ts=Vt,ss=e(86861),ns=z.vJ`
14
- body {
15
- background: ${({theme:c})=>c.colors.neutral100};
16
- }
17
- `;const Yt=({children:c})=>{const{currentTheme:s,themes:a}=(0,ht.M1)();return t.createElement(ss.f,{theme:a[s]||a.light},c,t.createElement(ns,null))};Yt.propTypes={children:o().element.isRequired};var as=Yt;const os=new Ht.S({defaultOptions:{queries:{refetchOnWindowFocus:!1}}}),Jt=({authLogo:c,children:s,components:a,customFields:u,fields:f,getAdminInjectedComponents:R,getPlugin:S,localeNames:j,menu:F,menuLogo:ee,messages:ce,plugins:H,runHookParallel:re,runHookSeries:oe,runHookWaterfall:Me,settings:_e,showReleaseNotification:ye,showTutorials:ke,store:Se,themes:ct})=>t.createElement(ts,{themes:ct},t.createElement(as,null,t.createElement($t.QueryClientProvider,{client:os},t.createElement(kt.zt,{store:Se},t.createElement(Et.ux.Provider,{value:{getAdminInjectedComponents:R}},t.createElement(M,{authLogo:c,menuLogo:ee,showReleaseNotification:ye,showTutorials:ke},t.createElement(T._Y,{getPlugin:S,menu:F,plugins:H,runHookParallel:re,runHookWaterfall:Me,runHookSeries:oe,settings:_e},t.createElement(T.rt,{components:a,fields:f},t.createElement(T.MG,{customFields:u},t.createElement(Ut,{messages:ce,localeNames:j},t.createElement(T.m$,null,t.createElement(T.w7,null,t.createElement(qt,null,t.createElement(T.N$,null,s))))))))))))));Jt.propTypes={authLogo:o().oneOfType([o().string,o().any]).isRequired,children:o().element.isRequired,components:o().object.isRequired,customFields:o().object.isRequired,fields:o().object.isRequired,getAdminInjectedComponents:o().func.isRequired,getPlugin:o().func.isRequired,localeNames:o().objectOf(o().string).isRequired,menu:o().arrayOf(o().shape({to:o().string.isRequired,icon:o().func.isRequired,intlLabel:o().shape({id:o().string.isRequired,defaultMessage:o().string.isRequired}).isRequired,permissions:o().array,Component:o().func})).isRequired,menuLogo:o().oneOfType([o().string,o().any]).isRequired,messages:o().object.isRequired,plugins:o().object.isRequired,runHookParallel:o().func.isRequired,runHookWaterfall:o().func.isRequired,runHookSeries:o().func.isRequired,settings:o().object.isRequired,showReleaseNotification:o().bool.isRequired,showTutorials:o().bool.isRequired,store:o().object.isRequired,themes:o().shape({light:o().shape({colors:o().object.isRequired,shadows:o().object.isRequired,sizes:o().object.isRequired,zIndices:o().array.isRequired,spaces:o().array.isRequired,borderRadius:o().string.isRequired,mediaQueries:o().object.isRequired,fontSizes:o().array.isRequired,lineHeights:o().array.isRequired,fontWeights:o().object.isRequired}).isRequired,dark:o().shape({colors:o().object.isRequired,shadows:o().object.isRequired,sizes:o().object.isRequired,zIndices:o().array.isRequired,spaces:o().array.isRequired,borderRadius:o().string.isRequired,mediaQueries:o().object.isRequired,fontSizes:o().array.isRequired,lineHeights:o().array.isRequired,fontWeights:o().object.isRequired}).isRequired,custom:o().object}).isRequired};var is=Jt,rs={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"},At=e(46339),ls={admin:{tutorials:{links:[]}},contentManager:{editView:{informations:[],"right-links":[]},listView:{actions:[],deleteModalAdditionalInfos:[]}}},us="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 cs{constructor({adminConfig:s,appPlugins:a,library:u,middlewares:f,reducers:R}){this.customConfigurations=s.config,this.customBootstrapConfiguration=s.bootstrap,this.configurations={authLogo:bt,head:{favicon:us},locales:["en"],menuLogo:bt,notifications:{releases:!0},themes:{light:n.W,dark:E.$},translations:{},tutorials:!0},this.appPlugins=a||{},this.library=u,this.middlewares=f,this.plugins={},this.reducers=R,this.translations={},this.hooksDict={},this.admin={injectionZones:ls},this.customFields=ne.rh,this.menu=[],this.settings={global:{id:"global",intlLabel:{id:"Settings.global",defaultMessage:"Global Settings"},links:[]}}}addComponents=s=>{Array.isArray(s)?s.map(a=>this.library.components.add(a)):this.library.components.add(s)};addCorePluginMenuLink=s=>{const a=JSON.stringify(s);h()(s.to,`link.to should be defined for ${a}`),h()(typeof s.to=="string",`Expected link.to to be a string instead received ${typeof s.to}`),h()(["/plugins/content-type-builder","/plugins/upload"].includes(s.to),"This method is not available for your plugin"),h()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${a}`),this.menu.push(s)};addFields=s=>{Array.isArray(s)?s.map(a=>this.library.fields.add(a)):this.library.fields.add(s)};addMenuLink=s=>{const a=JSON.stringify(s);h()(s.to,`link.to should be defined for ${a}`),h()(typeof s.to=="string",`Expected link.to to be a string instead received ${typeof s.to}`),h()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${a}`),h()(s.Component&&typeof s.Component=="function","link.Component should be a valid React Component"),h()(s.icon&&typeof s.icon=="function","link.Icon should be a valid React Component"),this.menu.push(s)};addMiddlewares=s=>{s.forEach(a=>{this.middlewares.add(a)})};addReducers=s=>{Object.keys(s).forEach(a=>{this.reducers.add(a,s[a])})};addSettingsLink=(s,a)=>{h()(this.settings[s],"The section does not exist");const u=JSON.stringify(a);h()(a.id,`link.id should be defined for ${u}`),h()(a.intlLabel?.id&&a.intlLabel?.defaultMessage,`link.intlLabel.id & link.intlLabel.defaultMessage for ${u}`),h()(a.to,`link.to should be defined for ${u}`),h()(a.Component&&typeof a.Component=="function","link.Component should be a valid React Component"),this.settings[s].links.push(a)};addSettingsLinks=(s,a)=>{h()(this.settings[s],"The section does not exist"),h()(Array.isArray(a),"TypeError expected links to be an array"),a.forEach(u=>{this.addSettingsLink(s,u)})};async bootstrap(){Object.keys(this.appPlugins).forEach(s=>{const a=this.appPlugins[s].bootstrap;a&&a({addSettingsLink:this.addSettingsLink,addSettingsLinks:this.addSettingsLinks,getPlugin:this.getPlugin,injectContentManagerComponent:this.injectContentManagerComponent,injectAdminComponent:this.injectAdminComponent,registerHook:this.registerHook})}),B()(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(At.No),this.createHook(At.LK),this.createHook(At.dV),this.createHook(At.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,a=this.customConfigurations.theme.light;!s&&!a&&(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)),a&&m()(this.configurations.themes.light,a),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]=y()};createSettingSection=(s,a)=>{h()(s.id,"section.id should be defined"),h()(s.intlLabel?.id&&s.intlLabel?.defaultMessage,"section.intlLabel should be defined"),h()(Array.isArray(a),"TypeError expected links to be an array"),h()(this.settings[s.id]===void 0,"A similar section already exists"),this.settings[s.id]={...s,links:[]},a.forEach(u=>{this.addSettingsLink(s.id,u)})};createStore=()=>se(this.middlewares.middlewares,this.reducers.reducers);getAdminInjectedComponents=(s,a,u)=>{try{return this.admin.injectionZones[s][a][u]||[]}catch(f){return console.error("Cannot get injected component",f),f}};getPlugin=s=>this.plugins[s];async initialize(){Object.keys(this.appPlugins).forEach(s=>{this.appPlugins[s].register(this)})}injectContentManagerComponent=(s,a,u)=>{h()(this.admin.injectionZones.contentManager[s]?.[a],`The ${s} ${a} zone is not defined in the content manager`),h()(u,"A Component must be provided"),this.admin.injectionZones.contentManager[s][a].push(u)};injectAdminComponent=(s,a,u)=>{h()(this.admin.injectionZones.admin[s]?.[a],`The ${s} ${a} zone is not defined in the admin`),h()(u,"A Component must be provided"),this.admin.injectionZones.admin[s][a].push(u)};async loadAdminTrads(){const s=this.configurations.locales.map(f=>e(48224)(`./${f}.json`).then(({default:R})=>({data:R,locale:f})).catch(()=>({data:null,locale:f})));return(await Promise.all(s)).reduce((f,R)=>(R.data&&(f[R.locale]=R.data),f),{})}async loadTrads(){const s=await this.loadAdminTrads(),a=Object.keys(this.appPlugins).map(S=>{const j=this.appPlugins[S].registerTrads;return j?j({locales:this.configurations.locales}):null}).filter(S=>S),f=(await Promise.all(a)).reduce((S,j)=>{const F=j.reduce((ee,ce)=>(ee[ce.locale]=ce.data,ee),{});return Object.keys(F).forEach(ee=>{S[ee]={...S[ee],...F[ee]}}),S},{}),R=this.configurations.locales.reduce((S,j)=>(S[j]={...s[j],...f[j]||{},...this.customConfigurations?.translations?.[j]},S),{});return this.configurations.translations=R,Promise.resolve()}registerHook=(s,a)=>{h()(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(a)};registerPlugin=s=>{const a=(0,ne.Sy)(s);this.plugins[a.pluginId]=a};runHookSeries=(s,a=!1)=>a?this.hooksDict[s].runSeriesAsync():this.hooksDict[s].runSeries();runHookWaterfall=(s,a,u=!1,f)=>u?this.hooksDict[s].runWaterfallAsync(a,f):this.hooksDict[s].runWaterfall(a,f);runHookParallel=s=>this.hooksDict[s].runParallel();render(){const s=this.createStore(),a=A()(rs,this.configurations.locales||[]),{components:{components:u},fields:{fields:f}}=this.library;return t.createElement(is,{authLogo:this.configurations.authLogo,components:u,fields:f,customFields:this.customFields,localeNames:a,getAdminInjectedComponents:this.getAdminInjectedComponents,getPlugin:this.getPlugin,messages:this.configurations.translations,menu:this.menu,menuLogo:this.configurations.menuLogo,plugins:this.plugins,runHookParallel:this.runHookParallel,runHookWaterfall:(R,S,j=!1)=>this.runHookWaterfall(R,S,j,s),runHookSeries:this.runHookSeries,themes:this.configurations.themes,settings:this.settings,showTutorials:this.configurations.tutorials,showReleaseNotification:this.configurations.notifications.releases,store:s},t.createElement(t.Fragment,null,t.createElement(b.q,{link:[{rel:"icon",type:"image/png",href:this.configurations.head.favicon}],htmlAttributes:{lang:localStorage.getItem(Ce)||"en"}}),t.createElement(r.VK,{basename:v.Z},t.createElement(Ot,{store:s}))))}}var ds=({adminConfig:c={},appPlugins:s,library:a,middlewares:u,reducers:f})=>new cs({adminConfig:c,appPlugins:s,library:a,middlewares:u,reducers:f})},5985:function(I,g,e){"use strict";var t=e(32735);const r=(0,t.createContext)();g.Z=r},20139:function(I,g,e){"use strict";var t=e(32735),r=e(5985);const n=()=>{const{changeLocale:E,localeNames:p,messages:m}=(0,t.useContext)(r.Z);return{changeLocale:E,localeNames:p,messages:m}};g.Z=n},10190:function(I,g,e){"use strict";var t=e(32735),r=e(8471),n=e(67927);const E=r.ZP.img`
18
- height: ${72/16}rem;
19
- `,p=()=>{const{logos:{auth:m}}=(0,n.um)();return t.createElement(E,{src:m?.custom??m.default,"aria-hidden":!0,alt:""})};g.Z=p},66694:function(I,g,e){"use strict";e.d(g,{ux:function(){return n},_5:function(){return p},$l:function(){return P},Rj:function(){return L}});var t=e(32735),n=(0,t.createContext)({}),p=(0,t.createContext)({}),P=(0,t.createContext)({}),L=(0,t.createContext)({})},78246:function(I,g){"use strict";const e="/admin/".replace(window.location.origin,"");g.Z=e},46339:function(I,g,e){"use strict";e.d(g,{Eo:function(){return n},LK:function(){return r},No:function(){return t},dV:function(){return E}});const t="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",E="Admin/CM/pages/App/mutate-single-types-links"},67927:function(I,g,e){"use strict";e.d(g,{um:function(){return E},U_:function(){return y},Dq:function(){return ne},H9:function(){return We},bP:function(){return O},$_:function(){return It},rW:function(){return vt},bF:function(){return he},G4:function(){return ht},Te:function(){return St},M1:function(){return kt}});var t=e(32735),r=e(66694),E=()=>(0,t.useContext)(r._5),p=e(24989),m=e(97889);const P={collectionTypes:[],components:[],isLoading:!0,singleTypes:[]};var L=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"GET_MODELS":{i.collectionTypes=P.collectionTypes,i.singleTypes=P.singleTypes,i.components=P.components,i.isLoading=!0;break}case"GET_MODELS_ERROR":{i.collectionTypes=P.collectionTypes,i.singleTypes=P.singleTypes,i.components=P.components,i.isLoading=!1;break}case"GET_MODELS_SUCCEDED":{const M=w=>l.contentTypes.filter(x=>x.isDisplayed&&x.kind===w);i.isLoading=!1,i.collectionTypes=M("collectionType"),i.singleTypes=M("singleType"),i.components=l.components;break}default:return i}}),O=()=>{const d=(0,p.lm)(),[l,i]=(0,t.useReducer)(L,P),{get:M}=(0,p.kY)(),w=(0,t.useCallback)(async()=>{i({type:"GET_MODELS"});try{const[{data:{data:x}},{data:{data:$}}]=await Promise.all(["components","content-types"].map(G=>M(`/content-manager/${G}`)));i({type:"GET_MODELS_SUCCEDED",contentTypes:$,components:x})}catch{i({type:"GET_MODELS_ERROR"}),d({type:"warning",message:{id:"notification.error"}})}},[d,M]);return(0,t.useEffect)(()=>{w()},[w]),{...l,getData:w}};const h={data:{},error:null,isLoading:!0};var v=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"GET_DATA":{i.isLoading=!0,i.data={},i.error=null;break}case"GET_DATA_SUCCEEDED":{i.data=l.data,i.isLoading=!1,i.error=null;break}case"GET_DATA_ERROR":{i.isLoading=!1,i.error=l.error;break}default:return i}}),y=d=>{const[{data:l,error:i,isLoading:M},w]=(0,t.useReducer)(v,h),{get:x}=(0,p.kY)();return(0,t.useEffect)(()=>{(async()=>{try{w({type:"GET_DATA"});const{data:{data:G}}=await x("/admin/permissions",{params:{role:d}});w({type:"GET_DATA_SUCCEEDED",data:G})}catch{}})()},[d,x]),{data:l,error:i,isLoading:M}};const U={role:{},permissions:{},isLoading:!0};var Z=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"GET_DATA_SUCCEEDED":{i.role=l.role,i.permissions=l.permissions,i.isLoading=!1;break}case"GET_DATA_ERROR":{i.isLoading=!1;break}case"ON_SUBMIT_SUCCEEDED":{i.role.name=l.name,i.role.description=l.description;break}default:return i}}),ne=d=>{const l=(0,p.lm)(),[i,M]=(0,t.useReducer)(Z,U),{get:w}=(0,p.kY)();(0,t.useEffect)(()=>{d?(async G=>{try{const[{data:{data:_}},{data:{data:Le}}]=await Promise.all([`roles/${G}`,`roles/${G}/permissions`].map(q=>w(`/admin/${q}`)));M({type:"GET_DATA_SUCCEEDED",role:_,permissions:Le})}catch(_){console.error(_),M({type:"GET_DATA_ERROR"}),l({type:"warning",message:{id:"notification.error"}})}})(d):M({type:"GET_DATA_SUCCEEDED",role:{},permissions:[]})},[w,d,l]);const x=(0,t.useCallback)($=>{M({type:"ON_SUBMIT_SUCCEEDED",...$})},[]);return{...i,onSubmitSucceeded:x}},D=(d,l)=>l.map(({permissions:i})=>(0,p.qX)(d,i)),J=async(d,l)=>{const i=D(d,l),M=await Promise.all(i);return l.filter((x,$)=>M[$])},ie=e(99381),Q=e.n(ie),ge=async(d,l,i)=>{const M=D(d,l),w=await Promise.all(M),x=l.filter((_,Le)=>w[Le]),$=x.findIndex(_=>_.to==="/settings");if($===-1)return[];const G=Q()(x);return G[$].notificationsCount=i?1:0,G},pe=e(2287),fe=e(36919),Ue=e(45112),Re=e(83983);const Ye={generalSectionLinks:[{icon:pe.Z,intlLabel:{id:"global.plugins",defaultMessage:"Plugins"},to:"/list-plugins",permissions:Re.Z.marketplace.main},{icon:fe.Z,intlLabel:{id:"global.marketplace",defaultMessage:"Marketplace"},to:"/marketplace",permissions:Re.Z.marketplace.main},{icon:Ue.Z,intlLabel:{id:"global.settings",defaultMessage:"Settings"},to:"/settings",permissions:[],notificationsCount:0}],pluginsSectionLinks:[],isLoading:!0};var we=(d=Ye,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"SET_SECTION_LINKS":{const{authorizedGeneralSectionLinks:M,authorizedPluginSectionLinks:w}=l.data;i.generalSectionLinks=M,i.pluginsSectionLinks=w;break}case"UNSET_IS_LOADING":{i.isLoading=!1;break}default:return i}}),We=()=>{const[d,l]=(0,t.useReducer)(we,Ye),{allPermissions:i}=(0,p.vn)(),{shouldUpdateStrapi:M}=(0,p.L7)(),{menu:w}=(0,p.j1)(),x=(0,t.useRef)(d.generalSectionLinks),$=(0,t.useRef)(M),G=async(Le=i)=>{const Ce=await J(Le,w),$e=await ge(Le,x.current,$.current);l({type:"SET_SECTION_LINKS",data:{authorizedGeneralSectionLinks:$e,authorizedPluginSectionLinks:Ce}}),l({type:"UNSET_IS_LOADING"})},_=(0,t.useRef)(G);return(0,t.useEffect)(()=>{_.current(i)},[i,l]),d},Je=e(33795),Ge=e.n(Je),et=(d,l)=>({...d,isLoading:l});const N={roles:[],isLoading:!0};var K=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"GET_DATA":{i.isLoading=!0,i.roles=[];break}case"GET_DATA_SUCCEEDED":{i.roles=l.data,i.isLoading=!1;break}case"GET_DATA_ERROR":{i.isLoading=!1;break}default:return i}}),he=(d=!0)=>{const l=(0,p.lm)(),[{roles:i,isLoading:M},w]=(0,t.useReducer)(K,N,()=>et(N,d));(0,t.useEffect)(()=>{d&&x()},[d]);const x=(0,t.useCallback)(async()=>{const $=(0,p.tg)();try{w({type:"GET_DATA"});const{data:{data:G}}=await $.get("/admin/roles");w({type:"GET_DATA_SUCCEEDED",data:G})}catch(G){const _=Ge()(G,["response","payload","message"],"An error occured");w({type:"GET_DATA_ERROR"}),_!=="Forbidden"&&l({type:"warning",message:_})}},[l]);return{roles:i,isLoading:M,getData:x}},He=e(3040),ae=e.n(He);const Ee={menu:[],isLoading:!0};var ve=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"CHECK_PERMISSIONS_SUCCEEDED":{l.data.forEach(M=>{M.hasPermission&&ae()(i,["menu",...M.path.split("."),"isDisplayed"],M.hasPermission)}),i.menu.forEach((M,w)=>{i.menu[w].links=M.links.filter(x=>x.isDisplayed===!0)}),i.isLoading=!1;break}default:return i}}),je=e(9086),Ae=e.n(je),tt=e(98978),Ke=e.n(tt),lt=d=>Ke()(d,l=>l.id),ut=d=>d.map(l=>{const i=l.links.map(M=>({...M,isDisplayed:!1}));return{...l,links:i}}),Ze=[{intlLabel:{id:"global.roles",defaultMessage:"Roles"},to:"/settings/roles",id:"roles",isDisplayed:!1,permissions:Re.Z.settings.roles.main},{intlLabel:{id:"global.users"},to:"/settings/users?pageSize=10&page=1&sort=firstname",id:"users",isDisplayed:!1,permissions:Re.Z.settings.users.main}],le=[...(()=>window&&window.strapi&&window.strapi.isEE?e(66334).Z:e(47950).Z)(),...Ze],X=[{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:Re.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:Re.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:Re.Z.settings["transfer-tokens"].main}];const me=(()=>window&&window.strapi&&window.strapi.isEE?e(11545).Z:e(73086).Z)();var Pe=[...X,...me],Ct=(d,{settings:l,shouldUpdateStrapi:i})=>{const M=l.global.links,w=lt([...M,...Pe]).map(G=>({...G,hasNotification:G.id==="000-application-infos"&&i})),x=Object.values(Ae()(l,"global")),$=[{...l.global,links:w},{id:"permissions",intlLabel:{id:"Settings.permissions",defaultMessage:"Administration Panel"},links:le},...x];return{...d,menu:ut($)}},St=(d=!1)=>{const{allPermissions:l}=(0,p.vn)(),{shouldUpdateStrapi:i}=(0,p.L7)(),{settings:M}=(0,p.j1)(),[{isLoading:w,menu:x},$]=(0,t.useReducer)(ve,Ee,()=>Ct(Ee,{settings:M,shouldUpdateStrapi:i}));return(0,t.useEffect)(()=>{d||(async()=>{const _=async($e,Qe)=>({hasPermission:await(0,p.qX)(l,$e),path:Qe}),q=($e=>$e.reduce((Qe,Xe,Pt)=>{const yt=at=>at.map((Ut,Tt)=>_(at[Tt].permissions,`${Pt}.links.${Tt}`));return[...Qe,...yt(Xe.links)]},[]))(x),Ce=await Promise.all(q);$({type:"CHECK_PERMISSIONS_SUCCEEDED",data:Ce})})()},[l,d]),{isLoading:w,menu:x}},pt=e(8997),xt=e(88423),nt=e.n(xt),Dt=e(56236),Bt=e.n(Dt);const ft={fieldsToPick:[],formErrors:{},initialData:{},isLoading:!0,modifiedData:{},showHeaderButtonLoader:!1,showHeaderLoader:!0},Wt=(d,l)=>(0,m.ZP)(d,i=>{switch(l.type){case"GET_DATA_SUCCEEDED":{i.isLoading=!1,i.showHeaderLoader=!1,i.initialData=nt()(l.data,d.fieldsToPick),i.modifiedData=nt()(l.data,d.fieldsToPick);break}case"ON_CANCEL":{i.modifiedData=d.initialData,i.formErrors={};break}case"ON_CHANGE":{l.inputType==="password"&&!l.value?Bt()(i.modifiedData,l.keys.split(".")):l.keys.includes("username")&&!l.value?ae()(i.modifiedData,l.keys.split("."),null):ae()(i.modifiedData,l.keys.split("."),l.value);break}case"ON_SUBMIT":{i.showHeaderButtonLoader=!0;break}case"ON_SUBMIT_SUCCEEDED":{i.initialData=nt()(l.data,d.fieldsToPick),i.modifiedData=nt()(l.data,d.fieldsToPick),i.showHeaderButtonLoader=!1;break}case"SET_ERRORS":{i.formErrors=l.errors,i.showHeaderButtonLoader=!1;break}default:return i}});var Kt=(d,l)=>({...d,fieldsToPick:l}),ht=(d,l,i,M)=>{const[{formErrors:w,initialData:x,isLoading:$,modifiedData:G,showHeaderButtonLoader:_,showHeaderLoader:Le},q]=(0,t.useReducer)(Wt,ft,()=>Kt(ft,M)),Ce=(0,p.lm)(),{lockApp:$e,unlockApp:Qe}=(0,p.o1)(),{get:Xe,put:Pt}=(0,p.kY)();return(0,t.useEffect)(()=>{d&&(async()=>{try{const{data:{data:Oe}}=await Xe(d);q({type:"GET_DATA_SUCCEEDED",data:Oe,fieldsToPick:M})}catch(Oe){console.error(Oe.response),Ce({type:"warning",message:{id:"notification.error"}})}})()},[d]),[{formErrors:w,initialData:x,isLoading:$,modifiedData:G,showHeaderButtonLoader:_,showHeaderLoader:Le},q,{handleCancel:()=>{q({type:"ON_CANCEL"})},handleChange:({target:{name:ze,value:Oe,type:xe}})=>{q({type:"ON_CHANGE",inputType:xe,keys:ze,value:Oe})},handleSubmit:async ze=>{ze.preventDefault();const Oe=await(0,pt.R6)(G,l);if(q({type:"SET_ERRORS",errors:Oe||{}}),!Oe)try{$e(),q({type:"ON_SUBMIT"});const xe=Ae()(G,["confirmPassword","registrationToken"]);xe.roles&&(xe.roles=xe.roles.map(Rt=>Rt.id));const{data:{data:be}}=await Pt(d,xe);i(be),q({type:"ON_SUBMIT_SUCCEEDED",data:be}),Ce({type:"success",message:{id:"notification.success.saved"}})}catch(xe){const be=xe?.response?.payload??{data:{}};be?.data&&typeof be.data=="string"?Ce({type:"warning",message:be.data}):Ce({type:"warning",message:be.message});const Rt=(0,pt.Iz)(be);q({type:"SET_ERRORS",errors:Rt})}finally{Qe()}},setField:(ze,Oe)=>{q({type:"ON_CHANGE",keys:ze,value:Oe})}}]},It=()=>(0,t.useContext)(r.$l);const Ot=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),bt=()=>{const{latestStrapiReleaseTag:d,shouldUpdateStrapi:l}=useAppInfo(),i=useNotification();return useEffect(()=>{l&&Ot&&i({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${d}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)})},[d,l,i]),null};var Ht=null,kt=()=>(0,t.useContext)(r.Rj),vt=(d,l,i,M)=>{const[w,x]=(0,t.useState)(!1),$=(0,p.lm)(),{post:G}=(0,p.kY)(),{formatAPIError:_}=(0,p.So)();return{regenerateData:async()=>{try{const{data:{data:{accessKey:q}}}=await G(`${d}${l}/regenerate`);x(!1),i(q)}catch(q){x(!1),M?M(q):$({type:"warning",message:_(q)})}},isLoadingConfirmation:w}}},47950:function(I,g){"use strict";g.Z=[]},73086:function(I,g){"use strict";g.Z=[]},954:function(I,g,e){"use strict";e.d(g,{sg:function(){return b},bU:function(){return v},ZP:function(){return y}});var t=e(32735),r=e(8471),n=e(60216),E=e.n(n),p=e(72850),m=e(87933),P=e(67879),A=e(34853),L=e(20139),O=()=>{const{changeLocale:U,localeNames:W}=(0,L.Z)(),{locale:Z}=(0,P.Z)();return t.createElement(A.O,{label:W[Z]},Object.keys(W).map(se=>t.createElement(A.s,{onClick:()=>U(se),key:se},W[se])))};const h=(0,r.ZP)(p.x)`
20
- margin: 0 auto;
21
- width: 552px;
22
- `,b=(0,r.ZP)(m.k)`
23
- flex-direction: column;
24
- `,v=({children:U})=>t.createElement(h,{shadow:"tableShadow",hasRadius:!0,paddingTop:9,paddingBottom:9,paddingLeft:10,paddingRight:10,background:"neutral0",justifyContent:"center"},U);v.propTypes={children:E().node.isRequired};const k=({children:U})=>t.createElement("div",null,t.createElement(m.k,{as:"header",justifyContent:"flex-end"},t.createElement(p.x,{paddingTop:6,paddingRight:8},t.createElement(O,null))),t.createElement(p.x,{paddingTop:2,paddingBottom:11},U));k.propTypes={children:E().node.isRequired};var y=k},56761:function(I,g){"use strict";const e=[];g.Z=e},72218:function(I,g,e){"use strict";var t=e(8471),r=e(63642);const n=(0,t.ZP)(r.E)`
25
- svg {
26
- height: 1rem;
27
- width: 1rem;
28
- path {
29
- fill: ${({theme:E})=>E.colors.neutral600};
30
- }
31
- }
32
- `;g.Z=n},1115:function(I,g,e){"use strict";var t=e(32735),r=e(24989),n=e(54894),E=e(60492),p=e(10369),m=e(27649),P=e(72850),A=e(49372),L=e(87933),B=e(8284),O=e(41415),h=e(60216),b=e.n(h),v=e(67879),k=e(8471),y=e(92802),U=e(954),W=e(10190),Z=e(72218);const se=(0,k.ZP)(p.o)`
33
- ::-ms-reveal {
34
- display: none;
35
- }
36
- `,ne=({onSubmit:C,schema:D,children:T})=>{const[J,ie]=(0,t.useState)(!1),{formatMessage:Q}=(0,v.Z)();return t.createElement(m.o,null,t.createElement(U.bU,null,t.createElement(y.J9,{enableReinitialize:!0,initialValues:{email:"",password:"",rememberMe:!1},onSubmit:C,validationSchema:D,validateOnChange:!1},({values:o,errors:ge,handleChange:pe})=>t.createElement(r.l0,{noValidate:!0},t.createElement(U.sg,null,t.createElement(W.Z,null),t.createElement(P.x,{paddingTop:6,paddingBottom:1},t.createElement(A.Z,{variant:"alpha",as:"h1"},Q({id:"Auth.form.welcome.title",defaultMessage:"Welcome!"}))),t.createElement(P.x,{paddingBottom:7},t.createElement(A.Z,{variant:"epsilon",textColor:"neutral600"},Q({id:"Auth.form.welcome.subtitle",defaultMessage:"Log in to your Strapi account"}))),ge.errorMessage&&t.createElement(A.Z,{id:"global-form-error",role:"alert",tabIndex:-1,textColor:"danger600"},ge.errorMessage)),t.createElement(L.k,{direction:"column",alignItems:"stretch",gap:6},t.createElement(p.o,{error:ge.email?Q({id:ge.email,defaultMessage:"This value is required."}):"",value:o.email,onChange:pe,label:Q({id:"Auth.form.email.label",defaultMessage:"Email"}),placeholder:Q({id:"Auth.form.email.placeholder",defaultMessage:"kai@doe.com"}),name:"email",required:!0}),t.createElement(se,{error:ge.password?Q({id:ge.password,defaultMessage:"This value is required."}):"",onChange:pe,value:o.password,label:Q({id:"global.password",defaultMessage:"Password"}),name:"password",type:J?"text":"password",endAction:t.createElement(Z.Z,{onClick:fe=>{fe.stopPropagation(),ie(Ue=>!Ue)},label:Q(J?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},J?t.createElement(n.Z,null):t.createElement(E.Z,null)),required:!0}),t.createElement(B.X,{onValueChange:fe=>{pe({target:{value:fe,name:"rememberMe"}})},value:o.rememberMe,"aria-label":"rememberMe",name:"rememberMe"},Q({id:"Auth.form.rememberMe.label",defaultMessage:"Remember me"})),t.createElement(O.z,{fullWidth:!0,type:"submit"},Q({id:"Auth.form.button.login",defaultMessage:"Login"}))))),T),t.createElement(L.k,{justifyContent:"center"},t.createElement(P.x,{paddingTop:4},t.createElement(r.rU,{to:"/auth/forgot-password"},Q({id:"Auth.link.forgot-password",defaultMessage:"Forgot your password?"})))))};ne.defaultProps={children:null,onSubmit(){}},ne.propTypes={children:b().node,onSubmit:b().func,schema:b().shape({type:b().string.isRequired}).isRequired},g.Z=ne},5365:function(I,g,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),E=e(1115),p=e(954);const m=P=>t.createElement(p.ZP,null,t.createElement(E.Z,{...P}));m.defaultProps={onSubmit:P=>P.preventDefault()},m.propTypes={onSubmit:n().func},g.Z=m},53951:function(I,g,e){"use strict";e.r(g);var t=e(32735),r=e(24989),n=e(27649),E=e(82055),p=e(17e3),m=e(9695),P=e(8482),A=e(25386),L=e(67879);const B=()=>{const{formatMessage:O}=(0,L.Z)();return(0,r.go)(),t.createElement(n.o,{labelledBy:"title"},t.createElement(E.T,{id:"title",title:O({id:"content-manager.pageNotFound",defaultMessage:"Page not found"})}),t.createElement(p.D,null,t.createElement(m.x,{action:t.createElement(r.Qj,{variant:"secondary",endIcon:t.createElement(P.Z,null),to:"/"},O({id:"app.components.NotFoundPage.back",defaultMessage:"Back to homepage"})),content:O({id:"app.page.not.found",defaultMessage:"Oops! We can't seem to find the page you're looging for..."}),hasRadius:!0,icon:t.createElement(A.Z,{width:"10rem"}),shadow:"tableShadow"})))};g.default=B},26123:function(I,g){"use strict";g.Z={}},41832:function(I,g){"use strict";const e=({data:t})=>{try{return Object.keys(t).reduce((r,n)=>{const E=t[n][0];return r[n]={id:E,defaultMessage:E},r},{})}catch{return{}}};g.Z=e},8997:function(I,g,e){"use strict";e.d(g,{R6:function(){return n},ot:function(){return B},Iz:function(){return O.Z},Pp:function(){return Z},IF:function(){return W},Qy:function(){return ne},WW:function(){return b}});var t=e(24989),n=async(C,D)=>{let T=null;try{await D.validate(C,{abortEarly:!1})}catch(J){T=(0,t.CJ)(J)}return T},E=e(32735),p=e(60216),m=e.n(p),P=e(53038);const A=({loadComponent:C})=>{const[D,T]=(0,E.useState)(null);return(0,E.useEffect)(()=>{(async()=>{try{const ie=await C();T(()=>ie.default)}catch(ie){console.log(ie)}})()},[C]),D?E.createElement(D,null):E.createElement(t.dO,null)},L=(C,D,T)=>E.createElement(P.AW,{render:()=>E.createElement(A,{loadComponent:C}),key:D,path:D,exact:T||!1});A.propTypes={loadComponent:m().func.isRequired};var B=L,O=e(41832),b=C=>C.filter((D,T,J)=>J.findIndex(ie=>ie.key===D.key)===T),v=e(98978);const k=C=>sortBy(C,D=>D.name);var y=null,W=C=>`/admin/${C}`,Z=(C,D="")=>[C,D].filter(T=>T).join(" ");const se={bufferToHex(C){return[...new Uint8Array(C)].map(D=>D.toString(16).padStart(2,"0")).join("")},async digestMessage(C){const D=new TextEncoder().encode(C),T=await crypto.subtle.digest("SHA-256",D);return this.bufferToHex(T)}};async function ne(C){if(!C)return null;try{return await se.digestMessage(C.email)}catch{return null}}},58414:function(I,g,e){"use strict";e.d(g,{pl:function(){return L},q5:function(){return O.Z}});var t=e(32735),r=e(24989),n=e(8997),E=e(97889);const p={data:[],isLoading:!0};var P=(h,b)=>(0,E.ZP)(h,v=>{switch(b.type){case"GET_DATA_SUCCEEDED":{v.data=b.data,v.isLoading=!1;break}case"GET_DATA_ERROR":{v.isLoading=!1;break}default:return v}}),L=({ssoEnabled:h})=>{const[b,v]=(0,t.useReducer)(P,p),k=(0,r.lm)(),{get:y}=(0,r.kY)();return(0,t.useEffect)(()=>{(async()=>{try{if(!h){v({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:W}=await y((0,n.IF)("providers"));v({type:"GET_DATA_SUCCEEDED",data:W})}catch(W){console.error(W),v({type:"GET_DATA_ERROR"}),k({type:"warning",message:{id:"notification.error"}})}})()},[y,h,k]),b},B=e(21306),O=e(2690)},21306:function(I,g,e){"use strict";var t=e(32735),r=e(67879),n=e(53038),E=e(24989),p=e(36866),m=e.n(p),P=e(2690);const A="strapi-notification-seat-limit",L="https://cloud.strapi.io/profile/billing",B="https://strapi.io/billing/request-seats",O=()=>{const{formatMessage:h}=(0,r.Z)();let{license:b}=(0,P.Z)();const v=(0,E.lm)(),{pathname:k}=(0,n.TH)();(0,t.useEffect)(()=>{if(!b?.data)return;const{enforcementUserCount:y,permittedSeats:U,licenseLimitStatus:W,isHostedOnStrapiCloud:Z}=b?.data??{},se=!m()(U)&&!window.sessionStorage.getItem(`${A}-${k}`)&&(W==="AT_LIMIT"||W==="OVER_LIMIT");let ne;W==="OVER_LIMIT"?ne="warning":W==="AT_LIMIT"&&(ne="softWarning"),se&&v({type:ne,message:h({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:W}),title:h({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:W,enforcementUserCount:y,permittedSeats:U}),link:{url:Z?L:B,label:h({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:Z})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${A}-${k}`,!0)}})},[v,b.data,k,h])};g.Z=O},2690:function(I,g,e){"use strict";var t=e(24989),r=e(20108),n=e(83983);const E=()=>{const p=(0,t.ss)(n.Z.settings.users),{isLoading:m,allowedActions:{canRead:P,canCreate:A,canUpdate:L,canDelete:B}}=p,O=P&&A&&L&&B,{get:h}=(0,t.kY)(),b=async()=>{const{data:{data:k}}=await h("/admin/license-limit-information");return k};return{license:(0,r.useQuery)(["ee","license-limit-info"],b,{enabled:!m&&O})}};g.Z=E},66334:function(I,g,e){"use strict";var t=e(83983);const r=[];window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)&&r.push({intlLabel:{id:"global.auditLogs",defaultMessage:"Audit Logs"},to:"/settings/audit-logs?pageSize=50&page=1&sort=date:DESC",id:"auditLogs",isDisplayed:!1,permissions:t.Z.settings.auditLogs.main});const n=r;g.Z=n},11545:function(I,g,e){"use strict";var t=e(83983);const r=[];window.strapi.features.isEnabled(window.strapi.features.SSO)&&r.push({intlLabel:{id:"Settings.sso.title",defaultMessage:"Single Sign-On"},to:"/settings/single-sign-on",id:"sso",isDisplayed:!1,permissions:t.Z.settings.sso.main}),window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)&&r.push({intlLabel:{id:"Settings.review-workflows.page.title",defaultMessage:"Review Workflows"},to:"/settings/review-workflows",id:"review-workflows",isDisplayed:!1,permissions:t.Z.settings["review-workflows"].main}),g.Z=r},68944:function(I,g,e){"use strict";e.d(g,{Z:function(){return O}});var t=e(32735),r=e(53038),n=e(67879),E=e(49189),p=e.n(E),m=e(24989),P=e(8997),L=()=>{const{params:{authResponse:h}}=(0,r.$B)("/auth/login/:authResponse"),{formatMessage:b}=(0,n.Z)(),{push:v}=(0,r.k6)(),k=(0,t.useRef)(b);let y=(0,t.useCallback)(()=>{v(`/auth/oops?info=${encodeURIComponent(k.current({id:"Auth.form.button.login.providers.error",defaultMessage:"We cannot connect you through the selected provider."}))}`)},[v]);const{get:U}=(0,m.kY)(),W=(0,t.useCallback)(async()=>{try{const Z=p().get("jwtToken");if(m.I8.clearAppStorage(),Z){m.I8.setToken(Z,!0);const se=(0,P.IF)("users/me"),{data:{data:ne}}=await U(se);m.I8.setUserInfo(ne,!0),p().remove("jwtToken"),v("/auth/login")}}catch{y()}},[U,v,y]);return(0,t.useEffect)(()=>{h==="error"&&y(),h==="success"&&W()},[h,W,y]),t.createElement(m.dO,null)},O=[{Component:()=>({default:L}),to:"/auth/login/:authResponse",exact:!0}]},98768:function(I,g,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),E=e(8471),p=e(9026),m=e(72850),P=e(87933),A=e(49372),L=e(67879),B=e(1115),O=e(58414),h=e(954),b=e(33205);const v=(0,E.ZP)(p.i)`
37
- flex: 1;
38
- `,k=y=>{const U=strapi.features.isEnabled(strapi.features.SSO),{isLoading:W,data:Z}=(0,O.pl)({ssoEnabled:U}),{formatMessage:se}=(0,L.Z)();return!U||!W&&Z.length===0?t.createElement(h.ZP,null,t.createElement(B.Z,{...y})):t.createElement(h.ZP,null,t.createElement(B.Z,{...y},t.createElement(m.x,{paddingTop:7},t.createElement(P.k,{direction:"column",alignItems:"stretch",gap:7},t.createElement(P.k,null,t.createElement(v,null),t.createElement(m.x,{paddingLeft:3,paddingRight:3},t.createElement(A.Z,{variant:"sigma",textColor:"neutral600"},se({id:"Auth.login.sso.divider"}))),t.createElement(v,null)),t.createElement(b.Z,{providers:Z,displayAllProviders:!1})))))};k.defaultProps={onSubmit:y=>y.preventDefault(),requestError:null},k.propTypes={formErrors:n().object.isRequired,modifiedData:n().object.isRequired,onChange:n().func.isRequired,onSubmit:n().func,requestError:n().object},g.Z=k},33205:function(I,g,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),E=e(87933),p=e(63919),m=e(49372),P=e(15335),A=e(5803),L=e(8471),B=e(67879),O=e(14911);const h=L.ZP.a`
39
- width: ${136/16}rem;
40
- display: flex;
41
- justify-content: center;
42
- align-items: center;
43
- height: ${48/16}rem;
44
- border: 1px solid ${({theme:y})=>y.colors.neutral150};
45
- border-radius: ${({theme:y})=>y.borderRadius};
46
- text-decoration: inherit;
47
- &:link {
48
- text-decoration: none;
49
- }
50
- color: ${({theme:y})=>y.colors.neutral600};
51
- `,b=(0,L.ZP)(E.k)`
52
- & a:not(:first-child):not(:last-child) {
53
- margin: 0 ${({theme:y})=>y.spaces[2]};
54
- }
55
- & a:first-child {
56
- margin-right: ${({theme:y})=>y.spaces[2]};
57
- }
58
- & a:last-child {
59
- margin-left: ${({theme:y})=>y.spaces[2]};
60
- }
61
- `,v=({provider:y})=>t.createElement(p.u,{label:y.displayName},t.createElement(h,{href:`${strapi.backendURL}/admin/connect/${y.uid}`},y.icon?t.createElement("img",{src:y.icon,"aria-hidden":!0,alt:"",height:"32px"}):t.createElement(m.Z,null,y.displayName)));v.propTypes={provider:n().shape({icon:n().string,displayName:n().string.isRequired,uid:n().string.isRequired}).isRequired};const k=({providers:y,displayAllProviders:U})=>{const{formatMessage:W}=(0,B.Z)();return U?t.createElement(P.r,{gap:4},y.map(Z=>t.createElement(A.P,{key:Z.uid,col:4},t.createElement(v,{provider:Z})))):y.length>2&&!U?t.createElement(P.r,{gap:4},y.slice(0,2).map(Z=>t.createElement(A.P,{key:Z.uid,col:4},t.createElement(v,{provider:Z}))),t.createElement(A.P,{col:4},t.createElement(p.u,{label:W({id:"global.see-more"})},t.createElement(h,{as:O.rU,to:"/auth/providers"},t.createElement("span",{"aria-hidden":!0},"\u2022\u2022\u2022"))))):t.createElement(b,{justifyContent:"center"},y.map(Z=>t.createElement(v,{key:Z.uid,provider:Z})))};k.defaultProps={displayAllProviders:!0},k.propTypes={providers:n().arrayOf(n().object).isRequired,displayAllProviders:n().bool},g.Z=k},7277:function(I,g,e){"use strict";e.d(g,{Z:function(){return C}});var t=e(32735),r=e(53038),n=e(8471),E=e(24989),p=e(9026),m=e(27649),P=e(72850),A=e(49372),L=e(87933),B=e(23866),O=e(41415),h=e(67879),b=e(58414),v=e(954),k=e(33205),y=e(10190);const U=(0,n.ZP)(p.i)`
62
- flex: 1;
63
- `;var Z=()=>{const D=strapi.features.isEnabled(strapi.features.SSO),{push:T}=(0,r.k6)(),{formatMessage:J}=(0,h.Z)(),{isLoading:ie,data:Q}=(0,b.pl)({ssoEnabled:D}),o=()=>{T("/auth/login")};return!D||!ie&&Q.length===0?t.createElement(r.l_,{to:"/auth/login"}):t.createElement(v.ZP,null,t.createElement(m.o,null,t.createElement(v.bU,null,t.createElement(v.sg,null,t.createElement(y.Z,null),t.createElement(P.x,{paddingTop:6,paddingBottom:1},t.createElement(A.Z,{as:"h1",variant:"alpha"},J({id:"Auth.form.welcome.title"}))),t.createElement(P.x,{paddingBottom:7},t.createElement(A.Z,{variant:"epsilon",textColor:"neutral600"},J({id:"Auth.login.sso.subtitle"})))),t.createElement(L.k,{direction:"column",alignItems:"stretch",gap:7},ie?t.createElement(L.k,{justifyContent:"center"},t.createElement(B.a,null,J({id:"Auth.login.sso.loading"}))):t.createElement(k.Z,{providers:Q}),t.createElement(L.k,null,t.createElement(U,null),t.createElement(P.x,{paddingLeft:3,paddingRight:3},t.createElement(A.Z,{variant:"sigma",textColor:"neutral600"},J({id:"or"}))),t.createElement(U,null)),t.createElement(O.z,{fullWidth:!0,size:"L",onClick:o},J({id:"Auth.form.button.login.strapi"})))),t.createElement(L.k,{justifyContent:"center"},t.createElement(P.x,{paddingTop:4},t.createElement(E.rU,{to:"/auth/forgot-password"},t.createElement(A.Z,{variant:"pi"},J({id:"Auth.link.forgot-password"})))))))},se=e(78834),C={...se.Z,providers:{Component:Z,endPoint:null,fieldsToDisable:[],fieldsToOmit:[],schema:null,inputsPrefix:""}}},99568:function(I,g){"use strict";const e={settings:{auditLogs:{main:[{action:"admin::audit-logs.read",subject:null}],read:[{action:"admin::audit-logs.read",subject:null}]},"review-workflows":{main:[{action:"admin::review-workflows.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}]}}};g.Z=e},48224:function(I,g,e){var t={"./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(!e.o(t,n))return Promise.resolve().then(function(){var m=new Error("Cannot find module '"+n+"'");throw m.code="MODULE_NOT_FOUND",m});var E=t[n],p=E[0];return e.e(E[1]).then(function(){return e.t(p,19)})}r.keys=function(){return Object.keys(t)},r.id=48224,I.exports=r},47750:function(I,g,e){"use strict";I.exports=e.p+"70674f63fc3904c20de0.svg"}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[931],{20392:function(e){e.exports=JSON.parse(`{"attribute.boolean":"Boolean","attribute.boolean.description":"Yes or no, 1 or 0, true or false","attribute.component":"Component","attribute.component.description":"Group of fields that you can repeat or reuse","attribute.customField":"Custom field","attribute.date":"Date","attribute.date.description":"A date picker with hours, minutes and seconds","attribute.datetime":"Datetime","attribute.dynamiczone":"Dynamic zone","attribute.dynamiczone.description":"Dynamically pick component when editing content","attribute.email":"Email","attribute.email.description":"Email field with validations format","attribute.enumeration":"Enumeration","attribute.enumeration.description":"List of values, then pick one","attribute.json":"JSON","attribute.json.description":"Data in JSON format","attribute.media":"Media","attribute.media.description":"Files like images, videos, etc","attribute.null":" ","attribute.number":"Number","attribute.number.description":"Numbers (integer, float, decimal)","attribute.password":"Password","attribute.password.description":"Password field with encryption","attribute.relation":"Relation","attribute.relation.description":"Refers to a Collection Type","attribute.richtext":"Rich text","attribute.richtext.description":"A rich text editor with formatting options","attribute.text":"Text","attribute.text.description":"Small or long text like title or description","attribute.time":"Time","attribute.timestamp":"Timestamp","attribute.uid":"UID","attribute.uid.description":"Unique identifier","button.attributes.add.another":"Add another field","button.component.add":"Add a component","button.component.create":"Create new component","button.model.create":"Create new collection type","button.single-types.create":"Create new single type","component.repeatable":"(repeatable)","components.SelectComponents.displayed-value":"{number, plural, =0 {# components} one {# component} other {# components}} selected","components.componentSelect.no-component-available":"You have already added all your components","components.componentSelect.no-component-available.with-search":"There is no component matching your search","components.componentSelect.value-component":"{number} component selected (type to search for a component)","components.componentSelect.value-components":"{number} components selected","configurations":"Configurations","contentType.apiId-plural.description":"Pluralized API ID","contentType.apiId-plural.label":"API ID (Plural)","contentType.apiId-singular.description":"The UID is used to generate the API routes and databases tables/collections","contentType.apiId-singular.label":"API ID (Singular)","contentType.collectionName.description":"Useful when the name of your Content Type and your table name differ","contentType.collectionName.label":"Collection name","contentType.displayName.label":"Display name","contentType.draftAndPublish.description":"Allows writing a draft version of an entry, before it is published","contentType.draftAndPublish.label":"Draft & publish","contentType.kind.change.warning":"You just changed the kind of a content type: API will be reset (routes, controllers, and services will be overwritten).","contentType.reviewWorkflows.label":"Review Workflows","contentType.reviewWorkflows.description":"Allows having content in different review stages","error.attributeName.reserved-name":"This name cannot be used in your content type as it might break other functionalities","error.contentType.pluralName-used":"This value cannot be the same as the singular one","error.contentType.singularName-used":"This value cannot be the same as the plural one","error.contentTypeName.reserved-name":"This name cannot be used in your project as it might break other functionalities","error.validation.enum-duplicate":"Duplicate values are not allowed (only alphanumeric characters are taken into account).","error.validation.enum-empty-string":"Empty strings are not allowed","error.validation.enum-regex":"At least one value is invalid. Values should have at least one alphabetical character preceding the first occurence of a number.","error.validation.minSupMax":"Can't be superior","error.validation.positive":"Must be a positive number","error.validation.regex":"Regex pattern is invalid","error.validation.relation.targetAttribute-taken":"This name exists in the target","form.attribute.component.option.add":"Add a component","form.attribute.component.option.create":"Create a new component","form.attribute.component.option.create.description":"A component is shared across types and components, it will be available and accessible everywhere.","form.attribute.component.option.repeatable":"Repeatable component","form.attribute.component.option.repeatable.description":"Best for multiple instances (array) of ingredients, meta tags, etc..","form.attribute.component.option.reuse-existing":"Use an existing component","form.attribute.component.option.reuse-existing.description":"Reuse a component already created to keep your data consistent across content-types.","form.attribute.component.option.single":"Single component","form.attribute.component.option.single.description":"Best for grouping fields like full address, main information, etc...","form.attribute.item.customColumnName":"Custom column names","form.attribute.item.customColumnName.description":"This is useful to rename database column names in a more comprehensive format for the API's responses","form.attribute.item.date.type.date":"date (ex: 01/01/{currentYear})","form.attribute.item.date.type.datetime":"datetime (ex: 01/01/{currentYear} 00:00 AM)","form.attribute.item.date.type.time":"time (ex: 00:00 AM)","form.attribute.item.defineRelation.fieldName":"Field name","form.attribute.item.enumeration.graphql":"Name override for GraphQL","form.attribute.item.enumeration.graphql.description":"Allows you to override the default generated name for GraphQL","form.attribute.item.enumeration.placeholder":"Ex:\\nmorning\\nnoon\\nevening","form.attribute.item.enumeration.rules":"Values (one line per value)","form.attribute.item.maximum":"Maximum value","form.attribute.item.maximumLength":"Maximum length","form.attribute.item.minimum":"Minimum value","form.attribute.item.minimumLength":"Minimum length","form.attribute.item.number.type":"Number format","form.attribute.item.number.type.biginteger":"big integer (ex: 123456789)","form.attribute.item.number.type.decimal":"decimal (ex: 2.22)","form.attribute.item.number.type.float":"float (ex: 3.33333333)","form.attribute.item.number.type.integer":"integer (ex: 10)","form.attribute.item.privateField":"Private field","form.attribute.item.privateField.description":"This field will not show up in the API response","form.attribute.item.requiredField":"Required field","form.attribute.item.requiredField.description":"You won't be able to create an entry if this field is empty","form.attribute.item.text.regex":"RegExp pattern","form.attribute.item.text.regex.description":"The text of the regular expression","form.attribute.item.uniqueField":"Unique field","form.attribute.item.uniqueField.description":"You won't be able to create an entry if there is an existing entry with identical content","form.attribute.media.allowed-types":"Select allowed types of media","form.attribute.media.allowed-types.option-files":"Files","form.attribute.media.allowed-types.option-images":"Images","form.attribute.media.allowed-types.option-videos":"Videos","form.attribute.media.option.multiple":"Multiple media","form.attribute.media.option.multiple.description":"Best for sliders, carousels or multiple files download","form.attribute.media.option.single":"Single media","form.attribute.media.option.single.description":"Best for avatar, profile picture or cover","form.attribute.settings.default":"Default value","form.attribute.text.option.long-text":"Long text","form.attribute.text.option.long-text.description":"Best for descriptions, biography. Exact search is disabled.","form.attribute.text.option.short-text":"Short text","form.attribute.text.option.short-text.description":"Best for titles, names, links (URL). It also enables exact search on the field.","form.button.add-components-to-dynamiczone":"Add components to the zone","form.button.add-field":"Add another field","form.button.add-first-field-to-created-component":"Add first field to the component","form.button.add.field.to.collectionType":"Add another field to this collection type","form.button.add.field.to.component":"Add another field to this component","form.button.add.field.to.contentType":"Add another field to this content type","form.button.add.field.to.singleType":"Add another field to this single type","form.button.cancel":"Cancel","form.button.collection-type.description":"Best for multiple instances like articles, products, comments, etc.","form.button.collection-type.name":"Collection Type","form.button.configure-component":"Configure the component","form.button.configure-view":"Configure the view","form.button.select-component":"Select a component","form.button.single-type.description":"Best for single instance like about us, homepage, etc.","form.button.single-type.name":"Single Type","from":"from","listView.headerLayout.description":"Build the data architecture of your content","menu.section.components.name":"Components","menu.section.models.name":"Collection Types","menu.section.single-types.name":"Single Types","modalForm.attribute.form.base.name.description":"No space is allowed for the name of the attribute","modalForm.attribute.form.base.name.placeholder":"e.g. slug, seoUrl, canonicalUrl","modalForm.attribute.target-field":"Attached field","modalForm.attributes.select-component":"Select a component","modalForm.attributes.select-components":"Select the components","modalForm.collectionType.header-create":"Create a collection type","modalForm.component.header-create":"Create a component","modalForm.components.create-component.category.label":"Select a category or enter a name to create a new one","modalForm.components.icon.label":"Icon","modalForm.empty.button":"Add custom fields","modalForm.empty.heading":"Nothing in here yet.","modalForm.empty.sub-heading":"Find what you are looking for through a wide range of extensions.","modalForm.editCategory.base.name.description":"No space is allowed for the name of the category","modalForm.header-edit":"Edit {name}","modalForm.header.categories":"Categories","modalForm.singleType.header-create":"Create a single type","modalForm.sub-header.addComponentToDynamicZone":"Add new component to the dynamic zone","modalForm.sub-header.attribute.create":"Add new {type} field","modalForm.sub-header.attribute.create.step":"Add new component ({step}/2)","modalForm.sub-header.attribute.edit":"Edit {name}","modalForm.sub-header.chooseAttribute.collectionType":"Select a field for your collection type","modalForm.sub-header.chooseAttribute.component":"Select a field for your component","modalForm.sub-header.chooseAttribute.singleType":"Select a field for your single type","modalForm.custom-fields.advanced.settings.extended":"Extended settings","modalForm.tabs.custom":"Custom","modalForm.tabs.custom.howToLink":"How to add custom fields","modalForm.tabs.default":"Default","modalForm.tabs.label":"Default and Custom types tabs","modelPage.attribute.relation-polymorphic":"Relation (polymorphic)","modelPage.attribute.relationWith":"Relation with","notification.error.dynamiczone-min.validation":"At least one component is required in a dynamic zone to be able to save a content type","notification.info.autoreaload-disable":"Strapi is in production mode, editing content types is disabled. Please switch to development mode by starting your server with strapi develop.","notification.info.creating.notSaved":"Please save your work before creating a new collection type or component","plugin.description.long":"Modelize the data structure of your API. Create new fields and relations in just a minute. The files are automatically created and updated in your project.","plugin.description.short":"Modelize the data structure of your API.","plugin.name":"Content-Type Builder","popUpForm.navContainer.advanced":"Advanced settings","popUpForm.navContainer.base":"Basic settings","popUpWarning.bodyMessage.cancel-modifications":"Are you sure you want to cancel your modifications?","popUpWarning.bodyMessage.cancel-modifications.with-components":"Are you sure you want to cancel your modifications? Some components have been created or modified...","popUpWarning.bodyMessage.category.delete":"Are you sure you want to delete this category? All the components will also be deleted.","popUpWarning.bodyMessage.component.delete":"Are you sure you want to delete this component?","popUpWarning.bodyMessage.contentType.delete":"Are you sure you want to delete this collection type?","popUpWarning.draft-publish.button.confirm":"Yes, disable","popUpWarning.draft-publish.message":"If you disable the Draft & publish, your drafts will be deleted.","popUpWarning.draft-publish.second-message":"Are you sure you want to disable it?","popUpWarning.review-workflows.message":"If you disable the review workflows feature, all stage-related information will be removed for this content-type. Are you sure you want to disable it?","prompt.unsaved":"Are you sure you want to leave? All your modifications will be lost.","relation.attributeName.placeholder":"Ex: author, category, tag","relation.manyToMany":"has and belongs to many","relation.manyToOne":"has many","relation.manyWay":"has many","relation.oneToMany":"belongs to many","relation.oneToOne":"has and belongs to one","relation.oneWay":"has one","table.button.no-fields":"Add new field","table.content.create-first-content-type":"Create your first Collection-Type","table.content.no-fields.collection-type":"Add your first field to this Collection-Type","table.content.no-fields.component":"Add your first field to this component"}`)}}]);