/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@graffiti-garden/wrapper-vue-personal-data@0.1.0/dist/plugin.mjs
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{defineComponent as S,onScopeDispose as g,watch as r,ref as V,renderSlot as y,unref as u}from"vue";import{useGraffitiDiscover as D,useGraffiti as P}from"@graffiti-garden/wrapper-vue";const p=S({__name:"PersonalData",props:{modelValue:{},name:{},session:{},autosave:{type:Boolean,default:!1},public:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:a}){const s=e,t=JSON.stringify(s.modelValue);g((()=>{o("update:modelValue",JSON.parse(t))}));const o=a,l={properties:{value:{properties:{name:{const:s.name},published:{type:"number"},data:{type:"object"}},required:["name","data","published"]},actor:{const:s.session.actor}}},{objects:i,poll:n,isFirstPoll:p}=D((()=>[s.name]),l,(()=>s.session));r(i,(()=>{if(i.value&&i.value.length){const e=i.value.toSorted(((e,a)=>a.value.published-e.value.published))[0];o("update:modelValue",e.value.data)}}),{immediate:!0}),r((()=>JSON.stringify(s.modelValue)),(()=>{s.autosave&&f()}));const d=P(),m=V(!1);async function f(){m.value=!0,await d.post({channels:[s.name],value:{name:s.name,published:Date.now(),data:s.modelValue},...s.public?{}:{allowed:[]}},s.session),m.value=!1}return(e,a)=>y(e.$slots,"default",{save:f,refresh:u(n),isLoading:u(p),isSaving:m.value})}}),w={install(e){e.component("GraffitiPersonalData",p)}},J=p;export{J as GraffitiPersonalData,w as GraffitiPersonalDataPlugin};
//# sourceMappingURL=/sm/fbc1059c58636f19adda90cef0e4d6c7329b4e40085226dffd71de9fa8a1a6bb.map