UNPKG

graphane

Version:

Data Visualization Microframework

1 lines 28 kB
/* graphane - 1.0.1 [composer] */ (()=>{var on="function",oe="undefined",$="object",v="string",W="array",O="number",k="boolean",cn="date",un="symbol",X="",ct=",";var an=";",B=(t,e)=>typeof t===e,J=(t,e)=>t instanceof e,y=t=>B(t,$),x=t=>B(t,v),f=t=>B(t,on),ce=t=>B(t,O)&&!isNaN(t),ot=t=>!Number.isNaN(t),E=t=>B(t,oe),ue=t=>B(t,un),ae=t=>B(t,k),P=t=>Array.isArray(t),bt=t=>J(t,Date)&&!isNaN(t),w=t=>t===null,ut=t=>t.replace(/-([a-z0-9])/g,(e,n)=>n.toUpperCase());function ln(t){if(x(t))try{return JSON.parse(`{${t.replace(/^\s*{/,"").replace(/}\s*$/,"").split(/((?:[^;^,"']|"[^"]*"|'[^']*')+)/).filter(e=>!["",";",","].includes(e.trim())).map(e=>e.split(":")).map(e=>`"${e[0].trim()}":${L(e[1].trim(),void 0,!0)}`).join(",")}}`)}catch{try{return L(t)}catch(n){console.error(n);return}}if(y(t))return t}function le(t){if(x(t))return t.trim().startsWith("[")?(t.match(/\[(.*?)[^\]]]/g)||[]).map(e=>le(e.substring(1,e.length-1))):t.split(/[,;]/).map(e=>L(e.trim()));if(P(t))return t}function L(t,e,n=!1){if(!x(t))return t;if(t=fn(t.trim()),e===W)return le(t);if(e===$)return ln(t);if(E(e)||e===O){if(E(t)||t==="")return;let r=+t;if(ot(r)||e===O)return r}if(E(e)||e===k){if(t==="true")return!0;if(t==="false")return!1;if(e===k)return t==="0"?!1:!!t}if(e===cn){try{let r=new Date(t);if(ot(r.getTime()))return r}catch{}return}if(E(e)||e===v)return n?`"${t}"`:t}function fn(t){return t[0]==="'"&&t[t.length-1]==="'"||t[0]==='"'&&t[t.length-1]==='"'?t.substring(1,t.length-1):t}function fe(t){return/^\s*{/.test(t)&&/}\s*$/.test(t)}function he(t){return/^\s*\[/.test(t)&&/]\s*$/.test(t)}function de(t){let e=[],n=t.split(/(\r\n|\r|\n)/).map(r=>r.trim()).filter(r=>r);return n.length===0?[]:n.length===1?L(n[0]):n.reduce((r,i,o)=>{let c={},s=i.split(/((?:[^;^,"']|"[^"]*"|'[^']*')+)/).filter(u=>![X,an,ct].includes(u.trim()));return o===0?(e=[...s.map(u=>L(u))],r):(s.forEach((u,a)=>{c[e[a]]=L(u)}),r.push(c),r)},[])}function Rt(t){let e=`return (${t});`,n=new Function(e)();return f(n)?n():n}var pe=new WeakSet,nt=!1,Ot=(t,e)=>!y(t)||w(t)||!f(e)?t:function n(r){if(pe.has(r))return r;for(let o in r)y(r[o])&&!w(r[o])&&(r[o]=n(r[o]));let i=new Proxy(r,{get(o,c){let s=Reflect.get(r,c);return f(s)&&bt(o)&&x(c)&&c.substring(0,3)==="set"&&f(e)&&(s=function(...u){let a=Reflect.get(o,c).apply(o,u);return!nt&&e(t),a}),bt(o)?s.bind(o):s},set(o,c,s){let u,a=o[c]===s;return y(s)&&!w(s)?u=Reflect.set(o,c,n(s)):u=Reflect.set(o,c,s),!nt&&!a&&e(t),u},deleteProperty(o,c){let s=Reflect.deleteProperty(o,c);return!nt&&e(t),s}});return pe.add(i),i}(t);Ot.stop=()=>nt=!0;Ot.start=()=>nt=!1;var at=Ot;var rt=!1,lt=!0;function hn(t){return t===null?null:t.constructor?new t.constructor:{}}function H(t){if(!y(t))return t;let e=t===null?null:Object.assign(hn(t),t);for(let n in e)y(e[n])&&(e[n]=H(e[n]));return e}function me(t,e){let n=[],r=[];function i(c,s){if(w(c)||w(s))return rt;if(f(c.valueOf)&&f(s.valueOf)&&(c!==c.valueOf()||s!==s.valueOf()))return c.valueOf()===s.valueOf()&&c.constructor===s.constructor;if(n.indexOf(c)>-1&&r.indexOf(s)>-1)return lt;let u=Object.keys(c),a=Object.keys(s);if(u.length!==a.length)return rt;if(u.length>0){n.push(c),r.push(s);let d=u.length;for(;d--;){let h=u[d];if(!o(c[h],s[h]))return rt}}return lt}function o(c,s){if(c===s)return lt;let u=typeof c;return u!==typeof s?rt:u===O&&isNaN(c)&&isNaN(s)?lt:u===$?i(c,s):rt}return o(t,e)}function ye(t,e){let n=t,r=x(e)?e.split("."):e;for(let i=0;i<r.length;i++){if(E(n[r[i]]))return;n=n[r[i]]}return n}var vt=globalThis.GRAPHANE_PREFIX||"g-",g=Symbol(),G=Symbol(),S=Symbol(),Ct=Object.defineProperty;function dn(t,e,n,r=!1){if(!(t.ready===!1||!e))if(r)n?t.setAttribute(e,X):t.removeAttribute(e);else{let i=w(n)||E(n)?X:n.toString();t.hasAttribute(e)&&t.getAttribute(e)!==i&&t.setAttribute(e,i)}}function pn(t){this[g]={};let e=t;do{let n=ft.get(e);for(let r in n)if(n.hasOwnProperty(r)&&this.hasOwnProperty(r)){let i=this[r];delete this[r],this[r]=E(i)?H(n[r]):i}else r in this[g]||(this[g][r]=H(n[r]));e=Object.getPrototypeOf(e)}while(e!==HTMLElement)}function mn(){new MutationObserver(t=>{t.some(e=>!e.attributeName)&&this[S]("update"),(E(this.ready)||this.ready)&&f(this[G])&&this[G](t)}).observe(this,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}var ft=new WeakMap,K=class extends HTMLElement{constructor(){super(),pn.call(this,new.target),f(this[G])&&mn.call(this)}[S](e,n={},r=!1){return this.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n,composed:r}))}};function yn(t,e){e.propertyName||(e.propertyName=ut(e.name)),Ee(t,{...e,name:e.propertyName,attribute:e.name});let n=Object.getPrototypeOf(t),r="observedAttributes",i=Object.getOwnPropertyDescriptor(t,r),o=Object.getOwnPropertyDescriptor(n,r),c=i?i.get:void 0;Ct(t,r,gn(t,e,n,c,i,o));let s="attributeChangedCallback",u=Object.getOwnPropertyDescriptor(t.prototype,s),a=Object.getOwnPropertyDescriptor(n.prototype,s),d=u?u.value:void 0;Ct(t.prototype,s,En(e,d,a))}function En(t,e,n){return{value:function(r,i,o){if(t.name===r){let c=t.propertyName;this[c]!==o&&(t.type===k?this[c]=this.hasAttribute(t.name):this[c]=L(o,t.type))}else e&&e.apply(this,arguments);n?.value&&n.value.apply(this,arguments)},enumerable:!1,writable:!0,configurable:!0}}function gn(t,e,n,r,i,o){let c={enumerable:!1,configurable:!0};return i?o?c.get=function(){return[e.name,...r.call(t),...o.get.call(n)]}:c.get=function(){return[e.name,...r.call(t)]}:c.get=o?function(){return[e.name,...o.get.call(n)]}:function(){return[e.name]},c}function Ee(t,e){Ct(t.prototype,e.name,{set:ge(e),get:xn(e),configurable:!0,enumerable:!1}),ft.has(t)||ft.set(t,{}),ft.get(t)[e.name]=e.value}function Nn(t,e){w(t.posUpdateEvent)||(t.posUpdateEvent?this[S](t.posUpdateEvent,{[t.name]:e}):this[S]("update",{[t.name]:e})),f(t.posUpdate)?t.posUpdate.call(this,e):f(this[t.posUpdate])&&this[t.posUpdate]()}function ge(t){return function(e){let n=this[g];f(t.preUpdate)&&!t.preUpdate.call(this,e)||(t.schema&&(at.stop(),e=t.schema.normalize(e),at.start()),!(!y(e)&&me(n[t.name],e))&&(f(t.set)?t.set.call(this,e):n[t.name]=x(e)&&t.type?L(e,t.type):e,t.attribute&&![W,$].includes(t.type)&&dn(this,t.attribute,e,t.type===k),Nn.call(this,t,e)))}}function xn(t){return function(){if(f(t.get))return t.get.call(this);{let e=this[g];switch(t.type){case O:return E(e[t.name])?void 0:Number(e[t.name]);case k:return!!e[t.name];case $:case W:return at(e[t.name]||(t.type===$?{}:[]),n=>ge(t).call(this,n));default:return e[t.name]}}}}function $n(t,e){e=vt+e.toLowerCase(),customElements.get(e)||customElements.define(e,t)}function Ne(t,e={}){return e.prop=(...n)=>(n.forEach(r=>Ee(t,{...r})),e),e.attr=(...n)=>(n.forEach(r=>yn(t,{...r})),e),e.tag=n=>($n(t,n),e),e.extension=e.ext=n=>(n.call(e,e,t),e),e}K.CHANGE=G;K.FIRE_EVENT=S;function _t(t,e){let n=new WeakMap;return function(...r){clearTimeout(n.get(this)),n.set(this,setTimeout(()=>{t.apply(this,r)},e))}}function Mt(t,e){let n=new WeakMap,r=[];return function(...i){return clearTimeout(n.get(this)),new Promise((o,c)=>{r.push({resolve:o,reject:c}),n.set(this,setTimeout(()=>{try{let s=t.apply(this,i);r.forEach(u=>u.resolve(s))}catch(s){r.forEach(u=>u.reject(s))}finally{r.length=0}},e))})}}function Lt(t,e){return function(...n){if(t.apply(this,n))return e.apply(this,n)}}function Pt(t,e){return function(...n){let r=t.apply(this,n);return f(r.then)?r.then(i=>e.call(this,i)||i):e.call(this,r)||r}}var xe=1,Ut=Symbol(),Dt=Symbol(),Z=Symbol(),b=Symbol(),$e=Symbol(),It=Symbol(),Se=(t,e)=>t[e]?.forEach(n=>f(n)&&n.apply(t)),_=class extends K{constructor(e){super(),this.attachShadow({mode:"open"}),this[g].ready=e||!1,this[g].rendered=!1,E(e)&&(this.ready=!0)}get ready(){return this[g].ready}set ready(e){let n=this[g],r=n.ready;n.ready=!!e,r===!1&&n.ready===!0&&(this[S]("ready",{ready:!0}),f(this[b])&&this[b]())}get rendered(){return this[g].rendered}set rendered(e){let n=this[g],r=n.rendered;n.rendered=!!e,r===!1&&n.rendered===!0&&this[S]("render",{rendered:!0})}connectedCallback(){let e=this.getBoundingClientRect(),n=getComputedStyle(this).flexDirection,r=()=>{let{width:i,height:o}=this.getBoundingClientRect(),c=getComputedStyle(this).flexDirection;(i!==e.width||o!==e.height||c!==n)&&(f(this[$e])&&this[$e](i,o,i-e.width,o-e.height),e={width:i,height:o},n=c,this[S]("resize",e)),this[g]._resizeObserver=window.requestAnimationFrame(r)};r(),Se(this,Ut)}disconnectedCallback(){window.cancelAnimationFrame(this[g]._resizeObserver),Se(this,Dt)}};_.prototype[Ut]=[];_.prototype[Dt]=[];function Sn(t,e){let n={name:e.name.startsWith("--")?e.name:`--${vt}${e.name}`,initialValue:e.initialValue??e.value??"",syntax:e.syntax??"*",inherits:e.inherits??!0};t.prototype[It]||(t.prototype[It]={}),t.prototype[It][n.name]=n}function An(t){if(f(t.prototype[b])){let e=t.prototype[b];t.prototype[b]=Lt(function(){return this.rendered=!1,this.ready},Mt(Pt(async function(){return e.apply(this)},function(n){this.rendered=n!==!1,this.rendered&&f(this[Z])&&this[Z]()}),xe))}if(f(t.prototype[Z])){let e=t.prototype[Z];t.prototype[Z]=Lt(function(n){return n&&(this[g].rendered=!0),this.ready&&this[g].rendered},Mt(Pt(async function(...n){return e.apply(this,n)},function(){this[S]("refresh")}),xe))}}function Ae(t){An(t);let e=Ne(t,{style:(...n)=>(n.forEach(r=>Sn(t,{...r})),e)});return e}_.RENDER=b;_.REFRESH=Z;_.ONCONNECT=Ut;_.ONDISCONNECT=Dt;var Tn="intersection.enter",wn="intersection.exit",ht=Symbol();function bn(t){let e=r=>this.dispatchEvent(new CustomEvent(r,{bubbles:!0,cancelable:!0,composed:!0})),n=!1;this[ht]&&this[ht].disconnect(),this[ht]=new IntersectionObserver(r=>{r.forEach(i=>{i.isIntersecting&&i.intersectionRatio>=t?n||(n=!0,e(Tn)):(n=!1,e(wn))})},{root:null,rootMargin:"0px",threshold:Array(21).fill(0).map((r,i)=>i*.05)}),this[ht].observe(this._el||this)}var Ft=bn;var Te=Symbol();function Rn(t){t.attr({name:"intersection-once-class",type:v,value:""}).attr({name:"intersection-class",type:v,value:""}).attr({name:"intersection-ratio",type:O,value:0,posUpdate:Cn})}var we=(t,e)=>e&&e.split(/\s+/).forEach(n=>t.add(n)),On=(t,e)=>e&&e.split(/\s+/).forEach(n=>t.remove(n)),be=(t,e)=>{e.preventDefault();let n=()=>{t.removeEventListener("render",n),t[S](e.type,e.detail,e.composed)};t.addEventListener("render",n)};function Cn(){let t=this[g];if(this[Te])return Ft.call(this,t.intersectionRatio);this[Te]=!0;let e=this.classList;this.addEventListener("intersection.enter",n=>{we(e,t.intersectionOnceClass),we(e,t.intersectionClass),this.rendered||be(this,n)}),this.addEventListener("intersection.exit",n=>{On(e,t.intersectionClass),this.rendered||be(this,n)}),Ft.call(this,t.intersectionRatio)}var Re=Rn;var zt="gSVGObject",vn="http://www.w3.org/2000/svg",_n="svg",Vt="d",Oe="transform",ve="appendChild",Ht="insertBefore",Ce="insertAdjacentElement",_e="attach",Me="innerHTML",kt=new WeakMap,Bt=new Set,Mn=t=>ue(t)||t.startsWith("_")||["el","gSVG","then"].includes(t),Ln=()=>zt+Math.random().toString(32).substring(2),qt=t=>y(t)&&!w(t)&&t[Symbol.toStringTag]===zt,Pn=t=>Et(document.createElementNS(vn,t)),dt=t=>x(t)?Pn(t):y(t)&&t!==null?qt(t)?t:Et(t):t,In=t=>({content:Me,source:"outerHTML",parent:"parentElement",next:"nextElementSibling",previous:"previousElementSibling",add:ve,addBefore:Ht})[t]||t,Un=t=>["append","before","after",ve,Ht,Ce].includes(t)?function(...e){let n=[],r=[],i=[];return t===Ce?(n.push(e[0]),r.push(dt(e[1]))):t===Ht?(r.push(dt(e[0])),i.push(e[1]||this.firstChild||null)):r.push(...e.map(dt)),r.every(o=>o?._el)?(this[t](...n,...r.map(o=>o._el),...i),r.forEach(o=>o._el.dispatchEvent(new Event(_e))),r.length>1?r:r[0]):null}:null,yt=class{constructor(e){this._el=e,this.gSVG=z}get[Symbol.toStringTag](){return zt}get el(){return this._el}attachTo(e){return(y(e)?qt(e)?e._el:e:document.querySelector(e)).appendChild(this._el),this._el.dispatchEvent(new Event(_e)),this}id(e){return e?(this._el.setAttribute("id",e),this):this._el.id||(this._el.id=Ln())}ref(){return`#${this.id()}`}url(){return`url(${this.ref()})`}parents(){let e=[],n=this;for(;n=n.parentElement();)e.push(n);return e}top(){return this.parents().pop()||this}},Et=t=>{if(!y(t)||w(t))return null;if(kt.has(t))return kt.get(t);let e=new Proxy(new yt(t),{get(n,r){if(Mn(r))return n[r];if(!E(n[r]))return(...c)=>(D(e,r,c),n[r].call(e,...c));if([Vt,Oe,"$"+Vt,"$"+Oe].includes(r)){let c="";r[0]==="$"&&(r=r.substring(1));let u=r===Vt?Dn:Fn,a=new Proxy(d=>(D(e,r,[d]),E(d)?t.getAttribute(r):(d?t.setAttribute(r,d):t.removeAttribute(r),e)),{get(d,h){return h in d?Reflect.get(d,h):(...T)=>{if(h===Symbol.toPrimitive){let I=c;return c="",I}return c+=u(e,h,T),t?.setAttribute(r,c),a}}});return a}let i=In(r),o=Un(i)||t[i];return f(o)?(...c)=>{D(e,r,c);let s=o.call(t,...c);return E(s)?e:Pe(s)}:Le(t,i,e)}});return kt.set(t,e),e},Le=(t,e,n,r)=>{let i=e.replace(/_/g,"-"),o=(...c)=>{if(D(n,r?`${r}.${e}`:e,c),c.length===0){let u=t?.hasAttribute&&t.hasAttribute(i)?t.getAttribute(i):t[i];return Pe(u)}let s=c[0];if(J(t,CSSStyleDeclaration))return t[i]=s,n;if(i in t&&!Bt.has(i)){let u=t[i];if(String(u)===String(s))return n;try{t[i]=s}catch{Bt.add(i)}if(y(t[i])&&t[i]===s||t[i]!==u||i===Me)return n;Bt.add(i)}return s!==0&&!s?t?.removeAttribute&&t.removeAttribute(i):t?.setAttribute&&t.setAttribute(i,ae(s)?"":String(c)),n};return new Proxy(o,{get(c,s){let u=t[i][s];return f(u)?(...a)=>(D(n,`${e}.${s}`,a),u.call(t[i],...a)||n):Le(t[i],s,n,i)},set(c,s,u){return t[i][s]=u,!0}})},Pe=t=>J(t,HTMLCollection)||J(t,NodeList)?[...t].map(e=>Et(e)):J(t,SVGElement)?Et(t):x(t)?t===""||isNaN(t)?t:Number(t):t,Ie=[],D=(t,e,n,r=[])=>{for(let i of Ie)i(z,t,e,n,r)},pt={},Dn=(t,e,n)=>(D(t,`d.${e}`,n,Object.keys(pt).map(r=>`d.${r}`)),pt[e]?pt[e].apply(t,n):`${e}${n.join(ct)}`),Fn=(t,e,n)=>(D(t,`transform.${e}`,n),`${e}(${n.join(ct)})`);function z(t){return D(null,X,[t]),dt(E(t)?_n:t)}z.isWrapped=qt;var mt=t=>e=>f(e)?e(t):Object.assign(t,e),Gt={install:Ue,extendConstructor:mt(z),extendInstance:mt(yt.prototype),extendPath:mt(pt),beforeEveryCall(t){f(t)&&Ie.push(t)}};Gt.extendSetup=mt(Gt);function Ue(t){return t(Gt),z}z.install=Ue;var it=z;var Yt=new Map,Vn=/function\s+([\p{L}\p{Nl}$_][\p{L}\p{Nl}$_\p{Mn}\p{Mc}\p{Nd}\p{Pc}]*)\s*\(/gmu,kn=async function(){}.constructor;function gt(t,e,n=!1){let r=`${t.join(",")} ${e}`;if(Yt.has(r))return Yt.get(r);let i=new(n?kn:Function)(...t,e);return Yt.set(r,i),i}function De(t,e){let n=[...e.matchAll(Vn)].map(i=>i[1]);return gt(Object.keys(t),`${e}; return {${n.map(i=>`${i}: typeof ${i} === 'function' ? ${i} : undefined`)}}; `)(...Object.values(t))}function Wt(t){try{return new Function(`let ${t} = 0`),!0}catch{return!1}}var Xt="animate",Bn="path",Fe="d",Ve="transform",He="rotate",q="translate",ke="inherit",Be="finished",Hn=[He,"skewX","skewY"],Gn=[q,"width","height","x","y","cx","cy","r","rx","ry","dx","dy"],zn=(t,e)=>["text","tspan"].includes(t)&&["x","y"].includes(e),Jt=!1;if(window.matchMedia){let t=window.matchMedia("(prefers-reduced-motion: reduce)");Jt=t.matches,t.addEventListener("change",()=>{Jt=t.matches})}var qn=t=>t.replace(/([A-Z])/g,"-$1").toLowerCase();function Yn(t,e={duration:200},n=null,r=null){let i=this.gSVG,o=l=>{let p=y(l)?{...l}:{duration:l};return Jt&&(p.duration=0),p.fill="none",p},c=l=>{l=P(l)?l:[l];let p=window.getComputedStyle(this._el),m=[],N=new Set;for(let C of l){let A={};for(let V in C){let R=ut(V);A[R]=h(C[V],R),!(R in p)||zn(this.tagName(),R)?N.add(R):R===Fe?A.d=`${Bn}("${A.d}")`:R===Ve&&(A.transform=a(A.transform))}m.push(A)}return u(N,m),m},s=[],u=(l,p)=>{if(l.size){let m=new KeyframeEffect(null,p).getKeyframes();for(let N of l){let C=i(Xt).attributeName(N).dur(et.duration+"ms").fill("freeze");if(p.length===1)C.to(p[0][N]);else{let A=[],V=[];for(let R in m){let sn=m[R];N in p[R]&&(A.push(sn.computedOffset),V.push(p[R][N]))}A[0]!==0&&(A.unshift(0),V.unshift(this[N]()||ke)),A[A.length-1]!==1&&(A.push(1),V.push(this[N]()||ke)),C.keyTimes(A.join(";")).values(V.join(";"))}s.push(C),C.attachTo(this),C.beginElementAt(et.delay||0)}}},a=l=>{x(l)&&(l=JSON.parse("{"+l.replace(/\s*\(\s*/g,":[").replace(/\s*\)\s*/g,"],").split(/\s*,\s*|\s.*/).join(",").replace(/(\w+):/g,'"$1":').replace(/,$/,"")+"}"));let p="";for(let m in l)if(m===He){let N=d(l[m]);N.length>1&&(p+=`${q}(${h(N[1],q)},${h(N[2],q)}) `),p+=`${m}(${h(N[0],m)}) `,N.length>1&&(p+=`${q}(-${h(N[1],q)},-${h(N[2],q)}) `)}else p+=`${m}(${d(l[m]).map(N=>h(N,m)).join(",")}) `;return p},d=l=>P(l)?l:String(l).split(/\s+|,/),h=(l,p)=>Hn.includes(p)?l+"deg":Gn.includes(p)?l+"px":l,T=l=>x(l)?l.replace(/(deg)|(px)/g,"").trim():l,I=l=>l.replace(/(path\s*\(\s*["'])|(["']\s*\)\s*$)/g,"").trim().replace(/([a-zA-Z])\s*/g,"$1").replace(/\s+/g,","),wt=l=>{let p=/translate\((.*)px,(.*)px\) rotate\((.*)deg\) translate\((.*)px,(.*)px\)\s+/,m=p.exec(l);return m&&Number(m[1])===Number(m[4])*-1&&Number(m[2])===Number(m[5])*-1?l=l.replace(p,`rotate(${m[3]}, ${m[1]}, ${m[2]})`):l=T(l),l},et=o(e),U=c(t),Y=this._el.animate(U,et);return Y.ready.then(()=>f(n)&&n.call(this,Y)),Y.finished.then(()=>{let l=U[U.length-1];for(let p in l){let m=qn(p);m.startsWith("text-")?this._el.style[p]=l[p]:p!=="offset"&&p in l&&this._el.setAttribute(m,m===Fe?I(l[p]):m===Ve?wt(l[p]):T(l[p]))}s.forEach(p=>{p[Be](!0);let m=this._el.querySelectorAll(Xt),N=this._el.querySelectorAll(`${Xt}[${Be}]`);m.length===N.length&&m.forEach(C=>C.remove())}),f(r)&&r.call(this,Y)}),this}function Wn(t){t.extendInstance({animateTo:Yn})}var Ge=Wn;var xt={},ze=Symbol(),Je=Symbol(),M=Symbol(),Q=Symbol(),Nt=Symbol(),Zt=Symbol(),qe=Symbol(),Kt="error",Xn="unknown",Ye='an invalid "g-for" expression',Jn="undefined",Kn="NaN (Not a Number)",$t=(t,e)=>new Error(`The expression "${t}" return ${e} value`),We="class",Xe="style",Zn=(t,e,n)=>{throw new Error(t+` in ${e} `+n)},Qn=(t=>e=>t[e]||e)("attributeName attributeType baseFrequency calcMode clipPathUnits diffuseConstant edgeMode gradientTransform gradientUnits kernelMatrix kernelUnitLength lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox xChannelSelector yChannelSelector zoomAndPan".split(" ").reduce((t,e)=>(t[e.toLowerCase()]=e,t),{}));function Ke(t){if(!t?.el?.parentNode)return null;let e=document.createComment(" ref ");return t.parentNode().insertBefore(e,t.el),t.remove(),e[Zt]=t,e}function jn(t){let e=t[Zt];return t.parentNode.insertBefore(e.el,t),t.remove(),e}j({name:"g-content",exec(t,{expr:e,data:n,evalExpr:r}){let i={...n,$$:{fromURL:async u=>{let a=await fetch(u);if(a.status===200)return a.text();console.warn(`Failed to load URL: ${u} (${a.status})`)},element:t,currentContent:t.content}},o=r(e,i),c=new CustomEvent("load",{bubbles:!0,detail:t}),s=u=>E(u)?"":u;y(o)&&o.then?o.then(u=>{t.content(s(u)),t.dispatchEvent(c)}):(t.content(s(o)),t.dispatchEvent(c))}});j({name:"g-if",exec(t,{expr:e,data:n,evalExpr:r}){if(!r(e,n))return t[M]&&(t[M].forEach(i=>i.remove()),delete t[M]),Ke(t)}});j({name:"g-bind",alias:":",arg:!0,exec(t,{expr:e,arg:n,data:r,evalExpr:i}){n=Qn(n);let o=t._el,c={...r,$$:["d","transform"].includes(n)?t["$"+n]:{}};Object.assign(c.$$,{get element(){return t},get attribute(){return n},currentValue(){return n===We?[...o.classList]:n===Xe?[...o.style].reduce((u,a)=>(u[a]=o.style[a],u),{}):t[n]()},dynamic(u,a=200,d=0){return t.animateTo((P(u)?u:[u]).map(h=>y(h)&&"offset"in h?{[n]:h.value,offset:h.offset}:{[n]:h}),{duration:a,delay:d}),qe}});let s=i(e,c);if(E(s))throw $t(e,Jn);if(n===We){let u=h=>t.classList.add(h),a=h=>t.classList.remove(h),d=h=>Object.entries(h).forEach(([T,I])=>I?u(T):a(T));if(P(s)){s.forEach(h=>x(h)?u(h):y(h)?d(h):void 0);return}if(y(s)){d(s);return}s&&u(s);return}if(n===Xe){Object.entries(s).forEach(([u,a])=>t.style[u](a));return}s!==qe&&t[n](s)}});j({name:"g-on",alias:"@",arg:!0,exec(t,{expr:e,arg:n,data:r,evalExpr:i,error:o,code:c}){t[Nt]=t[Nt]||{};let s=t[Nt][n]=t[Nt][n]||new Map;s.has(e)&&t.removeEventListener(n,s.get(e));let u=function(a){try{let d=i(e,r,t);f(d)&&d.call(t,a)}catch(d){o(d.message,{directive:"g-on",argument:n,expression:e,toString(){return`g-on:${n}="${e}"`}},c)}};t.addEventListener(n,u),s.set(e,u),n==="init"&&!t[ze]&&(t[ze]=!0,t.dispatchEvent(new Event("init")))}});j({name:"g-for",tmpl:!0,exec(t,{expr:e,data:n,error:r}){t[M]=t[M]||[];let i=t.gSVG(Ke(t)),o=0;return rr(e,n,c=>{if(t[M][o])st(t[M][o],c,r,!1);else{let s=t.gSVG(t.tagName());s[Q]=t[Q].filter(u=>u.name!=="g-for"),[...t.attributes()].forEach(u=>{u.name!=="g-for"&&s.setAttribute(u.name,u.value)}),t.children().forEach(u=>{s.add(u.cloneNode(!0))}),i.before(s),st(s,c,r),s[Je]=!0,t[M].push(s)}o++},c=>{for(;t[M].length>c.length;)t[M].pop().remove()}),!0}});function j({name:t,alias:e,arg:n,tmpl:r,exec:i}){let o=`^(${t}${n?":":""}${e?`|${e})`:")"}${n?"(.*)$":"$"}`,c=new RegExp(o,"i");xt[t]={name:t,alias:e,arg:n,tmpl:r,exec:i,check:c}}function tr(t){for(let e in xt){let n=xt[e],r=n.check.exec(t);if(r){let i=r[2];return{...n,arg:i}}}}function er(t){return t.replace(/[{}()[\]]/g,"").split(",").map(e=>(e.includes(":")?e.split(":")[1].trim():e).trim())}function nr(t,e){return t[Symbol.iterator]?e==="of"?{iterator:[...t],type:W}:{type:Kt}:ce(t)?{iterator:Array(t<0?0:0|t).fill(0).map((n,r)=>r+(e==="of"?0:1)),type:O}:y(t)?e==="in"?{iterator:Object.entries(t).map(n=>n.reverse()),type:$}:{type:Kt}:{iterator:t,type:Xn}}function Ze(t,e,n=null){let r=Object.keys(e).filter(Wt),o=gt(r,`return ( ${t} ); `).apply(n,r.map(c=>e[c]));if(!ot(o))throw $t(t,Kn);return o}function rr(t,e,n,r){let i="__$$i",o="__$$c",c="__$$f",s=t.match(/^\s*([\s\S]+?)[\s*|)}\]](of|in)[\s*|({[]([\s\S]+?)\s*$/);if(!s)throw $t(t,Ye);let[,u,a,d]=s;a=a.trim(),u=u.trim(),d=d.trim();let h=Ze(d,e)||[],{iterator:T,type:I}=nr(h,a);if(I===Kt)throw $t(t,Ye);I===$&&!u.startsWith("[")&&(u=`[${u.replace(/(^\()|(\)$)/g,"")}]`);let wt=er(u),et=u.startsWith("(")?u:`(${u})`,U=Object.keys(e).filter(Wt),Y=` ${i}.forEach(${et} => { ${o}({${U}${U.length?",":""}${wt.join(",")}}); }); ${c}(${i}); `;return gt([...U,i,o,c],Y)(...U.map(p=>e[p]),T,n,r)}function st(t,e,n,r=!0){if(r&&t[Je])return;let i=t.outerHTML();t[Q]=t[Q]||[];let o=t.attributes();for(let s of[...o]){let u=s.name,a=tr(u);a&&(t[Q].push({...a,expr:s.value}),t.removeAttribute(u))}let c=!1;for(let s of t[Q]){c=s.tmpl||c;try{if(s.exec(t,{...s,data:e,evalExpr:Ze,error:n,code:i}))return}catch(u){n(u.message,{directive:s.name,argument:s.arg,expression:s.expr,toString(){return`${s.name}${s.arg?":"+s.arg:""}="${s.expr}"`}},i)}}if(!c)for(let s of t.childNodes())s.el[Zt]?st(jn(s.el),e,n):s.el?.nodeType===1&&st(s,e,n)}function ir(t={},e=Zn){st(this,t,e),this.dispatchEvent(new Event("render"))}function sr(){return this.outerHTML().replaceAll("<!-- ref -->","")}function or(t){t.install(Ge),t.extendInstance({render:ir,source:sr}),t.extendSetup({extendTemplate:{defineDirective:j,getDirective(e){return xt[e]}}})}var Qe=or;var je=t=>Math.round(t*1e4)/1e4;function Qt(t){return(t-90)*Math.PI/180}function St(t,e,n,r){let i=Qt(r);return{x:je(t+n*Math.cos(i)),y:je(e+n*Math.sin(i))}}function At(t,e,n,r,i=0){i=Math.abs(i)>=360?i%360:i,r=Math.abs(r)>360?r%360:r,r=Math.abs(r)===360?r>0?359.9:-359.9:r;let o=i+r,c=r>0?1:0,s=Math.abs(o-i)<=180?0:1,u=i<0?(360+i)%360:i,a=o<0?(360+o)%360:o,d=St(t,e,n,u),h=St(t,e,n,a);return`M${d.x},${d.y}A${n},${n},0,${s},${c},${h.x},${h.y}`}function cr(t,e,n,r,i,o=0){let c=At(t,e,n+r/2,i,o),s=At(t,e,n-r/2,-i,o+i);return c+"L"+s.substring(1)+"Z"}function ur(t,e,n,r,i=0){return`${At(t,e,n,r,i)}L${t},${e}Z`}function ar(t){t.extendConstructor({polar2cartesian:St,degrees2radians:Qt}),t.extendComposer&&t.extendComposer({polar2cartesian:St,degrees2radians:Qt}),t.extendPath({arc:At,barArc:cr,circleSlice:ur})}var tn=ar;var te=Symbol(),jt=Symbol(),en=(t,e,n)=>Object.defineProperty(t,e,{enumerable:!1,configurable:!0,writable:!0,value:n}),lr=(t,e)=>e===te?t:ye(t,e);function ee(t={}){if(!y(t))return t;let e={};function n(r,i,o,c){r in t||(e[r]||(e[r]={}),en(t,r,(s=void 0,u=te)=>{if(x(s)||E(s)){if(u=s||te,u in e[r])return e[r][u];s=t}let a=s.reduce((d,h)=>{let T=lr(h,u);return E(T)?d:d===jt?T:o(d,T)},f(i)?i():i);return a=f(c)?c(a):a,t!==s&&(e[r][u]=a),a===i?0:a}),en(t,r+"Before",(s,u)=>t[r](t.slice(0,s),u)))}return n("$min",jt,(r,i)=>i>r?r:i),n("$max",jt,(r,i)=>i<r?r:i),n("$count",0,r=>r+1),n("$sum",0,(r,i)=>i+r),n("$avg",()=>({n:0,i:0}),(r,i)=>(r.n++,r.i+=Number(i),r),r=>isNaN(r.i/r.n)?0:r.i/r.n),n("$distinct",()=>new Set,(r,i)=>(r.add(i),r),r=>[...r]),t}var fr="composer",ne="update",tt="svg",re="methods",ie="config",se="data",Tt="-src",nn=t=>`script[type=${t}],g-script[type=${t}]`,rn=["0px","auto"],hr=t=>{let e=getComputedStyle(t.el);return rn.includes(e.width)&&rn.includes(e.height)},F=class extends _{static install(e){it.install(e)}#t=null;#r=!1;#i=!1;#s=[];#e=[];#h=_t(function(e,n){this[S](e,n)},1);#n(e,n,r,i){let o={message:e,scope:n,code:r,toString:()=>`${e}${n?` in ${n}`:""} ${r}`};i.push(o),console.warn(`Graphane Composer - Error: ${o}`),this.#h.call(this,"error",this.errors)}#d(e){return e.length=0,(n,r="",i="")=>this.#n(n,r,i,this.#s)}async#c(e){let n=await fetch(e);if(n.status!==200)throw new Error(`${n.statusText} (${n.status}): ${n.url}`);return n.text()}async#p(){let e=[...this.querySelectorAll(nn("plugin"))];for(let n of e){let r=n.getAttribute("src");if(r){let i=new URL(r,document.location.href);try{let o=await import(i.href);o?.default&&it.install(o.default)}catch(o){this.#n(o.message,"plugin",r,this.#e)}}}}async#u(){let e=this[g];if(this.#t=null,e.content.innerHTML="",e.svgSrc)try{e.content.innerHTML=await this.#c(e.svgSrc)}catch(r){this.#n(r.message,tt,e.svgSrc,this.#e)}else{let r=this.querySelector("template")?.content||this.querySelector(tt);r&&e.content.append(r.cloneNode(!0))}let n=e.content.querySelector(tt);return this.#t=n?it(n):null,!0}async#o(e,n){let r=this[g],i=e+"Src",o=this.querySelector(nn(e));o&&(r[i]=o.getAttribute("src"));let c=r[i]?await this.#c(r[i]).catch(s=>this.#n(s.message,e,r[i],this.#e)):o?.textContent;if(c)try{r[e]=n(c)}catch(s){this.#n(s.message,e,c,this.#e)}}#a(){return this.#o(re,e=>De({$:this},e))}#l(){return this.#o(ie,Rt)}#f(){return this.#o(se,e=>fe(e)||he(e)?Rt(e):de(e))}constructor(){super();let e=this[g];this.shadowRoot.innerHTML=` <style> :host { display : inline-block; width : max-content; height : max-content; } </style><span></span>`,e.content=this.shadowRoot.querySelector("span")}[b](){return!this.load()}async[G](e){let n=[];for(let r of e){let i=r.target;if(i===this&&!r.attributeName)return this.load();if(i.tagName.toLowerCase()===tt)n.push(this.#u());else if(i.tagName==="SCRIPT"){let o={data:this.#f,methods:this.#a,config:this.#l}[i.type.toLowerCase()];o&&n.push(o())}}if(n.length)return await Promise.all(n),this.update()}async load(){return this.#r=!1,this.#e=[],await this.#p(),await Promise.all([this.#u(),this.#l(),this.#a(),this.#f()]),this.#r=!0,this[S]("load"),this.update(!0)}async update(e=!1){if(!(this.#i&&!e)&&this.#t){this.rendered=!1,this.#i=!0;let n=this[g],r=n.methods?.data?n.methods.data(ee(H(n.data))):ee(H(n.data)),i={...n.methods,...P(r)?{}:r,data:r,$:this};await this.#t.render(i,this.#d(this.#s)),hr(this.#t)&&this.#t.width("100%").height("100%"),this.#i=!1,this.rendered=!0}}get[tt](){return this.#t}get loaded(){return this.#r}get errors(){return[...this.#e,...this.#s]}get version(){return"1.0.1"}};F.prototype.update=_t(F.prototype.update,1);Ae(F).ext(Re).attr({name:tt+Tt,type:v,value:"",posUpdate:b}).attr({name:se,type:$,value:[],posUpdate:ne}).attr({name:se+Tt,type:v,posUpdate:b}).prop({name:re,type:$,value:{},posUpdate:ne}).attr({name:re+Tt,type:v,posUpdate:b}).attr({name:ie,type:$,value:{},posUpdate:ne}).attr({name:ie+Tt,type:v,posUpdate:b}).attr({name:"value",set(t){this.data={value:t}},get(){return this.data?.value}}).tag(fr);var dr=t=>{t.extendSetup({extendComposer(e){f(e)?e(F.prototype):Object.assign(F.prototype,e)}})};it.install(dr).install(Qe).install(tn);})();