@paroicms/admin-ui 1.78.0 → 1.79.0

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.
@@ -2179,7 +2179,7 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
2179
2179
  mutation useFTextImage($input: UseFTextImageInput!) {
2180
2180
  useFTextImage(input: $input) { source variant }
2181
2181
  }
2182
- `;function xae(){const[e]=Gr(Eae);return p.useCallback(Yr(n=>e({variables:{input:n}}),n=>lM(n.useFTextImage)),[e])}function lM(e){return{source:JSON.parse(e.source),variant:JSON.parse(e.variant)}}const Sg=p.createContext(void 0);function Cae({children:e}){const n=p.useRef({plugins:new Map,pluginsStatus:"notLoaded",afterInitListeners:[],hooks:new Map});return C.jsx(Sg.Provider,{value:n.current,children:e})}function Oae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");return n=>{var t;return(t=e.plugins.get(n))==null?void 0:t.plugin}}function Dae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");return(n,t)=>Pae(e,n,t)}async function Pae(e,n,t){const{plugins:a,pluginsStatus:r,afterInitListeners:i}=e;if(r!=="notLoaded"){if(n.find(c=>!a.has(c.pluginName)))throw new Error("Inconsistant plugins");return}e.pluginsStatus="loading";for(const c of n)a.set(c.pluginName,{...c});const l=(c,f)=>{i.push({listener:c,loadingPlugin:f})},u=await Promise.all(n.map(c=>Nae(e,c,t,l)));for(let c=0;c<n.length;c++){const f=n[c],h=u[c];if(h){const g=a.get(f.pluginName);if(!g)throw new Error(`unknown plugin: '${f.pluginName}'`);g.plugin=h}}e.pluginsStatus="initialized"}function Iae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");const[n,t]=p.useState((e==null?void 0:e.pluginsStatus)==="ready"),a=sM(),r=e.afterInitListeners.map(i=>({listener:i.listener,createService:()=>a(i.loadingPlugin.pluginName)}));return Ya(async()=>{if(e.pluginsStatus!=="initialized"){t(!0);return}e.pluginsStatus="afterInit";for(const{listener:i,createService:l}of r)await i(l());e.pluginsStatus="ready",t(!0)},[]),n}async function Nae(e,n,t,a){const{pluginName:r,adminUiPluginBaseUrl:i}=n;try{const u=await import(`${i}/admin-ui-plugin.mjs`);if(!u.default||!("init"in u.default)||!("create"in u.default))throw new Error(`[${r}] invalid plugin`);const c=Tae(e,n,t,f=>a(f,n));return await u.default.init(c),u.default}catch(l){tl.error(`Failed loading plugin '${r}'`,l)}}function Tae(e,n,t,a){return{logger:tl,themeConf:t.themeConf,publicSiteUrl:t.publicSiteUrl,configuration:n.conf??{},pluginBaseUrl:n.adminUiPluginBaseUrl,registerHook(r,i,l){const u=e.hooks.get(r);if(u){if(u.unique||l!=null&&l.unique)throw new Error(`[${r}] hook already registered`);u.handlers.push(i)}else e.hooks.set(r,{name:r,handlers:[i],unique:l==null?void 0:l.unique})},addAfterInitListener:a}}function sM(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");const n=SK(),t=e0(),{themeConf:a,siteSchema:r}=ea(),i=ai(),l=Sae(),u=xae(),c=iM(),f=bae(),h=Qa();return g=>{const v=e.plugins.get(g);if(!v)throw new Error(`Plugin '${g}' not found`);const b={themeConf:a,publicSiteUrl:t.publicSiteUrl,logger:tl,configuration:v.conf??{},pluginBaseUrl:v.adminUiPluginBaseUrl,createModalDialog:gae,useAdminUiImage:async(w,S)=>{try{return await l({mediaId:typeof w=="string"?w:w.mediaId,...S})}catch{}},useFTextImage:async(w,S)=>{try{return await u({mediaId:typeof w=="string"?w:w.mediaId,...S})}catch{}},showToast:h,executeHook(w,S){const D=e.hooks.get(w);return D?D.handlers.map(x=>x(b,S)):[]},openDocumentEdition(w,S){var N;const D=ja(w),x=Bf(r,S),O=xo({documentType:x,language:D.language,documentNodeId:D.nodeId},(N=x.adminUi)==null?void 0:N.defaultTab);i(O)},async searchDocuments({searchString:w,language:S,limit:D,start:x,orderBy:O}){const N=D??10,R=x??0;return(await c({queryString:w,language:S??n(),limit:N,start:R,orderBy:O})).items.map(I=>({id:I.lNodeId,title:I.title,url:I.url,typeName:I.typeName,ready:I.ready,publishDate:I.publishDate}))},async getDocument(w){const S=await f(w);if(!S)return;const{document:D,node:x}=S;return{id:w,title:D.title,typeName:x.typeName}}};return b}}function uM({fieldType:e,initialValue:n,uploadMedia:t}){const{pluginName:a}=e;if(!a)throw new Error("invalid call to PluginComponent");const r=Nl(),i=p.useRef(null),l=p.useRef(void 0),u=sM(),[c,f]=p.useState("initializing"),{setModifiedValue:h,cancelModifiedValue:g}=Tl(e.name),v=Il(),b=Oae();return p.useEffect(()=>{l.current&&l.current.pluginInst.setLanguage(r)},[r]),p.useEffect(()=>{l.current&&l.current.contentLanguage===v&&l.current.initialValue!==n&&(g(),l.current.initialValue=n,l.current.pluginInst.setValue(n))},[n,v]),p.useEffect(()=>{f("initializing");const w=i.current;if(!w||l.current)return;const S=b(a);if(!S){f("error");return}let D;try{D=S.create({...u(a),fieldType:e,setModifiedValue:x=>{typeof x=="function"||lne(n,x,e)?h(x??null):g()},cancelModifiedValue:g,language:r,contentLanguage:v,initialValue:n,uploadMedia:t?async x=>{const O=await t(x);return O==null?void 0:O.source}:void 0})}catch(x){tl.error(`Error in plugin ${a}:`,x),f("error");return}return w.appendChild(D.element),l.current={pluginInst:D,detach:()=>{w.removeChild(D.element),D.dispose()},contentLanguage:v,initialValue:n},f("ready"),()=>{l.current&&(l.current.detach(),l.current=void 0)}},[e,v]),{status:c,containerRef:i,pluginInstRef:l}}function Rae(e){if(S_(e.value))throw new Error(`Field "${e.fieldType.name}" should not have a gallery`);const{status:n,containerRef:t}=uM({fieldType:e.fieldType,initialValue:e.value});return n==="error"?C.jsxs("div",{children:['Error in plugin "',e.fieldType.pluginName,'"']}):C.jsx("div",{ref:t})}function kae(e){var T;const{fieldType:n,value:t,nodeId:a}=e,{pluginName:r}=n;if(!r)throw new Error("invalid call to PluginComponent");const i=Il(),l=j2(),u=F2({apiUrl:xl,replace:!1,nodeId:a}),c=$2({}),{uploadLimitManager:f}=ya(),h=yr(I=>I.appLayout),g=h==="mobile",{value:v,mediaHandle:b}=Zh(t);if(b===void 0)throw new Error(`missing handle in value of field "${n.name}"`);const w=L2({acceptFilter:c,mediaHandle:b,getMedias:l,httpUploadMedia:u,limitManager:f}),S=async I=>{const[j]=await w.uploadFiles([I]);return await w.refreshMedias(),j},{status:D,containerRef:x,pluginInstRef:O}=uM({fieldType:n,initialValue:v,uploadMedia:S});if(D==="error")return C.jsxs("div",{children:['Error in plugin "',e.fieldType.pluginName,'"']});const N=(T=O.current)==null?void 0:T.pluginInst.insertMedia,R=N?I=>N(I.source):void 0;return C.jsxs("div",{className:be("PluginWithGallery",{mobile:h==="mobile"}),children:[C.jsx("div",{className:"PluginWithGallery-pluginWrap",ref:x}),C.jsx("div",{className:"PluginWithGallery-gallery",children:D==="ready"&&C.jsx(rM,{nodeId:a,handle:b,apiUrl:xl,onMediaAction:R,direction:g?"row":"column",isMobile:g,contentLanguage:i,uploadHandler:w})})]})}function Mae(e){const{fieldType:n}=e;return n.withGallery?C.jsx(kae,{...e}):C.jsx(Rae,{...e})}function cM(e){const n=Bn(),{l10nPrefix:t,nodeId:a,areSiteFields:r}=e,i=yr(u=>u.appLayout),l=Il();return({fieldType:u,value:c})=>{if(u.pluginName)return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(Mae,{fieldType:u,value:c,nodeId:a},u.name)]},`${u.name}-wrap`);const{value:f}=Zh(c);if(u.storedAs==="mediaHandle"&&u.dataType==="media")return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(Tk,{nodeId:a,mediaHandle:r9(f),accept:u.accept,refuse:u.refuse,apiUrl:xl,contentLanguage:l},u.name)]},`${u.name}-wrap`);if(u.storedAs==="mediaHandle"&&u.dataType==="gallery")return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(cae,{isMobile:i==="mobile",nodeId:a,handle:r9(f),accept:u.accept,refuse:u.refuse,apiUrl:xl,contentLanguage:l},u.name)]},`${u.name}-wrap`);if(u.storedAs==="labeling"){if(f!==void 0&&!Bb(f))throw new Error(`Invalid value for field type '${u.name}' (expected 'labeling', got '${f}')`);return C.jsx(yre,{fieldType:u,value:f,l10nPrefix:t},u.name)}if(u.dataType==="number")return C.jsx(Wne,{fieldType:u,value:b_(f),l10nPrefix:t},u.name);if(u.dataType==="string")return u.multiline||u.renderAs==="html"?C.jsx(Qne,{fieldType:u,value:ju(f),l10nPrefix:t},u.name):C.jsx(Zne,{fieldType:u,value:ju(f),l10nPrefix:t},u.name);if(u.dataType==="boolean")return C.jsx(xne,{fieldType:u,value:w_(f),l10nPrefix:t},u.name);if(u.dataType==="dateTime")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="date")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="time")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="json")return r&&u.name==="access"?C.jsx(vne,{fieldType:u,value:f,l10nPrefix:t},u.name):C.jsx(Jne,{fieldType:u,value:f,l10nPrefix:t},u.name);throw new Error(`invalid field type '${u.dataType}'`)}}function Aae({fieldValues:e,fieldTypes:n,createFieldOptions:t}){const a=cM(t);return C.jsx("div",{className:"ColumnWithGap",children:n.map(r=>a({fieldType:r,value:e[r.name]}))})}function jae({fieldTypes:e,fieldValues:n,...t}){return C.jsx(Aae,{fieldTypes:e,fieldValues:n,createFieldOptions:t})}function dM({className:e,lNodeId:n,nodeType:t}){const[a,r]=p.useState(),i=one(),l=ane(),{getModifiedValues:u}=ya();if(pg("shouldRefresh",async()=>{const f=n,h=await l(f);r({values:h,id:f})},[n],{useEffect:!0}),ld(async()=>{const f=u();return f?(await i({values:f,...ja(n)}),!0):!1}),!a||n!==a.id)return C.jsx("div",{className:e,children:C.jsx(_i,{})});if(!t.fields)throw new Error("should have fields here");const{nodeId:c}=ja(n);return C.jsx("div",{className:be("MainContent",e),children:C.jsx(jae,{nodeId:c,fieldTypes:t.fields,fieldValues:a.values,l10nPrefix:`siteSchema.nodeTypes.${t.typeName}.fields`})})}function os(e){const{top:n,children:t,className:a,topClassName:r,mainClassName:i,scrollable:l,biggerOnMobile:u}=e;return C.jsxs("div",{className:be("WithTopBar",a,{biggerOnMobile:u}),children:[C.jsx("div",{className:be("_topBar WithTopBar-top",r),children:n}),C.jsx("div",{className:be("WithTopBar-main",i,{Scrollable:l}),children:t})]})}function _ae(e){const{siteSchema:n}=ea(),t=oR({lNodeId:e.documentId,limit:sK(n,e.documentType)});return C.jsx(Xu,{uploadLimitManager:t,children:C.jsx(Lae,{...e})},e.documentId)}function Lae({className:e,...n}){return mg({i18nSavedToastKey:"document.savedToast"}),C.jsx(os,{className:e,top:C.jsx(tne,{...n}),scrollable:!0,biggerOnMobile:!0,children:C.jsx($ae,{...n})})}function $ae({className:e,documentId:n,documentType:t}){const a=ya();if(!(!zf(t)||!t.fields))return C.jsx(Xu,{parentScope:a,children:C.jsx(dM,{className:e,nodeType:t,lNodeId:n})})}const Fae=Un`
2182
+ `;function xae(){const[e]=Gr(Eae);return p.useCallback(Yr(n=>e({variables:{input:n}}),n=>lM(n.useFTextImage)),[e])}function lM(e){return{source:JSON.parse(e.source),variant:JSON.parse(e.variant)}}const Sg=p.createContext(void 0);function Cae({children:e}){const n=p.useRef({plugins:new Map,pluginsStatus:"notLoaded",afterInitListeners:[],hooks:new Map});return C.jsx(Sg.Provider,{value:n.current,children:e})}function Oae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");return n=>{var t;return(t=e.plugins.get(n))==null?void 0:t.plugin}}function Dae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");return(n,t)=>Pae(e,n,t)}async function Pae(e,n,t){const{plugins:a,pluginsStatus:r,afterInitListeners:i}=e;if(r!=="notLoaded"){if(n.find(c=>!a.has(c.pluginName)))throw new Error("Inconsistant plugins");return}e.pluginsStatus="loading";for(const c of n)a.set(c.pluginName,{...c});const l=(c,f)=>{i.push({listener:c,loadingPlugin:f})},u=await Promise.all(n.map(c=>Nae(e,c,t,l)));for(let c=0;c<n.length;c++){const f=n[c],h=u[c];if(h){const g=a.get(f.pluginName);if(!g)throw new Error(`unknown plugin: '${f.pluginName}'`);g.plugin=h}}e.pluginsStatus="initialized"}function Iae(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");const[n,t]=p.useState((e==null?void 0:e.pluginsStatus)==="ready"),a=sM(),r=e.afterInitListeners.map(i=>({listener:i.listener,createService:()=>a(i.loadingPlugin.pluginName)}));return Ya(async()=>{if(e.pluginsStatus!=="initialized"){t(!0);return}e.pluginsStatus="afterInit";for(const{listener:i,createService:l}of r)await i(l());e.pluginsStatus="ready",t(!0)},[]),n}async function Nae(e,n,t,a){const{pluginName:r,adminUiPluginBaseUrl:i}=n;try{const u=await import(`${i}/admin-ui-plugin.mjs`);if(!u.default||!("init"in u.default)||!("create"in u.default))throw new Error(`[${r}] invalid plugin`);const c=Tae(e,n,t,f=>a(f,n));return await u.default.init(c),u.default}catch(l){tl.error(`Failed loading plugin '${r}'`,l)}}function Tae(e,n,t,a){return{logger:tl,themeConf:t.themeConf,publicSiteUrl:t.publicSiteUrl,configuration:n.conf??{},pluginBaseUrl:n.adminUiPluginBaseUrl,registerHook(r,i,l){const u=e.hooks.get(r);if(u){if(u.replace||l!=null&&l.replace)throw new Error(`[${r}] hook already registered`);u.handlers.push(i)}else e.hooks.set(r,{name:r,handlers:[i],replace:l==null?void 0:l.replace})},addAfterInitListener:a}}function sM(){const e=p.useContext(Sg);if(!e)throw new Error("Missing plugins context parent");const n=SK(),t=e0(),{themeConf:a,siteSchema:r}=ea(),i=ai(),l=Sae(),u=xae(),c=iM(),f=bae(),h=Qa();return g=>{const v=e.plugins.get(g);if(!v)throw new Error(`Plugin '${g}' not found`);const b={themeConf:a,publicSiteUrl:t.publicSiteUrl,logger:tl,configuration:v.conf??{},pluginBaseUrl:v.adminUiPluginBaseUrl,createModalDialog:gae,useAdminUiImage:async(w,S)=>{try{return await l({mediaId:typeof w=="string"?w:w.mediaId,...S})}catch{}},useFTextImage:async(w,S)=>{try{return await u({mediaId:typeof w=="string"?w:w.mediaId,...S})}catch{}},showToast:h,executeHook(w,S){const D=e.hooks.get(w);return D?D.handlers.map(x=>x(b,S)):[]},openDocumentEdition(w,S){var N;const D=ja(w),x=Bf(r,S),O=xo({documentType:x,language:D.language,documentNodeId:D.nodeId},(N=x.adminUi)==null?void 0:N.defaultTab);i(O)},async searchDocuments({searchString:w,language:S,limit:D,start:x,orderBy:O}){const N=D??10,R=x??0;return(await c({queryString:w,language:S??n(),limit:N,start:R,orderBy:O})).items.map(I=>({id:I.lNodeId,title:I.title,url:I.url,typeName:I.typeName,ready:I.ready,publishDate:I.publishDate}))},async getDocument(w){const S=await f(w);if(!S)return;const{document:D,node:x}=S;return{id:w,title:D.title,typeName:x.typeName}}};return b}}function uM({fieldType:e,initialValue:n,uploadMedia:t}){const{pluginName:a}=e;if(!a)throw new Error("invalid call to PluginComponent");const r=Nl(),i=p.useRef(null),l=p.useRef(void 0),u=sM(),[c,f]=p.useState("initializing"),{setModifiedValue:h,cancelModifiedValue:g}=Tl(e.name),v=Il(),b=Oae();return p.useEffect(()=>{l.current&&l.current.pluginInst.setLanguage(r)},[r]),p.useEffect(()=>{l.current&&l.current.contentLanguage===v&&l.current.initialValue!==n&&(g(),l.current.initialValue=n,l.current.pluginInst.setValue(n))},[n,v]),p.useEffect(()=>{f("initializing");const w=i.current;if(!w||l.current)return;const S=b(a);if(!S){f("error");return}let D;try{D=S.create({...u(a),fieldType:e,setModifiedValue:x=>{typeof x=="function"||lne(n,x,e)?h(x??null):g()},cancelModifiedValue:g,language:r,contentLanguage:v,initialValue:n,uploadMedia:t?async x=>{const O=await t(x);return O==null?void 0:O.source}:void 0})}catch(x){tl.error(`Error in plugin ${a}:`,x),f("error");return}return w.appendChild(D.element),l.current={pluginInst:D,detach:()=>{w.removeChild(D.element),D.dispose()},contentLanguage:v,initialValue:n},f("ready"),()=>{l.current&&(l.current.detach(),l.current=void 0)}},[e,v]),{status:c,containerRef:i,pluginInstRef:l}}function Rae(e){if(S_(e.value))throw new Error(`Field "${e.fieldType.name}" should not have a gallery`);const{status:n,containerRef:t}=uM({fieldType:e.fieldType,initialValue:e.value});return n==="error"?C.jsxs("div",{children:['Error in plugin "',e.fieldType.pluginName,'"']}):C.jsx("div",{ref:t})}function kae(e){var T;const{fieldType:n,value:t,nodeId:a}=e,{pluginName:r}=n;if(!r)throw new Error("invalid call to PluginComponent");const i=Il(),l=j2(),u=F2({apiUrl:xl,replace:!1,nodeId:a}),c=$2({}),{uploadLimitManager:f}=ya(),h=yr(I=>I.appLayout),g=h==="mobile",{value:v,mediaHandle:b}=Zh(t);if(b===void 0)throw new Error(`missing handle in value of field "${n.name}"`);const w=L2({acceptFilter:c,mediaHandle:b,getMedias:l,httpUploadMedia:u,limitManager:f}),S=async I=>{const[j]=await w.uploadFiles([I]);return await w.refreshMedias(),j},{status:D,containerRef:x,pluginInstRef:O}=uM({fieldType:n,initialValue:v,uploadMedia:S});if(D==="error")return C.jsxs("div",{children:['Error in plugin "',e.fieldType.pluginName,'"']});const N=(T=O.current)==null?void 0:T.pluginInst.insertMedia,R=N?I=>N(I.source):void 0;return C.jsxs("div",{className:be("PluginWithGallery",{mobile:h==="mobile"}),children:[C.jsx("div",{className:"PluginWithGallery-pluginWrap",ref:x}),C.jsx("div",{className:"PluginWithGallery-gallery",children:D==="ready"&&C.jsx(rM,{nodeId:a,handle:b,apiUrl:xl,onMediaAction:R,direction:g?"row":"column",isMobile:g,contentLanguage:i,uploadHandler:w})})]})}function Mae(e){const{fieldType:n}=e;return n.withGallery?C.jsx(kae,{...e}):C.jsx(Rae,{...e})}function cM(e){const n=Bn(),{l10nPrefix:t,nodeId:a,areSiteFields:r}=e,i=yr(u=>u.appLayout),l=Il();return({fieldType:u,value:c})=>{if(u.pluginName)return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(Mae,{fieldType:u,value:c,nodeId:a},u.name)]},`${u.name}-wrap`);const{value:f}=Zh(c);if(u.storedAs==="mediaHandle"&&u.dataType==="media")return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(Tk,{nodeId:a,mediaHandle:r9(f),accept:u.accept,refuse:u.refuse,apiUrl:xl,contentLanguage:l},u.name)]},`${u.name}-wrap`);if(u.storedAs==="mediaHandle"&&u.dataType==="gallery")return C.jsxs("div",{children:[C.jsx("span",{className:"FieldLabel",children:n(`${t}.${u.name}.label`,u.name)}),C.jsx(cae,{isMobile:i==="mobile",nodeId:a,handle:r9(f),accept:u.accept,refuse:u.refuse,apiUrl:xl,contentLanguage:l},u.name)]},`${u.name}-wrap`);if(u.storedAs==="labeling"){if(f!==void 0&&!Bb(f))throw new Error(`Invalid value for field type '${u.name}' (expected 'labeling', got '${f}')`);return C.jsx(yre,{fieldType:u,value:f,l10nPrefix:t},u.name)}if(u.dataType==="number")return C.jsx(Wne,{fieldType:u,value:b_(f),l10nPrefix:t},u.name);if(u.dataType==="string")return u.multiline||u.renderAs==="html"?C.jsx(Qne,{fieldType:u,value:ju(f),l10nPrefix:t},u.name):C.jsx(Zne,{fieldType:u,value:ju(f),l10nPrefix:t},u.name);if(u.dataType==="boolean")return C.jsx(xne,{fieldType:u,value:w_(f),l10nPrefix:t},u.name);if(u.dataType==="dateTime")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="date")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="time")return C.jsx(nS,{value:ju(f),fieldType:u,l10nPrefix:t},u.name);if(u.dataType==="json")return r&&u.name==="access"?C.jsx(vne,{fieldType:u,value:f,l10nPrefix:t},u.name):C.jsx(Jne,{fieldType:u,value:f,l10nPrefix:t},u.name);throw new Error(`invalid field type '${u.dataType}'`)}}function Aae({fieldValues:e,fieldTypes:n,createFieldOptions:t}){const a=cM(t);return C.jsx("div",{className:"ColumnWithGap",children:n.map(r=>a({fieldType:r,value:e[r.name]}))})}function jae({fieldTypes:e,fieldValues:n,...t}){return C.jsx(Aae,{fieldTypes:e,fieldValues:n,createFieldOptions:t})}function dM({className:e,lNodeId:n,nodeType:t}){const[a,r]=p.useState(),i=one(),l=ane(),{getModifiedValues:u}=ya();if(pg("shouldRefresh",async()=>{const f=n,h=await l(f);r({values:h,id:f})},[n],{useEffect:!0}),ld(async()=>{const f=u();return f?(await i({values:f,...ja(n)}),!0):!1}),!a||n!==a.id)return C.jsx("div",{className:e,children:C.jsx(_i,{})});if(!t.fields)throw new Error("should have fields here");const{nodeId:c}=ja(n);return C.jsx("div",{className:be("MainContent",e),children:C.jsx(jae,{nodeId:c,fieldTypes:t.fields,fieldValues:a.values,l10nPrefix:`siteSchema.nodeTypes.${t.typeName}.fields`})})}function os(e){const{top:n,children:t,className:a,topClassName:r,mainClassName:i,scrollable:l,biggerOnMobile:u}=e;return C.jsxs("div",{className:be("WithTopBar",a,{biggerOnMobile:u}),children:[C.jsx("div",{className:be("_topBar WithTopBar-top",r),children:n}),C.jsx("div",{className:be("WithTopBar-main",i,{Scrollable:l}),children:t})]})}function _ae(e){const{siteSchema:n}=ea(),t=oR({lNodeId:e.documentId,limit:sK(n,e.documentType)});return C.jsx(Xu,{uploadLimitManager:t,children:C.jsx(Lae,{...e})},e.documentId)}function Lae({className:e,...n}){return mg({i18nSavedToastKey:"document.savedToast"}),C.jsx(os,{className:e,top:C.jsx(tne,{...n}),scrollable:!0,biggerOnMobile:!0,children:C.jsx($ae,{...n})})}function $ae({className:e,documentId:n,documentType:t}){const a=ya();if(!(!zf(t)||!t.fields))return C.jsx(Xu,{parentScope:a,children:C.jsx(dM,{className:e,nodeType:t,lNodeId:n})})}const Fae=Un`
2183
2183
  mutation CreateDocumentOnNode(
2184
2184
  $nodeId: ID!
2185
2185
  $language: String!
package/dist/index.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="robots" content="noindex, nofollow" />
7
- <script type="module" crossorigin src="/adm/assets/index-CRaF45_o.js"></script>
7
+ <script type="module" crossorigin src="/adm/assets/index-BHnYWCF-.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/adm/assets/index-DNK6wmYU.css">
9
9
  </head>
10
10
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@paroicms/admin-ui",
3
3
  "type": "module",
4
- "version": "1.78.0",
4
+ "version": "1.79.0",
5
5
  "description": "Admin UI for ParoiCMS",
6
6
  "repository": {
7
7
  "type": "git",
@@ -28,17 +28,17 @@
28
28
  "build": "tsc && vite build",
29
29
  "tsc": "tsc",
30
30
  "preview": "vite preview",
31
- "test": "vitest",
32
- "test:once": "vitest run"
31
+ "test:watch": "vitest",
32
+ "test": "vitest run"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@apollo/client": "~3.13.8",
36
36
  "@paroi/use-async-effect": "~1.0.0",
37
- "@paroicms/internal-anywhere-lib": "1.31.11",
38
- "@paroicms/public-admin-ui-lib": "0.27.2",
39
- "@paroicms/public-anywhere-lib": "0.32.0",
37
+ "@paroicms/internal-anywhere-lib": "1.32.0",
38
+ "@paroicms/public-admin-ui-lib": "0.28.0",
39
+ "@paroicms/public-anywhere-lib": "0.33.0",
40
40
  "@paroicms/react-ui": "0.3.2",
41
- "@paroicms/ui-logger": "1.13.7",
41
+ "@paroicms/ui-logger": "1.13.8",
42
42
  "@testing-library/jest-dom": "~6.6.3",
43
43
  "@testing-library/react": "~16.3.0",
44
44
  "@testing-library/user-event": "~14.6.1",