@strapi/admin 4.13.1 → 4.13.3

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.
@@ -14,6 +14,7 @@ import { useQueries } from 'react-query';
14
14
  import packageJSON from '../../../../package.json';
15
15
  import { useConfigurations } from '../../hooks';
16
16
  import { getFullName, hashAdminUserEmail } from '../../utils';
17
+ import NpsSurvey from '../NpsSurvey';
17
18
  import PluginsInitializer from '../PluginsInitializer';
18
19
  import RBACProvider from '../RBACProvider';
19
20
 
@@ -109,6 +110,7 @@ const AuthenticatedApp = () => {
109
110
  userDisplayName={userDisplayName}
110
111
  >
111
112
  <RBACProvider permissions={permissions} refetchPermissions={refetch}>
113
+ <NpsSurvey />
112
114
  <PluginsInitializer />
113
115
  </RBACProvider>
114
116
  </AppInfoProvider>
@@ -79,8 +79,11 @@ const checkIfShouldShowSurvey = (settings) => {
79
79
  // Note that submitting a response resets the dismissal counts.
80
80
  // Checks 3 and 4 should not be reversed, since the first dismissal will also exist if the user has dismissed the survey twice or more before.
81
81
 
82
- // User hasn't enabled NPS feature
83
- if (!enabled) {
82
+ // For users who had created an account before the NPS feature was introduced,
83
+ // we assume that they would have enabled the NPS feature if they had the chance.
84
+
85
+ // User chose not to enable the NPS feature when signing up
86
+ if (enabled === false) {
84
87
  return false;
85
88
  }
86
89
 
@@ -134,7 +134,7 @@ export const DynamicComponent = ({
134
134
  <Drag />
135
135
  </IconButton>
136
136
  <Menu.Root>
137
- <Menu.Trigger size="S" endIcon={undefined} paddingLeft={2} paddingRight={2}>
137
+ <Menu.Trigger size="S" endIcon={null} paddingLeft={2} paddingRight={2}>
138
138
  <More aria-hidden focusable={false} />
139
139
  <VisuallyHidden as="span">
140
140
  {formatMessage({
@@ -56,9 +56,9 @@ const Body = () => {
56
56
  const currentTime = useRef(Date.now());
57
57
 
58
58
  const getFieldInfo = (atField, byField) => {
59
- const user = initialData[byField] ?? {};
60
-
61
- const displayName = getDisplayName(user, formatMessage);
59
+ const displayName = initialData[byField]
60
+ ? getDisplayName(initialData[byField], formatMessage)
61
+ : '-';
62
62
  const timestamp = initialData[atField] ? new Date(initialData[atField]).getTime() : Date.now();
63
63
  const elapsed = timestamp - currentTime.current;
64
64
  const { unit, value } = getUnits(-elapsed);
@@ -470,7 +470,11 @@ const SelectedEntriesModal = ({ onToggle }) => {
470
470
  });
471
471
 
472
472
  if (data.results) {
473
- const schema = createYupSchema(contentType, { components }, { isDraft: false });
473
+ const schema = createYupSchema(
474
+ contentType,
475
+ { components },
476
+ { isDraft: false, isJSONTestDisabled: true }
477
+ );
474
478
  const validationErrors = {};
475
479
  const rows = data.results.map((entry) => {
476
480
  try {
@@ -797,21 +797,14 @@ function ListView({
797
797
 
798
798
  if (['createdBy', 'updatedBy'].includes(name.split('.')[0])) {
799
799
  // Display the users full name
800
+ // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)
801
+ // In this case, we display a dash
800
802
  return (
801
803
  <Td key={key}>
802
804
  <Typography textColor="neutral800">
803
- {getDisplayName(rowData[name.split('.')[0]], formatMessage)}
804
- </Typography>
805
- </Td>
806
- );
807
- }
808
-
809
- if (['createdBy', 'updatedBy'].includes(name.split('.')[0])) {
810
- // Display the users full name
811
- return (
812
- <Td key={key}>
813
- <Typography textColor="neutral800">
814
- {getDisplayName(rowData[name.split('.')[0]], formatMessage)}
805
+ {rowData[name.split('.')[0]]
806
+ ? getDisplayName(rowData[name.split('.')[0]], formatMessage)
807
+ : '-'}
815
808
  </Typography>
816
809
  </Td>
817
810
  );
@@ -55,7 +55,12 @@ const getAttributes = (data) => get(data, ['attributes'], {});
55
55
  const createYupSchema = (
56
56
  model,
57
57
  { components },
58
- options = { isCreatingEntry: true, isDraft: true, isFromComponent: false }
58
+ options = {
59
+ isCreatingEntry: true,
60
+ isDraft: true,
61
+ isFromComponent: false,
62
+ isJSONTestDisabled: false,
63
+ }
59
64
  ) => {
60
65
  const attributes = getAttributes(model);
61
66
 
@@ -215,6 +220,10 @@ const createYupSchemaAttribute = (type, validations, options) => {
215
220
  schema = yup
216
221
  .mixed(errorsTrads.json)
217
222
  .test('isJSON', errorsTrads.json, (value) => {
223
+ if (options.isJSONTestDisabled) {
224
+ return true;
225
+ }
226
+
218
227
  if (!value || !value.length) {
219
228
  return true;
220
229
  }
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4546],{17379:function(S,v,n){n.d(v,{r:function(){return P}});var f=n(32735),D=n(72850),O=n(60216),M=n.n(O),x=n(74506);function I(b,A,g){if(!b||!A)return{display:"none"};const{x:C,y:K}=g;return{transform:`translate(${C}px, ${K}px)`}}function P({renderItem:b}){const{itemType:A,isDragging:g,item:C,initialOffset:K,currentOffset:U,mouseOffset:B}=(0,x.useDragLayer)(L=>({item:L.getItem(),itemType:L.getItemType(),initialOffset:L.getInitialSourceClientOffset(),currentOffset:L.getSourceClientOffset(),isDragging:L.isDragging(),mouseOffset:L.getClientOffset()}));return g?f.createElement(D.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},f.createElement(D.x,{style:I(K,U,B)},b({type:A,item:C}))):null}P.propTypes={renderItem:M().func.isRequired}},75430:function(S,v,n){var f=n(32735);const D=(0,f.createContext)();var O=null},69242:function(S,v,n){n.d(v,{PL:function(){return x},Y9:function(){return I.Y},zE:function(){return ie},Ky:function(){return Q},fi:function(){return ne},zH:function(){return le},r5:function(){return a}});var f=n(32735),D=n(15062),O=n(53634),x=()=>{const e=(0,D.v9)(O.Z),t=(0,f.useCallback)(r=>e?.components?.[r]??{},[e]);return{...e,getComponentLayout:t}},I=n(77622),P=n(45509),b=n(84306),A=n(20716),g=n(97889);const C={error:null,isLoading:!0,layout:{},layouts:{}};var U=(e,t)=>(0,g.ZP)(e,r=>{switch(t.type){case"GET_DATA":{r.isLoading=!0,r.error=null,r.layout={};break}case"GET_DATA_SUCCEEDED":{const i=t.data.contentType.uid;r.layout=t.data,r.layouts[i]=t.data,r.isLoading=!1;break}case"GET_DATA_ERROR":{r.isLoading=!1,r.error=t.error;break}case"SET_LAYOUT_FROM_STATE":{r.error=null,r.layout=e.layouts[t.uid];break}case"UPDATE_LAYOUT":{const i=e.layout;r.layout={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}},r.layouts[i.contentType.uid]={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}};break}default:return r}}),B=n(99381),L=n.n(B),J=n(33795),R=n.n(J),se=n(3040),N=n.n(se),q=n(69997);const $=(e,t)=>t.find(r=>r.uid===e),oe=(e,t)=>{const r=_(e,t),i=k(r.contentType,t),u=ee(r.contentType,r.components);return N()(r,["contentType","layouts","edit"],i),N()(r,["contentType","layouts","list"],u),Object.keys(r.components).forEach(l=>{const m=k(r.components[l],t);N()(r,["components",l,"layouts","edit"],m)}),r},_=(e,t)=>{const r=(0,q.w8)(L()(e),t,"contentType"),{components:i,contentType:u}=r,l=m=>Object.keys(m.metadatas).reduce((T,h)=>{const j=R()(m,["attributes",h],{});let F=m.metadatas[h];if(j.type==="relation"){const ye=$(j.targetModel,t),W=F.edit.mainField,G={name:W,schema:R()(ye,["attributes",W])};F={list:{...F.list,mainField:G},edit:{...F.edit,mainField:G}}}return T[h]=F,T},{});return N()(r,["contentType","metadatas"],l(u)),Object.keys(i).forEach(m=>{const T=i[m],h=l(T);N()(r,["components",m,"metadatas"],h)}),r},k=(e,t)=>e.layouts.edit.reduce((r,i)=>{const u=i.map(l=>{const m=R()(e,["attributes",l.name],{}),T={...l,fieldSchema:m,metadatas:R()(e,["metadatas",l.name,"edit"],{})};if(m.type==="relation"){const j=$(m.targetModel,t).pluginOptions||{};N()(T,"targetModelPluginOptions",j),N()(T,"queryInfos",{shouldDisplayRelationLink:Y(e,l.name,t)})}return T});return r.push(u),r},[]),ee=(e,t)=>e.layouts.list.reduce((i,u)=>{const l=R()(e,["attributes",u],{}),m=R()(e,["metadatas",u,"list"],{}),T=l.type;if(T==="relation")return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i;if(T==="component"){const h=t[l.component],j=h.settings.mainField,F=h.attributes[j];return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:{...m,mainField:{...F,name:j}}}),i}return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i},[]),Y=(e,t,r)=>{const i=R()(e,["attributes",t,"targetModel"],"");return Z(r).includes(i)},Z=e=>e.filter(t=>t.isDisplayed).map(({uid:t})=>t);var V=oe,ie=e=>{const[{error:t,isLoading:r,layout:i,layouts:u},l]=(0,f.useReducer)(U,C),m=(0,f.useMemo)(A.Vo,[]),{schemas:T}=(0,D.v9)(W=>m(W),D.wU),h=(0,f.useRef)(!0),{get:j}=(0,P.kY)(),F=(0,f.useCallback)(async(W,G)=>{if(u[W]){l({type:"SET_LAYOUT_FROM_STATE",uid:W});return}l({type:"GET_DATA"});try{const{data:{data:re}}=await j(`/content-manager/content-types/${W}/configuration`,{cancelToken:G.token});l({type:"GET_DATA_SUCCEEDED",data:V(re,T)})}catch(re){if(b.default.isCancel(re))return;h.current&&console.error(re),h.current&&l({type:"GET_DATA_ERROR",error:re})}},[u,T,j]);(0,f.useEffect)(()=>()=>{h.current=!1},[]),(0,f.useEffect)(()=>{const G=b.default.CancelToken.source();return F(e,G),()=>{G.cancel("Operation canceled by the user.")}},[e,F]);const ye=(0,f.useCallback)(W=>{l({type:"UPDATE_LAYOUT",newLayout:V(W,T)})},[T]);return{error:t,isLoading:r,layout:i,updateLayout:ye}},ge=e=>e["content-manager_app"].collectionTypeLinks,ue=n(85973),p=n.n(ue),w=n(33348);const ae=(e,t)=>Object.keys(e).reduce((r,i)=>{const u=e[i],l=R()(t,[i],u);return p()(u)?{...r,[i]:ae(u,l)}:(r[i]=l,r)},{});var ce=(e,t,r)=>{const i=e.find(({to:F})=>F.includes(t));if(!i)return"/";const{to:u,search:l}=i,m=(0,w.parse)(l),T=(0,w.parse)(r.substring(1)),h=ae(m,T);return`${u}?${(0,w.stringify)(h,{encode:!1})}`},Q=e=>{const[{rawQuery:t}]=(0,P.Kx)(),r=(0,D.v9)(ge);return ce(r,e,t)},Te=n(15655),z=n(53038),ne=()=>{const{search:e}=(0,z.TH)(),t=e?(0,w.parse)(e.substring(1)):{};return t.plugins?(0,w.stringify)({plugins:t.plugins},{encode:!1}):""};const le=e=>{const t=(0,f.useRef)();return(0,f.useEffect)(()=>{t.current=e},[e]),t.current};var H=n(85149);const de=(e,t,r)=>({type:H.m,permissions:e,__meta__:{plugins:t,containerName:r}}),fe=()=>({type:H.Q}),me=e=>e["content-manager_rbacManager"].permissions,s=e=>e.rbacProvider.collectionTypesRelatedPermissions;var a=(e,t,r="listView")=>{const i=(0,D.I0)(),u=(0,D.v9)(s),l=(0,D.v9)(me),m=u[t];(0,f.useEffect)(()=>m?(i(de(m,e?e.plugins:null,r)),()=>{i(fe())}):()=>{},[m,i,e,r]);const T=l?.some(h=>h.subject!==t)??!0;return{isValid:l&&!T,permissions:l}},o=n(75430);const d=()=>useContext(WysiwygContext);var y=null},77622:function(S,v,n){n.d(v,{Y:function(){return x}});var f=n(32735),D=n(74506),O=n.n(D),M=n(15655);const x=(I,{type:P="STRAPI_DND",index:b,item:A={},onStart:g,onEnd:C,onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L,dropSensitivity:J="regular"})=>{const R=(0,f.useRef)(null),[{handlerId:se},N]=(0,D.useDrop)({accept:P,collect(k){return{handlerId:k.getHandlerId()}},hover(k,ee){if(!R.current)return;const Y=k.index,Z=b;if(Y!==Z){if(J==="regular"){const V=R.current.getBoundingClientRect(),te=(V.bottom-V.top)/2,X=ee.getClientOffset().y-V.top;if(Y<Z&&X<te||Y>Z&&X>te)return}L(Z,Y),k.index=Z}}}),[{isDragging:q},$,oe]=(0,D.useDrag)({type:P,item(){g&&g();const{width:k}=R.current?.getBoundingClientRect()??{};return{index:b,width:k,...A}},end(){C&&C()},canDrag:I,isDragging:A.id?k=>A.id===k.getItem().id:void 0,collect:k=>({isDragging:k.isDragging()})}),_=(0,M.A)(I,b,{onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L});return[{handlerId:se,isDragging:q,handleKeyDown:_},R,N,$,oe]}},15655:function(S,v,n){n.d(v,{A:function(){return D}});var f=n(32735);const D=(O,M,{onCancel:x,onDropItem:I,onGrabItem:P,onMoveItem:b})=>{const[A,g]=(0,f.useState)(!1),C=L=>{A&&(L==="UP"?b(M-1,M):L==="DOWN"&&b(M+1,M))},K=()=>{A?(I&&I(M),g(!1)):(P&&P(M),g(!0))},U=()=>{A&&(g(!1),x&&x(M))};return L=>{if(O&&!(L.key==="Tab"&&!A))switch(L.preventDefault(),L.key){case" ":case"Enter":K();break;case"Escape":U();break;case"ArrowDown":case"ArrowRight":C("DOWN");break;case"ArrowUp":case"ArrowLeft":C("UP");break;default:}}}},20716:function(S,v,n){n.d(v,{Jg:function(){return b},KQ:function(){return I},Vo:function(){return P},Yg:function(){return O}});var f=n(98178),D=n(60371);const O=()=>g=>g["content-manager_app"]||D.E,M=()=>createSelector(O(),g=>g),x=()=>createSelector(O(),g=>g.models),I=()=>(0,f.P1)(O(),g=>({collectionTypeLinks:g.collectionTypeLinks,singleTypeLinks:g.singleTypeLinks})),P=()=>(0,f.P1)(O(),({components:g,models:C})=>({schemas:[...g,...C]})),b=(0,f.P1)(O(),g=>g.fieldSizes);var A=null},53634:function(S,v){const n=f=>f["content-manager_editViewLayoutManager"].currentLayout;v.Z=n},24381:function(S,v){v.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},48586:function(S,v,n){n.d(v,{G:function(){return f}});const f=({firstname:D,lastname:O,username:M,email:x},I)=>M||(D?I({id:"global.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:D,lastname:O}).trim():x)},7921:function(S,v){const n=f=>`content-manager.${f}`;v.Z=n},69997:function(S,v,n){n.d(v,{_Q:function(){return Z.Z},W3:function(){return M},ko:function(){return I},FE:function(){return b},Di:function(){return K},Ex:function(){return fe},du:function(){return J},TA:function(){return N},Gf:function(){return me.G},Ts:function(){return _},Uo:function(){return ee},OB:function(){return Y.Z},w8:function(){return ue},kc:function(){return ae}});var f=n(99381),D=n.n(f),M=(s,c,a)=>{if(Array.isArray(s)&&c>=0&&a>=0&&c<=s.length-1&&a<=s.length-1){const o=D()(s),d=o.splice(c,1);return o.splice(a,0,d[0]),o}return s},I=s=>{const{type:c}=s;return c==="relation"?!(s?.relationType??"").toLowerCase().includes("morph"):!["json","dynamiczone","richtext","password"].includes(c)&&!!c};const P=(s,c)=>{typeof s=="function"?s(c):s!=null&&(s.current=c)},b=(...s)=>c=>s.forEach(a=>P(a,c));var A=n(33795),g=n.n(A);const C=(s,c)=>Object.keys(s).reduce((a,o)=>{const d=g()(s,[o],{}),{default:y,component:e,type:t,required:r,min:i,repeatable:u}=d;if(y!==void 0&&(a[o]=y),t==="component"){const l=c?.[e]?.attributes??{},m=C(l,c);if(r===!0&&(a[o]=u===!0?[]:m),i&&u===!0&&r){a[o]=[];for(let T=0;T<i;T+=1)a[o].push(m)}}return t==="dynamiczone"&&r===!0&&(a[o]=[]),a},{});var K=C,U=n(9086),B=n.n(U),J=({layouts:s,metadatas:c,...a})=>{const o=s.list.map(e=>e.name?e.name:e),d=Object.keys(c).reduce((e,t)=>{const r=g()(c,[t],{});let i=r.edit;return i.mainField&&(i={...i,mainField:r.edit.mainField.name}),{...e,[t]:{edit:i,list:B()(r.list,["mainField"])}}},{}),y=s.edit.map(e=>e.map(({name:t,size:r})=>({name:t,size:r})));return{...a,layouts:{edit:y,list:o},metadatas:d}};const R=(s,c)=>s.map(a=>({...a,subject:c}));var N=s=>{const c={create:[{action:"plugin::content-manager.explorer.create",subject:null}],delete:[{action:"plugin::content-manager.explorer.delete",subject:null}],publish:[{action:"plugin::content-manager.explorer.publish",subject:null}],read:[{action:"plugin::content-manager.explorer.read",subject:null}],update:[{action:"plugin::content-manager.explorer.update",subject:null}]};return Object.keys(c).reduce((a,o)=>(a[o]=R(c[o],s),a),{})},q=n(95919),$=n.n(q),_=s=>s.split(".").filter(c=>$()(parseInt(c,10))),ee=s=>{if(s.length===0)return-1;const c=Math.max.apply(Math,s.map(a=>a.__temp_key__??0));return Number.isNaN(c)?-1:c},Y=n(7921),Z=n(24381),V=n(86349),te=n.n(V),ie=n(3040),X=n.n(ie),ue=(s,c,a)=>{const o=t=>c.find(r=>r.uid===t),d=Object.assign({},s),y=s[a].uid,e=o(y);return X()(d,[a],te()({},e,s[a])),Object.keys(s.components).forEach(t=>{const r=o(t);X()(d,["components",t],{...s.components[t],...r})}),d},p=n(45509),ae=(s,c,a)=>{const o=(d,y)=>Object.keys(d).reduce((e,t)=>{const r=(0,p.UN)(y,t),i=g()(d,t),u=(0,p.k2)(y,[t,"component"]),l=(0,p.k2)(y,[t,"repeatable"]);return r==="dynamiczone"?(e[t]=i.map(m=>o(m,a[m.__component])),e):r==="component"?(l?e[t]=i&&i.map(m=>o(m,a[u])):e[t]=i&&o(i,a[u]),e):(r!=="password"&&(e[t]=i),e)},{});return o(s,c)},pe=n(51355),ce=n.n(pe),he=n(86834),Q=n.n(he),Te=n(78746),z=n.n(Te),E=n(24346),ne=n(73347);E.kM(E.nK,"defined",function(){return this.test("defined",p.I0.required,s=>s!==void 0)}),E.kM(E.IX,"notEmptyMin",function(s){return this.test("notEmptyMin",p.I0.min,c=>Q()(c)?!0:c.length>=s)}),E.kM(E.Z_,"isInferior",function(s,c){return this.test("isInferior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(c)>=z()(a)})}),E.kM(E.Z_,"isSuperior",function(s,c){return this.test("isSuperior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(a)>=z()(c)})});const le=s=>g()(s,["attributes"],{}),H=(s,{components:c},a={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1})=>{const o=le(s);return E.Ry().shape(Object.keys(o).reduce((d,y)=>{const e=o[y];if(e.type!=="relation"&&e.type!=="component"&&e.type!=="dynamiczone"){const t=de(e.type,e,a);d[y]=t}if(e.type==="relation"&&(d[y]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(e.relationType)?E.Ry().nullable():E.IX().nullable()),e.type==="component"){const t=H(c[e.component],{components:c},{...a,isFromComponent:!0});if(e.repeatable===!0){const{min:i,max:u,required:l}=e;let m=E.Vo(T=>{let h=E.IX().of(t);return i?l?h=h.min(i,p.I0.min):l!==!0&&Q()(T)?h=h.nullable():h=h.min(i,p.I0.min):l&&!a.isDraft&&(h=h.min(1,p.I0.required)),u&&(h=h.max(u,p.I0.max)),h});return d[y]=m,d}const r=E.Vo(i=>i!==void 0?e.required===!0&&!a.isDraft?t.defined():t.nullable():e.required===!0?E.Ry().defined():E.Ry().nullable());return d[y]=r,d}if(e.type==="dynamiczone"){let t=E.IX().of(E.Vo(({__component:u})=>H(c[u],{components:c},{...a,isFromComponent:!0})));const{max:r,min:i}=e;i?e.required?t=t.test("min",p.I0.min,u=>a.isCreatingEntry?u&&u.length>=i:u===void 0?!0:u!==null&&u.length>=i).test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null):t=t.notEmptyMin(i):e.required&&!a.isDraft&&(t=t.test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null)),r&&(t=t.max(r,p.I0.max)),d[y]=t}return d},{}))},de=(s,c,a)=>{let o=E.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(s)&&(o=E.Z_()),s==="json"&&(o=E.nK(p.I0.json).test("isJSON",p.I0.json,d=>{if(!d||!d.length)return!0;try{return JSON.parse(d),!0}catch{return!1}}).nullable().test("required",p.I0.required,d=>!(c.required&&(!d||!d.length)))),s==="email"&&(o=o.email(p.I0.email)),["number","integer","float","decimal"].includes(s)&&(o=E.Rx().transform(d=>$()(d)?void 0:d).typeError()),s==="biginteger"&&(o=E.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(s)&&(o=E.hT()),Object.keys(c).forEach(d=>{const y=c[d];if(y||!ce()(y)&&Number.isInteger(Math.floor(y))||y===0)switch(d){case"required":{a.isDraft||(s==="password"&&a.isCreatingEntry&&(o=o.required(p.I0.required)),s!=="password"&&(a.isCreatingEntry?o=o.required(p.I0.required):o=o.test("required",p.I0.required,e=>e===void 0&&!a.isFromComponent?!0:(0,ne.Z)(s)?e===0?!0:!!e:s==="boolean"?e!=null:s==="date"||s==="datetime"?typeof e=="string"?!Q()(e):!Q()(e?.toString()):!Q()(e))));break}case"max":{s==="biginteger"?o=o.isInferior(p.I0.max,y):o=o.max(y,p.I0.max);break}case"maxLength":o=o.max(y,p.I0.maxLength);break;case"min":{s==="biginteger"?o=o.isSuperior(p.I0.min,y):o=o.min(y,p.I0.min);break}case"minLength":{a.isDraft||(o=o.min(y,p.I0.minLength));break}case"regex":o=o.matches(new RegExp(y),{message:p.I0.regex,excludeEmptyString:!c.required});break;case"lowercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().uppercase());break;case"positive":(0,ne.Z)(s)&&(o=o.positive());break;case"negative":(0,ne.Z)(s)&&(o=o.negative());break;default:o=o.nullable()}}),o};var fe=H,me=n(48586)},73347:function(S,v,n){n.d(v,{Z:function(){return f}});function f(D){return["integer","biginteger","decimal","float","number"].includes(D)}}}]);
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4546],{17379:function(S,v,n){n.d(v,{r:function(){return P}});var f=n(32735),D=n(72850),O=n(60216),M=n.n(O),x=n(74506);function I(b,A,g){if(!b||!A)return{display:"none"};const{x:C,y:K}=g;return{transform:`translate(${C}px, ${K}px)`}}function P({renderItem:b}){const{itemType:A,isDragging:g,item:C,initialOffset:K,currentOffset:U,mouseOffset:B}=(0,x.useDragLayer)(L=>({item:L.getItem(),itemType:L.getItemType(),initialOffset:L.getInitialSourceClientOffset(),currentOffset:L.getSourceClientOffset(),isDragging:L.isDragging(),mouseOffset:L.getClientOffset()}));return g?f.createElement(D.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},f.createElement(D.x,{style:I(K,U,B)},b({type:A,item:C}))):null}P.propTypes={renderItem:M().func.isRequired}},75430:function(S,v,n){var f=n(32735);const D=(0,f.createContext)();var O=null},69242:function(S,v,n){n.d(v,{PL:function(){return x},Y9:function(){return I.Y},zE:function(){return ie},Ky:function(){return Q},fi:function(){return ne},zH:function(){return le},r5:function(){return a}});var f=n(32735),D=n(15062),O=n(53634),x=()=>{const e=(0,D.v9)(O.Z),t=(0,f.useCallback)(r=>e?.components?.[r]??{},[e]);return{...e,getComponentLayout:t}},I=n(77622),P=n(45509),b=n(84306),A=n(20716),g=n(97889);const C={error:null,isLoading:!0,layout:{},layouts:{}};var U=(e,t)=>(0,g.ZP)(e,r=>{switch(t.type){case"GET_DATA":{r.isLoading=!0,r.error=null,r.layout={};break}case"GET_DATA_SUCCEEDED":{const i=t.data.contentType.uid;r.layout=t.data,r.layouts[i]=t.data,r.isLoading=!1;break}case"GET_DATA_ERROR":{r.isLoading=!1,r.error=t.error;break}case"SET_LAYOUT_FROM_STATE":{r.error=null,r.layout=e.layouts[t.uid];break}case"UPDATE_LAYOUT":{const i=e.layout;r.layout={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}},r.layouts[i.contentType.uid]={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}};break}default:return r}}),B=n(99381),L=n.n(B),H=n(33795),R=n.n(H),se=n(3040),N=n.n(se),q=n(69997);const $=(e,t)=>t.find(r=>r.uid===e),oe=(e,t)=>{const r=_(e,t),i=k(r.contentType,t),u=ee(r.contentType,r.components);return N()(r,["contentType","layouts","edit"],i),N()(r,["contentType","layouts","list"],u),Object.keys(r.components).forEach(l=>{const m=k(r.components[l],t);N()(r,["components",l,"layouts","edit"],m)}),r},_=(e,t)=>{const r=(0,q.w8)(L()(e),t,"contentType"),{components:i,contentType:u}=r,l=m=>Object.keys(m.metadatas).reduce((T,h)=>{const j=R()(m,["attributes",h],{});let F=m.metadatas[h];if(j.type==="relation"){const ye=$(j.targetModel,t),W=F.edit.mainField,G={name:W,schema:R()(ye,["attributes",W])};F={list:{...F.list,mainField:G},edit:{...F.edit,mainField:G}}}return T[h]=F,T},{});return N()(r,["contentType","metadatas"],l(u)),Object.keys(i).forEach(m=>{const T=i[m],h=l(T);N()(r,["components",m,"metadatas"],h)}),r},k=(e,t)=>e.layouts.edit.reduce((r,i)=>{const u=i.map(l=>{const m=R()(e,["attributes",l.name],{}),T={...l,fieldSchema:m,metadatas:R()(e,["metadatas",l.name,"edit"],{})};if(m.type==="relation"){const j=$(m.targetModel,t).pluginOptions||{};N()(T,"targetModelPluginOptions",j),N()(T,"queryInfos",{shouldDisplayRelationLink:Y(e,l.name,t)})}return T});return r.push(u),r},[]),ee=(e,t)=>e.layouts.list.reduce((i,u)=>{const l=R()(e,["attributes",u],{}),m=R()(e,["metadatas",u,"list"],{}),T=l.type;if(T==="relation")return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i;if(T==="component"){const h=t[l.component],j=h.settings.mainField,F=h.attributes[j];return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:{...m,mainField:{...F,name:j}}}),i}return i.push({key:`__${u}_key__`,name:u,fieldSchema:l,metadatas:m}),i},[]),Y=(e,t,r)=>{const i=R()(e,["attributes",t,"targetModel"],"");return Z(r).includes(i)},Z=e=>e.filter(t=>t.isDisplayed).map(({uid:t})=>t);var V=oe,ie=e=>{const[{error:t,isLoading:r,layout:i,layouts:u},l]=(0,f.useReducer)(U,C),m=(0,f.useMemo)(A.Vo,[]),{schemas:T}=(0,D.v9)(W=>m(W),D.wU),h=(0,f.useRef)(!0),{get:j}=(0,P.kY)(),F=(0,f.useCallback)(async(W,G)=>{if(u[W]){l({type:"SET_LAYOUT_FROM_STATE",uid:W});return}l({type:"GET_DATA"});try{const{data:{data:re}}=await j(`/content-manager/content-types/${W}/configuration`,{cancelToken:G.token});l({type:"GET_DATA_SUCCEEDED",data:V(re,T)})}catch(re){if(b.default.isCancel(re))return;h.current&&console.error(re),h.current&&l({type:"GET_DATA_ERROR",error:re})}},[u,T,j]);(0,f.useEffect)(()=>()=>{h.current=!1},[]),(0,f.useEffect)(()=>{const G=b.default.CancelToken.source();return F(e,G),()=>{G.cancel("Operation canceled by the user.")}},[e,F]);const ye=(0,f.useCallback)(W=>{l({type:"UPDATE_LAYOUT",newLayout:V(W,T)})},[T]);return{error:t,isLoading:r,layout:i,updateLayout:ye}},ge=e=>e["content-manager_app"].collectionTypeLinks,ue=n(85973),p=n.n(ue),J=n(33348);const ae=(e,t)=>Object.keys(e).reduce((r,i)=>{const u=e[i],l=R()(t,[i],u);return p()(u)?{...r,[i]:ae(u,l)}:(r[i]=l,r)},{});var ce=(e,t,r)=>{const i=e.find(({to:F})=>F.includes(t));if(!i)return"/";const{to:u,search:l}=i,m=(0,J.parse)(l),T=(0,J.parse)(r.substring(1)),h=ae(m,T);return`${u}?${(0,J.stringify)(h,{encode:!1})}`},Q=e=>{const[{rawQuery:t}]=(0,P.Kx)(),r=(0,D.v9)(ge);return ce(r,e,t)},Te=n(15655),z=n(53038),ne=()=>{const{search:e}=(0,z.TH)(),t=e?(0,J.parse)(e.substring(1)):{};return t.plugins?(0,J.stringify)({plugins:t.plugins},{encode:!1}):""};const le=e=>{const t=(0,f.useRef)();return(0,f.useEffect)(()=>{t.current=e},[e]),t.current};var w=n(85149);const de=(e,t,r)=>({type:w.m,permissions:e,__meta__:{plugins:t,containerName:r}}),fe=()=>({type:w.Q}),me=e=>e["content-manager_rbacManager"].permissions,s=e=>e.rbacProvider.collectionTypesRelatedPermissions;var a=(e,t,r="listView")=>{const i=(0,D.I0)(),u=(0,D.v9)(s),l=(0,D.v9)(me),m=u[t];(0,f.useEffect)(()=>m?(i(de(m,e?e.plugins:null,r)),()=>{i(fe())}):()=>{},[m,i,e,r]);const T=l?.some(h=>h.subject!==t)??!0;return{isValid:l&&!T,permissions:l}},o=n(75430);const d=()=>useContext(WysiwygContext);var y=null},77622:function(S,v,n){n.d(v,{Y:function(){return x}});var f=n(32735),D=n(74506),O=n.n(D),M=n(15655);const x=(I,{type:P="STRAPI_DND",index:b,item:A={},onStart:g,onEnd:C,onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L,dropSensitivity:H="regular"})=>{const R=(0,f.useRef)(null),[{handlerId:se},N]=(0,D.useDrop)({accept:P,collect(k){return{handlerId:k.getHandlerId()}},hover(k,ee){if(!R.current)return;const Y=k.index,Z=b;if(Y!==Z){if(H==="regular"){const V=R.current.getBoundingClientRect(),te=(V.bottom-V.top)/2,X=ee.getClientOffset().y-V.top;if(Y<Z&&X<te||Y>Z&&X>te)return}L(Z,Y),k.index=Z}}}),[{isDragging:q},$,oe]=(0,D.useDrag)({type:P,item(){g&&g();const{width:k}=R.current?.getBoundingClientRect()??{};return{index:b,width:k,...A}},end(){C&&C()},canDrag:I,isDragging:A.id?k=>A.id===k.getItem().id:void 0,collect:k=>({isDragging:k.isDragging()})}),_=(0,M.A)(I,b,{onGrabItem:K,onDropItem:U,onCancel:B,onMoveItem:L});return[{handlerId:se,isDragging:q,handleKeyDown:_},R,N,$,oe]}},15655:function(S,v,n){n.d(v,{A:function(){return D}});var f=n(32735);const D=(O,M,{onCancel:x,onDropItem:I,onGrabItem:P,onMoveItem:b})=>{const[A,g]=(0,f.useState)(!1),C=L=>{A&&(L==="UP"?b(M-1,M):L==="DOWN"&&b(M+1,M))},K=()=>{A?(I&&I(M),g(!1)):(P&&P(M),g(!0))},U=()=>{A&&(g(!1),x&&x(M))};return L=>{if(O&&!(L.key==="Tab"&&!A))switch(L.preventDefault(),L.key){case" ":case"Enter":K();break;case"Escape":U();break;case"ArrowDown":case"ArrowRight":C("DOWN");break;case"ArrowUp":case"ArrowLeft":C("UP");break;default:}}}},20716:function(S,v,n){n.d(v,{Jg:function(){return b},KQ:function(){return I},Vo:function(){return P},Yg:function(){return O}});var f=n(98178),D=n(60371);const O=()=>g=>g["content-manager_app"]||D.E,M=()=>createSelector(O(),g=>g),x=()=>createSelector(O(),g=>g.models),I=()=>(0,f.P1)(O(),g=>({collectionTypeLinks:g.collectionTypeLinks,singleTypeLinks:g.singleTypeLinks})),P=()=>(0,f.P1)(O(),({components:g,models:C})=>({schemas:[...g,...C]})),b=(0,f.P1)(O(),g=>g.fieldSizes);var A=null},53634:function(S,v){const n=f=>f["content-manager_editViewLayoutManager"].currentLayout;v.Z=n},24381:function(S,v){v.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},48586:function(S,v,n){n.d(v,{G:function(){return f}});const f=({firstname:D,lastname:O,username:M,email:x},I)=>M||(D?I({id:"global.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:D,lastname:O}).trim():x)},7921:function(S,v){const n=f=>`content-manager.${f}`;v.Z=n},69997:function(S,v,n){n.d(v,{_Q:function(){return Z.Z},W3:function(){return M},ko:function(){return I},FE:function(){return b},Di:function(){return K},Ex:function(){return fe},du:function(){return H},TA:function(){return N},Gf:function(){return me.G},Ts:function(){return _},Uo:function(){return ee},OB:function(){return Y.Z},w8:function(){return ue},kc:function(){return ae}});var f=n(99381),D=n.n(f),M=(s,c,a)=>{if(Array.isArray(s)&&c>=0&&a>=0&&c<=s.length-1&&a<=s.length-1){const o=D()(s),d=o.splice(c,1);return o.splice(a,0,d[0]),o}return s},I=s=>{const{type:c}=s;return c==="relation"?!(s?.relationType??"").toLowerCase().includes("morph"):!["json","dynamiczone","richtext","password"].includes(c)&&!!c};const P=(s,c)=>{typeof s=="function"?s(c):s!=null&&(s.current=c)},b=(...s)=>c=>s.forEach(a=>P(a,c));var A=n(33795),g=n.n(A);const C=(s,c)=>Object.keys(s).reduce((a,o)=>{const d=g()(s,[o],{}),{default:y,component:e,type:t,required:r,min:i,repeatable:u}=d;if(y!==void 0&&(a[o]=y),t==="component"){const l=c?.[e]?.attributes??{},m=C(l,c);if(r===!0&&(a[o]=u===!0?[]:m),i&&u===!0&&r){a[o]=[];for(let T=0;T<i;T+=1)a[o].push(m)}}return t==="dynamiczone"&&r===!0&&(a[o]=[]),a},{});var K=C,U=n(9086),B=n.n(U),H=({layouts:s,metadatas:c,...a})=>{const o=s.list.map(e=>e.name?e.name:e),d=Object.keys(c).reduce((e,t)=>{const r=g()(c,[t],{});let i=r.edit;return i.mainField&&(i={...i,mainField:r.edit.mainField.name}),{...e,[t]:{edit:i,list:B()(r.list,["mainField"])}}},{}),y=s.edit.map(e=>e.map(({name:t,size:r})=>({name:t,size:r})));return{...a,layouts:{edit:y,list:o},metadatas:d}};const R=(s,c)=>s.map(a=>({...a,subject:c}));var N=s=>{const c={create:[{action:"plugin::content-manager.explorer.create",subject:null}],delete:[{action:"plugin::content-manager.explorer.delete",subject:null}],publish:[{action:"plugin::content-manager.explorer.publish",subject:null}],read:[{action:"plugin::content-manager.explorer.read",subject:null}],update:[{action:"plugin::content-manager.explorer.update",subject:null}]};return Object.keys(c).reduce((a,o)=>(a[o]=R(c[o],s),a),{})},q=n(95919),$=n.n(q),_=s=>s.split(".").filter(c=>$()(parseInt(c,10))),ee=s=>{if(s.length===0)return-1;const c=Math.max.apply(Math,s.map(a=>a.__temp_key__??0));return Number.isNaN(c)?-1:c},Y=n(7921),Z=n(24381),V=n(86349),te=n.n(V),ie=n(3040),X=n.n(ie),ue=(s,c,a)=>{const o=t=>c.find(r=>r.uid===t),d=Object.assign({},s),y=s[a].uid,e=o(y);return X()(d,[a],te()({},e,s[a])),Object.keys(s.components).forEach(t=>{const r=o(t);X()(d,["components",t],{...s.components[t],...r})}),d},p=n(45509),ae=(s,c,a)=>{const o=(d,y)=>Object.keys(d).reduce((e,t)=>{const r=(0,p.UN)(y,t),i=g()(d,t),u=(0,p.k2)(y,[t,"component"]),l=(0,p.k2)(y,[t,"repeatable"]);return r==="dynamiczone"?(e[t]=i.map(m=>o(m,a[m.__component])),e):r==="component"?(l?e[t]=i&&i.map(m=>o(m,a[u])):e[t]=i&&o(i,a[u]),e):(r!=="password"&&(e[t]=i),e)},{});return o(s,c)},pe=n(51355),ce=n.n(pe),he=n(86834),Q=n.n(he),Te=n(78746),z=n.n(Te),E=n(24346),ne=n(73347);E.kM(E.nK,"defined",function(){return this.test("defined",p.I0.required,s=>s!==void 0)}),E.kM(E.IX,"notEmptyMin",function(s){return this.test("notEmptyMin",p.I0.min,c=>Q()(c)?!0:c.length>=s)}),E.kM(E.Z_,"isInferior",function(s,c){return this.test("isInferior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(c)>=z()(a)})}),E.kM(E.Z_,"isSuperior",function(s,c){return this.test("isSuperior",s,function(a){return!a||Number.isNaN(z()(a))?!0:z()(a)>=z()(c)})});const le=s=>g()(s,["attributes"],{}),w=(s,{components:c},a={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1,isJSONTestDisabled:!1})=>{const o=le(s);return E.Ry().shape(Object.keys(o).reduce((d,y)=>{const e=o[y];if(e.type!=="relation"&&e.type!=="component"&&e.type!=="dynamiczone"){const t=de(e.type,e,a);d[y]=t}if(e.type==="relation"&&(d[y]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(e.relationType)?E.Ry().nullable():E.IX().nullable()),e.type==="component"){const t=w(c[e.component],{components:c},{...a,isFromComponent:!0});if(e.repeatable===!0){const{min:i,max:u,required:l}=e;let m=E.Vo(T=>{let h=E.IX().of(t);return i?l?h=h.min(i,p.I0.min):l!==!0&&Q()(T)?h=h.nullable():h=h.min(i,p.I0.min):l&&!a.isDraft&&(h=h.min(1,p.I0.required)),u&&(h=h.max(u,p.I0.max)),h});return d[y]=m,d}const r=E.Vo(i=>i!==void 0?e.required===!0&&!a.isDraft?t.defined():t.nullable():e.required===!0?E.Ry().defined():E.Ry().nullable());return d[y]=r,d}if(e.type==="dynamiczone"){let t=E.IX().of(E.Vo(({__component:u})=>w(c[u],{components:c},{...a,isFromComponent:!0})));const{max:r,min:i}=e;i?e.required?t=t.test("min",p.I0.min,u=>a.isCreatingEntry?u&&u.length>=i:u===void 0?!0:u!==null&&u.length>=i).test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null):t=t.notEmptyMin(i):e.required&&!a.isDraft&&(t=t.test("required",p.I0.required,u=>a.isCreatingEntry?u!==null||u!==void 0:u===void 0?!0:u!==null)),r&&(t=t.max(r,p.I0.max)),d[y]=t}return d},{}))},de=(s,c,a)=>{let o=E.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(s)&&(o=E.Z_()),s==="json"&&(o=E.nK(p.I0.json).test("isJSON",p.I0.json,d=>{if(a.isJSONTestDisabled||!d||!d.length)return!0;try{return JSON.parse(d),!0}catch{return!1}}).nullable().test("required",p.I0.required,d=>!(c.required&&(!d||!d.length)))),s==="email"&&(o=o.email(p.I0.email)),["number","integer","float","decimal"].includes(s)&&(o=E.Rx().transform(d=>$()(d)?void 0:d).typeError()),s==="biginteger"&&(o=E.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(s)&&(o=E.hT()),Object.keys(c).forEach(d=>{const y=c[d];if(y||!ce()(y)&&Number.isInteger(Math.floor(y))||y===0)switch(d){case"required":{a.isDraft||(s==="password"&&a.isCreatingEntry&&(o=o.required(p.I0.required)),s!=="password"&&(a.isCreatingEntry?o=o.required(p.I0.required):o=o.test("required",p.I0.required,e=>e===void 0&&!a.isFromComponent?!0:(0,ne.Z)(s)?e===0?!0:!!e:s==="boolean"?e!=null:s==="date"||s==="datetime"?typeof e=="string"?!Q()(e):!Q()(e?.toString()):!Q()(e))));break}case"max":{s==="biginteger"?o=o.isInferior(p.I0.max,y):o=o.max(y,p.I0.max);break}case"maxLength":o=o.max(y,p.I0.maxLength);break;case"min":{s==="biginteger"?o=o.isSuperior(p.I0.min,y):o=o.min(y,p.I0.min);break}case"minLength":{a.isDraft||(o=o.min(y,p.I0.minLength));break}case"regex":o=o.matches(new RegExp(y),{message:p.I0.regex,excludeEmptyString:!c.required});break;case"lowercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().uppercase());break;case"positive":(0,ne.Z)(s)&&(o=o.positive());break;case"negative":(0,ne.Z)(s)&&(o=o.negative());break;default:o=o.nullable()}}),o};var fe=w,me=n(48586)},73347:function(S,v,n){n.d(v,{Z:function(){return f}});function f(D){return["integer","biginteger","decimal","float","number"].includes(D)}}}]);
@@ -0,0 +1,112 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{7805:function(z,I,n){n.r(I),n.d(I,{default:function(){return _t}});var e=n(32735),o=n(45509),Z=n(33795),U=n.n(Z),C=n(20108),P={i8:"4.13.3"},D=n(79652),x=n(90869),b=n(87107),B=n(71933),p=n(87933),f=n(49372),v=n(72850),ae=n(50563),se=n(76437),oe=n(3685),Oe=n(98275),xe=n(33475),Q=n(41415),H=n(35331),re=n(92802),W=n(67879),S=n(8471),Y=n(24346),ke=n(22773);const Ne=(0,S.ZP)(b.g)`
2
+ height: ${32/16}rem;
3
+ width: ${32/16}rem;
4
+
5
+ > label,
6
+ ~ input {
7
+ display: block;
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ right: 0;
12
+ bottom: 0;
13
+ }
14
+
15
+ > label {
16
+ color: inherit;
17
+ cursor: pointer;
18
+ padding: ${({theme:t})=>t.spaces[2]};
19
+ text-align: center;
20
+ vertical-align: middle;
21
+ }
22
+
23
+ &:hover,
24
+ &:focus-within {
25
+ background-color: ${({theme:t})=>t.colors.neutral0};
26
+ }
27
+
28
+ &:active,
29
+ &.selected {
30
+ color: ${({theme:t})=>t.colors.primary700};
31
+ background-color: ${({theme:t})=>t.colors.neutral0};
32
+ border-color: ${({theme:t})=>t.colors.primary700};
33
+ }
34
+ `,K={postResponse:90*24*60*60*1e3,postFirstDismissal:7*24*60*60*1e3,postSubsequentDismissal:90*24*60*60*1e3,display:5*60*1e3},Ze=[...Array(11).keys()],Be=t=>{const{enabled:a,lastResponseDate:s,firstDismissalDate:i,lastDismissalDate:d}=t;return a===!1?!1:s?Date.now()-new Date(s).getTime()>=K.postResponse:d?Date.now()-new Date(d).getTime()>=K.postSubsequentDismissal:i?Date.now()-new Date(i).getTime()>=K.postFirstDismissal:!0};var We=()=>{const t=(0,S.Fg)(),{formatMessage:a}=(0,W.Z)(),{npsSurveySettings:s,setNpsSurveySettings:i}=(0,ke.$)(),[d,u]=e.useState(!1),E=(0,o.lm)(),{currentEnvironment:m,strapiVersion:h}=(0,o.L7)(),{mutate:c,isLoading:M}=(0,C.useMutation)(async g=>{const y=await fetch("https://analytics.strapi.io/submit-nps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(!y.ok)throw new Error("Failed to submit NPS survey");return y},{onSuccess(){i(g=>({...g,lastResponseDate:new Date,firstDismissalDate:null,lastDismissalDate:null})),u(!0),setTimeout(()=>{k(!1)},3e3)},onError(){E({type:"warning",message:a({id:"notification.error"})})}}),[O,k]=e.useState(Be(s)),[F,N]=e.useState(!1);if(e.useEffect(()=>{const g=setTimeout(()=>{N(!0)},K.display);return()=>{clearTimeout(g)}},[]),!F||!O)return null;const R=({npsSurveyRating:g,npsSurveyFeedback:y})=>{const{email:A}=o.I8.getUserInfo();c({email:A,rating:g,comment:y,environment:m,version:h,license:window.strapi.projectType})},G=()=>{i(g=>{const y={...g,lastResponseDate:null};return g.firstDismissalDate?y.lastDismissalDate=new Date:y.firstDismissalDate=new Date,y}),k(!1)};return e.createElement(B.h,null,e.createElement(re.J9,{initialValues:{npsSurveyFeedback:"",npsSurveyRating:null},onSubmit:R,validationSchema:Y.Ry({npsSurveyFeedback:Y.Z_(),npsSurveyRating:Y.Rx().required()})},({values:g,handleChange:y,setFieldValue:A})=>e.createElement(re.l0,{name:"npsSurveyForm"},e.createElement(p.k,{hasRadius:!0,direction:"column",padding:4,borderColor:"primary200",background:"neutral0",shadow:"popupShadow",position:"fixed",bottom:0,left:"50%",transform:"translateX(-50%)",zIndex:t.zIndices[2],width:"50%"},d?e.createElement(f.Z,{fontWeight:"semiBold"},a({id:"app.components.NpsSurvey.feedback-response",defaultMessage:"Thank you very much for your feedback!"})):e.createElement(v.x,{as:"fieldset",width:"100%"},e.createElement(p.k,{justifyContent:"space-between",width:"100%"},e.createElement(v.x,{marginLeft:"auto",marginRight:"auto"},e.createElement(f.Z,{fontWeight:"semiBold",as:"legend"},a({id:"app.components.NpsSurvey.banner-title",defaultMessage:"How likely are you to recommend Strapi to a friend or colleague?"}))),e.createElement(ae.h,{onClick:G,"aria-label":a({id:"app.components.NpsSurvey.dismiss-survey-label",defaultMessage:"Dismiss survey"}),icon:e.createElement(H.Z,null)})),e.createElement(p.k,{gap:2,marginTop:2,marginBottom:2,justifyContent:"center"},e.createElement(f.Z,{variant:"pi",textColor:"neutral600"},a({id:"app.components.NpsSurvey.no-recommendation",defaultMessage:"Not at all likely"})),Ze.map(r=>e.createElement(Ne,{key:r,className:g.npsSurveyRating===r?"selected":null,hasRadius:!0,background:"primary100",borderColor:"primary200",color:"primary600",position:"relative",cursor:"pointer"},e.createElement(se.Q,{htmlFor:`nps-survey-rating-${r}-input`},e.createElement(oe.T,null,e.createElement(Oe._,{type:"radio",id:`nps-survey-rating-${r}-input`,name:"npsSurveyRating",checked:g.npsSurveyRating===r,onChange:L=>A("npsSurveyRating",parseInt(L.target.value,10)),value:r})),r))),e.createElement(f.Z,{variant:"pi",textColor:"neutral600"},a({id:"app.components.NpsSurvey.happy-to-recommend",defaultMessage:"Extremely likely"}))),g.npsSurveyRating!==null&&e.createElement(p.k,{direction:"column"},e.createElement(v.x,{marginTop:2},e.createElement(se.Q,{htmlFor:"npsSurveyFeedback",fontWeight:"semiBold",fontSize:2},a({id:"app.components.NpsSurvey.feedback-question",defaultMessage:"Do you have any suggestion for improvements?"}))),e.createElement(v.x,{width:"62%",marginTop:3,marginBottom:4},e.createElement(xe.g,{id:"npsSurveyFeedback",width:"100%",onChange:y},g.npsSurveyFeedback)),e.createElement(Q.z,{marginBottom:2,type:"submit",loading:M},a({id:"app.components.NpsSurvey.submit-feedback",defaultMessage:"Submit Feedback"}))))))))},Fe=n(74506),Ge=n(51968),V=n(15062),T=n(53038),Ue=n(88311),ie=n.n(Ue),$e=n(75974),le=n(67563),je=n(60216),l=n.n(je);const we=(0,S.ZP)(p.k)`
35
+ position: fixed;
36
+ z-index: 4;
37
+ inset: 0;
38
+ /* this is theme.colors.neutral800 with opacity */
39
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
40
+ `,ce=({onClose:t,onSkip:a,children:s,hideSkip:i})=>{const{formatMessage:d}=(0,W.Z)();return e.createElement(B.h,null,e.createElement(we,{onClick:t,padding:8,justifyContent:"center"},e.createElement(le.i,{onEscape:t},e.createElement(p.k,{direction:"column",alignItems:"stretch",background:"neutral0",width:(0,o.Q1)(660),shadow:"popupShadow",hasRadius:!0,padding:4,gap:8,role:"dialog","aria-modal":!0,onClick:u=>u.stopPropagation()},e.createElement(p.k,{justifyContent:"flex-end"},e.createElement(ae.h,{onClick:t,"aria-label":d({id:"app.utils.close-label",defaultMessage:"Close"}),icon:e.createElement(H.Z,null)})),e.createElement(v.x,{paddingLeft:7,paddingRight:7,paddingBottom:i?8:0},s),!i&&e.createElement(p.k,{justifyContent:"flex-end"},e.createElement(Q.z,{variant:"tertiary",onClick:a},d({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"})))))))};ce.propTypes={children:l().node.isRequired,onClose:l().func.isRequired,onSkip:l().func.isRequired,hideSkip:l().bool.isRequired};var ze=ce,de=n(8482),$=n(47806),J=n(79348);const Qe=S.ZP.li`
41
+ list-style: disc;
42
+ &::marker {
43
+ color: ${({theme:t})=>t.colors.neutral800};
44
+ }
45
+ `,ue=({id:t,defaultMessage:a})=>{const{formatMessage:s}=(0,W.Z)();return e.createElement(p.k,{direction:"column",alignItems:"stretch",gap:4,paddingBottom:6},s({id:t,defaultMessage:a},{documentationLink:Ke,b:Ve,p:He,light:Ye,ul:Je,li:Xe}))},Ke=t=>e.createElement(f.Z,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},t),Ve=t=>e.createElement(f.Z,{fontWeight:"semiBold"},t),He=t=>e.createElement(f.Z,null,t),Ye=t=>e.createElement(f.Z,{textColor:"neutral600"},t),Je=t=>e.createElement(v.x,{paddingLeft:6},e.createElement("ul",null,t)),Xe=t=>e.createElement(Qe,null,t);ue.propTypes={id:l().string.isRequired,defaultMessage:l().string.isRequired};var qe=ue,_e=n(13856);const X=({number:t,last:a,type:s})=>e.createElement(v.x,{paddingTop:3,paddingBottom:a?0:3},e.createElement(_e.Z,{number:t,type:s}));X.defaultProps={number:void 0,last:!1,type:""},X.propTypes={number:l().number,last:l().bool,type:l().string};var pe=X;const q=({title:t,content:a,cta:s,onCtaClick:i,sectionIndex:d,stepIndex:u,hasSectionAfter:E})=>{const{formatMessage:m}=(0,W.Z)(),h=d>0,c=u>0,M=d+1;return e.createElement(e.Fragment,null,e.createElement(p.k,{alignItems:"stretch"},e.createElement(p.k,{marginRight:8,justifyContent:"center",minWidth:(0,o.Q1)(30)},h&&e.createElement(J.Z,{type:$.hx,minHeight:(0,o.Q1)(24)})),e.createElement(f.Z,{variant:"sigma",textColor:"primary600"},m({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(p.k,null,e.createElement(p.k,{marginRight:8,minWidth:(0,o.Q1)(30)},e.createElement(pe,{number:d+1,type:c?$.hx:$.lW})),e.createElement(f.Z,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},m(t))),e.createElement(p.k,{alignItems:"stretch"},e.createElement(p.k,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,o.Q1)(30)},E&&e.createElement(e.Fragment,null,e.createElement(J.Z,{type:$.hx}),c&&e.createElement(pe,{number:M+1,type:$.lW,last:!0}))),e.createElement(v.x,null,e.createElement(qe,{...a}),s&&(s.target?e.createElement(o.Qj,{endIcon:e.createElement(de.Z,null),onClick:i,to:s.target},m(s.title)):e.createElement(Q.z,{endIcon:e.createElement(de.Z,null),onClick:i},m(s.title))))),c&&E&&e.createElement(v.x,{paddingTop:3},e.createElement(p.k,{marginRight:8,justifyContent:"center",width:(0,o.Q1)(30)},e.createElement(J.Z,{type:$.hx,minHeight:(0,o.Q1)(24)}))))};q.defaultProps={currentStep:null,cta:void 0},q.propTypes={sectionIndex:l().number.isRequired,stepIndex:l().number.isRequired,hasSectionAfter:l().bool.isRequired,content:l().shape({id:l().string.isRequired,defaultMessage:l().string.isRequired}).isRequired,cta:l().shape({target:l().string,title:l().shape({id:l().string.isRequired,defaultMessage:l().string.isRequired})}),currentStep:l().string,onCtaClick:l().func.isRequired,title:l().shape({id:l().string.isRequired,defaultMessage:l().string.isRequired}).isRequired};var et=q,me=n(97889);const ge={stepContent:null,sectionIndex:null,stepIndex:null,hasSectionAfter:!1,hasStepAfter:!1};var tt=(t=ge,a)=>(0,me.ZP)(t,s=>{switch(a.type){case"UPDATE_MODAL":{s.stepContent=a.content,s.sectionIndex=a.newSectionIndex,s.stepIndex=a.newStepIndex,s.hasSectionAfter=a.newHasSectionAfter,s.hasStepAfter=a.newHasStepAfter;break}default:return s}}),nt=()=>{const{currentStep:t,guidedTourState:a,setCurrentStep:s,setStepState:i,isGuidedTourVisible:d,setSkipped:u}=(0,o.c1)(),[E,m]=(0,e.useState)(t),[{stepContent:h,sectionIndex:c,stepIndex:M,hasSectionAfter:O,hasStepAfter:k},F]=(0,e.useReducer)(tt,ge),{trackUsage:N}=(0,o.rS)();(0,e.useEffect)(()=>{if(!t){m(!1);return}const[g]=ie()(a,t);m(!g&&d)},[t,a,d]),(0,e.useEffect)(()=>{if(t){const[g]=ie()($e.Z,t),y=Object.keys(a),[A,r]=t.split("."),L=y.indexOf(A),j=Object.keys(a[A]).indexOf(r),en=L<y.length-1,tn=j<Object.keys(a[A]).length-1;F({type:"UPDATE_MODAL",content:g,newSectionIndex:L,newStepIndex:j,newHasSectionAfter:en,newHasStepAfter:tn})}},[t,a]);const R=()=>{i(t,!0),N(h.trackingEvent),s(null)},G=()=>{u(!0),s(null),N("didSkipGuidedtour")};return E&&h?e.createElement(ze,{hideSkip:!k&&!O,onSkip:G,onClose:R},e.createElement(et,{...h,onCtaClick:R,currentStep:t,sectionIndex:c,stepIndex:M,hasSectionAfter:O})):null},he=n(9026),at=n(15300),st=n(61450),ot=n(1897),_=n(78464),fe=n(42889),rt=n(25390),it=n(64838),lt=n(9371),ct=n(73165),dt=n(92967),w=n(14911);const ut=(0,S.ZP)(v.x)`
46
+ width: ${150/16}rem;
47
+ position: absolute;
48
+ bottom: ${({theme:t})=>t.spaces[9]};
49
+ left: ${({theme:t})=>t.spaces[5]};
50
+ `,Ee=(0,S.ZP)(w.OL)`
51
+ display: flex;
52
+ justify-content: space-between;
53
+ align-items: center;
54
+ text-decoration: none;
55
+ padding: ${({theme:t})=>`${t.spaces[2]} ${t.spaces[4]}`};
56
+ border-radius: ${({theme:t})=>t.spaces[1]};
57
+
58
+ &:hover {
59
+ background: ${({theme:t,logout:a})=>a?t.colors.danger100:t.colors.primary100};
60
+ text-decoration: none;
61
+ }
62
+
63
+ svg {
64
+ path {
65
+ fill: ${({theme:t})=>t.colors.danger600};
66
+ }
67
+ }
68
+ `,ye=({generalSectionLinks:t,pluginsSectionLinks:a})=>{const s=(0,e.useRef)(),[i,d]=(0,e.useState)(!1),{logos:{menu:u}}=(0,D.um)(),[E,m]=(0,o.Yw)("navbar-condensed",!1),{userDisplayName:h}=(0,o.L7)(),{formatMessage:c}=(0,W.Z)(),{trackUsage:M}=(0,o.rS)(),{pathname:O}=(0,T.TH)(),k=(0,T.k6)(),{post:F}=(0,o.tg)(),N=h.split(" ").map(r=>r.substring(0,1)).join("").substring(0,2),R=()=>d(r=>!r),G=async()=>{await F("/admin/logout"),o.I8.clearAppStorage(),R(),k.push("/auth/login")},g=r=>{!r.currentTarget.contains(r.relatedTarget)&&r.relatedTarget?.parentElement?.id!=="main-nav-user-button"&&d(!1)},y=(r=null)=>{M("willNavigate",{from:O,to:r})},A=c({id:"app.components.LeftMenu.navbrand.title",defaultMessage:"Strapi Dashboard"});return e.createElement(at.$,{condensed:E},e.createElement(st.D,{as:w.OL,workplace:c({id:"app.components.LeftMenu.navbrand.workplace",defaultMessage:"Workplace"}),title:A,icon:e.createElement("img",{src:u.custom||u.default,alt:c({id:"app.components.LeftMenu.logo.alt",defaultMessage:"Application logo"})})}),e.createElement(he.i,null),e.createElement(ot._,null,e.createElement(_.O,{as:w.OL,to:"/content-manager",icon:e.createElement(ct.Z,null),onClick:()=>y("/content-manager")},c({id:"global.content-manager",defaultMessage:"Content manager"})),a.length>0?e.createElement(fe.y,{label:c({id:"app.components.LeftMenu.plugins",defaultMessage:"Plugins"})},a.map(r=>{const L=r.icon;return e.createElement(_.O,{as:w.OL,to:r.to,key:r.to,icon:e.createElement(L,null),onClick:()=>y(r.to)},c(r.intlLabel))})):null,t.length>0?e.createElement(fe.y,{label:c({id:"app.components.LeftMenu.general",defaultMessage:"General"})},t.map(r=>{const L=r.icon;return e.createElement(_.O,{as:w.OL,badgeContent:r.notificationsCount>0&&r.notificationsCount.toString()||void 0,to:r.to,key:r.to,icon:e.createElement(L,null),onClick:()=>y(r.to)},c(r.intlLabel))})):null),e.createElement(rt.q,null,e.createElement(it.r,{id:"main-nav-user-button",ref:s,onClick:R,initials:N},h),i&&e.createElement(ut,{onBlur:g,padding:1,shadow:"tableShadow",background:"neutral0",hasRadius:!0},e.createElement(le.i,{onEscape:R},e.createElement(p.k,{direction:"column",alignItems:"stretch",gap:0},e.createElement(Ee,{tabIndex:0,onClick:R,to:"/me"},e.createElement(f.Z,null,c({id:"global.profile",defaultMessage:"Profile"}))),e.createElement(Ee,{tabIndex:0,onClick:G,to:"/auth/login"},e.createElement(f.Z,{textColor:"danger600"},c({id:"app.components.LeftMenu.logout",defaultMessage:"Logout"})),e.createElement(dt.Z,null))))),e.createElement(lt.w,{onClick:()=>m(r=>!r)},c(E?{id:"app.components.LeftMenu.expand",defaultMessage:"Expand the navbar"}:{id:"app.components.LeftMenu.collapse",defaultMessage:"Collapse the navbar"}))))};ye.propTypes={generalSectionLinks:l().array.isRequired,pluginsSectionLinks:l().array.isRequired};var pt=ye,mt=n(10728);const gt=(0,S.ZP)(v.x)`
69
+ flex: 1;
70
+ `,ve=({children:t,sideNav:a})=>{const{formatMessage:s}=(0,W.Z)();return e.createElement(v.x,{background:"neutral100"},e.createElement(mt.z,null,s({id:"skipToContent",defaultMessage:"Skip to content"})),e.createElement(p.k,{alignItems:"flex-start"},a,e.createElement(gt,null,t)))};ve.propTypes={children:l().node.isRequired,sideNav:l().node.isRequired};var ht=ve,ft=n(4556),ee=n(99140),Et=n(5383),yt=n(45323),vt=n(29685),St=n(2438),Tt=n.p+"19eb2dfcf2603eb55733.png",Ct=n(37272),Mt=n(78429);const Rt=[{label:{id:"app.components.Onboarding.link.build-content",defaultMessage:"Build a content architecture"},href:"https://www.youtube.com/watch?v=G9GjN0RxhkE",duration:"5:48"},{label:{id:"app.components.Onboarding.link.manage-content",defaultMessage:"Add & manage content"},href:"https://www.youtube.com/watch?v=DEZw4KbybAI",duration:"3:18"},{label:{id:"app.components.Onboarding.link.manage-media",defaultMessage:"Manage media"},href:"https://www.youtube.com/watch?v=-61MuiMQb38",duration:"3:41"}],Se={href:"https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq",label:{id:"app.components.Onboarding.link.more-videos",defaultMessage:"Watch more videos"}},It=[{label:{id:"global.documentation",defaultMessage:"documentation"},href:"https://docs.strapi.io",icon:Ct.Z},{label:{id:"app.static.links.cheatsheet",defaultMessage:"cheatsheet"},href:"https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf",icon:Mt.Z}],Pt=(0,S.ZP)(Q.z)`
71
+ border-radius: 50%;
72
+ padding: ${({theme:t})=>t.spaces[3]};
73
+ /* Resetting 2rem height defined by Button component */
74
+ height: 100%;
75
+ `,Dt=(0,S.ZP)(p.k)`
76
+ transform: translate(-50%, -50%);
77
+ `,bt=(0,S.ZP)(p.k)`
78
+ text-decoration: none;
79
+
80
+ :focus-visible {
81
+ outline-offset: ${({theme:t})=>`-${t.spaces[1]}`};
82
+ }
83
+
84
+ :hover {
85
+ background: ${({theme:t})=>t.colors.primary100};
86
+
87
+ /* Hover style for the number displayed */
88
+ ${f.Z}:first-child {
89
+ color: ${({theme:t})=>t.colors.primary500};
90
+ }
91
+
92
+ /* Hover style for the label */
93
+ ${f.Z}:nth-child(1) {
94
+ color: ${({theme:t})=>t.colors.primary600};
95
+ }
96
+ }
97
+ `,At=S.ZP.img`
98
+ width: ${({theme:t})=>t.spaces[10]};
99
+ height: ${({theme:t})=>t.spaces[8]};
100
+ /* Same overlay used in ModalLayout */
101
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
102
+ border-radius: ${({theme:t})=>t.borderRadius};
103
+ `,Te=(0,S.ZP)(f.Z)`
104
+ /* line height of label and watch more to 1 so they can be better aligned visually */
105
+ line-height: 1;
106
+ `,Ce=(0,S.ZP)(Te)`
107
+ text-decoration: none;
108
+
109
+ :hover {
110
+ text-decoration: underline;
111
+ }
112
+ `;var Lt=()=>{const t=(0,e.useRef)(),[a,s]=(0,e.useState)(!1),{formatMessage:i}=(0,W.Z)(),{communityEdition:d}=(0,o.L7)(),u=()=>{s(m=>!m)},E=[...It,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:yt.Z,href:d?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(v.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(Pt,{"aria-label":i(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:u,ref:t},e.createElement(ee.J,{as:a?H.Z:vt.Z,color:"buttonNeutral0"})),a&&e.createElement(B.h,null,e.createElement(Et.VY,{padding:0,onDimiss:u,source:t,placement:"top-end",spacing:12},e.createElement(p.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(Te,{fontWeight:"bold"},i({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(Ce,{as:"a",href:Se.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},i(Se.label))),e.createElement(he.i,null),Rt.map(({href:m,duration:h,label:c},M)=>e.createElement(bt,{as:"a",href:m,target:"_blank",rel:"noreferrer noopener",key:m,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(v.x,{paddingRight:5},e.createElement(f.Z,{textColor:"neutral200",variant:"alpha"},M+1)),e.createElement(v.x,{position:"relative"},e.createElement(At,{src:Tt,alt:""}),e.createElement(Dt,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(ee.J,{as:St.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(p.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(f.Z,{fontWeight:"bold"},i(c)),e.createElement(oe.T,null,":"),e.createElement(f.Z,{textColor:"neutral600",variant:"pi"},h)))),e.createElement(p.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},E.map(({label:m,href:h,icon:c})=>e.createElement(p.k,{gap:3,key:h},e.createElement(ee.J,{as:c,color:"primary600"}),e.createElement(Ce,{as:"a",href:h,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},i(m))))))))};const Ot=(0,e.lazy)(()=>Promise.all([n.e(3739),n.e(9806),n.e(4546),n.e(994)]).then(n.bind(n,4639))),xt=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,83555))),kt=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,91534))),Nt=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,95018))),Me=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,33248))),Zt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,7703))),Bt=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,94987))),Re=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,87211)).then(t=>({default:t.SettingsPage}))),Wt=()=>{const{trackUsage:t}=(0,o.rS)(),a=(0,V.I0)(),s=(0,V.v9)(i=>i.admin_app.status);(0,e.useEffect)(()=>{s==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:ft.eb}))},[s])};var Ft=()=>{Wt();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:s}=(0,D.H9)(),{menu:i}=(0,o.j1)(),{showTutorials:d}=(0,D.um)(),u=(0,e.useMemo)(()=>i.filter(E=>E.Component).map(({to:E,Component:m,exact:h})=>(0,x.ot)(m,E,h)),[i]);return t?e.createElement(o.dO,null):e.createElement(Fe.DndProvider,{backend:Ge.PD},e.createElement(ht,{sideNav:e.createElement(pt,{generalSectionLinks:a,pluginsSectionLinks:s})},e.createElement(e.Suspense,{fallback:e.createElement(o.dO,null)},e.createElement(T.rs,null,e.createElement(T.AW,{path:"/",component:xt,exact:!0}),e.createElement(T.AW,{path:"/me",component:Bt,exact:!0}),e.createElement(T.AW,{path:"/content-manager",component:Ot}),u,e.createElement(T.AW,{path:"/settings/:settingId",component:Re}),e.createElement(T.AW,{path:"/settings",component:Re,exact:!0}),e.createElement(T.AW,{path:"/marketplace"},e.createElement(Nt,null)),e.createElement(T.AW,{path:"/list-plugins",exact:!0},e.createElement(kt,null)),e.createElement(T.AW,{path:"/404",component:Me}),e.createElement(T.AW,{path:"/500",component:Zt}),e.createElement(T.AW,{path:"",component:Me}))),e.createElement(nt,null),d&&e.createElement(Lt,null)))},Gt=t=>({plugins:Object.keys(t).reduce((a,s)=>(a[s]={...t[s]},a),{})}),Ut=n(3040),$t=n.n(Ut);const Ie={plugins:null};var jt=(t=Ie,a)=>(0,me.ZP)(t,s=>{switch(a.type){case"SET_PLUGIN_READY":{$t()(s,["plugins",a.pluginId,"isReady"],!0);break}default:return s}}),wt=()=>{const{plugins:t}=(0,o.j1)(),[{plugins:a},s]=(0,e.useReducer)(jt,Ie,()=>Gt(t)),i=(0,e.useRef)(u=>{s({type:"SET_PLUGIN_READY",pluginId:u})});if(Object.keys(a).some(u=>a[u].isReady===!1)){const u=Object.keys(a).reduce((E,m)=>{const h=a[m].initializer;if(h){const c=a[m].pluginId;E.push(e.createElement(h,{key:c,setPlugin:i.current}))}return E},[]);return e.createElement(e.Fragment,null,u,e.createElement(o.dO,null))}return e.createElement(Ft,null)},Pe=n(82702);const zt=()=>({type:Pe.l}),Qt=t=>({type:Pe.m,permissions:t}),De=({children:t,permissions:a,refetchPermissions:s})=>{const{allPermissions:i}=(0,V.v9)(u=>u.rbacProvider),d=(0,V.I0)();return(0,e.useEffect)(()=>(d(Qt(a)),()=>{d(zt())}),[a,d]),i?e.createElement(o.oL.Provider,{value:{allPermissions:i,refetchPermissions:s}},t):e.createElement(o.dO,null)};De.propTypes={children:l().element.isRequired,permissions:l().array.isRequired,refetchPermissions:l().func.isRequired};var Kt=De,Vt=n(54770),te=n.n(Vt),be=(t,a)=>!te().valid(t)||!te().valid(a)?!1:te().lt(t,a);const Ae=P.i8,Ht=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:ne}=(0,o.tg)(),Yt=async t=>{try{const a=await fetch("https://api.github.com/repos/strapi/strapi/releases/latest");if(!a.ok)throw new Error("Failed to fetch latest Strapi version.");const{tag_name:s}=await a.json();return be(Ae,s)&&Ht&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${s}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),s}catch{return Ae}},Jt=async()=>{try{const{data:t,headers:a}=await ne("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Xt=async()=>{try{const{data:t,headers:a}=await ne("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},qt=async()=>{try{const{data:{data:{roles:t}}}=await ne("/admin/users/me");return t}catch(t){throw new Error(t)}},Le=P.i8;var _t=()=>{const{setGuidedTourVisibility:t}=(0,o.c1)(),a=(0,o.lm)(),s=o.I8.getUserInfo(),i=U()(s,"username")||(0,x.Pp)(s.firstname,s.lastname),[d,u]=(0,e.useState)(i),[E,m]=(0,e.useState)(null),{showReleaseNotification:h}=(0,D.um)(),[{data:c,status:M},{data:O,isLoading:k},{data:F,status:N,refetch:R,isFetching:G},{data:g}]=(0,C.useQueries)([{queryKey:"app-infos",queryFn:Jt},{queryKey:"strapi-release",queryFn:()=>Yt(a),enabled:h,initialData:Le},{queryKey:"admin-users-permission",queryFn:Xt,initialData:[]},{queryKey:"user-roles",queryFn:qt}]),y=be(Le,O);return(0,e.useEffect)(()=>{g&&g.find(({code:j})=>j==="strapi-super-admin")&&c?.autoReload&&t(!0)},[g,c,t]),(0,e.useEffect)(()=>{(async()=>{const j=await(0,x.Qy)(s);m(j)})()},[s]),k||(G||M==="loading"||N==="loading")?e.createElement(o.dO,null):M==="error"?e.createElement("div",null,"error..."):e.createElement(o.iq,{...c,userId:E,latestStrapiReleaseTag:O,setUserDisplayName:u,shouldUpdateStrapi:y,userDisplayName:d},e.createElement(Kt,{permissions:F,refetchPermissions:R},e.createElement(We,null),e.createElement(wt,null)))}},79348:function(z,I,n){var e=n(32735),o=n(72850),Z=n(45509),U=n(60216),C=n.n(U),P=n(47806);const D=({type:x,...b})=>e.createElement(o.x,{width:(0,Z.Q1)(2),height:"100%",background:x===P.VM?"neutral300":"primary500",hasRadius:!0,...b});D.defaultProps={type:P.VM},D.propTypes={type:C().oneOf([P.lW,P.hx,P.VM])},I.Z=D},13856:function(z,I,n){var e=n(32735),o=n(87933),Z=n(99140),U=n(49372),C=n(45509),P=n(66456),D=n(60216),x=n.n(D),b=n(47806);const B=({type:p,number:f})=>p===b.hx?e.createElement(o.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(Z.J,{as:P.Z,"aria-hidden":!0,width:(0,C.Q1)(16),color:"neutral0"})):p===b.lW?e.createElement(o.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(U.Z,{fontWeight:"semiBold",textColor:"neutral0"},f)):e.createElement(o.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(U.Z,{fontWeight:"semiBold",textColor:"neutral600"},f));B.defaultProps={number:void 0,type:b.VM},B.propTypes={number:x().number,type:x().oneOf([b.lW,b.hx,b.VM])},I.Z=B},47806:function(z,I,n){n.d(I,{VM:function(){return Z},hx:function(){return o},lW:function(){return e}});const e="isActive",o="isDone",Z="isNotDone"},75974:function(z,I){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};I.Z=n}}]);