diff --git a/dist/components/index.js b/dist/components/index.js index 0cece31..5baaf57 100644 --- a/dist/components/index.js +++ b/dist/components/index.js @@ -24,7 +24,7 @@ function i18n(locale) { var graph_default = ".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}"; // src/components/scripts/graph.inline.ts -var graph_inline_default = 'var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,f,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]=="-"?u.setProperty(e,t??""):u[e]=t==null?"":typeof t!="number"||Qe.test(e)?t:t+"px"}function Eu(u,e,t,n,o){var a,s;u:if(e=="style")if(typeof t=="string")u.style.cssText=t;else{if(typeof n=="string"&&(u.style.cssText=n=""),n)for(e in n)t&&e in t||se(u.style,e,"");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]=="o"&&e[1]=="n")a=e!=(e=e.replace(he,"$1")),s=e.toLowerCase(),e=s in u||e=="onFocusOut"||e=="onFocusIn"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in u)try{u[e]=t??"";break u}catch{}typeof t=="function"||(t==null||t===!1&&e[4]!="-"?u.removeAttribute(e):u.setAttribute(e,e=="popover"&&t==1?"":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,f,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h=="svg"?o="http://www.w3.org/2000/svg":h=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(D=0;D"u"?"":document.body?.dataset?.basepath??""}function Ou(u,e){let t=e??Gu(),n=u.startsWith("/")?u:"/"+u;return t+n}function at(u,e){return u===e||u.endsWith("/"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith("/")&&(u=u.substring(1)),!e&&u.endsWith("/")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Gu();return o&&n.startsWith(o.replace(/^\\//,""))&&(n=n.slice(o.replace(/^\\//,"").length),n.startsWith("/")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement("script");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e("https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js"),e("https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js")]).then(function(){t()}).catch(function(n){console.error("[Graph] Failed to load libraries:",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error("[Graph] Libraries not loaded");return}var a="graph-visited";function s(){return new Set(JSON.parse(localStorage.getItem(a)||"[]"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===""&&(E="index");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log("[Graph] Stale render, skipping"),function(){};var x=JSON.parse(_.dataset.cfg||"{}"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error("[Graph] Error loading data:",i),function(){}}var R=_.offsetWidth,G=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var c=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu = {\n \"en-US\": enUS,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}","var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,f,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]==\"-\"?u.setProperty(e,t??\"\"):u[e]=t==null?\"\":typeof t!=\"number\"||Qe.test(e)?t:t+\"px\"}function Eu(u,e,t,n,o){var a,s;u:if(e==\"style\")if(typeof t==\"string\")u.style.cssText=t;else{if(typeof n==\"string\"&&(u.style.cssText=n=\"\"),n)for(e in n)t&&e in t||se(u.style,e,\"\");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]==\"o\"&&e[1]==\"n\")a=e!=(e=e.replace(he,\"$1\")),s=e.toLowerCase(),e=s in u||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in u)try{u[e]=t??\"\";break u}catch{}typeof t==\"function\"||(t==null||t===!1&&e[4]!=\"-\"?u.removeAttribute(e):u.setAttribute(e,e==\"popover\"&&t==1?\"\":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,f,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h==\"svg\"?o=\"http://www.w3.org/2000/svg\":h==\"math\"?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),a!=null){for(D=0;D\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Ou(u,e){let t=e??Gu(),n=u.startsWith(\"/\")?u:\"/\"+u;return t+n}function at(u,e){return u===e||u.endsWith(\"/\"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith(\"/\")&&(u=u.substring(1)),!e&&u.endsWith(\"/\")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Gu();return o&&n.startsWith(o.replace(/^\\//,\"\"))&&(n=n.slice(o.replace(/^\\//,\"\").length),n.startsWith(\"/\")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement(\"script\");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e(\"https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js\"),e(\"https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js\")]).then(function(){t()}).catch(function(n){console.error(\"[Graph] Failed to load libraries:\",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error(\"[Graph] Libraries not loaded\");return}var a=\"graph-visited\";function s(){return new Set(JSON.parse(localStorage.getItem(a)||\"[]\"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===\"\"&&(E=\"index\");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log(\"[Graph] Stale render, skipping\"),function(){};var x=JSON.parse(_.dataset.cfg||\"{}\"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error(\"[Graph] Error loading data:\",i),function(){}}var R=_.offsetWidth,G=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var c=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu;\n globalGraph?: Partial;\n}\n\nconst defaultOptions: GraphOptions = {\n localGraph: {\n drag: true,\n zoom: true,\n depth: 1,\n scale: 1.1,\n repelForce: 0.5,\n centerForce: 0.3,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: false,\n enableRadial: false,\n },\n globalGraph: {\n drag: true,\n zoom: true,\n depth: -1,\n scale: 0.9,\n repelForce: 0.5,\n centerForce: 0.2,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: true,\n enableRadial: true,\n },\n};\n\nexport default ((userOpts?: Partial) => {\n const Graph: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const localGraph = { ...defaultOptions.localGraph, ...userOpts?.localGraph };\n const globalGraph = { ...defaultOptions.globalGraph, ...userOpts?.globalGraph };\n\n return (\n
\n

{i18n(cfg.locale ?? \"en-US\").components.graph.title}

\n
\n
\n \n
\n
\n
\n
\n
\n );\n };\n\n Graph.css = style;\n Graph.afterDOMLoaded = script;\n\n return Graph;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/i18n/locales/en-US.ts","../../src/i18n/index.ts","../../src/components/styles/graph.scss","../../src/components/scripts/graph.inline.ts","../../src/components/Graph.tsx"],"names":[],"mappings":";;;;;;AAAA,IAAO,aAAA,GAAQ;AAAA,EACb,UAAA,EAAY;AAAA,IACV,KAAA,EAAO;AAAA,MACL,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;;;ACJA,IAAM,OAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS;AACX,CAAA;AAEO,SAAS,KAAK,MAAA,EAAgB;AACnC,EAAA,OAAO,OAAA,CAAQ,MAAM,CAAA,IAAK,aAAA;AAC5B;;;ACRA,IAAA,aAAA,GAAA,q7CAAA;;;ACAA,IAAA,oBAAA,GAAA,mrnBAAA;ACgCA,IAAM,cAAA,GAA+B;AAAA,EACnC,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO,CAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc,EAAA;AAAA,IACd,QAAA,EAAU,GAAA;AAAA,IACV,YAAA,EAAc,CAAA;AAAA,IACd,QAAA,EAAU,IAAA;AAAA,IACV,YAAY,EAAC;AAAA,IACb,YAAA,EAAc,KAAA;AAAA,IACd,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO,EAAA;AAAA,IACP,KAAA,EAAO,GAAA;AAAA,IACP,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,GAAA;AAAA,IACb,YAAA,EAAc,EAAA;AAAA,IACd,QAAA,EAAU,GAAA;AAAA,IACV,YAAA,EAAc,CAAA;AAAA,IACd,QAAA,EAAU,IAAA;AAAA,IACV,YAAY,EAAC;AAAA,IACb,YAAA,EAAc,IAAA;AAAA,IACd,YAAA,EAAc;AAAA;AAElB,CAAA;AAEA,IAAO,aAAA,IAAS,CAAC,QAAA,KAAqC;AACpD,EAAA,MAAM,KAAA,GAAyB,CAAC,EAAE,YAAA,EAAc,KAAI,KAA4B;AAC9E,IAAA,MAAM,aAAa,EAAE,GAAG,eAAe,UAAA,EAAY,GAAG,UAAU,UAAA,EAAW;AAC3E,IAAA,MAAM,cAAc,EAAE,GAAG,eAAe,WAAA,EAAa,GAAG,UAAU,WAAA,EAAY;AAE9E,IAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,OAAO,CAAA,EAC1C,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAI,eAAK,GAAA,CAAI,MAAA,IAAU,OAAO,CAAA,CAAE,UAAA,CAAW,MAAM,KAAA,EAAM,CAAA;AAAA,sBACxD,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,aAAA,EACT,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAI,KAAA,EAAM,iBAAA,EAAkB,YAAU,IAAA,CAAK,SAAA,CAAU,UAAU,CAAA,EAAG,CAAA;AAAA,wBACnE,GAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,mBAAA,EAAoB,cAAW,cAAA,EAC3C,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,KAAA;AAAA,YACR,KAAA,EAAM,4BAAA;AAAA,YACN,UAAA,EAAW,8BAAA;AAAA,YACX,CAAA,EAAE,KAAA;AAAA,YACF,CAAA,EAAE,KAAA;AAAA,YACF,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,cAAA;AAAA,YACL,QAAA,EAAS,UAAA;AAAA,YAET,QAAA,kBAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,CAAA,EAAE;AAAA;AAAA;AAWJ;AAAA,SACF,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,oBAAA,EACT,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,wBAAA,EAAyB,UAAA,EAAU,IAAA,CAAK,SAAA,CAAU,WAAW,GAAG,CAAA,EAC7E;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,KAAA,CAAM,GAAA,GAAM,aAAA;AACZ,EAAA,KAAA,CAAM,cAAA,GAAiB,oBAAA;AAEvB,EAAA,OAAO,KAAA;AACT,CAAA","file":"index.js","sourcesContent":["export default {\n components: {\n graph: {\n title: \"Graph View\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}","var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,c,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]==\"-\"?u.setProperty(e,t??\"\"):u[e]=t==null?\"\":typeof t!=\"number\"||Qe.test(e)?t:t+\"px\"}function Eu(u,e,t,n,o){var a,s;u:if(e==\"style\")if(typeof t==\"string\")u.style.cssText=t;else{if(typeof n==\"string\"&&(u.style.cssText=n=\"\"),n)for(e in n)t&&e in t||se(u.style,e,\"\");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]==\"o\"&&e[1]==\"n\")a=e!=(e=e.replace(he,\"$1\")),s=e.toLowerCase(),e=s in u||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in u)try{u[e]=t??\"\";break u}catch{}typeof t==\"function\"||(t==null||t===!1&&e[4]!=\"-\"?u.removeAttribute(e):u.setAttribute(e,e==\"popover\"&&t==1?\"\":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,c,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h==\"svg\"?o=\"http://www.w3.org/2000/svg\":h==\"math\"?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),a!=null){for(D=0;D\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Gu(u,e){let t=e??Ou(),n=u.startsWith(\"/\")?u:\"/\"+u;return t+n}function at(u,e){return u===e||u.endsWith(\"/\"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith(\"/\")&&(u=u.substring(1)),!e&&u.endsWith(\"/\")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Ou();return o&&n.startsWith(o.replace(/^\\//,\"\"))&&(n=n.slice(o.replace(/^\\//,\"\").length),n.startsWith(\"/\")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement(\"script\");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e(\"https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js\"),e(\"https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js\")]).then(function(){t()}).catch(function(n){console.error(\"[Graph] Failed to load libraries:\",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error(\"[Graph] Libraries not loaded\");return}var a=\"graph-visited\";function s(){return new Set(JSON.parse(localStorage.getItem(a)||\"[]\"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===\"\"&&(E=\"index\");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log(\"[Graph] Stale render, skipping\"),function(){};var x=JSON.parse(_.dataset.cfg||\"{}\"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error(\"[Graph] Error loading data:\",i),function(){}}var R=_.offsetWidth,O=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var f=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu;\n globalGraph?: Partial;\n}\n\nconst defaultOptions: GraphOptions = {\n localGraph: {\n drag: true,\n zoom: true,\n depth: 1,\n scale: 1.1,\n repelForce: 0.5,\n centerForce: 0.3,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: false,\n enableRadial: false,\n },\n globalGraph: {\n drag: true,\n zoom: true,\n depth: -1,\n scale: 0.9,\n repelForce: 0.5,\n centerForce: 0.2,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: true,\n enableRadial: true,\n },\n};\n\nexport default ((userOpts?: Partial) => {\n const Graph: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const localGraph = { ...defaultOptions.localGraph, ...userOpts?.localGraph };\n const globalGraph = { ...defaultOptions.globalGraph, ...userOpts?.globalGraph };\n\n return (\n
\n

{i18n(cfg.locale ?? \"en-US\").components.graph.title}

\n
\n
\n \n
\n
\n
\n
\n
\n );\n };\n\n Graph.css = style;\n Graph.afterDOMLoaded = script;\n\n return Graph;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 0cece31..5baaf57 100644 --- a/dist/index.js +++ b/dist/index.js @@ -24,7 +24,7 @@ function i18n(locale) { var graph_default = ".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}"; // src/components/scripts/graph.inline.ts -var graph_inline_default = 'var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,f,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]=="-"?u.setProperty(e,t??""):u[e]=t==null?"":typeof t!="number"||Qe.test(e)?t:t+"px"}function Eu(u,e,t,n,o){var a,s;u:if(e=="style")if(typeof t=="string")u.style.cssText=t;else{if(typeof n=="string"&&(u.style.cssText=n=""),n)for(e in n)t&&e in t||se(u.style,e,"");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]=="o"&&e[1]=="n")a=e!=(e=e.replace(he,"$1")),s=e.toLowerCase(),e=s in u||e=="onFocusOut"||e=="onFocusIn"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in u)try{u[e]=t??"";break u}catch{}typeof t=="function"||(t==null||t===!1&&e[4]!="-"?u.removeAttribute(e):u.setAttribute(e,e=="popover"&&t==1?"":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,f,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h=="svg"?o="http://www.w3.org/2000/svg":h=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(D=0;D"u"?"":document.body?.dataset?.basepath??""}function Ou(u,e){let t=e??Gu(),n=u.startsWith("/")?u:"/"+u;return t+n}function at(u,e){return u===e||u.endsWith("/"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith("/")&&(u=u.substring(1)),!e&&u.endsWith("/")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Gu();return o&&n.startsWith(o.replace(/^\\//,""))&&(n=n.slice(o.replace(/^\\//,"").length),n.startsWith("/")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement("script");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e("https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js"),e("https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js")]).then(function(){t()}).catch(function(n){console.error("[Graph] Failed to load libraries:",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error("[Graph] Libraries not loaded");return}var a="graph-visited";function s(){return new Set(JSON.parse(localStorage.getItem(a)||"[]"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===""&&(E="index");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log("[Graph] Stale render, skipping"),function(){};var x=JSON.parse(_.dataset.cfg||"{}"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error("[Graph] Error loading data:",i),function(){}}var R=_.offsetWidth,G=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var c=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu = {\n \"en-US\": enUS,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}","var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,f,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]==\"-\"?u.setProperty(e,t??\"\"):u[e]=t==null?\"\":typeof t!=\"number\"||Qe.test(e)?t:t+\"px\"}function Eu(u,e,t,n,o){var a,s;u:if(e==\"style\")if(typeof t==\"string\")u.style.cssText=t;else{if(typeof n==\"string\"&&(u.style.cssText=n=\"\"),n)for(e in n)t&&e in t||se(u.style,e,\"\");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]==\"o\"&&e[1]==\"n\")a=e!=(e=e.replace(he,\"$1\")),s=e.toLowerCase(),e=s in u||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in u)try{u[e]=t??\"\";break u}catch{}typeof t==\"function\"||(t==null||t===!1&&e[4]!=\"-\"?u.removeAttribute(e):u.setAttribute(e,e==\"popover\"&&t==1?\"\":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,f,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h==\"svg\"?o=\"http://www.w3.org/2000/svg\":h==\"math\"?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),a!=null){for(D=0;D\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Ou(u,e){let t=e??Gu(),n=u.startsWith(\"/\")?u:\"/\"+u;return t+n}function at(u,e){return u===e||u.endsWith(\"/\"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith(\"/\")&&(u=u.substring(1)),!e&&u.endsWith(\"/\")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Gu();return o&&n.startsWith(o.replace(/^\\//,\"\"))&&(n=n.slice(o.replace(/^\\//,\"\").length),n.startsWith(\"/\")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement(\"script\");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e(\"https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js\"),e(\"https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js\")]).then(function(){t()}).catch(function(n){console.error(\"[Graph] Failed to load libraries:\",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error(\"[Graph] Libraries not loaded\");return}var a=\"graph-visited\";function s(){return new Set(JSON.parse(localStorage.getItem(a)||\"[]\"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===\"\"&&(E=\"index\");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log(\"[Graph] Stale render, skipping\"),function(){};var x=JSON.parse(_.dataset.cfg||\"{}\"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error(\"[Graph] Error loading data:\",i),function(){}}var R=_.offsetWidth,G=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var c=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu;\n globalGraph?: Partial;\n}\n\nconst defaultOptions: GraphOptions = {\n localGraph: {\n drag: true,\n zoom: true,\n depth: 1,\n scale: 1.1,\n repelForce: 0.5,\n centerForce: 0.3,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: false,\n enableRadial: false,\n },\n globalGraph: {\n drag: true,\n zoom: true,\n depth: -1,\n scale: 0.9,\n repelForce: 0.5,\n centerForce: 0.2,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: true,\n enableRadial: true,\n },\n};\n\nexport default ((userOpts?: Partial) => {\n const Graph: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const localGraph = { ...defaultOptions.localGraph, ...userOpts?.localGraph };\n const globalGraph = { ...defaultOptions.globalGraph, ...userOpts?.globalGraph };\n\n return (\n
\n

{i18n(cfg.locale ?? \"en-US\").components.graph.title}

\n
\n
\n \n
\n
\n
\n
\n
\n );\n };\n\n Graph.css = style;\n Graph.afterDOMLoaded = script;\n\n return Graph;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../src/i18n/locales/en-US.ts","../src/i18n/index.ts","../src/components/styles/graph.scss","../src/components/scripts/graph.inline.ts","../src/components/Graph.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["export default {\n components: {\n graph: {\n title: \"Graph View\",\n },\n },\n};\n","import enUS from \"./locales/en-US\";\n\nconst locales: Record = {\n \"en-US\": enUS,\n};\n\nexport function i18n(locale: string) {\n return locales[locale] || enUS;\n}\n",".graph > h3 {\n font-size: 1rem;\n margin: 0;\n}\n.graph > .graph-outer {\n border-radius: 5px;\n border: 1px solid var(--lightgray);\n box-sizing: border-box;\n height: 250px;\n margin: 0.5em 0;\n position: relative;\n overflow: hidden;\n}\n.graph > .graph-outer > .global-graph-icon {\n cursor: pointer;\n background: none;\n border: none;\n color: var(--dark);\n opacity: 0.5;\n width: 24px;\n height: 24px;\n position: absolute;\n padding: 0.2rem;\n margin: 0.3rem;\n top: 0;\n right: 0;\n border-radius: 4px;\n background-color: transparent;\n transition: background-color 0.5s ease;\n}\n.graph > .graph-outer > .global-graph-icon:hover {\n background-color: var(--lightgray);\n}\n.graph > .global-graph-outer {\n position: fixed;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100%;\n backdrop-filter: blur(4px);\n display: none;\n overflow: hidden;\n}\n.graph > .global-graph-outer.active {\n display: inline-block;\n}\n.graph > .global-graph-outer > .global-graph-container {\n border: 1px solid var(--lightgray);\n background-color: var(--light);\n border-radius: 5px;\n box-sizing: border-box;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: 80vh;\n width: 80vw;\n}\n@media all and (max-width: 800px) {\n .graph > .global-graph-outer > .global-graph-container {\n width: 90%;\n }\n}\n\n.graph-container {\n width: 100%;\n height: 100%;\n}","var ct=Object.hasOwnProperty;var ce,y,fe,Ye,Y,De,_e,de,he,Mu,Pu,ju,Ze,Tu={},pe=[],Qe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,mu=Array.isArray;function z(u,e){for(var t in e)u[t]=e[t];return u}function Uu(u){u&&u.parentNode&&u.parentNode.removeChild(u)}function Lu(u,e,t,n,o){var a={type:u,props:e,key:t,ref:n,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++fe,__i:-1,__u:0};return o==null&&y.vnode!=null&&y.vnode(a),a}function Du(u){return u.children}function Au(u,e){this.props=u,this.context=e}function iu(u,e){if(e==null)return u.__?iu(u.__,u.__i+1):null;for(var t;eF&&Y.sort(de),u=Y.shift(),F=Y.length,u.__d&&(t=void 0,n=void 0,o=(n=(e=u).__v).__e,a=[],s=[],e.__P&&((t=z({},n)).__v=n.__v+1,y.vnode&&y.vnode(t),Ae(e.__P,t,n,e.__n,e.__P.namespaceURI,32&n.__u?[o]:null,a,o??iu(n),!!(32&n.__u),s),t.__v=n.__v,t.__.__k[t.__i]=t,tt(a,t,s),n.__e=n.__=null,t.__e!=o&&Ce(t)));gu.__r=0}function ve(u,e,t,n,o,a,s,F,v,D,d){var r,B,c,m,P,b,p,h=n&&n.__k||pe,M=e.length;for(v=ut(t,e,h,v,M),r=0;r0?s=u.__k[a]=Lu(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):u.__k[a]=s,v=a+B,s.__=u,s.__b=u.__b+1,F=null,(D=s.__i=et(s,t,v,r))!=-1&&(r--,(F=t[D])&&(F.__u|=2)),F==null||F.__v==null?(D==-1&&(o>d?B--:ov?B--:B++,s.__u|=4))):u.__k[a]=null;if(r)for(a=0;a(d?1:0)){for(o=t-1,a=t+1;o>=0||a=0?o--:a++])!=null&&(2&D.__u)==0&&F==D.key&&v==D.type)return s}return-1}function se(u,e,t){e[0]==\"-\"?u.setProperty(e,t??\"\"):u[e]=t==null?\"\":typeof t!=\"number\"||Qe.test(e)?t:t+\"px\"}function Eu(u,e,t,n,o){var a,s;u:if(e==\"style\")if(typeof t==\"string\")u.style.cssText=t;else{if(typeof n==\"string\"&&(u.style.cssText=n=\"\"),n)for(e in n)t&&e in t||se(u.style,e,\"\");if(t)for(e in t)n&&t[e]==n[e]||se(u.style,e,t[e])}else if(e[0]==\"o\"&&e[1]==\"n\")a=e!=(e=e.replace(he,\"$1\")),s=e.toLowerCase(),e=s in u||e==\"onFocusOut\"||e==\"onFocusIn\"?s.slice(2):e.slice(2),u.l||(u.l={}),u.l[e+a]=t,t?n?t.u=n.u:(t.u=Mu,u.addEventListener(e,a?ju:Pu,a)):u.removeEventListener(e,a?ju:Pu,a);else{if(o==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in u)try{u[e]=t??\"\";break u}catch{}typeof t==\"function\"||(t==null||t===!1&&e[4]!=\"-\"?u.removeAttribute(e):u.setAttribute(e,e==\"popover\"&&t==1?\"\":t))}}function Fe(u){return function(e){if(this.l){var t=this.l[e.type+u];if(e.t==null)e.t=Mu++;else if(e.t0?u:mu(u)?u.map(ge):z({},u)}function rt(u,e,t,n,o,a,s,F,v){var D,d,r,B,c,m,P,b=t.props||Tu,p=e.props,h=e.type;if(h==\"svg\"?o=\"http://www.w3.org/2000/svg\":h==\"math\"?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),a!=null){for(D=0;D\"u\"?\"\":document.body?.dataset?.basepath??\"\"}function Gu(u,e){let t=e??Ou(),n=u.startsWith(\"/\")?u:\"/\"+u;return t+n}function at(u,e){return u===e||u.endsWith(\"/\"+e)}function it(u,e){return at(u,e)&&(u=u.slice(0,-e.length)),u}function Dt(u,e){return u.startsWith(\"/\")&&(u=u.substring(1)),!e&&u.endsWith(\"/\")&&(u=u.slice(0,-1)),u}function ye(u){for(;u.firstChild;)u.removeChild(u.firstChild)}(function(){function u(){var n=Be(),o=Ou();return o&&n.startsWith(o.replace(/^\\//,\"\"))&&(n=n.slice(o.replace(/^\\//,\"\").length),n.startsWith(\"/\")&&(n=n.slice(1))),n}function e(n){return new Promise(function(o,a){var s=document.createElement(\"script\");s.src=n,s.onload=o,s.onerror=a,document.head.appendChild(s)})}Promise.all([e(\"https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js\"),e(\"https://cdn.jsdelivr.net/npm/pixi.js@8/dist/pixi.js\")]).then(function(){t()}).catch(function(n){console.error(\"[Graph] Failed to load libraries:\",n)});function t(){var n=window.d3,o=window.PIXI;if(!n||!o){console.error(\"[Graph] Libraries not loaded\");return}var a=\"graph-visited\";function s(){return new Set(JSON.parse(localStorage.getItem(a)||\"[]\"))}function F(_){var w=s();w.add(_),localStorage.setItem(a,JSON.stringify(Array.from(w)))}async function v(_,w,A){var E=lu(w);E===\"\"&&(E=\"index\");var V=s();if(ye(_),A!==void 0&&A!==r)return console.log(\"[Graph] Stale render, skipping\"),function(){};var x=JSON.parse(_.dataset.cfg||\"{}\"),su=x.drag,be=x.zoom,Iu=x.depth,Nu=x.scale||1,xe=x.repelForce||.5,we=x.centerForce||.3,Se=x.linkDistance||30,ke=x.fontSize||.6,Le=x.opacityScale||1,Pe=x.removeTags||[],je=x.showTags,Te=x.focusOnHover,We=x.enableRadial,Z;try{var $u=await fetchData;Z=new Map;for(var zu in $u)Z.set(lu(zu),$u[zu])}catch(i){return console.error(\"[Graph] Error loading data:\",i),function(){}}var R=_.offsetWidth,O=Math.max(_.offsetHeight,250),Q=[],fu=[],Hu=new Set(Z.keys());Z.forEach(function(i,l){for(var f=i.links||[],g=0;g=0)for(var _u=[E],du=new Set([E]),Vu=0;Vu<=Iu&&_u.length>0;Vu++){for(var Bu=[],yu=0;yu<_u.length;yu++){var bu=_u[yu];uu.add(bu);for(var xu=0;xu;\n globalGraph?: Partial;\n}\n\nconst defaultOptions: GraphOptions = {\n localGraph: {\n drag: true,\n zoom: true,\n depth: 1,\n scale: 1.1,\n repelForce: 0.5,\n centerForce: 0.3,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: false,\n enableRadial: false,\n },\n globalGraph: {\n drag: true,\n zoom: true,\n depth: -1,\n scale: 0.9,\n repelForce: 0.5,\n centerForce: 0.2,\n linkDistance: 30,\n fontSize: 0.6,\n opacityScale: 1,\n showTags: true,\n removeTags: [],\n focusOnHover: true,\n enableRadial: true,\n },\n};\n\nexport default ((userOpts?: Partial) => {\n const Graph: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {\n const localGraph = { ...defaultOptions.localGraph, ...userOpts?.localGraph };\n const globalGraph = { ...defaultOptions.globalGraph, ...userOpts?.globalGraph };\n\n return (\n
\n

{i18n(cfg.locale ?? \"en-US\").components.graph.title}

\n
\n
\n \n
\n
\n
\n
\n
\n );\n };\n\n Graph.css = style;\n Graph.afterDOMLoaded = script;\n\n return Graph;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/src/components/scripts/graph.inline.ts b/src/components/scripts/graph.inline.ts index fe90640..5789e90 100644 --- a/src/components/scripts/graph.inline.ts +++ b/src/components/scripts/graph.inline.ts @@ -592,10 +592,8 @@ import { simulation.stop(); try { app.destroy(true); - } catch (e) { - // PixiJS may throw if WebGL context was already lost (e.g. during SPA navigation). - // Swallow the error so cleanup completes and the graph can re-render. - console.warn("[Graph] PixiJS destroy failed (WebGL context likely lost):", e); + } catch (_) { + // PixiJS may throw if WebGL context was already lost. } }; } @@ -766,6 +764,10 @@ import { } else { handleNav({ detail: { url: getSlugFromUrl() } }); } + document.addEventListener("prenav", function () { + cleanupLocal(); + cleanupGlobal(); + }); document.addEventListener("nav", handleNav); document.addEventListener("render", handleNav); }