2025-06-12 09:37:26 +08:00

2 lines
13 KiB
JavaScript

var F=Object.create;var G=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty;var oe=(d,h)=>()=>(h||d((h={exports:{}}).exports,h),h.exports);var re=(d,h,S,y)=>{if(h&&typeof h=="object"||typeof h=="function")for(let b of ee(h))!ne.call(d,b)&&b!==S&&G(d,b,{get:()=>h[b],enumerable:!(y=V(h,b))||y.enumerable});return d};var se=(d,h,S)=>(S=d!=null?F(te(d)):{},re(h||!d||!d.__esModule?G(S,"default",{value:d,enumerable:!0}):S,d));var X=oe((me,N)=>{var ie=function(){var d=String.fromCharCode,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",y={};function b(n,e){if(!y[n]){y[n]={};for(var c=0;c<n.length;c++)y[n][n.charAt(c)]=c}return y[n][e]}var P={compressToBase64:function(n){if(n==null)return"";var e=P._compress(n,6,function(c){return h.charAt(c)});switch(e.length%4){default:case 0:return e;case 1:return e+"===";case 2:return e+"==";case 3:return e+"="}},decompressFromBase64:function(n){return n==null?"":n==""?null:P._decompress(n.length,32,function(e){return b(h,n.charAt(e))})},compressToUTF16:function(n){return n==null?"":P._compress(n,15,function(e){return d(e+32)})+" "},decompressFromUTF16:function(n){return n==null?"":n==""?null:P._decompress(n.length,16384,function(e){return n.charCodeAt(e)-32})},compressToUint8Array:function(n){for(var e=P.compress(n),c=new Uint8Array(e.length*2),t=0,s=e.length;t<s;t++){var f=e.charCodeAt(t);c[t*2]=f>>>8,c[t*2+1]=f%256}return c},decompressFromUint8Array:function(n){if(n==null)return P.decompress(n);for(var e=new Array(n.length/2),c=0,t=e.length;c<t;c++)e[c]=n[c*2]*256+n[c*2+1];var s=[];return e.forEach(function(f){s.push(d(f))}),P.decompress(s.join(""))},compressToEncodedURIComponent:function(n){return n==null?"":P._compress(n,6,function(e){return S.charAt(e)})},decompressFromEncodedURIComponent:function(n){return n==null?"":n==""?null:(n=n.replace(/ /g,"+"),P._decompress(n.length,32,function(e){return b(S,n.charAt(e))}))},compress:function(n){return P._compress(n,16,function(e){return d(e)})},_compress:function(n,e,c){if(n==null)return"";var t,s,f={},g={},v="",O="",u="",w=2,L=3,a=2,p=[],r=0,o=0,x;for(x=0;x<n.length;x+=1)if(v=n.charAt(x),Object.prototype.hasOwnProperty.call(f,v)||(f[v]=L++,g[v]=!0),O=u+v,Object.prototype.hasOwnProperty.call(f,O))u=O;else{if(Object.prototype.hasOwnProperty.call(g,u)){if(u.charCodeAt(0)<256){for(t=0;t<a;t++)r=r<<1,o==e-1?(o=0,p.push(c(r)),r=0):o++;for(s=u.charCodeAt(0),t=0;t<8;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1}else{for(s=1,t=0;t<a;t++)r=r<<1|s,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=0;for(s=u.charCodeAt(0),t=0;t<16;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1}w--,w==0&&(w=Math.pow(2,a),a++),delete g[u]}else for(s=f[u],t=0;t<a;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1;w--,w==0&&(w=Math.pow(2,a),a++),f[O]=L++,u=String(v)}if(u!==""){if(Object.prototype.hasOwnProperty.call(g,u)){if(u.charCodeAt(0)<256){for(t=0;t<a;t++)r=r<<1,o==e-1?(o=0,p.push(c(r)),r=0):o++;for(s=u.charCodeAt(0),t=0;t<8;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1}else{for(s=1,t=0;t<a;t++)r=r<<1|s,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=0;for(s=u.charCodeAt(0),t=0;t<16;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1}w--,w==0&&(w=Math.pow(2,a),a++),delete g[u]}else for(s=f[u],t=0;t<a;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1;w--,w==0&&(w=Math.pow(2,a),a++)}for(s=2,t=0;t<a;t++)r=r<<1|s&1,o==e-1?(o=0,p.push(c(r)),r=0):o++,s=s>>1;for(;;)if(r=r<<1,o==e-1){p.push(c(r));break}else o++;return p.join("")},decompress:function(n){return n==null?"":n==""?null:P._decompress(n.length,32768,function(e){return n.charCodeAt(e)})},_decompress:function(n,e,c){var t=[],s,f=4,g=4,v=3,O="",u=[],w,L,a,p,r,o,x,l={val:c(0),position:e,index:1};for(w=0;w<3;w+=1)t[w]=w;for(a=0,r=Math.pow(2,2),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;switch(s=a){case 0:for(a=0,r=Math.pow(2,8),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;x=d(a);break;case 1:for(a=0,r=Math.pow(2,16),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;x=d(a);break;case 2:return""}for(t[3]=x,L=x,u.push(x);;){if(l.index>n)return"";for(a=0,r=Math.pow(2,v),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;switch(x=a){case 0:for(a=0,r=Math.pow(2,8),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;t[g++]=d(a),x=g-1,f--;break;case 1:for(a=0,r=Math.pow(2,16),o=1;o!=r;)p=l.val&l.position,l.position>>=1,l.position==0&&(l.position=e,l.val=c(l.index++)),a|=(p>0?1:0)*o,o<<=1;t[g++]=d(a),x=g-1,f--;break;case 2:return u.join("")}if(f==0&&(f=Math.pow(2,v),v++),t[x])O=t[x];else if(x===g)O=L+L.charAt(0);else return null;u.push(O),t[g++]=L+O.charAt(0),f--,L=O,f==0&&(f=Math.pow(2,v),v++)}}};return P}();typeof N!="undefined"&&N!=null&&(N.exports=ie)});import{h as le,onMounted as ce,onUnmounted as de,ref as K,watch as fe}from"vue";var D=se(X());async function J(d,h={}){typeof d=="object"&&!(d instanceof HTMLElement)&&(d.headless||d.view==="headless")&&(h=d,d=null);let{config:S={},headless:y,loading:b="lazy",view:P}=h,n=y||P==="headless",e=null,c=null;if(typeof d=="string")e=document.querySelector(d);else if(d instanceof HTMLElement)e=d;else if(!(n&&typeof d=="object"))throw new Error("A valid container element is required.");if(!e)if(n)e=document.createElement("div"),W(e),document.body.appendChild(e);else throw new Error(`Cannot find element: "${d}"`);let t=new URL(ae(h)),s=t.origin;t.searchParams.set("embed","true"),t.searchParams.set("loading",n?"eager":b),t.searchParams.set("sdkVersion","0.11.1"),typeof S=="object"&&Object.keys(S).length>0&&t.searchParams.set("config","sdk");let f=h.params;typeof f=="object"&&Object.keys(f).length>0&&JSON.stringify(f).length<1800&&Object.keys(f).forEach(i=>{t.searchParams.set(i,encodeURIComponent(String(f[i])))});let g=!1,v="Cannot call API methods after calling `destroy()`.",u=await new Promise(i=>{var k,A,j,H,U,z,q,Q,Z;if(!e)return;let E=e.dataset.height||e.style.height;if(E&&!n){let _=isNaN(Number(E))?E:E+"px";e.style.height=_}e.dataset.defaultStyles!=="false"&&!n&&((k=e.style).backgroundColor||(k.backgroundColor="#fff"),(A=e.style).border||(A.border="1px solid black"),(j=e.style).borderRadius||(j.borderRadius="8px"),(H=e.style).boxSizing||(H.boxSizing="border-box"),(U=e.style).padding||(U.padding="0"),(z=e.style).width||(z.width="100%"),(q=e.style).height||(q.height=e.style.height||"300px"),e.style.minHeight="200px",e.style.flexGrow="1",(Q=e.style).overflow||(Q.overflow="hidden"),(Z=e.style).resize||(Z.resize="vertical"));let C="livecodes",M=e.querySelector(`iframe.${C}`),m=M||document.createElement("iframe");m.classList.add(C),m.setAttribute("allow","accelerometer; camera; encrypted-media; display-capture; geolocation; gyroscope; microphone; midi; clipboard-read; clipboard-write; web-share"),m.setAttribute("allowtransparency","true"),m.setAttribute("allowpaymentrequest","true"),m.setAttribute("allowfullscreen","true"),m.setAttribute("sandbox","allow-same-origin allow-downloads allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-presentation allow-scripts");let R=b==="eager"?"eager":"lazy";m.setAttribute("loading",R),n?W(m):(m.style.height="100%",m.style.minHeight="200px",m.style.width="100%",m.style.margin="0",m.style.border="0",m.style.borderRadius=e.style.borderRadius),addEventListener("message",function _(T){var I;T.source!==m.contentWindow||T.origin!==s||((I=T.data)==null?void 0:I.type)!=="livecodes-init"||(removeEventListener("message",_),c=Number(T.data.payload.appVersion.replace(/^v/,"")))}),(!c||c<46)&&addEventListener("message",function _(T){var I,$;T.source!==m.contentWindow||T.origin!==s||((I=T.data)==null?void 0:I.type)!=="livecodes-get-config"||(removeEventListener("message",_),($=m.contentWindow)==null||$.postMessage({type:"livecodes-config",payload:S},s))}),m.onload=()=>{i(m)},m.src=t.href,M||e.appendChild(m)}),w=new Promise(i=>{addEventListener("message",function E(C){var M;C.source!==u.contentWindow||C.origin!==s||((M=C.data)==null?void 0:M.type)!=="livecodes-ready"||(removeEventListener("message",E),i(),w.settled=!0)})}),L=()=>g?Promise.reject(v):new Promise(async i=>{var C;w.settled&&i();let E={type:"livecodes-load"};(C=u.contentWindow)==null||C.postMessage(E,s),await w,i()}),a=(i,E)=>new Promise(async(C,M)=>{var R;if(g)return M(v);await L();let m=Y();addEventListener("message",function k(A){var j,H;if(!(A.source!==u.contentWindow||A.origin!==s||((j=A.data)==null?void 0:j.type)!=="livecodes-api-response"||((H=A.data)==null?void 0:H.id)!==m)&&A.data.method===i){removeEventListener("message",k);let U=A.data.payload;U!=null&&U.error?M(U.error):C(U)}}),(R=u.contentWindow)==null||R.postMessage({method:i,id:m,args:E},s)}),p={},r=["load","ready","code","console","tests","destroy"],o=(i,E)=>{var C;if(g)throw new Error(v);return r.includes(i)?(a("watch",[i]),p[i]||(p[i]=[]),(C=p[i])==null||C.push(E),{remove:()=>{var M,m;p[i]=(M=p[i])==null?void 0:M.filter(R=>R!==E),((m=p[i])==null?void 0:m.length)===0&&a("watch",[i,"unsubscribe"])}}):{remove:()=>{}}},x=i=>({"livecodes-app-loaded":"load","livecodes-ready":"ready","livecodes-change":"code","livecodes-console":"console","livecodes-test-results":"tests","livecodes-destroy":"destroy"})[i];addEventListener("message",async i=>{var M,m,R,k;let E=x((m=(M=i.data)==null?void 0:M.type)!=null?m:"");if(i.source!==u.contentWindow||i.origin!==s||!E||!p[E])return;let C=(R=i.data)==null?void 0:R.payload;(k=p[E])==null||k.forEach(A=>{A(C)})});let l=()=>{var i;Object.values(p).forEach(E=>{E.length=0}),(i=u==null?void 0:u.remove)==null||i.call(u),g=!0};b==="lazy"&&"IntersectionObserver"in window&&new IntersectionObserver((E,C)=>{E.forEach(async M=>{M.isIntersecting&&(await L(),C.unobserve(e))})},{rootMargin:"150px"}).observe(e);function W(i){i.style.position="absolute",i.style.top="0",i.style.visibility="hidden",i.style.opacity="0"}let Y=()=>(String(Math.random())+Date.now().toFixed()).replace("0.","");return{load:()=>L(),run:()=>a("run"),format:i=>a("format",[i]),getShareUrl:i=>a("getShareUrl",[i]),getConfig:i=>a("getConfig",[i]),setConfig:i=>a("setConfig",[i]),getCode:()=>a("getCode"),show:(i,E)=>a("show",[i,E]),runTests:()=>a("runTests"),onChange:i=>o("code",i),watch:o,exec:(i,...E)=>a("exec",[i,...E]),destroy:()=>w.settled?a("destroy").then(l):g?Promise.reject(v):(l(),Promise.resolve())}}function ae(d={}){let{appUrl:h="https://livecodes.io",params:S={},config:y={},headless:b,import:P,lite:n,view:e,...c}=d,t;try{t=new URL(h)}catch(g){throw new Error(`${h} is not a valid URL.`)}let s=new URLSearchParams;Object.entries(c).forEach(([g,v])=>{v!==void 0&&t.searchParams.set(g,String(v))});let f=d.view==="headless"||b;if(n&&(console.warn(`Deprecation notice: "lite" option is deprecated. Use "config: { mode: 'lite' }" instead.`),typeof y=="object"&&y.mode==null?y.mode="lite":t.searchParams.set("lite","true")),e&&(console.warn('Deprecation notice: The "view" option has been moved to "config.view". For headless mode use "headless: true".'),typeof y=="object"&&y.view==null&&e!=="headless"?y.view=e:t.searchParams.set("view",e)),typeof y=="string")try{new URL(y),t.searchParams.set("config",encodeURIComponent(y))}catch(g){throw new Error('"config" is not a valid URL or configuration object.')}else y&&typeof y=="object"&&Object.keys(y).length>0&&(y.title&&y.title!=="Untitled Project"&&t.searchParams.set("title",y.title),y.description&&y.description.length>0&&t.searchParams.set("description",y.description),s.set("config","code/"+(0,D.compressToEncodedURIComponent)(JSON.stringify(y))));if(S&&typeof S=="object"&&Object.keys(S).length>0)try{s.set("params",(0,D.compressToEncodedURIComponent)(JSON.stringify(S)))}catch(g){Object.keys(S).forEach(v=>{t.searchParams.set(v,encodeURIComponent(String(S[v])))})}return P&&t.searchParams.set("x",encodeURIComponent(P)),f&&t.searchParams.set("headless","true"),t.hash=s.toString(),t.href}var pe={appUrl:String,config:[Object,String],headless:Boolean,import:String,lite:Boolean,loading:String,params:Object,template:String,view:String,height:String},B=d=>JSON.parse(JSON.stringify(d)),ue={props:pe,emits:["sdkReady"],setup(d,h){let{height:S,...y}=d,b=K(),P=K(S||""),n=K(),{config:e,...c}=y,t=JSON.stringify(e),s=JSON.stringify(c);return ce(()=>{b.value&&J(b.value,B(y)).then(f=>{n.value=f,h.emit("sdkReady",f)})}),fe(d,async f=>{var w;if(!b.value||!n.value)return;let{height:g,...v}=f;P.value=g||"";let{config:O,...u}=v;typeof O=="string"&&(O=await fetch(O).then(L=>L.json())),JSON.stringify(u)!==s?(await((w=n.value)==null?void 0:w.destroy()),J(b.value,B(v)).then(L=>{n.value=L,h.emit("sdkReady",L)})):JSON.stringify(O)!==t&&n.value.setConfig(B(O)||{}),t=JSON.stringify(O),s=JSON.stringify(u)}),de(()=>{var f;(f=n.value)==null||f.destroy()}),()=>{var f,g;return le("div",{ref:b,"data-height":P},((g=(f=h.slots).default)==null?void 0:g.call(f))||"")}}},we=ue;export{we as default};