strapi-plugin-navigation 3.3.1-beta.1 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +194 -193
- package/package.json +3 -3
package/dist/admin/index.js
CHANGED
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
@media (min-width: 768px) {
|
|
178
178
|
order: ${({orderMedium:e})=>e??"unset"};
|
|
179
179
|
}
|
|
180
|
-
`,Ka=()=>{const{formatMessage:e}=E.useIntl(),{values:n,onChange:a,handleChange:i,renderError:s,canUpdate:r}=ne();return t.jsx(Ua,{alignItems:"flex-start",col:4,m:4,xs:12,orderInitial:1,orderMedium:2,children:t.jsx(N.Field,{name:"autoSync",label:e(l("popup.item.form.autoSync.label","Read fields from related")),error:s("autoSync"),children:t.jsx(o.Toggle,{name:"autoSync",checked:n.autoSync,onChange:c=>i(c,!n.autoSync,a),disabled:!r,onLabel:"Enabled",offLabel:"Disabled"})})},"autoSync")},Wa=({contentTypeItems:e,current:n,isSingleSelected:a})=>{const{formatMessage:i}=E.useIntl(),s=W(),{values:r,onChange:c,handleChange:u,renderError:g,canUpdate:m}=ne(),p=r.type==="EXTERNAL"?"externalPath":"path",C=r.type==="INTERNAL"?r:{related:void 0,relatedType:void 0},b=Oa({currentPath:r.path,isExternal:r.type==="EXTERNAL",current:n,currentType:r.type,config:s.data,contentTypeItems:e,currentRelated:C.related,currentRelatedType:C.relatedType,isSingleSelected:a}),v=!m||r.autoSync&&r.type==="INTERNAL",x=C.relatedType?s.data?.pathDefaultFields?.[C.relatedType]??[]:[],y=e?.find(({documentId:f})=>f===C.related),I=x.find(f=>y?.[f]);return t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12,children:t.jsx(N.Field,{name:p,label:i(l(`popup.item.form.${p}.label`,"Path")),error:g(p,`popup.item.form.${p}.validation.type`),hint:[i(l(`popup.item.form.${p}.placeholder`,"e.g. Blog")),b?i(l("popup.item.form.type.external.description"),{value:b}):"",v?i(l("popup.item.form.type.internal.source"),{value:I||"id"}):""].join(" "),children:t.jsx(o.TextInput,{disabled:v,name:p,onChange:(f,T)=>u(f,T,c),value:(r.type==="EXTERNAL"?r.externalPath:r.path)||"",width:"100%"})})},"title")},Ha="",Xa={type:"media",required:!1,attribute:{multiple:!1,allowedTypes:["files","images","videos","audios"]},pluginOptions:{i18n:{localized:!1}}},Za=({name:e,field:n,isLoading:a,onChange:i,onChangeEnhancer:s,value:r,disabled:c})=>{const{toggleNotification:u}=F.useNotification(),{formatMessage:g}=E.useIntl(),p=F.useStrapiApp("AdditionalFieldInput",b=>b.fields).media,C=j.useMemo(()=>({id:n.name,name:e||n.name,disabled:a||c,placeholder:n.placeholder}),[n,a]);switch(j.useEffect(()=>{if(n.type==="media"){const b=S.isNull(r)?void 0:r;s(C.name,b,i)}},[r]),n.type){case"boolean":return t.jsx(o.Toggle,{...C,checked:!!r,onChange:b=>s(b,!r,i),onLabel:"true",offLabel:"false",type:"checkbox"});case"string":return t.jsx(o.Textarea,{...C,onChange:(b,v)=>s(b,v,i),value:r||Ha});case"select":return n.multi?t.jsx(o.MultiSelect,{...C,onChange:b=>s(C.name,b,i),value:S.isNil(r)?n.multi?[]:null:r,multi:n.multi,withTags:n.multi,children:n.options.map((b,v)=>t.jsx(o.MultiSelectOption,{value:b,children:b},`${n.name}-option-${v}`))}):t.jsx(o.SingleSelect,{...C,onChange:b=>s(C.name,b,i),value:S.isNil(r)?n.multi?[]:null:r,multi:n.multi,withTags:n.multi,children:n.options.map((b,v)=>t.jsx(o.SingleSelectOption,{value:b,children:b},`${n.name}-option-${v}`))});case"media":return t.jsx(p,{...C,...Xa,value:r});default:throw u({type:"warning",message:g(l("notification.error.customField.type"))}),new Error("Type of custom field is unsupported")}},Ja=({additionalField:e})=>{const{canUpdate:n,isLoading:a,onChange:i,handleChange:s,renderError:r,values:c}=ne();return t.jsx(o.Grid.Item,{alignItems:"flex-start",s:6,xs:12,children:t.jsx(N.Field,{name:`additionalFields.${e.name}`,label:e.label,hint:e.description,required:e.required,error:r(`additionalFields.${e.name}`),children:t.jsx(Za,{name:`additionalFields.${e.name}`,field:e,isLoading:a,onChange:i,onChangeEnhancer:s,value:S.get(c?.additionalFields,e.name),disabled:!n})})},e.name)},Ya=()=>{const{formatMessage:e}=E.useIntl(),a=W().data?.availableAudience??[],i=j.useMemo(()=>a.map(m=>({value:m.documentId??0,label:m.name??" "})),[a]),{isLoading:s,renderError:r,onChange:c,handleChange:u,values:g}=ne();return t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12,children:t.jsx(N.Field,{name:"audience",label:e(l("popup.item.form.audience.label")),error:r("audience"),hint:!s&&S.isEmpty(i)?e(l("popup.item.form.title.placeholder","e.g. Blog")):void 0,children:t.jsx(o.MultiSelect,{name:"audience",value:g.audience,onChange:m=>u("audience",m,c),width:"100%",children:i.map(({value:m,label:p})=>t.jsx(o.MultiSelectOption,{value:m,children:p},m))})})},"audience")},eo=()=>{const e=W();if(!e.data?.additionalFields||S.isEmpty(e.data.additionalFields))return null;const n=e.data.additionalFields.filter(i=>i!=="audience"),a=e.data.additionalFields.find(i=>i==="audience");return t.jsxs(t.Fragment,{children:[t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(o.Grid.Item,{col:12,children:t.jsx(o.Divider,{width:"100%"})})}),t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[n.map(i=>t.jsx(Ja,{additionalField:i},i.name)),a&&t.jsx(Ya,{})]}),t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(o.Grid.Item,{col:12,children:t.jsx(o.Divider,{width:"100%"})})})]})},to=({availableLocale:e,current:n,currentNavigation:a,setIsLoading:i,setFormValuesItems:s})=>{const{formatMessage:r}=E.useIntl(),[c,u]=j.useState(),g=Nn(),m=Ge(),{canUpdate:p,isLoading:C}=ne(),b=j.useMemo(()=>e.map((x,y)=>({key:`${x}-${y}`,value:x,label:x})),[e]),v=j.useCallback(async x=>{x.preventDefault(),x.stopPropagation();const y=m.data?.find(({locale:I})=>I===c);y&&(i(!0),g.mutate({target:a.documentId,structureId:n.structureId,source:y.documentId},{onSuccess(I){g.reset();const{type:f,externalPath:T,path:L,related:B,title:P,uiRouterKey:w}=I;s({type:f,externalPath:T,path:L,title:P,uiRouterKey:w,related:B})},onSettled(){i(!1)}}))},[i,g,m]);return!b||b.length<1?null:t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsxs(o.Grid.Item,{alignItems:"flex-start",col:12,children:[t.jsx(o.Divider,{marginTop:5,marginBottom:5}),t.jsxs(o.Grid.Root,{gap:5,children:[t.jsx(o.Grid.Item,{alignItems:"flex-start",col:6,lg:12,children:t.jsx(N.Field,{name:"i18n.locale",label:r(l("popup.item.form.i18n.locale.label","Copy details from")),children:t.jsx(o.SingleSelect,{name:"i18n.locale",onChange:u,value:c,disabled:C||!p,placeholder:r(l("popup.item.form.i18n.locale.placeholder","locale")),children:b.map(({key:x,label:y,value:I})=>t.jsx(o.SingleSelectOption,{value:I,children:y},x))})})}),p&&t.jsx(o.Grid.Item,{alignItems:"flex-start",col:6,lg:12,paddingTop:6,children:t.jsx(o.Box,{children:t.jsx(o.Button,{variant:"tertiary",onClick:v,disabled:C||!c,children:r(l("popup.item.form.i18n.locale.button"))})})})]})]},"title")})},at=(e,n)=>n?e.find(a=>a.value===n)?.label??"":"",vt=({name:e,onClear:n,onChange:a,options:i,value:s,disabled:r})=>{const[c,u]=j.useState(at(i,s));return j.useEffect(()=>{u(at(i,s))},[s,i]),t.jsx(o.Combobox,{name:e,autocomplete:"list",onClear:n,onChange:a,onTextValueChange:u,value:s,textValue:c,options:i,disabled:r,width:"100%",children:i.map(({key:g,label:m,value:p})=>t.jsx(o.ComboboxOption,{value:p,children:m},g))})},no=({contentTypeItems:e,current:n,currentRelatedType:a,isSingleSelected:i,setFormValuesItems:s,setIsSingleSelected:r})=>{const{formatMessage:c}=E.useIntl(),u=W(),{canUpdate:g,isLoading:m,renderError:p,setFormValueItem:C,values:b}=ne(),v=j.useMemo(()=>S.sortBy(u.data?.contentTypes.map(x=>({key:x.uid,value:x.uid,label:x.label})),x=>x.label),[u.data,a]);return j.useEffect(()=>{if(!a)return;const x=u.data?.contentTypes.find(y=>y.uid===a);if(x&&(r(x.isSingle),x.isSingle&&e?.length)){const y=e[0];y&&C("related",y.documentId)}},[a,u.data,e]),j.useEffect(()=>{a===""&&C("relatedType",u.data?.defaultContentType)},[u.data?.defaultContentType,b.type,a]),t.jsx(o.Grid.Item,{alignItems:"flex-start",m:a&&!i?6:12,xs:12,children:t.jsx(N.Field,{name:"relatedType",label:c(l("popup.item.form.relatedType.label","Related Type")),error:p("relatedType"),hint:!m&&S.isEmpty(v)?c(l("popup.item.form.relatedType.empty","There are no more content types")):void 0,children:t.jsx(vt,{name:"relatedType",onClear:()=>s({related:void 0,relatedType:void 0,title:b.autoSync?"":b.title}),onChange:x=>s({related:void 0,relatedType:x,title:b.autoSync?"":b.title}),value:a,options:v,disabled:!u.data?.contentTypes.length||!g})})})},ao=(e,n,a)=>{const i=W();j.useEffect(()=>{if(!e.autoSync||!e.related||!e.relatedType||!i.data)return;const s=n?.find(m=>m.documentId===e.related);if(!s)return;const{contentTypesNameFields:r,pathDefaultFields:c}=i.data,u=(c[e.relatedType]?.reduce((m,p)=>m||s?.[p],void 0)||s.id).toString(),g=(r[e.relatedType]??[]).concat(r.default??[]).reduce((m,p)=>m?m.toString():s?.[p],void 0);u&&e.path,g&&e.title,a({path:u,title:g})},[e.autoSync,e.related,e.relatedType,n,i.data])},oo=({appendLabelPublicationStatus:e,contentTypeItems:n,isSingleSelected:a,values:i,setFormValuesItems:s})=>{const{formatMessage:r}=E.useIntl(),c=W(),{canUpdate:u,isLoading:g,handleChange:m,onChange:p,renderError:C}=ne(),b=S.sortBy(n?.map(x=>{const I=e(Fe({...x,__collectionUid:i.relatedType},c.data),x,!1)+(x?.id?` (id: ${x.id})`:"");return{key:x?.documentId?.toString(),value:x?.documentId?.toString(),label:I}})??[],x=>x.label),v=S.isEmpty(b);return ao(i,n,s),!i.relatedType||a?null:t.jsx(o.Grid.Item,{alignItems:"flex-start",m:6,xs:12,children:t.jsx(N.Field,{name:"related",label:r(l("popup.item.form.related.label","Related")),error:C("related"),hint:!g&&v?r(l("popup.item.form.related.empty","There are no more entities"),{contentTypeName:i.relatedType}):void 0,children:t.jsx(vt,{name:"related",onClear:()=>m("related",void 0,p),onChange:x=>m("related",x,p),value:i.related,options:b,disabled:g||v||!u})})})},io=[],so=({availableLocale:e,isLoading:n,current:a=nt,onSubmit:i,onCancel:s,appendLabelPublicationStatus:r=ro,locale:c,permissions:u={},currentNavigation:g})=>{const{formatMessage:m}=E.useIntl(),[p,C]=j.useState(n),{canUpdate:b}=u,[v,x]=j.useState(!1),y=W(),I=y.data?.contentTypes??[],{toggleNotification:f}=F.useNotification(),{formValue:T,renderError:L,setFormError:B,handleChange:P,setFormValue:w,setFormValueItem:M,setFormValuesItems:D}=qa(),{encodePayload:Z,decodePayload:O}=za(),J=T.type==="INTERNAL",ae=J&&!T.related&&!v||p,U=gt({uid:J?T.relatedType:"",locale:c}),xe=async(Q,A)=>{Q.preventDefault();const _=Z(A),{success:Y,data:G,error:ce}=Pa({isSingleSelected:v,additionalFields:y.data?.additionalFields??io}).safeParse(_);if(Y){const oe=G.title.trim()?G.title.trim():G.type==="INTERNAL"?de(G?.related?.toString(),G.relatedType,v):"";C(!0);const ie=await Ba(G.type==="INTERNAL"?{slugify:te.mutateAsync,title:oe,related:G.related,relatedType:G.relatedType}:{slugify:te.mutateAsync,title:oe});if(te.reset(),C(!1),!ie){f({type:"warning",message:m(l("popup.item.form.uiRouter.unableToRender"))});return}i(G.type==="INTERNAL"?{...G,title:oe,uiRouterKey:ie}:{...G,title:oe,uiRouterKey:ie})}else ce&&B(ce.issues.reduce((oe,ie)=>({...oe,[ie.path.join(".")]:ie.message}),{}))},te=ka(),de=j.useCallback((Q,A,_)=>{let Y;if(_){if(Y=U.data?.find(G=>G.uid===A||G.__collectionUid===A),!Y)return I.find(G=>G.uid===A)?.contentTypeName}else Y={...U.data?.find(({documentId:ce})=>ce===Q)||{documentId:null},__collectionUid:A};return Fe(Y,y.data)},[U.data,y.data,I]);return j.useEffect(()=>{w(O({...nt,...a}))},[a]),t.jsxs(t.Fragment,{children:[t.jsx(o.Modal.Body,{children:t.jsx(F.Form,{width:"auto",height:"auto",method:"POST",initialValues:T,children:({values:Q,onChange:A})=>t.jsxs(Ct.Provider,{value:{values:Q,onChange:A,handleChange:P,renderError:L,setFormValueItem:M,canUpdate:b,isLoading:p},children:[t.jsxs(o.Grid.Root,{gap:5,paddingBottom:1,children:[t.jsx(Ga,{}),t.jsx(Va,{current:a})]}),t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[t.jsx(_a,{}),Q.type==="INTERNAL"&&t.jsx(Ka,{})]}),t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(Wa,{contentTypeItems:U.data,current:a,isSingleSelected:v})}),Q.type==="INTERNAL"&&t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[t.jsx(no,{contentTypeItems:U.data,current:a,currentRelatedType:Q.relatedType,isSingleSelected:v,setFormValuesItems:D,setIsSingleSelected:x}),t.jsx(oo,{appendLabelPublicationStatus:r,contentTypeItems:U.data,values:Q,isSingleSelected:v,setFormValuesItems:D})]}),Q.type!=="INTERNAL"&&t.jsx(o.Grid.Root,{display:"none",children:t.jsx(o.Box,{display:"none",children:t.jsx(o.Combobox,{})})}),t.jsx(eo,{}),t.jsx(to,{availableLocale:e,current:a,currentNavigation:g,setIsLoading:C,setFormValuesItems:D}),t.jsx(o.Grid.Root,{gap:5,children:t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12},"title")})]})})}),t.jsx(Aa,{handleSubmit:Q=>xe(Q,T),handleCancel:s,submitDisabled:ae,canUpdate:b})]})},ro=()=>"",lo=({isNewItem:e,canUpdate:n})=>{const{formatMessage:a}=E.useIntl();let i="view";return n&&(i=e?"new":"edit"),t.jsx(o.Modal.Header,{children:t.jsx(o.Typography,{variant:"omega",fontWeight:"bold",textColor:"neutral800",as:"h2",id:"asset-dialog-title",children:a(l(`popup.item.header.${i}`))})})},co=({availableLocale:e,isOpen:n,isLoading:a,currentItem:i={},onSubmit:s,onClose:r,locale:c,permissions:u,currentNavigation:g})=>{const{formatMessage:m}=E.useIntl(),p=v=>{s(v)},C=(v,x,y)=>`${On({relatedRef:x,type:x.isSingle?"INTERNAL":x.type,isCollection:y})?"":`[${m(l("notification.navigation.item.relation.status.draft"))}] `.toUpperCase()}${v}`,b=!!i.viewId;return t.jsx(o.Modal.Root,{labelledBy:"condition-modal-breadcrumbs",onOpenChange:v=>{v||r({preventDefault(){},stopPropagation(){},target:{}})},open:n,children:t.jsxs(o.Modal.Content,{children:[t.jsx(lo,{isNewItem:!b,canUpdate:u?.canUpdate}),t.jsx(so,{availableLocale:e,current:i,isLoading:a,onSubmit:p,onCancel:r,appendLabelPublicationStatus:C,locale:c,permissions:u,currentNavigation:g})]})})},Pe=0,uo=({value:e,setValue:n,initialIndex:a=Pe})=>{const[i,s]=j.useState(e),[r,c]=j.useState(e),[u,g]=j.useState(a),{isSmallMobile:m}=je(),[p,C]=j.useState(!!e||m),b=j.useRef(null),{formatMessage:v}=E.useIntl();j.useEffect(()=>{p&&setTimeout(()=>{b.current?.querySelector("input")?.focus()},0)},[p]),j.useEffect(()=>{u&&i===r&&n({value:i,index:u})},[u,i,r]),j.useEffect(()=>{i!==r&&(c(i),g(Pe),n({value:i,index:Pe}))},[i,r]);const x=j.useCallback(f=>{f.code.toLowerCase()==="enter"&&g(T=>T+1)},[]),y=j.useCallback(f=>{s(f.target.value)},[s]),I=j.useCallback(()=>{s(""),C(!1)},[s,C]);return p?t.jsxs("div",{ref:b,style:{width:"100%"},children:[t.jsx(o.Searchbar,{name:"searchbar",onClear:I,value:e,size:"S",onChange:y,clearLabel:"Clearing the search",placeholder:v(l("pages.main.search.placeholder","Type to start searching...")),onKeyDown:x,children:"Search for navigation items"}),t.jsx(o.Typography,{variant:"pi",fontColor:"neutral150",style:{margin:"3px 0 0"},display:{initial:"none",medium:"inline-block"},children:v(l("pages.main.search.subLabel","press ENTER to highlight next item"))})]}):t.jsx(o.IconButton,{children:t.jsx(R.Search,{}),onClick:()=>C(!p)})},po=({currentNavigation:e,setCurrentNavigation:n,canUpdate:a,addNewNavigationItem:i})=>{const{formatMessage:s}=E.useIntl(),r=j.useCallback(()=>{e&&n({...e,items:e.items.map(m=>he(m,!1))})},[n,e,he]),c=j.useCallback(()=>{e&&n({...e,items:e.items.map(m=>he(m,!0))})},[n,e,he]),u=j.useCallback(m=>{const p=(e?.items??[]).reduce((C,{order:b})=>Math.max(C,b),0);i(m,void 0,!0,"",!0,e?.items.length.toString(),p+1)},[i,e?.items]),g=[{onClick:r,type:"submit",variant:"tertiary",tradId:"header.action.expandAll",margin:"8px"},{onClick:c,type:"submit",variant:"tertiary",tradId:"header.action.collapseAll",margin:"8px"}];return a&&g.push({onClick:u,type:"submit",variant:"primary",tradId:"header.action.newItem",startIcon:t.jsx(R.Plus,{}),margin:"8px"}),g.map(({tradId:m,margin:p,...C},b)=>t.jsx(o.Box,{marginLeft:{initial:0,small:p},children:t.jsxs(o.Button,{...C,children:[" ",s(l(m))," "]})},b))},mo=({canUpdate:e,addNewNavigationItem:n,availableLocale:a,availableNavigations:i,currentNavigation:s,setCurrentNavigation:r})=>{const c=An(),{formatMessage:u}=E.useIntl(),g=vn(),m=Cn(),{i18nCopyItemsModal:p,i18nCopySourceLocale:C,setI18nCopyModalOpened:b,setI18nCopySourceLocale:v}=Mn(j.useCallback(y=>{const I=i.find(({locale:f,documentId:T})=>f===y&&T===s?.documentId);I&&I.documentId&&s?.documentId&&c.mutate({source:I.locale,target:s.locale,documentId:I.documentId},{onSuccess(f){c.reset(),r({...f.data,items:f.data.items.map(Te)}),g(),m()}})},[s])),x=j.useCallback(()=>{C&&b(!0)},[b,C]);return t.jsxs(o.Flex,{direction:"column",minHeight:"400px",justifyContent:"center",children:[t.jsx(o.Box,{padding:4,children:t.jsx(o.Typography,{variant:"beta",textColor:"neutral600",children:u(l("empty.description"))})}),e&&t.jsx(o.Button,{variant:"secondary",startIcon:t.jsx(R.ListPlus,{}),label:u(l("empty.cta")),onClick:n,children:u(l("empty.cta"))}),e&&!!a.length&&t.jsxs(o.Flex,{direction:"column",justifyContent:"center",children:[t.jsx(o.Box,{paddingTop:3,paddingBottom:3,children:t.jsx(o.Typography,{variant:"beta",textColor:"neutral600",children:u(l("view.i18n.fill.cta.header"))})}),t.jsxs(o.Flex,{direction:"row",justifyContent:"center",alignItems:"center",children:[t.jsx(o.Box,{paddingLeft:1,paddingRight:1,children:t.jsx(o.SingleSelect,{onChange:v,value:C,size:"S",children:a.map(y=>t.jsx(o.SingleSelectOption,{value:y,children:u(l("view.i18n.fill.option"),{locale:y})},y))})}),t.jsx(o.Box,{paddingLeft:1,paddingRight:1,children:t.jsx(o.Button,{variant:"tertiary",onClick:x,disabled:!C,size:"S",children:u(l("view.i18n.fill.cta.button"))})})]})]}),e&&p]})},go=new $.QueryClient,ho=()=>{const{formatMessage:e}=E.useIntl(),n=Ge(),a=W(),i=ft(),{toggleNotification:s}=F.useNotification(),[r,c]=j.useState(),[u,g]=j.useState(),[m,p]=j.useState(!1),{canAccess:C,canUpdate:b,isLoadingForPermissions:v}=Dn(),{localeData:x,currentLocale:y,isChangeLanguageVisible:I,changeCurrentLocaleAction:f,availableLocales:T}=zn(n.data,p),{searchValue:L,setSearchValue:B,isSearchEmpty:P,filteredList:w}=Bn(u),{activeNavigationItem:M,addNewNavigationItem:D,editNavigationItem:Z,closeNavigationItemPopup:O,isItemPopupVisible:J}=qn(b),ae=xt([n,{isPending:v}]),U=ht({onError:A=>{s({type:"danger",message:e(l("notification.navigation.update.error"))});try{console.error(A),console.log(A.response.data.error)}catch{}},onSuccess:A=>{g({...A,items:A.items.map(Te)}),c({documentId:A.documentId,id:A.id}),p(!1)}}),xe=()=>{u&&U.mutate(u)},te=A=>{A.preventDefault(),A.stopPropagation(),A.target.tagName!=="HTML"&&O()},de=A=>{if(u&&a.data){const _=fe(A,u?.items??[],a.data);g({...u,items:_}),p(!0),O()}},Q=P?u?.items??[]:w;return j.useEffect(()=>{if(!u&&n.data?.[0]){let A;r?.documentId&&(A=n.data.find(_=>_.documentId===r.documentId&&_.id===r.id)),c(void 0),g(A||S.first(n.data))}},[n.data,u]),j.useEffect(()=>{if(u&&y!==u.locale){c(void 0);const A=n.data?.find(_=>_.documentId===u.documentId&&_.locale===y);A&&A.documentId===u.documentId&&A.locale!==u.locale&&g(A)}},[u,y,n.data]),Pn(),!n.data||!x||ae?t.jsx(F.Page.Loading,{}):t.jsxs(F.Layouts.Root,{children:[t.jsx(F.Page.Title,{children:e(l("header.title","UI Navigation"))}),t.jsxs(F.Page.Main,{children:[t.jsx(ua,{availableNavigations:n.data,activeNavigation:u,handleCachePurge:()=>i.mutate(void 0),handleChangeSelection:g,handleLocalizationSelection:m?f.trigger:f.perform,handleSave:xe,locale:x,structureHasChanged:m,isSaving:U.isPending,permissions:{canUpdate:b},currentLocale:y}),t.jsxs(F.Layouts.Content,{children:[t.jsx(ma,{startActions:t.jsx(uo,{value:L,setValue:B}),endActions:t.jsx(po,{currentNavigation:u,setCurrentNavigation:g,canUpdate:b,addNewNavigationItem:D})}),u?.items.length?t.jsx(It,{items:Q,onItemLevelAdd:D,onItemEdit:Z,onItemSubmit:de,displayFlat:!P,isParentAttachedToMenu:!0,permissions:{canUpdate:b,canAccess:C},structurePrefix:"",locale:y??""}):t.jsx(mo,{canUpdate:b,addNewNavigationItem:D,availableLocale:T,availableNavigations:n.data,currentNavigation:u,setCurrentNavigation:g}),J&&y&&u&&t.jsx(co,{availableLocale:T,currentItem:M,onSubmit:de,onClose:te,locale:y,permissions:{canUpdate:b},isOpen:J,isLoading:v,currentNavigation:u}),I&&t.jsx(pa,{onCancel:()=>f.cancel(),onConfirm:()=>f.perform()})]})]})]})};function fo(){return t.jsx($.QueryClientProvider,{client:go,children:t.jsx(ho,{})})}const yo=()=>t.jsx(ze.DndProvider,{backend:Pt.HTML5Backend,children:t.jsxs(Re.Routes,{children:[t.jsx(Re.Route,{path:"/",index:!0,Component:fo}),t.jsx(Re.Route,{path:"/*",Component:F.Page.Error})]})}),xo=/^(?<type>[a-z0-9-]+)\:{2}(?<api>[a-z0-9-]+)\.{1}(?<contentType>[a-z0-9-]+)$/i,bo=(e="",n={})=>{const{allowedContentTypes:a=[],restrictedContentTypes:i=[],contentTypes:s=[],preferCustomContentTypes:r=!1}=n,u=(r?["api::",...s]:a).filter(m=>e.includes(m)||e===m).length>0,g=i.filter(m=>e.includes(m)||e===m).length===0;return!!e&&u&&g},jo=(e="")=>{const n=r=>r.split("-").map(c=>S.capitalize(c)).join(""),[a,i,s]=Io(e);return a==="api"?n(s):`${n(i)}${n(s)}`},Io=(e="")=>e.split(xo).filter(n=>n&&n.length>0),ot="SERVER OFFLINE",Tt=(e,n)=>new Promise(a=>{fetch(`${window.strapi.backendURL}/_health`,{method:"HEAD",mode:"no-cors",headers:{"Content-Type":"application/json","Keep-Alive":"false"}}).then(i=>{if(i.status>=400)throw new Error;if(!n)throw new Error(ot);a(e)}).catch(i=>{setTimeout(()=>Tt(e,i.message!==ot).then(a),100)})}),_e=()=>{const e=F.getFetchClient(),n=z(e);return $.useQuery({queryKey:n.readSettingsConfigIndex(),queryFn(){return n.readSettingsConfig()},staleTime:1e3*60*5})},St=()=>{const e=F.getFetchClient(),n=z(e),a=$.useQuery({queryKey:n.healthCheckIndex(),queryFn:()=>n.healthCheck(),retry:!0,retryDelay:1e3*5,enabled:!1});return $.useMutation({mutationFn:()=>n.restart().then(()=>a.refetch())})},Ft=()=>{const e=F.getFetchClient(),n=z(e);return $.useMutation({mutationFn:()=>n.restoreConfig()})},we=()=>{const e=F.getFetchClient(),n=z(e);return $.useQuery({queryKey:n.readContentTypeIndex(),queryFn:()=>n.readContentType(),staleTime:1/0})},Co=()=>{const e=F.getFetchClient(),n=z(e);return $.useMutation({mutationFn(a){return n.updateConfig({...a,contentTypesNameFields:Object.fromEntries(a.contentTypesNameFields.map(({key:i,fields:s})=>[i,s])),contentTypesPopulate:Object.fromEntries(a.contentTypesPopulate.map(({key:i,fields:s})=>[i,s])),pathDefaultFields:Object.fromEntries(a.pathDefaultFields.map(({key:i,fields:s})=>[i,s])),additionalFields:a.audienceFieldChecked?[...a.additionalFields,"audience"]:a.additionalFields,gql:{navigationItemRelated:a.contentTypes.map(i=>jo(i))}})}})},ke=(e,n)=>{const a=n.map(s=>({key:s,fields:e[s]??[]}));return Object.entries(e).filter(([s,r])=>!n.includes(s)).map(([s,r])=>({key:s,fields:r})).concat(a)},vo=({config:e,setFormValue:n})=>{j.useEffect(()=>{if(e){const{additionalFields:a,contentTypes:i,contentTypesNameFields:s,contentTypesPopulate:r,pathDefaultFields:c}=e;n({...e,additionalFields:a.filter(u=>typeof u!="string"),audienceFieldChecked:a.includes("audience"),contentTypesNameFields:ke(s,i),contentTypesPopulate:ke(r,i),pathDefaultFields:ke(c,i)})}},[e])},To=["string","boolean","select","media"],Ie={background:"neutral0",hasRadius:!0,shadow:"filterShadow",padding:6},wt=j.createContext({values:{},onChange:()=>null,handleChange:()=>null,restartStatus:{required:!1},setRestartStatus:()=>null,renderError:()=>"",setFormValueItem:()=>null}),le=()=>j.useContext(wt),So=({hasSettingsReadPermissions:e})=>{const{formatMessage:n}=E.useIntl(),a=Ft(),{setRestartStatus:i}=le(),[s,r]=j.useState(!1),c=async u=>{r(!1),u&&(a.mutate(),i({required:!0}))};return t.jsx(o.Box,{...Ie,width:"100%",children:t.jsxs(o.Flex,{direction:"column",alignItems:"flex-start",gap:2,children:[t.jsx(o.Typography,{variant:"delta",as:"h2",children:n(l("pages.settings.restoring.title"))}),t.jsxs(o.Grid.Root,{gap:4,width:"100%",children:[t.jsx(o.Grid.Item,{col:12,s:12,xs:12,children:t.jsx(o.Typography,{children:n(l("pages.settings.actions.restore.description"))})}),t.jsxs(o.Grid.Item,{col:12,s:12,xs:12,children:[e&&t.jsx(o.Button,{variant:"danger-light",startIcon:t.jsx(R.Check,{}),onClick:()=>r(!0),children:n(l("pages.settings.actions.restore.label"))}),t.jsx(Se,{isVisible:s,header:n(l("pages.settings.actions.restore.confirmation.header")),labelConfirm:n(l("pages.settings.actions.restore.confirmation.confirm")),iconConfirm:t.jsx(R.Typhoon,{}),onConfirm:()=>c(!0),onCancel:()=>c(!1),children:n(l("pages.settings.actions.restore.confirmation.description"))})]})]})]})})},Fo=X.default(o.Alert)`
|
|
180
|
+
`,Ka=()=>{const{formatMessage:e}=E.useIntl(),{values:n,onChange:a,handleChange:i,renderError:s,canUpdate:r}=ne();return t.jsx(Ua,{alignItems:"flex-start",col:4,m:4,xs:12,orderInitial:1,orderMedium:2,children:t.jsx(N.Field,{name:"autoSync",label:e(l("popup.item.form.autoSync.label","Read fields from related")),error:s("autoSync"),children:t.jsx(o.Toggle,{name:"autoSync",checked:n.autoSync,onChange:c=>i(c,!n.autoSync,a),disabled:!r,onLabel:"Enabled",offLabel:"Disabled"})})},"autoSync")},Wa=({contentTypeItems:e,current:n,isSingleSelected:a})=>{const{formatMessage:i}=E.useIntl(),s=W(),{values:r,onChange:c,handleChange:u,renderError:g,canUpdate:m}=ne(),p=r.type==="EXTERNAL"?"externalPath":"path",C=r.type==="INTERNAL"?r:{related:void 0,relatedType:void 0},b=Oa({currentPath:r.path,isExternal:r.type==="EXTERNAL",current:n,currentType:r.type,config:s.data,contentTypeItems:e,currentRelated:C.related,currentRelatedType:C.relatedType,isSingleSelected:a}),v=!m||r.autoSync&&r.type==="INTERNAL",x=C.relatedType?s.data?.pathDefaultFields?.[C.relatedType]??[]:[],y=e?.find(({documentId:f})=>f===C.related),I=x.find(f=>y?.[f]);return t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12,children:t.jsx(N.Field,{name:p,label:i(l(`popup.item.form.${p}.label`,"Path")),error:g(p,`popup.item.form.${p}.validation.type`),hint:[i(l(`popup.item.form.${p}.placeholder`,"e.g. Blog")),b?i(l("popup.item.form.type.external.description"),{value:b}):"",v?i(l("popup.item.form.type.internal.source"),{value:I||"id"}):""].join(" "),children:t.jsx(o.TextInput,{disabled:v,name:p,onChange:(f,T)=>u(f,T,c),value:(r.type==="EXTERNAL"?r.externalPath:r.path)||"",width:"100%"})})},"title")},Ha="",Xa={type:"media",required:!1,attribute:{multiple:!1,allowedTypes:["files","images","videos","audios"]},pluginOptions:{i18n:{localized:!1}}},Za=({name:e,field:n,isLoading:a,onChange:i,onChangeEnhancer:s,value:r,disabled:c})=>{const{toggleNotification:u}=F.useNotification(),{formatMessage:g}=E.useIntl(),p=F.useStrapiApp("AdditionalFieldInput",b=>b.fields).media,C=j.useMemo(()=>({id:n.name,name:e||n.name,disabled:a||c,placeholder:n.placeholder}),[n,a]);switch(j.useEffect(()=>{if(n.type==="media"){const b=S.isNull(r)?void 0:r;s(C.name,b,i)}},[r]),n.type){case"boolean":return t.jsx(o.Toggle,{...C,checked:!!r,onChange:b=>s(b,!r,i),onLabel:"true",offLabel:"false",type:"checkbox"});case"string":return t.jsx(o.Textarea,{...C,onChange:(b,v)=>s(b,v,i),value:r||Ha});case"select":return n.multi?t.jsx(o.MultiSelect,{...C,onChange:b=>s(C.name,b,i),value:S.isNil(r)?n.multi?[]:null:r,multi:n.multi,withTags:n.multi,children:n.options.map((b,v)=>t.jsx(o.MultiSelectOption,{value:b,children:b},`${n.name}-option-${v}`))}):t.jsx(o.SingleSelect,{...C,onChange:b=>s(C.name,b,i),value:S.isNil(r)?n.multi?[]:null:r,multi:n.multi,withTags:n.multi,children:n.options.map((b,v)=>t.jsx(o.SingleSelectOption,{value:b,children:b},`${n.name}-option-${v}`))});case"media":return t.jsx(p,{...C,...Xa,value:r});default:throw u({type:"warning",message:g(l("notification.error.customField.type"))}),new Error("Type of custom field is unsupported")}},Ja=({additionalField:e})=>{const{canUpdate:n,isLoading:a,onChange:i,handleChange:s,renderError:r,values:c}=ne();return t.jsx(o.Grid.Item,{alignItems:"flex-start",s:6,xs:12,children:t.jsx(N.Field,{name:`additionalFields.${e.name}`,label:e.label,hint:e.description,required:e.required,error:r(`additionalFields.${e.name}`),children:t.jsx(Za,{name:`additionalFields.${e.name}`,field:e,isLoading:a,onChange:i,onChangeEnhancer:s,value:S.get(c?.additionalFields,e.name),disabled:!n})})},e.name)},Ya=()=>{const{formatMessage:e}=E.useIntl(),a=W().data?.availableAudience??[],i=j.useMemo(()=>a.map(m=>({value:m.documentId??0,label:m.name??" "})),[a]),{isLoading:s,renderError:r,onChange:c,handleChange:u,values:g}=ne();return t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12,children:t.jsx(N.Field,{name:"audience",label:e(l("popup.item.form.audience.label")),error:r("audience"),hint:!s&&S.isEmpty(i)?e(l("popup.item.form.title.placeholder","e.g. Blog")):void 0,children:t.jsx(o.MultiSelect,{name:"audience",value:g.audience,onChange:m=>u("audience",m,c),width:"100%",children:i.map(({value:m,label:p})=>t.jsx(o.MultiSelectOption,{value:m,children:p},m))})})},"audience")},eo=()=>{const e=W();if(!e.data?.additionalFields||S.isEmpty(e.data.additionalFields))return null;const n=e.data.additionalFields.filter(i=>i!=="audience"),a=e.data.additionalFields.find(i=>i==="audience");return t.jsxs(t.Fragment,{children:[t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(o.Grid.Item,{col:12,children:t.jsx(o.Divider,{width:"100%"})})}),t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[n.map(i=>t.jsx(Ja,{additionalField:i},i.name)),a&&t.jsx(Ya,{})]}),t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(o.Grid.Item,{col:12,children:t.jsx(o.Divider,{width:"100%"})})})]})},to=({availableLocale:e,current:n,currentNavigation:a,setIsLoading:i,setFormValuesItems:s})=>{const{formatMessage:r}=E.useIntl(),[c,u]=j.useState(),g=Nn(),m=Ge(),{canUpdate:p,isLoading:C}=ne(),b=j.useMemo(()=>e.map((x,y)=>({key:`${x}-${y}`,value:x,label:x})),[e]),v=j.useCallback(async x=>{x.preventDefault(),x.stopPropagation();const y=m.data?.find(({locale:I})=>I===c);y&&(i(!0),g.mutate({target:a.documentId,structureId:n.structureId,source:y.documentId},{onSuccess(I){g.reset();const{type:f,externalPath:T,path:L,related:B,title:P,uiRouterKey:w}=I;s({type:f,externalPath:T,path:L,title:P,uiRouterKey:w,related:B})},onSettled(){i(!1)}}))},[i,g,m]);return!b||b.length<1?null:t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsxs(o.Grid.Item,{alignItems:"flex-start",col:12,children:[t.jsx(o.Divider,{marginTop:5,marginBottom:5}),t.jsxs(o.Grid.Root,{gap:5,children:[t.jsx(o.Grid.Item,{alignItems:"flex-start",col:6,lg:12,children:t.jsx(N.Field,{name:"i18n.locale",label:r(l("popup.item.form.i18n.locale.label","Copy details from")),children:t.jsx(o.SingleSelect,{name:"i18n.locale",onChange:u,value:c,disabled:C||!p,placeholder:r(l("popup.item.form.i18n.locale.placeholder","locale")),children:b.map(({key:x,label:y,value:I})=>t.jsx(o.SingleSelectOption,{value:I,children:y},x))})})}),p&&t.jsx(o.Grid.Item,{alignItems:"flex-start",col:6,lg:12,paddingTop:6,children:t.jsx(o.Box,{children:t.jsx(o.Button,{variant:"tertiary",onClick:v,disabled:C||!c,children:r(l("popup.item.form.i18n.locale.button"))})})})]})]},"title")})},at=(e,n)=>n?e.find(a=>a.value===n)?.label??"":"",vt=({name:e,onClear:n,onChange:a,options:i,value:s,disabled:r})=>{const[c,u]=j.useState(at(i,s));return j.useEffect(()=>{u(at(i,s))},[s,i]),t.jsx(o.Combobox,{name:e,autocomplete:"list",onClear:n,onChange:a,onTextValueChange:u,value:s,textValue:c,options:i,disabled:r,width:"100%",children:i.map(({key:g,label:m,value:p})=>t.jsx(o.ComboboxOption,{value:p,children:m},g))})},no=({contentTypeItems:e,current:n,currentRelatedType:a,isSingleSelected:i,setFormValuesItems:s,setIsSingleSelected:r})=>{const{formatMessage:c}=E.useIntl(),u=W(),{canUpdate:g,isLoading:m,renderError:p,setFormValueItem:C,values:b}=ne(),v=j.useMemo(()=>S.sortBy(u.data?.contentTypes.map(x=>({key:x.uid,value:x.uid,label:x.label})),x=>x.label),[u.data,a]);return j.useEffect(()=>{if(!a)return;const x=u.data?.contentTypes.find(y=>y.uid===a);if(x&&(r(x.isSingle),x.isSingle&&e?.length)){const y=e[0];y&&C("related",y.documentId)}},[a,u.data,e]),j.useEffect(()=>{a===""&&C("relatedType",u.data?.defaultContentType)},[u.data?.defaultContentType,b.type,a]),t.jsx(o.Grid.Item,{alignItems:"flex-start",m:a&&!i?6:12,xs:12,children:t.jsx(N.Field,{name:"relatedType",label:c(l("popup.item.form.relatedType.label","Related Type")),error:p("relatedType"),hint:!m&&S.isEmpty(v)?c(l("popup.item.form.relatedType.empty","There are no more content types")):void 0,children:t.jsx(vt,{name:"relatedType",onClear:()=>s({related:void 0,relatedType:void 0,title:b.autoSync?"":b.title}),onChange:x=>s({related:void 0,relatedType:x,title:b.autoSync?"":b.title}),value:a,options:v,disabled:!u.data?.contentTypes.length||!g})})})},ao=(e,n,a)=>{const i=W();j.useEffect(()=>{if(!e.autoSync||!e.related||!e.relatedType||!i.data)return;const s=n?.find(m=>m.documentId===e.related);if(!s)return;const{contentTypesNameFields:r,pathDefaultFields:c}=i.data,u=(c[e.relatedType]?.reduce((m,p)=>m||s?.[p],void 0)||s.id).toString(),g=(r[e.relatedType]??[]).concat(r.default??[]).reduce((m,p)=>m?m.toString():s?.[p],void 0);u&&e.path,g&&e.title,a({path:u,title:g})},[e.autoSync,e.related,e.relatedType,n,i.data])},oo=({appendLabelPublicationStatus:e,contentTypeItems:n,isSingleSelected:a,values:i,setFormValuesItems:s})=>{const{formatMessage:r}=E.useIntl(),c=W(),{canUpdate:u,isLoading:g,handleChange:m,onChange:p,renderError:C}=ne(),b=S.sortBy(n?.map(x=>{const I=e(Fe({...x,__collectionUid:i.relatedType},c.data),x,!1)+(x?.id?` (id: ${x.id})`:"");return{key:x?.documentId?.toString(),value:x?.documentId?.toString(),label:I}})??[],x=>x.label),v=S.isEmpty(b);return ao(i,n,s),!i.relatedType||a?null:t.jsx(o.Grid.Item,{alignItems:"flex-start",m:6,xs:12,children:t.jsx(N.Field,{name:"related",label:r(l("popup.item.form.related.label","Related")),error:C("related"),hint:!g&&v?r(l("popup.item.form.related.empty","There are no more entities"),{contentTypeName:i.relatedType}):void 0,children:t.jsx(vt,{name:"related",onClear:()=>m("related",void 0,p),onChange:x=>m("related",x,p),value:i.related,options:b,disabled:g||v||!u})})})},io=[],so=({availableLocale:e,isLoading:n,current:a=nt,onSubmit:i,onCancel:s,appendLabelPublicationStatus:r=ro,locale:c,permissions:u={},currentNavigation:g})=>{const{formatMessage:m}=E.useIntl(),[p,C]=j.useState(n),{canUpdate:b}=u,[v,x]=j.useState(!1),y=W(),I=y.data?.contentTypes??[],{toggleNotification:f}=F.useNotification(),{formValue:T,renderError:L,setFormError:B,handleChange:P,setFormValue:w,setFormValueItem:M,setFormValuesItems:D}=qa(),{encodePayload:Z,decodePayload:O}=za(),J=T.type==="INTERNAL",ae=J&&!T.related&&!v||p,U=gt({uid:J?T.relatedType:"",locale:c}),xe=async(Q,A)=>{Q.preventDefault();const _=Z(A),{success:Y,data:G,error:ce}=Pa({isSingleSelected:v,additionalFields:y.data?.additionalFields??io}).safeParse(_);if(Y){const oe=G.title.trim()?G.title.trim():G.type==="INTERNAL"?de(G?.related?.toString(),G.relatedType,v):"";C(!0);const ie=await Ba(G.type==="INTERNAL"?{slugify:te.mutateAsync,title:oe,related:G.related,relatedType:G.relatedType}:{slugify:te.mutateAsync,title:oe});if(te.reset(),C(!1),!ie){f({type:"warning",message:m(l("popup.item.form.uiRouter.unableToRender"))});return}i(G.type==="INTERNAL"?{...G,title:oe,uiRouterKey:ie}:{...G,title:oe,uiRouterKey:ie})}else ce&&B(ce.issues.reduce((oe,ie)=>({...oe,[ie.path.join(".")]:ie.message}),{}))},te=ka(),de=j.useCallback((Q,A,_)=>{let Y;if(_){if(Y=U.data?.find(G=>G.uid===A||G.__collectionUid===A),!Y)return I.find(G=>G.uid===A)?.contentTypeName}else Y={...U.data?.find(({documentId:ce})=>ce===Q)||{documentId:null},__collectionUid:A};return Fe(Y,y.data)},[U.data,y.data,I]);return j.useEffect(()=>{w(O({...nt,...a}))},[a]),t.jsxs(t.Fragment,{children:[t.jsx(o.Modal.Body,{children:t.jsx(F.Form,{width:"auto",height:"auto",method:"POST",initialValues:T,children:({values:Q,onChange:A})=>t.jsxs(Ct.Provider,{value:{values:Q,onChange:A,handleChange:P,renderError:L,setFormValueItem:M,canUpdate:b,isLoading:p},children:[t.jsxs(o.Grid.Root,{gap:5,paddingBottom:1,children:[t.jsx(Ga,{}),t.jsx(Va,{current:a})]}),t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[t.jsx(_a,{}),Q.type==="INTERNAL"&&t.jsx(Ka,{})]}),t.jsx(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:t.jsx(Wa,{contentTypeItems:U.data,current:a,isSingleSelected:v})}),Q.type==="INTERNAL"&&t.jsxs(o.Grid.Root,{gap:5,paddingTop:1,paddingBottom:1,children:[t.jsx(no,{contentTypeItems:U.data,current:a,currentRelatedType:Q.relatedType,isSingleSelected:v,setFormValuesItems:D,setIsSingleSelected:x}),t.jsx(oo,{appendLabelPublicationStatus:r,contentTypeItems:U.data,values:Q,isSingleSelected:v,setFormValuesItems:D})]}),Q.type!=="INTERNAL"&&t.jsx(o.Grid.Root,{display:"none",children:t.jsx(o.Box,{display:"none",children:t.jsx(o.Combobox,{})})}),t.jsx(eo,{}),t.jsx(to,{availableLocale:e,current:a,currentNavigation:g,setIsLoading:C,setFormValuesItems:D}),t.jsx(o.Grid.Root,{gap:5,children:t.jsx(o.Grid.Item,{alignItems:"flex-start",col:12},"title")})]})})}),t.jsx(Aa,{handleSubmit:Q=>xe(Q,T),handleCancel:s,submitDisabled:ae,canUpdate:b})]})},ro=()=>"",lo=({isNewItem:e,canUpdate:n})=>{const{formatMessage:a}=E.useIntl();let i="view";return n&&(i=e?"new":"edit"),t.jsx(o.Modal.Header,{children:t.jsx(o.Typography,{variant:"omega",fontWeight:"bold",textColor:"neutral800",as:"h2",id:"asset-dialog-title",children:a(l(`popup.item.header.${i}`))})})},co=({availableLocale:e,isOpen:n,isLoading:a,currentItem:i={},onSubmit:s,onClose:r,locale:c,permissions:u,currentNavigation:g})=>{const{formatMessage:m}=E.useIntl(),p=v=>{s(v)},C=(v,x,y)=>`${On({relatedRef:x,type:x.isSingle?"INTERNAL":x.type,isCollection:y})?"":`[${m(l("notification.navigation.item.relation.status.draft"))}] `.toUpperCase()}${v}`,b=!!i.viewId;return t.jsx(o.Modal.Root,{labelledBy:"condition-modal-breadcrumbs",onOpenChange:v=>{v||r({preventDefault(){},stopPropagation(){},target:{}})},open:n,children:t.jsxs(o.Modal.Content,{children:[t.jsx(lo,{isNewItem:!b,canUpdate:u?.canUpdate}),t.jsx(so,{availableLocale:e,current:i,isLoading:a,onSubmit:p,onCancel:r,appendLabelPublicationStatus:C,locale:c,permissions:u,currentNavigation:g})]})})},Pe=0,uo=({value:e,setValue:n,initialIndex:a=Pe})=>{const[i,s]=j.useState(e),[r,c]=j.useState(e),[u,g]=j.useState(a),{isSmallMobile:m}=je(),[p,C]=j.useState(!!e||m),b=j.useRef(null),{formatMessage:v}=E.useIntl();j.useEffect(()=>{p&&setTimeout(()=>{b.current?.querySelector("input")?.focus()},0)},[p]),j.useEffect(()=>{u&&i===r&&n({value:i,index:u})},[u,i,r]),j.useEffect(()=>{i!==r&&(c(i),g(Pe),n({value:i,index:Pe}))},[i,r]);const x=j.useCallback(f=>{f.code.toLowerCase()==="enter"&&g(T=>T+1)},[]),y=j.useCallback(f=>{s(f.target.value)},[s]),I=j.useCallback(()=>{s(""),C(!1)},[s,C]);return p?t.jsxs("div",{ref:b,style:{width:"100%"},children:[t.jsx(o.Searchbar,{name:"searchbar",onClear:I,value:e,size:"S",onChange:y,clearLabel:"Clearing the search",placeholder:v(l("pages.main.search.placeholder","Type to start searching...")),onKeyDown:x,children:"Search for navigation items"}),t.jsx(o.Typography,{variant:"pi",fontColor:"neutral150",style:{margin:"3px 0 0"},display:{initial:"none",medium:"inline-block"},children:v(l("pages.main.search.subLabel","press ENTER to highlight next item"))})]}):t.jsx(o.IconButton,{children:t.jsx(R.Search,{}),onClick:()=>C(!p)})},po=({currentNavigation:e,setCurrentNavigation:n,canUpdate:a,addNewNavigationItem:i})=>{const{formatMessage:s}=E.useIntl(),r=j.useCallback(()=>{e&&n({...e,items:e.items.map(m=>he(m,!1))})},[n,e,he]),c=j.useCallback(()=>{e&&n({...e,items:e.items.map(m=>he(m,!0))})},[n,e,he]),u=j.useCallback(m=>{const p=(e?.items??[]).reduce((C,{order:b})=>Math.max(C,b),0);i(m,void 0,!0,"",!0,e?.items.length.toString(),p+1)},[i,e?.items]),g=[{onClick:r,type:"submit",variant:"tertiary",tradId:"header.action.expandAll",margin:"8px"},{onClick:c,type:"submit",variant:"tertiary",tradId:"header.action.collapseAll",margin:"8px"}];return a&&g.push({onClick:u,type:"submit",variant:"primary",tradId:"header.action.newItem",startIcon:t.jsx(R.Plus,{}),margin:"8px"}),g.map(({tradId:m,margin:p,...C},b)=>t.jsx(o.Box,{marginLeft:{initial:0,small:p},children:t.jsxs(o.Button,{...C,children:[" ",s(l(m))," "]})},b))},mo=({canUpdate:e,addNewNavigationItem:n,availableLocale:a,availableNavigations:i,currentNavigation:s,setCurrentNavigation:r})=>{const c=An(),{formatMessage:u}=E.useIntl(),g=vn(),m=Cn(),{i18nCopyItemsModal:p,i18nCopySourceLocale:C,setI18nCopyModalOpened:b,setI18nCopySourceLocale:v}=Mn(j.useCallback(y=>{const I=i.find(({locale:f,documentId:T})=>f===y&&T===s?.documentId);I&&I.documentId&&s?.documentId&&c.mutate({source:I.locale,target:s.locale,documentId:I.documentId},{onSuccess(f){c.reset(),r({...f.data,items:f.data.items.map(Te)}),g(),m()}})},[s])),x=j.useCallback(()=>{C&&b(!0)},[b,C]);return t.jsxs(o.Flex,{direction:"column",minHeight:"400px",justifyContent:"center",children:[t.jsx(o.Box,{padding:4,children:t.jsx(o.Typography,{variant:"beta",textColor:"neutral600",children:u(l("empty.description"))})}),e&&t.jsx(o.Button,{variant:"secondary",startIcon:t.jsx(R.ListPlus,{}),label:u(l("empty.cta")),onClick:n,children:u(l("empty.cta"))}),e&&!!a.length&&t.jsxs(o.Flex,{direction:"column",justifyContent:"center",children:[t.jsx(o.Box,{paddingTop:3,paddingBottom:3,children:t.jsx(o.Typography,{variant:"beta",textColor:"neutral600",children:u(l("view.i18n.fill.cta.header"))})}),t.jsxs(o.Flex,{direction:"row",justifyContent:"center",alignItems:"center",children:[t.jsx(o.Box,{paddingLeft:1,paddingRight:1,children:t.jsx(o.SingleSelect,{onChange:v,value:C,size:"S",children:a.map(y=>t.jsx(o.SingleSelectOption,{value:y,children:u(l("view.i18n.fill.option"),{locale:y})},y))})}),t.jsx(o.Box,{paddingLeft:1,paddingRight:1,children:t.jsx(o.Button,{variant:"tertiary",onClick:x,disabled:!C,size:"S",children:u(l("view.i18n.fill.cta.button"))})})]})]}),e&&p]})},go=new $.QueryClient,ho=()=>{const{formatMessage:e}=E.useIntl(),n=Ge(),a=W(),i=ft(),{toggleNotification:s}=F.useNotification(),[r,c]=j.useState(),[u,g]=j.useState(),[m,p]=j.useState(!1),{canAccess:C,canUpdate:b,isLoadingForPermissions:v}=Dn(),{localeData:x,currentLocale:y,isChangeLanguageVisible:I,changeCurrentLocaleAction:f,availableLocales:T}=zn(n.data,p),{searchValue:L,setSearchValue:B,isSearchEmpty:P,filteredList:w}=Bn(u),{activeNavigationItem:M,addNewNavigationItem:D,editNavigationItem:Z,closeNavigationItemPopup:O,isItemPopupVisible:J}=qn(b),ae=xt([n,{isPending:v}]),U=ht({onError:A=>{s({type:"danger",message:e(l("notification.navigation.update.error"))});try{console.error(A),console.log(A.response.data.error)}catch{}},onSuccess:A=>{g({...A,items:A.items.map(Te)}),c({documentId:A.documentId,id:A.id}),p(!1)}}),xe=()=>{u&&U.mutate(u)},te=A=>{A.preventDefault(),A.stopPropagation(),A.target.tagName!=="HTML"&&O()},de=A=>{if(u&&a.data){const _=fe(A,u?.items??[],a.data);g({...u,items:_}),p(!0),O()}},Q=P?u?.items??[]:w;return j.useEffect(()=>{if(!u&&n.data?.[0]){let A;r?.documentId&&(A=n.data.find(_=>_.documentId===r.documentId&&_.id===r.id)),c(void 0),g(A||S.first(n.data))}},[n.data,u]),j.useEffect(()=>{if(u&&y!==u.locale){c(void 0);const A=n.data?.find(_=>_.documentId===u.documentId&&_.locale===y);A&&A.documentId===u.documentId&&A.locale!==u.locale&&g(A)}},[u,y,n.data]),Pn(),!n.data||!x||ae?t.jsx(F.Page.Loading,{}):t.jsxs(F.Layouts.Root,{children:[t.jsx(F.Page.Title,{children:e(l("header.title","UI Navigation"))}),t.jsxs(F.Page.Main,{children:[t.jsx(ua,{availableNavigations:n.data,activeNavigation:u,handleCachePurge:()=>i.mutate(void 0),handleChangeSelection:g,handleLocalizationSelection:m?f.trigger:f.perform,handleSave:xe,locale:x,structureHasChanged:m,isSaving:U.isPending,permissions:{canUpdate:b},currentLocale:y}),t.jsxs(F.Layouts.Content,{children:[t.jsx(ma,{startActions:t.jsx(uo,{value:L,setValue:B}),endActions:t.jsx(po,{currentNavigation:u,setCurrentNavigation:g,canUpdate:b,addNewNavigationItem:D})}),u?.items.length?t.jsx(It,{items:Q,onItemLevelAdd:D,onItemEdit:Z,onItemSubmit:de,displayFlat:!P,isParentAttachedToMenu:!0,permissions:{canUpdate:b,canAccess:C},structurePrefix:"",locale:y??""}):t.jsx(mo,{canUpdate:b,addNewNavigationItem:D,availableLocale:T,availableNavigations:n.data,currentNavigation:u,setCurrentNavigation:g}),J&&y&&u&&t.jsx(co,{availableLocale:T,currentItem:M,onSubmit:de,onClose:te,locale:y,permissions:{canUpdate:b},isOpen:J,isLoading:v,currentNavigation:u}),I&&t.jsx(pa,{onCancel:()=>f.cancel(),onConfirm:()=>f.perform()})]})]})]})};function fo(){const e=N.usePluginTheme();return t.jsx($.QueryClientProvider,{client:go,children:t.jsx(o.DesignSystemProvider,{theme:e,children:t.jsx(ho,{})})})}const yo=()=>t.jsx(ze.DndProvider,{backend:Pt.HTML5Backend,children:t.jsxs(Re.Routes,{children:[t.jsx(Re.Route,{path:"/",index:!0,Component:fo}),t.jsx(Re.Route,{path:"/*",Component:F.Page.Error})]})}),xo=/^(?<type>[a-z0-9-]+)\:{2}(?<api>[a-z0-9-]+)\.{1}(?<contentType>[a-z0-9-]+)$/i,bo=(e="",n={})=>{const{allowedContentTypes:a=[],restrictedContentTypes:i=[],contentTypes:s=[],preferCustomContentTypes:r=!1}=n,u=(r?["api::",...s]:a).filter(m=>e.includes(m)||e===m).length>0,g=i.filter(m=>e.includes(m)||e===m).length===0;return!!e&&u&&g},jo=(e="")=>{const n=r=>r.split("-").map(c=>S.capitalize(c)).join(""),[a,i,s]=Io(e);return a==="api"?n(s):`${n(i)}${n(s)}`},Io=(e="")=>e.split(xo).filter(n=>n&&n.length>0),ot="SERVER OFFLINE",Tt=(e,n)=>new Promise(a=>{fetch(`${window.strapi.backendURL}/_health`,{method:"HEAD",mode:"no-cors",headers:{"Content-Type":"application/json","Keep-Alive":"false"}}).then(i=>{if(i.status>=400)throw new Error;if(!n)throw new Error(ot);a(e)}).catch(i=>{setTimeout(()=>Tt(e,i.message!==ot).then(a),100)})}),_e=()=>{const e=F.getFetchClient(),n=z(e);return $.useQuery({queryKey:n.readSettingsConfigIndex(),queryFn(){return n.readSettingsConfig()},staleTime:1e3*60*5})},St=()=>{const e=F.getFetchClient(),n=z(e),a=$.useQuery({queryKey:n.healthCheckIndex(),queryFn:()=>n.healthCheck(),retry:!0,retryDelay:1e3*5,enabled:!1});return $.useMutation({mutationFn:()=>n.restart().then(()=>a.refetch())})},Ft=()=>{const e=F.getFetchClient(),n=z(e);return $.useMutation({mutationFn:()=>n.restoreConfig()})},we=()=>{const e=F.getFetchClient(),n=z(e);return $.useQuery({queryKey:n.readContentTypeIndex(),queryFn:()=>n.readContentType(),staleTime:1/0})},Co=()=>{const e=F.getFetchClient(),n=z(e);return $.useMutation({mutationFn(a){return n.updateConfig({...a,contentTypesNameFields:Object.fromEntries(a.contentTypesNameFields.map(({key:i,fields:s})=>[i,s])),contentTypesPopulate:Object.fromEntries(a.contentTypesPopulate.map(({key:i,fields:s})=>[i,s])),pathDefaultFields:Object.fromEntries(a.pathDefaultFields.map(({key:i,fields:s})=>[i,s])),additionalFields:a.audienceFieldChecked?[...a.additionalFields,"audience"]:a.additionalFields,gql:{navigationItemRelated:a.contentTypes.map(i=>jo(i))}})}})},ke=(e,n)=>{const a=n.map(s=>({key:s,fields:e[s]??[]}));return Object.entries(e).filter(([s,r])=>!n.includes(s)).map(([s,r])=>({key:s,fields:r})).concat(a)},vo=({config:e,setFormValue:n})=>{j.useEffect(()=>{if(e){const{additionalFields:a,contentTypes:i,contentTypesNameFields:s,contentTypesPopulate:r,pathDefaultFields:c}=e;n({...e,additionalFields:a.filter(u=>typeof u!="string"),audienceFieldChecked:a.includes("audience"),contentTypesNameFields:ke(s,i),contentTypesPopulate:ke(r,i),pathDefaultFields:ke(c,i)})}},[e])},To=["string","boolean","select","media"],Ie={background:"neutral0",hasRadius:!0,shadow:"filterShadow",padding:6},wt=j.createContext({values:{},onChange:()=>null,handleChange:()=>null,restartStatus:{required:!1},setRestartStatus:()=>null,renderError:()=>"",setFormValueItem:()=>null}),le=()=>j.useContext(wt),So=({hasSettingsReadPermissions:e})=>{const{formatMessage:n}=E.useIntl(),a=Ft(),{setRestartStatus:i}=le(),[s,r]=j.useState(!1),c=async u=>{r(!1),u&&(a.mutate(),i({required:!0}))};return t.jsx(o.Box,{...Ie,width:"100%",children:t.jsxs(o.Flex,{direction:"column",alignItems:"flex-start",gap:2,children:[t.jsx(o.Typography,{variant:"delta",as:"h2",children:n(l("pages.settings.restoring.title"))}),t.jsxs(o.Grid.Root,{gap:4,width:"100%",children:[t.jsx(o.Grid.Item,{col:12,s:12,xs:12,children:t.jsx(o.Typography,{children:n(l("pages.settings.actions.restore.description"))})}),t.jsxs(o.Grid.Item,{col:12,s:12,xs:12,children:[e&&t.jsx(o.Button,{variant:"danger-light",startIcon:t.jsx(R.Check,{}),onClick:()=>r(!0),children:n(l("pages.settings.actions.restore.label"))}),t.jsx(Se,{isVisible:s,header:n(l("pages.settings.actions.restore.confirmation.header")),labelConfirm:n(l("pages.settings.actions.restore.confirmation.confirm")),iconConfirm:t.jsx(R.Typhoon,{}),onConfirm:()=>c(!0),onCancel:()=>c(!1),children:n(l("pages.settings.actions.restore.confirmation.description"))})]})]})]})})},Fo=X.default(o.Alert)`
|
|
181
181
|
[role='status'] {
|
|
182
182
|
flex-direction: column;
|
|
183
183
|
}
|