graphane
Version:
Data Visualization Microframework
1 lines • 3.63 kB
JavaScript
/* graphane - 1.0.1 [module:gsvg] */ var q="function",v="undefined",Q="object",Z="string";var K="boolean";var X="symbol",m="",_=",";var h=(t,n)=>typeof t===n,x=(t,n)=>t instanceof n,b=t=>h(t,Q),T=t=>h(t,Z),$=t=>h(t,q);var S=t=>h(t,v),I=t=>h(t,X),P=t=>h(t,K);var O=t=>t===null;var L="gSVGObject",tt="http://www.w3.org/2000/svg",nt="svg",C="d",B="transform",G="appendChild",w="insertBefore",F="insertAdjacentElement",H="attach",V="innerHTML",j=new WeakMap,M=new Set,rt=t=>I(t)||t.startsWith("_")||["el","gSVG","then"].includes(t),et=()=>L+Math.random().toString(32).substring(2),R=t=>b(t)&&!O(t)&&t[Symbol.toStringTag]===L,it=t=>y(document.createElementNS(tt,t)),g=t=>T(t)?it(t):b(t)&&t!==null?R(t)?t:y(t):t,ot=t=>({content:V,source:"outerHTML",parent:"parentElement",next:"nextElementSibling",previous:"previousElementSibling",add:G,addBefore:w})[t]||t,st=t=>["append","before","after",G,w,F].includes(t)?function(...n){let i=[],r=[],e=[];return t===F?(i.push(n[0]),r.push(g(n[1]))):t===w?(r.push(g(n[0])),e.push(n[1]||this.firstChild||null)):r.push(...n.map(g)),r.every(u=>u?._el)?(this[t](...i,...r.map(u=>u._el),...e),r.forEach(u=>u._el.dispatchEvent(new Event(H))),r.length>1?r:r[0]):null}:null,p=class{constructor(n){this._el=n,this.gSVG=d}get[Symbol.toStringTag](){return L}get el(){return this._el}attachTo(n){return(b(n)?R(n)?n._el:n:document.querySelector(n)).appendChild(this._el),this._el.dispatchEvent(new Event(H)),this}id(n){return n?(this._el.setAttribute("id",n),this):this._el.id||(this._el.id=et())}ref(){return`#${this.id()}`}url(){return`url(${this.ref()})`}parents(){let n=[],i=this;for(;i=i.parentElement();)n.push(i);return n}top(){return this.parents().pop()||this}},y=t=>{if(!b(t)||O(t))return null;if(j.has(t))return j.get(t);let n=new Proxy(new p(t),{get(i,r){if(rt(r))return i[r];if(!S(i[r]))return(...o)=>(f(n,r,o),i[r].call(n,...o));if([C,B,"$"+C,"$"+B].includes(r)){let o="";r[0]==="$"&&(r=r.substring(1));let c=r===C?ct:ut,a=new Proxy(l=>(f(n,r,[l]),S(l)?t.getAttribute(r):(l?t.setAttribute(r,l):t.removeAttribute(r),n)),{get(l,N){return N in l?Reflect.get(l,N):(...z)=>{if(N===Symbol.toPrimitive){let W=o;return o="",W}return o+=c(n,N,z),t?.setAttribute(r,o),a}}});return a}let e=ot(r),u=st(e)||t[e];return $(u)?(...o)=>{f(n,r,o);let s=u.call(t,...o);return S(s)?n:U(s)}:k(t,e,n)}});return j.set(t,n),n},k=(t,n,i,r)=>{let e=n.replace(/_/g,"-"),u=(...o)=>{if(f(i,r?`${r}.${n}`:n,o),o.length===0){let c=t?.hasAttribute&&t.hasAttribute(e)?t.getAttribute(e):t[e];return U(c)}let s=o[0];if(x(t,CSSStyleDeclaration))return t[e]=s,i;if(e in t&&!M.has(e)){let c=t[e];if(String(c)===String(s))return i;try{t[e]=s}catch{M.add(e)}if(b(t[e])&&t[e]===s||t[e]!==c||e===V)return i;M.add(e)}return s!==0&&!s?t?.removeAttribute&&t.removeAttribute(e):t?.setAttribute&&t.setAttribute(e,P(s)?"":String(o)),i};return new Proxy(u,{get(o,s){let c=t[e][s];return $(c)?(...a)=>(f(i,`${n}.${s}`,a),c.call(t[e],...a)||i):k(t[e],s,i,e)},set(o,s,c){return t[e][s]=c,!0}})},U=t=>x(t,HTMLCollection)||x(t,NodeList)?[...t].map(n=>y(n)):x(t,SVGElement)?y(t):T(t)?t===""||isNaN(t)?t:Number(t):t,J=[],f=(t,n,i,r=[])=>{for(let e of J)e(d,t,n,i,r)},E={},ct=(t,n,i)=>(f(t,`d.${n}`,i,Object.keys(E).map(r=>`d.${r}`)),E[n]?E[n].apply(t,i):`${n}${i.join(_)}`),ut=(t,n,i)=>(f(t,`transform.${n}`,i),`${n}(${i.join(_)})`);function d(t){return f(null,m,[t]),g(S(t)?nt:t)}d.isWrapped=R;var A=t=>n=>$(n)?n(t):Object.assign(t,n),D={install:Y,extendConstructor:A(d),extendInstance:A(p.prototype),extendPath:A(E),beforeEveryCall(t){$(t)&&J.push(t)}};D.extendSetup=A(D);function Y(t){return t(D),d}d.install=Y;var dt=d;export{dt as default,d as gSVG};