@flyo/nitro-vue3 2.2.0 → 2.2.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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const O=require("@flyo/nitro-typescript"),s=require("vue");let te=null;const de=({apiToken:t,apiBasePath:n,defaultHeaders:i})=>{te=new O.Configuration({apiKey:t,...n&&{basePath:n},headers:i||{}})},N=()=>te,ce={name:"FlyoBlock"},H=Object.assign(ce,{props:{item:{type:Object,default:()=>{}}},setup(t){return(n,i)=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(t.item.component),{config:t.item.config,content:t.item.content,items:t.item.items,slots:t.item.slots},null,8,["config","content","items","slots"]))}}),fe={name:"FlyoPage"},I=Object.assign(fe,{props:{page:{type:[Object,Boolean],default:!1}},emits:["update:page"],setup(t,{emit:n}){const i=t,r=n,{liveEdit:e,liveEditOrigin:o}=s.inject("flyo"),a=u=>{const d=u.parent||u.opener;return u.self===d?!1:u.parent||u.opener},f=u=>{e&&process.client&&a(window)&&a(window).postMessage({action:"openEdit",data:JSON.parse(JSON.stringify({page:i.page,item:u}))},o)};return process.client&&a(window)&&window.addEventListener("message",u=>{if(u.origin!==o){console.log(`Message from ${u.origin} blocked. Expected ${o}.`);return}const d=u.data;d.action==="pageRefresh"&&r("update:page",d.data)}),(u,d)=>{const y=s.resolveComponent("FlyoBlock");return s.openBlock(),s.createElementBlock("div",null,[t.page?s.renderSlot(u.$slots,"default",s.normalizeProps(s.mergeProps({key:0},t.page)),()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(t.page.json,v=>(s.openBlock(),s.createBlock(y,{key:v.uid,item:v,onClick:()=>f(v)},null,8,["item","onClick"]))),128))]):s.createCommentVNode("",!0)])}}}),c=s.reactive({isLoading:null,response:null,error:null}),ye=()=>{const t=async()=>{try{c.error=null,c.isLoading=!0,c.response=JSON.parse(JSON.stringify(await new O.ConfigApi(N()).config())),c.isLoading=!1}catch(n){c.isLoading=!1,c.response=null,c.error=JSON.parse(JSON.stringify(n))}return{response:c.response,error:c.error}};return{...s.toRefs(c),fetch:t}},pe=t=>{const n=s.ref(!1),i=s.ref(null),r=s.ref(null);return{isLoading:n,response:i,error:r,fetch:async()=>{try{r.value=null,n.value=!0,i.value=JSON.parse(JSON.stringify(await new O.EntitiesApi(N()).entityByUniqueid({uniqueid:t}))),n.value=!1}catch(o){n.value=!1,i.value=null,r.value=JSON.parse(JSON.stringify(o))}return{response:s.unref(i),error:s.unref(r)}}}};function B(){return typeof window>"u"?!1:window!==window.top}function me(){return typeof window>"u"?!1:B()?window.parent:window}function ve(t){var n=me();n&&n.postMessage({action:"openEdit",data:JSON.parse(JSON.stringify({item:{uid:t}}))},"https://flyo.cloud")}function ge(){typeof window>"u"||B()&&window.addEventListener("message",t=>{var n;((n=t.data)==null?void 0:n.action)==="pageRefresh"&&window.location.reload()})}function he(){typeof window>"u"||B()&&window.addEventListener("message",t=>{var n,i,r,e;if(((n=t.data)==null?void 0:n.action)==="scrollTo"){const o=(e=(r=(i=t.data)==null?void 0:i.data)==null?void 0:r.item)==null?void 0:e.uid;if(!o)return;const a=document.querySelector(`[data-flyo-uid="${CSS.escape(o)}"]`);a&&a.scrollIntoView({behavior:"smooth",block:"start"})}})}function we(t,n){const i=()=>ve(t);if(!B()||!n)return i;const r=n,e=document.createElement("button");e.type="button",e.setAttribute("aria-label","Edit block"),e.style.position="fixed",e.style.top="0px",e.style.left="0px",e.style.zIndex="9999",e.style.width="44px",e.style.height="44px",e.style.display="none",e.style.alignItems="center",e.style.justifyContent="center",e.style.border="0px solid #000",e.style.borderRadius="9999px",e.style.boxSizing="border-box",e.style.cursor="pointer",e.style.background="#FFD466",e.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z" fill="#111"/><path d="M20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" fill="#111"/></svg>';const o=document.createElement("div");o.style.position="fixed",o.style.top="0px",o.style.left="0px",o.style.zIndex="9998",o.style.display="none",o.style.pointerEvents="none",o.style.background="transparent",o.style.border="none",e.addEventListener("click",i),document.body.appendChild(o),document.body.appendChild(e);const a=44,f=6,u=6,d=6,y=10,v=180,F=()=>window.innerWidth||document.documentElement.clientWidth,C=()=>window.innerHeight||document.documentElement.clientHeight,oe=l=>!(l.bottom<0||l.right<0||l.top>C()||l.left>F()||l.width===0&&l.height===0),$=(l,m)=>l>=d&&m>=d&&l+a<=F()-d&&m+a<=C()-d,W=(l,m)=>({x:Math.max(d,Math.min(l,F()-a-d)),y:Math.max(d,Math.min(m,C()-a-d))});function A(){const l=r.getBoundingClientRect(),m=l.width<a||l.height<a,L=Math.round(l.left),x=Math.round(l.top)-a-u,T=Math.round(l.left)+f,P=Math.round(l.top)+f;let M,S;if(m&&$(L,x))M=L,S=x;else if($(T,P))M=T,S=P;else if($(L,x))M=L,S=x;else{const _=W(L,x),q=W(T,P),ae=Math.abs(_.x-l.left)+Math.abs(_.y-l.top),ue=Math.abs(q.x-l.left)+Math.abs(q.y-l.top);({x:M,y:S}=ae<=ue?_:q)}e.style.left=`${M}px`,e.style.top=`${S}px`;const Z=Math.max(d,Math.round(l.left)-y),ee=Math.max(d,Math.round(l.top)-y),le=Math.min(F()-d,Math.round(l.right)+y),re=Math.min(C()-d,Math.round(l.bottom)+y);o.style.left=`${Z}px`,o.style.top=`${ee}px`,o.style.width=`${Math.max(0,le-Z)}px`,o.style.height=`${Math.max(0,re-ee)}px`}let g=!1,h=!1,w=!1,J=!1,E=null;const k=()=>{E!==null&&(clearTimeout(E),E=null)},j=()=>{k();try{const l=r.getBoundingClientRect();if(!oe(l)){b(!0);return}A(),e.style.display="flex",o.style.display="block",se()}catch{b(!0)}},b=(l=!1)=>{if(l){k(),e.style.display="none",o.style.display="none",R();return}k(),E=window.setTimeout(()=>{!g&&!h&&!w&&(e.style.display="none",o.style.display="none",R()),E=null},v)},z=()=>{e.style.display!=="none"&&A()},D=z;let p=null;const V=window.ResizeObserver,se=()=>{J||(J=!0,window.addEventListener("scroll",z,!0),window.addEventListener("resize",D),typeof V=="function"&&(p=new V(()=>{e.style.display!=="none"&&A()}),p==null||p.observe(r)))},R=()=>{if(J){J=!1,window.removeEventListener("scroll",z,!0),window.removeEventListener("resize",D);try{p==null||p.disconnect()}catch{}p=null}},U=()=>{g=!0,j()},K=()=>{g=!1,!h&&!w&&b()},G=()=>{h=!0,j()},Q=()=>{h=!1,!g&&!w&&b()},X=()=>{w=!0,j()},Y=()=>{w=!1,!g&&!h&&b()};r.addEventListener("mouseenter",U),r.addEventListener("mouseleave",K),e.addEventListener("mouseenter",G),e.addEventListener("mouseleave",Q),o.addEventListener("mouseenter",X),o.addEventListener("mouseleave",Y),e.addEventListener("click",i);function ie(){k(),R(),e.removeEventListener("click",i),r.removeEventListener("mouseenter",U),r.removeEventListener("mouseleave",K),e.removeEventListener("mouseenter",G),e.removeEventListener("mouseleave",Q),o.removeEventListener("mouseenter",X),o.removeEventListener("mouseleave",Y),e.parentElement===document.body&&document.body.removeChild(e),o.parentElement===document.body&&document.body.removeChild(o)}return ie}const Ee=t=>typeof(t==null?void 0:t.uid)=="string"&&t.uid.trim()!==""?{"data-flyo-uid":t.uid}:{},be=()=>{const{liveEdit:t}=s.inject("flyo");if(!t)return;let n=null;const i=[],r=()=>{i.forEach(e=>e()),i.length=0,document.querySelectorAll("[data-flyo-uid]").forEach(e=>{const o=e.getAttribute("data-flyo-uid");if(o&&e instanceof HTMLElement){const a=we(o,e);typeof a=="function"&&i.push(a)}})};s.onMounted(()=>{ge(),he(),r(),n=new MutationObserver(e=>{e.some(a=>Array.from(a.addedNodes).some(f=>{if(f.nodeType===Node.ELEMENT_NODE){const u=f;return u.hasAttribute("data-flyo-uid")||u.querySelector("[data-flyo-uid]")}return!1}))&&r()}),n.observe(document.body,{childList:!0,subtree:!0})}),s.onUnmounted(()=>{n&&n.disconnect(),i.forEach(e=>e()),i.length=0})},Le=t=>{const n=s.ref(!1),i=s.ref(null),r=s.ref(null);return{isLoading:n,response:i,error:r,fetch:async()=>{try{r.value=null,n.value=!0,i.value=JSON.parse(JSON.stringify(await new O.PagesApi(N()).page({slug:t}))),n.value=!1}catch(o){n.value=!1,i.value=null,r.value=JSON.parse(JSON.stringify(o))}return{response:s.unref(i),error:s.unref(r)}}}},xe=()=>{const t=s.ref(!1),n=s.ref(null),i=s.ref(null);return{isLoading:t,response:n,error:i,fetch:async()=>{try{i.value=null,t.value=!0,n.value=JSON.parse(JSON.stringify(await new O.SitemapApi(N()).sitemap())),t.value=!1}catch(e){t.value=!1,n.value=null,i.value=JSON.parse(JSON.stringify(e))}return{response:s.unref(n),error:s.unref(i)}}}},ne={install(t,n){de(n),t.component(H.name,H),t.component(I.name,I),t.provide("flyo",{liveEdit:n.liveEdit,liveEditOrigin:n.liveEditOrigin})}};exports.Block=H;exports.FlyoVue=ne;exports.Page=I;exports.default=ne;exports.editable=Ee;exports.getFlyoConfig=N;exports.useFlyoConfig=ye;exports.useFlyoEntity=pe;exports.useFlyoLiveEdit=be;exports.useFlyoPage=Le;exports.useFlyoSitemap=xe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("@flyo/nitro-typescript"),o=require("vue");let ee=null;const de=({apiToken:t,apiBasePath:n,defaultHeaders:s})=>{ee=new x.Configuration({apiKey:t,...n&&{basePath:n},headers:s||{}})},M=()=>ee,ce={name:"FlyoBlock"},q=Object.assign(ce,{props:{item:{type:Object,default:()=>{}}},setup(t){return(n,s)=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(t.item.component),{block:t.item,config:t.item.config,content:t.item.content,items:t.item.items,slots:t.item.slots},null,8,["block","config","content","items","slots"]))}}),fe={name:"FlyoPage"},H=Object.assign(fe,{props:{page:{type:[Object,Boolean],default:!1}},setup(t){return(n,s)=>{const r=o.resolveComponent("FlyoBlock");return o.openBlock(),o.createElementBlock("div",null,[t.page?o.renderSlot(n.$slots,"default",o.normalizeProps(o.mergeProps({key:0},t.page)),()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(t.page.json,e=>(o.openBlock(),o.createBlock(r,{key:e.uid,item:e},null,8,["item"]))),128))]):o.createCommentVNode("",!0)])}}}),d=o.reactive({isLoading:null,response:null,error:null}),ye=()=>{const t=async()=>{try{d.error=null,d.isLoading=!0,d.response=JSON.parse(JSON.stringify(await new x.ConfigApi(M()).config())),d.isLoading=!1}catch(n){d.isLoading=!1,d.response=null,d.error=JSON.parse(JSON.stringify(n))}return{response:d.response,error:d.error}};return{...o.toRefs(d),fetch:t}},pe=t=>{const n=o.ref(!1),s=o.ref(null),r=o.ref(null);return{isLoading:n,response:s,error:r,fetch:async()=>{try{r.value=null,n.value=!0,s.value=JSON.parse(JSON.stringify(await new x.EntitiesApi(M()).entityByUniqueid({uniqueid:t}))),n.value=!1}catch(l){n.value=!1,s.value=null,r.value=JSON.parse(JSON.stringify(l))}return{response:o.unref(s),error:o.unref(r)}}}};function J(){return typeof window>"u"?!1:window!==window.top}function me(){return typeof window>"u"?!1:J()?window.parent:window}function ve(t){var n=me();n&&n.postMessage({action:"openEdit",data:JSON.parse(JSON.stringify({item:{uid:t}}))},"https://flyo.cloud")}function he(){typeof window>"u"||J()&&window.addEventListener("message",t=>{var n;((n=t.data)==null?void 0:n.action)==="pageRefresh"&&window.location.reload()})}function ge(){typeof window>"u"||J()&&window.addEventListener("message",t=>{var n,s,r,e;if(((n=t.data)==null?void 0:n.action)==="scrollTo"){const l=(e=(r=(s=t.data)==null?void 0:s.data)==null?void 0:r.item)==null?void 0:e.uid;if(!l)return;const a=document.querySelector(`[data-flyo-uid="${CSS.escape(l)}"]`);a&&a.scrollIntoView({behavior:"smooth",block:"start"})}})}function we(t,n){const s=()=>ve(t);if(!J()||!n)return s;const r=n,e=document.createElement("button");e.type="button",e.setAttribute("aria-label","Edit block"),e.style.position="fixed",e.style.top="0px",e.style.left="0px",e.style.zIndex="9999",e.style.width="44px",e.style.height="44px",e.style.display="none",e.style.alignItems="center",e.style.justifyContent="center",e.style.border="0px solid #000",e.style.borderRadius="9999px",e.style.boxSizing="border-box",e.style.cursor="pointer",e.style.background="#FFD466",e.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z" fill="#111"/><path d="M20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" fill="#111"/></svg>';const l=document.createElement("div");l.style.position="fixed",l.style.top="0px",l.style.left="0px",l.style.zIndex="9998",l.style.display="none",l.style.pointerEvents="none",l.style.background="transparent",l.style.border="none",e.addEventListener("click",s),document.body.appendChild(l),document.body.appendChild(e);const a=44,y=6,S=6,u=6,O=10,ne=180,N=()=>window.innerWidth||document.documentElement.clientWidth,F=()=>window.innerHeight||document.documentElement.clientHeight,oe=i=>!(i.bottom<0||i.right<0||i.top>F()||i.left>N()||i.width===0&&i.height===0),B=(i,f)=>i>=u&&f>=u&&i+a<=N()-u&&f+a<=F()-u,I=(i,f)=>({x:Math.max(u,Math.min(i,N()-a-u)),y:Math.max(u,Math.min(f,F()-a-u))});function A(){const i=r.getBoundingClientRect(),f=i.width<a||i.height<a,w=Math.round(i.left),E=Math.round(i.top)-a-S,j=Math.round(i.left)+y,P=Math.round(i.top)+y;let b,L;if(f&&B(w,E))b=w,L=E;else if(B(j,P))b=j,L=P;else if(B(w,E))b=w,L=E;else{const R=I(w,E),_=I(j,P),ae=Math.abs(R.x-i.left)+Math.abs(R.y-i.top),ue=Math.abs(_.x-i.left)+Math.abs(_.y-i.top);({x:b,y:L}=ae<=ue?R:_)}e.style.left=`${b}px`,e.style.top=`${L}px`;const Y=Math.max(u,Math.round(i.left)-O),Z=Math.max(u,Math.round(i.top)-O),ie=Math.min(N()-u,Math.round(i.right)+O),re=Math.min(F()-u,Math.round(i.bottom)+O);l.style.left=`${Y}px`,l.style.top=`${Z}px`,l.style.width=`${Math.max(0,ie-Y)}px`,l.style.height=`${Math.max(0,re-Z)}px`}let p=!1,m=!1,v=!1,C=!1,h=null;const k=()=>{h!==null&&(clearTimeout(h),h=null)},$=()=>{k();try{const i=r.getBoundingClientRect();if(!oe(i)){g(!0);return}A(),e.style.display="flex",l.style.display="block",le()}catch{g(!0)}},g=(i=!1)=>{if(i){k(),e.style.display="none",l.style.display="none",T();return}k(),h=window.setTimeout(()=>{!p&&!m&&!v&&(e.style.display="none",l.style.display="none",T()),h=null},ne)},z=()=>{e.style.display!=="none"&&A()},D=z;let c=null;const V=window.ResizeObserver,le=()=>{C||(C=!0,window.addEventListener("scroll",z,!0),window.addEventListener("resize",D),typeof V=="function"&&(c=new V(()=>{e.style.display!=="none"&&A()}),c==null||c.observe(r)))},T=()=>{if(C){C=!1,window.removeEventListener("scroll",z,!0),window.removeEventListener("resize",D);try{c==null||c.disconnect()}catch{}c=null}},U=()=>{p=!0,$()},W=()=>{p=!1,!m&&!v&&g()},K=()=>{m=!0,$()},G=()=>{m=!1,!p&&!v&&g()},Q=()=>{v=!0,$()},X=()=>{v=!1,!p&&!m&&g()};r.addEventListener("mouseenter",U),r.addEventListener("mouseleave",W),e.addEventListener("mouseenter",K),e.addEventListener("mouseleave",G),l.addEventListener("mouseenter",Q),l.addEventListener("mouseleave",X),e.addEventListener("click",s);function se(){k(),T(),e.removeEventListener("click",s),r.removeEventListener("mouseenter",U),r.removeEventListener("mouseleave",W),e.removeEventListener("mouseenter",K),e.removeEventListener("mouseleave",G),l.removeEventListener("mouseenter",Q),l.removeEventListener("mouseleave",X),e.parentElement===document.body&&document.body.removeChild(e),l.parentElement===document.body&&document.body.removeChild(l)}return se}const Ee=t=>typeof(t==null?void 0:t.uid)=="string"&&t.uid.trim()!==""?{"data-flyo-uid":t.uid}:{},be=()=>{const{liveEdit:t}=o.inject("flyo");if(!t)return;let n=null;const s=[],r=()=>{s.forEach(e=>e()),s.length=0,document.querySelectorAll("[data-flyo-uid]").forEach(e=>{const l=e.getAttribute("data-flyo-uid");if(l&&e instanceof HTMLElement){const a=we(l,e);typeof a=="function"&&s.push(a)}})};o.onMounted(()=>{he(),ge(),r(),n=new MutationObserver(e=>{e.some(a=>Array.from(a.addedNodes).some(y=>{if(y.nodeType===Node.ELEMENT_NODE){const S=y;return S.hasAttribute("data-flyo-uid")||S.querySelector("[data-flyo-uid]")}return!1}))&&r()}),n.observe(document.body,{childList:!0,subtree:!0})}),o.onUnmounted(()=>{n&&n.disconnect(),s.forEach(e=>e()),s.length=0})},Le=t=>{const n=o.ref(!1),s=o.ref(null),r=o.ref(null);return{isLoading:n,response:s,error:r,fetch:async()=>{try{r.value=null,n.value=!0,s.value=JSON.parse(JSON.stringify(await new x.PagesApi(M()).page({slug:t}))),n.value=!1}catch(l){n.value=!1,s.value=null,r.value=JSON.parse(JSON.stringify(l))}return{response:o.unref(s),error:o.unref(r)}}}},xe=()=>{const t=o.ref(!1),n=o.ref(null),s=o.ref(null);return{isLoading:t,response:n,error:s,fetch:async()=>{try{s.value=null,t.value=!0,n.value=JSON.parse(JSON.stringify(await new x.SitemapApi(M()).sitemap())),t.value=!1}catch(e){t.value=!1,n.value=null,s.value=JSON.parse(JSON.stringify(e))}return{response:o.unref(n),error:o.unref(s)}}}},te={install(t,n){de(n),t.component(q.name,q),t.component(H.name,H),t.provide("flyo",{liveEdit:n.liveEdit,liveEditOrigin:n.liveEditOrigin})}};exports.Block=q;exports.FlyoVue=te;exports.Page=H;exports.default=te;exports.editable=Ee;exports.getFlyoConfig=M;exports.useFlyoConfig=ye;exports.useFlyoEntity=pe;exports.useFlyoLiveEdit=be;exports.useFlyoPage=Le;exports.useFlyoSitemap=xe;
package/dist/index.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import { Configuration as pe, ConfigApi as ye, EntitiesApi as me, PagesApi as ve, SitemapApi as ge } from "@flyo/nitro-typescript";
2
- import { openBlock as k, createBlock as oe, resolveDynamicComponent as he, inject as se, resolveComponent as we, createElementBlock as ee, renderSlot as Ee, normalizeProps as be, mergeProps as Le, Fragment as xe, renderList as Me, createCommentVNode as Oe, reactive as Se, toRefs as Ne, ref as c, unref as v, onMounted as Ce, onUnmounted as Je } from "vue";
3
- let ie = null;
4
- const Fe = ({ apiToken: t, apiBasePath: n, defaultHeaders: s }) => {
5
- ie = new pe({
1
+ import { Configuration as fe, ConfigApi as ye, EntitiesApi as me, PagesApi as pe, SitemapApi as ve } from "@flyo/nitro-typescript";
2
+ import { openBlock as F, createBlock as ne, resolveDynamicComponent as he, resolveComponent as ge, createElementBlock as Z, renderSlot as we, normalizeProps as Ee, mergeProps as be, Fragment as Le, renderList as xe, createCommentVNode as Me, reactive as Se, toRefs as Oe, ref as d, unref as y, inject as Ne, onMounted as Ce, onUnmounted as Je } from "vue";
3
+ let oe = null;
4
+ const Fe = ({ apiToken: t, apiBasePath: n, defaultHeaders: l }) => {
5
+ oe = new fe({
6
6
  apiKey: t,
7
7
  ...n && { basePath: n },
8
- headers: s || {}
8
+ headers: l || {}
9
9
  });
10
- }, $ = () => ie, ke = {
10
+ }, k = () => oe, ke = {
11
11
  name: "FlyoBlock"
12
- }, te = /* @__PURE__ */ Object.assign(ke, {
12
+ }, ee = /* @__PURE__ */ Object.assign(ke, {
13
13
  props: {
14
14
  item: {
15
15
  type: Object,
@@ -18,91 +18,71 @@ const Fe = ({ apiToken: t, apiBasePath: n, defaultHeaders: s }) => {
18
18
  }
19
19
  },
20
20
  setup(t) {
21
- return (n, s) => (k(), oe(he(t.item.component), {
21
+ return (n, l) => (F(), ne(he(t.item.component), {
22
+ block: t.item,
22
23
  config: t.item.config,
23
24
  content: t.item.content,
24
25
  items: t.item.items,
25
26
  slots: t.item.slots
26
- }, null, 8, ["config", "content", "items", "slots"]));
27
+ }, null, 8, ["block", "config", "content", "items", "slots"]));
27
28
  }
28
- }), $e = {
29
+ }), Ae = {
29
30
  name: "FlyoPage"
30
- }, ne = /* @__PURE__ */ Object.assign($e, {
31
+ }, te = /* @__PURE__ */ Object.assign(Ae, {
31
32
  props: {
32
33
  page: {
33
34
  type: [Object, Boolean],
34
35
  default: !1
35
36
  }
36
37
  },
37
- emits: ["update:page"],
38
- setup(t, { emit: n }) {
39
- const s = t, l = n, { liveEdit: e, liveEditOrigin: o } = se("flyo"), r = (a) => {
40
- const u = a.parent || a.opener;
41
- return a.self === u ? !1 : a.parent || a.opener;
42
- }, f = (a) => {
43
- e && process.client && r(window) && r(window).postMessage({
44
- action: "openEdit",
45
- data: JSON.parse(JSON.stringify({
46
- page: s.page,
47
- item: a
48
- }))
49
- }, o);
50
- };
51
- return process.client && r(window) && window.addEventListener("message", (a) => {
52
- if (a.origin !== o) {
53
- console.log(`Message from ${a.origin} blocked. Expected ${o}.`);
54
- return;
55
- }
56
- const u = a.data;
57
- u.action === "pageRefresh" && l("update:page", u.data);
58
- }), (a, u) => {
59
- const p = we("FlyoBlock");
60
- return k(), ee("div", null, [
61
- t.page ? Ee(a.$slots, "default", be(Le({ key: 0 }, t.page)), () => [
62
- (k(!0), ee(xe, null, Me(t.page.json, (g) => (k(), oe(p, {
63
- key: g.uid,
64
- item: g,
65
- onClick: () => f(g)
66
- }, null, 8, ["item", "onClick"]))), 128))
67
- ]) : Oe("", !0)
38
+ setup(t) {
39
+ return (n, l) => {
40
+ const i = ge("FlyoBlock");
41
+ return F(), Z("div", null, [
42
+ t.page ? we(n.$slots, "default", Ee(be({ key: 0 }, t.page)), () => [
43
+ (F(!0), Z(Le, null, xe(t.page.json, (e) => (F(), ne(i, {
44
+ key: e.uid,
45
+ item: e
46
+ }, null, 8, ["item"]))), 128))
47
+ ]) : Me("", !0)
68
48
  ]);
69
49
  };
70
50
  }
71
- }), d = Se({
51
+ }), u = Se({
72
52
  isLoading: null,
73
53
  response: null,
74
54
  error: null
75
55
  }), _e = () => {
76
56
  const t = async () => {
77
57
  try {
78
- d.error = null, d.isLoading = !0, d.response = JSON.parse(JSON.stringify(await new ye($()).config())), d.isLoading = !1;
58
+ u.error = null, u.isLoading = !0, u.response = JSON.parse(JSON.stringify(await new ye(k()).config())), u.isLoading = !1;
79
59
  } catch (n) {
80
- d.isLoading = !1, d.response = null, d.error = JSON.parse(JSON.stringify(n));
60
+ u.isLoading = !1, u.response = null, u.error = JSON.parse(JSON.stringify(n));
81
61
  }
82
62
  return {
83
- response: d.response,
84
- error: d.error
63
+ response: u.response,
64
+ error: u.error
85
65
  };
86
66
  };
87
67
  return {
88
- ...Ne(d),
68
+ ...Oe(u),
89
69
  fetch: t
90
70
  };
91
71
  }, qe = (t) => {
92
- const n = c(!1), s = c(null), l = c(null);
72
+ const n = d(!1), l = d(null), i = d(null);
93
73
  return {
94
74
  isLoading: n,
95
- response: s,
96
- error: l,
75
+ response: l,
76
+ error: i,
97
77
  fetch: async () => {
98
78
  try {
99
- l.value = null, n.value = !0, s.value = JSON.parse(JSON.stringify(await new me($()).entityByUniqueid({ uniqueid: t }))), n.value = !1;
79
+ i.value = null, n.value = !0, l.value = JSON.parse(JSON.stringify(await new me(k()).entityByUniqueid({ uniqueid: t }))), n.value = !1;
100
80
  } catch (o) {
101
- n.value = !1, s.value = null, l.value = JSON.parse(JSON.stringify(o));
81
+ n.value = !1, l.value = null, i.value = JSON.parse(JSON.stringify(o));
102
82
  }
103
83
  return {
104
- response: v(s),
105
- error: v(l)
84
+ response: y(l),
85
+ error: y(i)
106
86
  };
107
87
  }
108
88
  };
@@ -110,11 +90,11 @@ const Fe = ({ apiToken: t, apiBasePath: n, defaultHeaders: s }) => {
110
90
  function A() {
111
91
  return typeof window > "u" ? !1 : window !== window.top;
112
92
  }
113
- function Ae() {
93
+ function Be() {
114
94
  return typeof window > "u" ? !1 : A() ? window.parent : window;
115
95
  }
116
- function Be(t) {
117
- var n = Ae();
96
+ function $e(t) {
97
+ var n = Be();
118
98
  n && n.postMessage({
119
99
  action: "openEdit",
120
100
  data: JSON.parse(JSON.stringify({ item: { uid: t } }))
@@ -128,9 +108,9 @@ function ze() {
128
108
  }
129
109
  function Re() {
130
110
  typeof window > "u" || A() && window.addEventListener("message", (t) => {
131
- var n, s, l, e;
111
+ var n, l, i, e;
132
112
  if (((n = t.data) == null ? void 0 : n.action) === "scrollTo") {
133
- const o = (e = (l = (s = t.data) == null ? void 0 : s.data) == null ? void 0 : l.item) == null ? void 0 : e.uid;
113
+ const o = (e = (i = (l = t.data) == null ? void 0 : l.data) == null ? void 0 : i.item) == null ? void 0 : e.uid;
134
114
  if (!o)
135
115
  return;
136
116
  const r = document.querySelector(`[data-flyo-uid="${CSS.escape(o)}"]`);
@@ -139,179 +119,179 @@ function Re() {
139
119
  });
140
120
  }
141
121
  function je(t, n) {
142
- const s = () => Be(t);
122
+ const l = () => $e(t);
143
123
  if (!A() || !n)
144
- return s;
145
- const l = n, e = document.createElement("button");
124
+ return l;
125
+ const i = n, e = document.createElement("button");
146
126
  e.type = "button", e.setAttribute("aria-label", "Edit block"), e.style.position = "fixed", e.style.top = "0px", e.style.left = "0px", e.style.zIndex = "9999", e.style.width = "44px", e.style.height = "44px", e.style.display = "none", e.style.alignItems = "center", e.style.justifyContent = "center", e.style.border = "0px solid #000", e.style.borderRadius = "9999px", e.style.boxSizing = "border-box", e.style.cursor = "pointer", e.style.background = "#FFD466", e.innerHTML = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z" fill="#111"/><path d="M20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" fill="#111"/></svg>';
147
127
  const o = document.createElement("div");
148
- o.style.position = "fixed", o.style.top = "0px", o.style.left = "0px", o.style.zIndex = "9998", o.style.display = "none", o.style.pointerEvents = "none", o.style.background = "transparent", o.style.border = "none", e.addEventListener("click", s), document.body.appendChild(o), document.body.appendChild(e);
149
- const r = 44, f = 6, a = 6, u = 6, p = 10, g = 180, N = () => window.innerWidth || document.documentElement.clientWidth, C = () => window.innerHeight || document.documentElement.clientHeight, le = (i) => !(i.bottom < 0 || i.right < 0 || i.top > C() || i.left > N() || i.width === 0 && i.height === 0), B = (i, m) => i >= u && m >= u && i + r <= N() - u && m + r <= C() - u, I = (i, m) => ({
150
- x: Math.max(u, Math.min(i, N() - r - u)),
151
- y: Math.max(u, Math.min(m, C() - r - u))
128
+ o.style.position = "fixed", o.style.top = "0px", o.style.left = "0px", o.style.zIndex = "9998", o.style.display = "none", o.style.pointerEvents = "none", o.style.background = "transparent", o.style.border = "none", e.addEventListener("click", l), document.body.appendChild(o), document.body.appendChild(e);
129
+ const r = 44, m = 6, M = 6, a = 6, S = 10, le = 180, O = () => window.innerWidth || document.documentElement.clientWidth, N = () => window.innerHeight || document.documentElement.clientHeight, se = (s) => !(s.bottom < 0 || s.right < 0 || s.top > N() || s.left > O() || s.width === 0 && s.height === 0), B = (s, f) => s >= a && f >= a && s + r <= O() - a && f + r <= N() - a, H = (s, f) => ({
130
+ x: Math.max(a, Math.min(s, O() - r - a)),
131
+ y: Math.max(a, Math.min(f, N() - r - a))
152
132
  });
153
- function z() {
154
- const i = l.getBoundingClientRect(), m = i.width < r || i.height < r, x = Math.round(i.left), M = Math.round(i.top) - r - a, P = Math.round(i.left) + f, _ = Math.round(i.top) + f;
155
- let O, S;
156
- if (m && B(x, M))
157
- O = x, S = M;
158
- else if (B(P, _))
159
- O = P, S = _;
160
- else if (B(x, M))
161
- O = x, S = M;
133
+ function $() {
134
+ const s = i.getBoundingClientRect(), f = s.width < r || s.height < r, E = Math.round(s.left), b = Math.round(s.top) - r - M, T = Math.round(s.left) + m, P = Math.round(s.top) + m;
135
+ let L, x;
136
+ if (f && B(E, b))
137
+ L = E, x = b;
138
+ else if (B(T, P))
139
+ L = T, x = P;
140
+ else if (B(E, b))
141
+ L = E, x = b;
162
142
  else {
163
- const q = I(x, M), H = I(P, _), ce = Math.abs(q.x - i.left) + Math.abs(q.y - i.top), fe = Math.abs(H.x - i.left) + Math.abs(H.y - i.top);
164
- ({ x: O, y: S } = ce <= fe ? q : H);
143
+ const _ = H(E, b), q = H(T, P), de = Math.abs(_.x - s.left) + Math.abs(_.y - s.top), ce = Math.abs(q.x - s.left) + Math.abs(q.y - s.top);
144
+ ({ x: L, y: x } = de <= ce ? _ : q);
165
145
  }
166
- e.style.left = `${O}px`, e.style.top = `${S}px`;
167
- const Y = Math.max(u, Math.round(i.left) - p), Z = Math.max(u, Math.round(i.top) - p), ue = Math.min(N() - u, Math.round(i.right) + p), de = Math.min(C() - u, Math.round(i.bottom) + p);
168
- o.style.left = `${Y}px`, o.style.top = `${Z}px`, o.style.width = `${Math.max(0, ue - Y)}px`, o.style.height = `${Math.max(0, de - Z)}px`;
146
+ e.style.left = `${L}px`, e.style.top = `${x}px`;
147
+ const X = Math.max(a, Math.round(s.left) - S), Y = Math.max(a, Math.round(s.top) - S), ae = Math.min(O() - a, Math.round(s.right) + S), ue = Math.min(N() - a, Math.round(s.bottom) + S);
148
+ o.style.left = `${X}px`, o.style.top = `${Y}px`, o.style.width = `${Math.max(0, ae - X)}px`, o.style.height = `${Math.max(0, ue - Y)}px`;
169
149
  }
170
- let h = !1, w = !1, E = !1, J = !1, b = null;
171
- const F = () => {
172
- b !== null && (clearTimeout(b), b = null);
173
- }, R = () => {
174
- F();
150
+ let p = !1, v = !1, h = !1, C = !1, g = null;
151
+ const J = () => {
152
+ g !== null && (clearTimeout(g), g = null);
153
+ }, z = () => {
154
+ J();
175
155
  try {
176
- const i = l.getBoundingClientRect();
177
- if (!le(i)) {
178
- L(!0);
156
+ const s = i.getBoundingClientRect();
157
+ if (!se(s)) {
158
+ w(!0);
179
159
  return;
180
160
  }
181
- z(), e.style.display = "flex", o.style.display = "block", re();
161
+ $(), e.style.display = "flex", o.style.display = "block", ie();
182
162
  } catch {
183
- L(!0);
163
+ w(!0);
184
164
  }
185
- }, L = (i = !1) => {
186
- if (i) {
187
- F(), e.style.display = "none", o.style.display = "none", T();
165
+ }, w = (s = !1) => {
166
+ if (s) {
167
+ J(), e.style.display = "none", o.style.display = "none", j();
188
168
  return;
189
169
  }
190
- F(), b = window.setTimeout(() => {
191
- !h && !w && !E && (e.style.display = "none", o.style.display = "none", T()), b = null;
192
- }, g);
170
+ J(), g = window.setTimeout(() => {
171
+ !p && !v && !h && (e.style.display = "none", o.style.display = "none", j()), g = null;
172
+ }, le);
173
+ }, R = () => {
174
+ e.style.display !== "none" && $();
175
+ }, I = R;
176
+ let c = null;
177
+ const D = window.ResizeObserver, ie = () => {
178
+ C || (C = !0, window.addEventListener("scroll", R, !0), window.addEventListener("resize", I), typeof D == "function" && (c = new D(() => {
179
+ e.style.display !== "none" && $();
180
+ }), c == null || c.observe(i)));
193
181
  }, j = () => {
194
- e.style.display !== "none" && z();
195
- }, W = j;
196
- let y = null;
197
- const D = window.ResizeObserver, re = () => {
198
- J || (J = !0, window.addEventListener("scroll", j, !0), window.addEventListener("resize", W), typeof D == "function" && (y = new D(() => {
199
- e.style.display !== "none" && z();
200
- }), y == null || y.observe(l)));
201
- }, T = () => {
202
- if (J) {
203
- J = !1, window.removeEventListener("scroll", j, !0), window.removeEventListener("resize", W);
182
+ if (C) {
183
+ C = !1, window.removeEventListener("scroll", R, !0), window.removeEventListener("resize", I);
204
184
  try {
205
- y == null || y.disconnect();
185
+ c == null || c.disconnect();
206
186
  } catch {
207
187
  }
208
- y = null;
188
+ c = null;
209
189
  }
210
190
  }, U = () => {
211
- h = !0, R();
191
+ p = !0, z();
212
192
  }, V = () => {
213
- h = !1, !w && !E && L();
193
+ p = !1, !v && !h && w();
194
+ }, W = () => {
195
+ v = !0, z();
214
196
  }, K = () => {
215
- w = !0, R();
197
+ v = !1, !p && !h && w();
216
198
  }, G = () => {
217
- w = !1, !h && !E && L();
199
+ h = !0, z();
218
200
  }, Q = () => {
219
- E = !0, R();
220
- }, X = () => {
221
- E = !1, !h && !w && L();
201
+ h = !1, !p && !v && w();
222
202
  };
223
- l.addEventListener("mouseenter", U), l.addEventListener("mouseleave", V), e.addEventListener("mouseenter", K), e.addEventListener("mouseleave", G), o.addEventListener("mouseenter", Q), o.addEventListener("mouseleave", X), e.addEventListener("click", s);
224
- function ae() {
225
- F(), T(), e.removeEventListener("click", s), l.removeEventListener("mouseenter", U), l.removeEventListener("mouseleave", V), e.removeEventListener("mouseenter", K), e.removeEventListener("mouseleave", G), o.removeEventListener("mouseenter", Q), o.removeEventListener("mouseleave", X), e.parentElement === document.body && document.body.removeChild(e), o.parentElement === document.body && document.body.removeChild(o);
203
+ i.addEventListener("mouseenter", U), i.addEventListener("mouseleave", V), e.addEventListener("mouseenter", W), e.addEventListener("mouseleave", K), o.addEventListener("mouseenter", G), o.addEventListener("mouseleave", Q), e.addEventListener("click", l);
204
+ function re() {
205
+ J(), j(), e.removeEventListener("click", l), i.removeEventListener("mouseenter", U), i.removeEventListener("mouseleave", V), e.removeEventListener("mouseenter", W), e.removeEventListener("mouseleave", K), o.removeEventListener("mouseenter", G), o.removeEventListener("mouseleave", Q), e.parentElement === document.body && document.body.removeChild(e), o.parentElement === document.body && document.body.removeChild(o);
226
206
  }
227
- return ae;
207
+ return re;
228
208
  }
229
209
  const He = (t) => typeof (t == null ? void 0 : t.uid) == "string" && t.uid.trim() !== "" ? { "data-flyo-uid": t.uid } : {}, Ie = () => {
230
- const { liveEdit: t } = se("flyo");
210
+ const { liveEdit: t } = Ne("flyo");
231
211
  if (!t)
232
212
  return;
233
213
  let n = null;
234
- const s = [], l = () => {
235
- s.forEach((e) => e()), s.length = 0, document.querySelectorAll("[data-flyo-uid]").forEach((e) => {
214
+ const l = [], i = () => {
215
+ l.forEach((e) => e()), l.length = 0, document.querySelectorAll("[data-flyo-uid]").forEach((e) => {
236
216
  const o = e.getAttribute("data-flyo-uid");
237
217
  if (o && e instanceof HTMLElement) {
238
218
  const r = je(o, e);
239
- typeof r == "function" && s.push(r);
219
+ typeof r == "function" && l.push(r);
240
220
  }
241
221
  });
242
222
  };
243
223
  Ce(() => {
244
- ze(), Re(), l(), n = new MutationObserver((e) => {
224
+ ze(), Re(), i(), n = new MutationObserver((e) => {
245
225
  e.some(
246
- (r) => Array.from(r.addedNodes).some((f) => {
247
- if (f.nodeType === Node.ELEMENT_NODE) {
248
- const a = f;
249
- return a.hasAttribute("data-flyo-uid") || a.querySelector("[data-flyo-uid]");
226
+ (r) => Array.from(r.addedNodes).some((m) => {
227
+ if (m.nodeType === Node.ELEMENT_NODE) {
228
+ const M = m;
229
+ return M.hasAttribute("data-flyo-uid") || M.querySelector("[data-flyo-uid]");
250
230
  }
251
231
  return !1;
252
232
  })
253
- ) && l();
233
+ ) && i();
254
234
  }), n.observe(document.body, {
255
235
  childList: !0,
256
236
  subtree: !0
257
237
  });
258
238
  }), Je(() => {
259
- n && n.disconnect(), s.forEach((e) => e()), s.length = 0;
239
+ n && n.disconnect(), l.forEach((e) => e()), l.length = 0;
260
240
  });
261
- }, We = (t) => {
262
- const n = c(!1), s = c(null), l = c(null);
241
+ }, De = (t) => {
242
+ const n = d(!1), l = d(null), i = d(null);
263
243
  return {
264
244
  isLoading: n,
265
- response: s,
266
- error: l,
245
+ response: l,
246
+ error: i,
267
247
  fetch: async () => {
268
248
  try {
269
- l.value = null, n.value = !0, s.value = JSON.parse(JSON.stringify(await new ve($()).page({ slug: t }))), n.value = !1;
249
+ i.value = null, n.value = !0, l.value = JSON.parse(JSON.stringify(await new pe(k()).page({ slug: t }))), n.value = !1;
270
250
  } catch (o) {
271
- n.value = !1, s.value = null, l.value = JSON.parse(JSON.stringify(o));
251
+ n.value = !1, l.value = null, i.value = JSON.parse(JSON.stringify(o));
272
252
  }
273
253
  return {
274
- response: v(s),
275
- error: v(l)
254
+ response: y(l),
255
+ error: y(i)
276
256
  };
277
257
  }
278
258
  };
279
- }, De = () => {
280
- const t = c(!1), n = c(null), s = c(null);
259
+ }, Ue = () => {
260
+ const t = d(!1), n = d(null), l = d(null);
281
261
  return {
282
262
  isLoading: t,
283
263
  response: n,
284
- error: s,
264
+ error: l,
285
265
  fetch: async () => {
286
266
  try {
287
- s.value = null, t.value = !0, n.value = JSON.parse(JSON.stringify(await new ge($()).sitemap())), t.value = !1;
267
+ l.value = null, t.value = !0, n.value = JSON.parse(JSON.stringify(await new ve(k()).sitemap())), t.value = !1;
288
268
  } catch (e) {
289
- t.value = !1, n.value = null, s.value = JSON.parse(JSON.stringify(e));
269
+ t.value = !1, n.value = null, l.value = JSON.parse(JSON.stringify(e));
290
270
  }
291
271
  return {
292
- response: v(n),
293
- error: v(s)
272
+ response: y(n),
273
+ error: y(l)
294
274
  };
295
275
  }
296
276
  };
297
- }, Ue = {
277
+ }, Ve = {
298
278
  install(t, n) {
299
- Fe(n), t.component(te.name, te), t.component(ne.name, ne), t.provide("flyo", {
279
+ Fe(n), t.component(ee.name, ee), t.component(te.name, te), t.provide("flyo", {
300
280
  liveEdit: n.liveEdit,
301
281
  liveEditOrigin: n.liveEditOrigin
302
282
  });
303
283
  }
304
284
  };
305
285
  export {
306
- te as Block,
307
- Ue as FlyoVue,
308
- ne as Page,
309
- Ue as default,
286
+ ee as Block,
287
+ Ve as FlyoVue,
288
+ te as Page,
289
+ Ve as default,
310
290
  He as editable,
311
- $ as getFlyoConfig,
291
+ k as getFlyoConfig,
312
292
  _e as useFlyoConfig,
313
293
  qe as useFlyoEntity,
314
294
  Ie as useFlyoLiveEdit,
315
- We as useFlyoPage,
316
- De as useFlyoSitemap
295
+ De as useFlyoPage,
296
+ Ue as useFlyoSitemap
317
297
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyo/nitro-vue3",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "Vue3 Components for Flyo Nitro",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",