pi-weave 0.2.4 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -37
- package/package.json +12 -3
- package/skills/weave-explore/SKILL.md +17 -33
- package/skills/weave-notepad/SKILL.md +57 -120
- package/skills/weave-notepad/references/link-repair.md +25 -73
- package/src/core/frontmatter.ts +3 -3
- package/src/core/graph/model.ts +2 -2
- package/src/core/graph/wikilinks.ts +1 -1
- package/src/core/index.ts +25 -1
- package/src/core/noteAction.ts +343 -0
- package/src/core/repoAction.ts +84 -0
- package/src/core/sessions.ts +80 -1
- package/src/core/summaries.ts +16 -0
- package/src/core/types.ts +1 -1
- package/src/core/workspace.ts +1 -1
- package/src/core/workspaceCommands.ts +227 -0
- package/src/opencode/commands.ts +138 -0
- package/src/opencode/index.ts +88 -0
- package/src/opencode/rpc.ts +37 -0
- package/src/opencode/tools.ts +43 -0
- package/src/opencode/tui.ts +96 -0
- package/src/opencode/v1.ts +161 -0
- package/src/pi/sessionScan.ts +4 -28
- package/src/pi/summarize.ts +10 -25
- package/src/pi/tools/noteTool.ts +7 -406
- package/src/pi/tools/repoTool.ts +8 -75
- package/src/pi/viewer/tui/surface/detail.ts +1 -1
- package/src/pi/viewer/web/run.ts +16 -77
- package/src/web/client/dist/app.js +210 -178
- package/src/web/client/graph/Graph.tsx +18 -0
- package/src/web/client/graph/column.model.ts +19 -2
- package/src/web/client/graph/graph.model.ts +7 -5
- package/src/web/client/graph/positions.ts +1 -1
- package/src/web/client/graph/renderer.ts +9 -1
- package/src/web/client/note/Note.tsx +66 -91
- package/src/web/client/note/drafts.ts +172 -0
- package/src/web/client/note/note.model.ts +2 -34
- package/src/web/client/search/SearchPalette.tsx +9 -8
- package/src/web/client/shell/ContextRail.tsx +8 -9
- package/src/web/client/shell/Shell.tsx +371 -254
- package/src/web/client/shell/StatusBar.tsx +1 -1
- package/src/web/client/shell/focus.model.ts +2 -2
- package/src/web/client/shell/keys.model.ts +26 -31
- package/src/web/client/shell/keys.ts +1 -0
- package/src/web/client/shell/shell.model.ts +31 -107
- package/src/web/client/shell/theme.model.ts +4 -4
- package/src/web/client/shell/theme.ts +12 -93
- package/src/web/client/shell/workspace.css.ts +117 -0
- package/src/web/client/tree/Tree.tsx +43 -14
- package/src/web/client/tree/tree.model.ts +19 -0
- package/src/web/client/workspace.ts +19 -1
- package/src/web/server/controller.ts +79 -0
- package/src/web/server/routes.ts +34 -3
- package/src/web/server/server.ts +5 -0
- package/src/web/server/workspace-state.ts +121 -0
- package/src/web/shared/workspace.ts +270 -0
- package/src/web/client/selection.storage.ts +0 -69
- package/src/web/client/shell/Columns.tsx +0 -139
- package/src/web/client/shell/Divider.tsx +0 -15
- package/src/web/client/shell/Header.tsx +0 -119
- package/src/web/client/shell/drag.model.ts +0 -35
- package/src/web/client/shell/layout.model.ts +0 -132
|
@@ -18,79 +18,12 @@
|
|
|
18
18
|
* sigma@3.0.3 — MIT
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
"use strict";(()=>{var wp=Object.create;var ss=Object.defineProperty;var bp=Object.getOwnPropertyDescriptor;var xp=Object.getOwnPropertyNames;var _p=Object.getPrototypeOf,kp=Object.prototype.hasOwnProperty;var ls=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(n){throw e=0,n}};var Ep=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xp(e))!kp.call(t,i)&&i!==n&&ss(t,i,{get:()=>e[i],enumerable:!(r=bp(e,i))||r.enumerable});return t};var hn=(t,e,n)=>(n=t!=null?wp(_p(t)):{},Ep(e||!t||!t.__esModule?ss(n,"default",{value:t,enumerable:!0}):n,t));var Br=ls((mE,Yo)=>{"use strict";var Qt=typeof Reflect=="object"?Reflect:null,Dc=Qt&&typeof Qt.apply=="function"?Qt.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},Ur;Qt&&typeof Qt.ownKeys=="function"?Ur=Qt.ownKeys:Object.getOwnPropertySymbols?Ur=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Ur=function(e){return Object.getOwnPropertyNames(e)};function Nv(t){console&&console.warn&&console.warn(t)}var Pc=Number.isNaN||function(e){return e!==e};function X(){X.init.call(this)}Yo.exports=X;Yo.exports.once=Mv;X.EventEmitter=X;X.prototype._events=void 0;X.prototype._eventsCount=0;X.prototype._maxListeners=void 0;var Ic=10;function Hr(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(X,"defaultMaxListeners",{enumerable:!0,get:function(){return Ic},set:function(t){if(typeof t!="number"||t<0||Pc(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Ic=t}});X.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};X.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Pc(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Mc(t){return t._maxListeners===void 0?X.defaultMaxListeners:t._maxListeners}X.prototype.getMaxListeners=function(){return Mc(this)};X.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[e];if(l===void 0)return!1;if(typeof l=="function")Dc(l,this,n);else for(var u=l.length,c=$c(l,u),r=0;r<u;++r)Dc(c[r],this,n);return!0};function Gc(t,e,n,r){var i,o,a;if(Hr(n),o=t._events,o===void 0?(o=t._events=Object.create(null),t._eventsCount=0):(o.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),a=o[e]),a===void 0)a=o[e]=n,++t._eventsCount;else if(typeof a=="function"?a=o[e]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),i=Mc(t),i>0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=t,s.type=e,s.count=a.length,Nv(s)}return t}X.prototype.addListener=function(e,n){return Gc(this,e,n,!1)};X.prototype.on=X.prototype.addListener;X.prototype.prependListener=function(e,n){return Gc(this,e,n,!0)};function Dv(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Fc(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=Dv.bind(r);return i.listener=n,r.wrapFn=i,i}X.prototype.once=function(e,n){return Hr(n),this.on(e,Fc(this,e,n)),this};X.prototype.prependOnceListener=function(e,n){return Hr(n),this.prependListener(e,Fc(this,e,n)),this};X.prototype.removeListener=function(e,n){var r,i,o,a,s;if(Hr(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){s=r[a].listener,o=a;break}if(o<0)return this;o===0?r.shift():Iv(r,o),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,s||n)}return this};X.prototype.off=X.prototype.removeListener;X.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var o=Object.keys(r),a;for(i=0;i<o.length;++i)a=o[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function Oc(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Pv(i):$c(i,i.length)}X.prototype.listeners=function(e){return Oc(this,e,!0)};X.prototype.rawListeners=function(e){return Oc(this,e,!1)};X.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):zc.call(t,e)};X.prototype.listenerCount=zc;function zc(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}X.prototype.eventNames=function(){return this._eventsCount>0?Ur(this._events):[]};function $c(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function Iv(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function Pv(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function Mv(t,e){return new Promise(function(n,r){function i(a){t.removeListener(e,o),r(a)}function o(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}Uc(t,e,o,{once:!0}),e!=="error"&&Gv(t,i,{once:!0})})}function Gv(t,e,n){typeof t.on=="function"&&Uc(t,"error",e,n)}function Uc(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(o){r.once&&t.removeEventListener(e,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}});var Xo=ls((wE,Bc)=>{"use strict";Bc.exports=function(e){return e!==null&&typeof e=="object"&&typeof e.addUndirectedEdgeWithKey=="function"&&typeof e.dropNode=="function"&&typeof e.multi=="boolean"}});var sr,q,fs,Sp,dt,us,ps,gs,Pi,tr,fn,ms,Fi,Mi,Gi,Tp,ir={},or=[],Ap=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,lr=Array.isArray;function Je(t,e){for(var n in e)t[n]=e[n];return t}function Oi(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Rp(t,e,n){var r,i,o,a={};for(o in e)o=="key"?r=e[o]:o=="ref"?i=e[o]:a[o]=e[o];if(arguments.length>2&&(a.children=arguments.length>3?sr.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)a[o]===void 0&&(a[o]=t.defaultProps[o]);return nr(t,a,r,i,null)}function nr(t,e,n,r,i){var o={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++fs,__i:-1,__u:0};return i==null&&q.vnode!=null&&q.vnode(o),o}function Le(t){return t.children}function rr(t,e){this.props=t,this.context=e}function xt(t,e){if(e==null)return t.__?xt(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?xt(t):null}function Cp(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,r=[],i=[],o=Je({},e);o.__v=e.__v+1,q.vnode&&q.vnode(o),zi(t.__P,o,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,r,n??xt(e),!!(32&e.__u),i),o.__v=e.__v,o.__.__k[o.__i]=o,xs(r,o,i),e.__e=e.__=null,o.__e!=n&&vs(o)}}function vs(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),vs(t)}function cs(t){(!t.__d&&(t.__d=!0)&&dt.push(t)&&!ar.__r++||us!=q.debounceRendering)&&((us=q.debounceRendering)||ps)(ar)}function ar(){try{for(var t,e=1;dt.length;)dt.length>e&&dt.sort(gs),t=dt.shift(),e=dt.length,Cp(t)}finally{dt.length=ar.__r=0}}function ys(t,e,n,r,i,o,a,s,l,u,c){var h,d,f,v,m,g,w=r&&r.__k||or,y=e.length;for(l=Lp(n,e,w,l,y),h=0;h<y;h++)(f=n.__k[h])!=null&&(d=f.__i!=-1&&w[f.__i]||ir,f.__i=h,g=zi(t,f,d,i,o,a,s,l,u,c),v=f.__e,f.ref&&d.ref!=f.ref&&(d.ref&&$i(d.ref,null,f),c.push(f.ref,f.__c||v,f)),m==null&&v!=null&&(m=v),4&f.__u?(l=ws(f,l,t),d.__e&&(d.__e=null)):typeof f.type=="function"&&g!==void 0?l=g:v&&(l=v.nextSibling),f.__u&=-7);return n.__e=m,l}function Lp(t,e,n,r,i){var o,a,s,l,u,c=n.length,h=c,d=0;for(t.__k=new Array(i),o=0;o<i;o++)(a=e[o])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[o]=nr(null,a,null,null,null):lr(a)?a=t.__k[o]=nr(Le,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[o]=nr(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[o]=a,l=o+d,a.__=t,a.__b=t.__b+1,s=null,(u=a.__i=Np(a,n,l,h))!=-1&&(h--,(s=n[u])&&(s.__u|=2)),s==null||s.__v==null?(u==-1&&(i>c?d--:i<c&&d++),typeof a.type!="function"&&(a.__u|=4)):u!=l&&(u==l-1?d--:u==l+1?d++:(u>l?d--:d++,a.__u|=4))):t.__k[o]=null;if(h)for(o=0;o<c;o++)(s=n[o])!=null&&(2&s.__u)==0&&(s.__e==r&&(r=xt(s)),ks(s,s));return r}function ws(t,e,n){var r,i;if(typeof t.type=="function"){for(r=t.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=t,e=ws(r[i],e,n));return e}t.__e!=e&&(e&&t.type&&!e.parentNode&&(e=xt(t)),e=n.insertBefore(t.__e,e||null));do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Np(t,e,n,r){var i,o,a,s=t.key,l=t.type,u=e[n],c=u!=null&&(2&u.__u)==0;if(u===null&&s==null||c&&s==u.key&&l==u.type)return n;if(r>(c?1:0)){for(i=n-1,o=n+1;i>=0||o<e.length;)if((u=e[a=i>=0?i--:o++])!=null&&(2&u.__u)==0&&s==u.key&&l==u.type)return a}return-1}function ds(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||Ap.test(e)?n:n+"px"}function er(t,e,n,r,i){var o,a;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||ds(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||ds(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")o=e!=(e=e.replace(ms,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=n,n?r?n[fn]=r[fn]:(n[fn]=Fi,t.addEventListener(e,o?Gi:Mi,o)):t.removeEventListener(e,o?Gi:Mi,o);else{if(i=="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 t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function hs(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[tr]==null)e[tr]=Fi++;else if(e[tr]<n[fn])return;return n(q.event?q.event(e):e)}}}function zi(t,e,n,r,i,o,a,s,l,u){var c,h,d,f,v,m,g,w,y,_,k,T,C,M,z,R,D=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[s=e.__e=n.__e]),(c=q.__b)&&c(e);e:if(typeof D=="function"){h=a.length;try{if(y=e.props,_=D.prototype&&D.prototype.render,k=(c=D.contextType)&&r[c.__c],T=c?k?k.props.value:c.__:r,n.__c?w=(d=e.__c=n.__c).__=d.__E:(_?e.__c=d=new D(y,T):(e.__c=d=new rr(y,T),d.constructor=D,d.render=Ip),k&&k.sub(d),d.state||(d.state={}),d.__n=r,f=d.__d=!0,d.__h=[],d._sb=[]),_&&d.__s==null&&(d.__s=d.state),_&&D.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=Je({},d.__s)),Je(d.__s,D.getDerivedStateFromProps(y,d.__s))),v=d.props,m=d.state,d.__v=e,f)_&&D.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),_&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(_&&D.getDerivedStateFromProps==null&&y!==v&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(y,T),e.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(y,d.__s,T)===!1){e.__v!=n.__v&&(d.props=y,d.state=d.__s,d.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(N){N&&(N.__=e)}),or.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d),s=xt(n);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(y,d.__s,T),_&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(v,m,g)})}if(d.context=T,d.props=y,d.__P=t,d.__e=!1,C=q.__r,M=0,_)d.state=d.__s,d.__d=!1,C&&C(e),c=d.render(d.props,d.state,d.context),or.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,C&&C(e),c=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++M<25);d.state=d.__s,d.getChildContext!=null&&(r=Je(Je({},r),d.getChildContext())),_&&!f&&d.getSnapshotBeforeUpdate!=null&&(g=d.getSnapshotBeforeUpdate(v,m)),z=c!=null&&c.type===Le&&c.key==null?_s(c.props.children):c,s=ys(t,lr(z)?z:[z],e,n,r,i,o,a,s,l,u),d.base=e.__e,e.__u&=-161,d.__h.length&&a.push(d),w&&(d.__E=d.__=null)}catch(N){if(a.length=h,e.__v=null,l||o!=null){if(N.then){for(e.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;o!=null&&(o[o.indexOf(s)]=null),e.__e=s}else if(o!=null)for(R=o.length;R--;)Oi(o[R])}else e.__e=n.__e;e.__k==null&&(e.__k=n.__k||[]),N.then||bs(e),q.__e(N,e,n)}}else o==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):s=e.__e=Dp(n.__e,e,n,r,i,o,a,l,u);return(c=q.diffed)&&c(e),128&e.__u?void 0:s}function bs(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(bs))}function xs(t,e,n){for(var r=0;r<n.length;r++)$i(n[r],n[++r],n[++r]);q.__c&&q.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){q.__e(o,i.__v)}})}function _s(t){return typeof t!="object"||t==null||t.__b>0?t:lr(t)?t.map(_s):t.constructor!==void 0?null:Je({},t)}function Dp(t,e,n,r,i,o,a,s,l){var u,c,h,d,f,v,m,g=n.props||ir,w=e.props,y=e.type;if(y=="svg"?i="http://www.w3.org/2000/svg":y=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((f=o[u])&&"setAttribute"in f==!!y&&(y?f.localName==y:f.nodeType==3)){t=f,o[u]=null;break}}if(t==null){if(y==null)return document.createTextNode(w);t=document.createElementNS(i,y,w.is&&w),s&&(q.__m&&q.__m(e,o),s=!1),o=null}if(y==null)g===w||s&&t.data==w||(t.data=w);else{if(o=y=="textarea"&&w.defaultValue!=null?null:o&&sr.call(t.childNodes),!s&&o!=null)for(g={},u=0;u<t.attributes.length;u++)g[(f=t.attributes[u]).name]=f.value;for(u in g)f=g[u],u=="dangerouslySetInnerHTML"?h=f:u=="children"||u in w||u=="value"&&"defaultValue"in w||u=="checked"&&"defaultChecked"in w||er(t,u,null,f,i);for(u in w)f=w[u],u=="children"?d=f:u=="dangerouslySetInnerHTML"?c=f:u=="value"?v=f:u=="checked"?m=f:s&&typeof f!="function"||g[u]===f||er(t,u,f,g[u],i);if(c)s||h&&(c.__html==h.__html||c.__html==t.innerHTML)||(t.innerHTML=c.__html),e.__k=[];else if(h&&(t.innerHTML=""),ys(e.type=="template"?t.content:t,lr(d)?d:[d],e,n,r,y=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&xt(n,0),s,l),o!=null)for(u=o.length;u--;)Oi(o[u]);s&&y!="textarea"||(u="value",y=="progress"&&v==null?t.removeAttribute("value"):v!=null&&(v!==t[u]||y=="progress"&&!v||y=="option"&&v!=g[u])&&er(t,u,v,g[u],i),u="checked",m!=null&&m!=t[u]&&er(t,u,m,g[u],i))}return t}function $i(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){q.__e(i,n)}}function ks(t,e,n){var r,i;if(q.unmount&&q.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||$i(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){q.__e(o,e)}r.base=r.__P=r.__n=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&ks(r[i],e,n||typeof t.type!="function");n||Oi(t.__e),t.__c=t.__=t.__e=void 0}function Ip(t,e,n){return this.constructor(t,n)}function Es(t,e,n){var r,i,o,a;e==document&&(e=document.documentElement),q.__&&q.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,o=[],a=[],zi(e,t=(!r&&n||e).__k=Rp(Le,null,[t]),i||ir,ir,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?sr.call(e.childNodes):null,o,!r&&n?n:i?i.__e:e.firstChild,r,a),xs(o,t,a),t.props.children=null}sr=or.slice,q={__e:function(t,e,n,r){for(var i,o,a;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),a=i.__d),a)return i.__E=i}catch(s){t=s}throw t}},fs=0,Sp=function(t){return t!=null&&t.constructor===void 0},rr.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Je({},this.state),typeof t=="function"&&(t=t(Je({},n),this.props)),t&&Je(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),cs(this))},rr.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),cs(this))},rr.prototype.render=Le,dt=[],ps=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,gs=function(t,e){return t.__v.__b-e.__v.__b},ar.__r=0,Pi=Math.random().toString(8),tr="__d"+Pi,fn="__a"+Pi,ms=/(PointerCapture)$|Capture$/i,Fi=0,Mi=hs(!1),Gi=hs(!0),Tp=0;var Ss="weave-bootstrap";var Ui={cwd:""};function Pp(t){return typeof t!="object"||t===null?!1:typeof t.cwd=="string"}function Ts(t){if(t===null||t.trim()==="")return Ui;let e;try{e=JSON.parse(t)}catch{return Ui}return Pp(e)?e:Ui}function As(t){let e=+this._x.call(null,t),n=+this._y.call(null,t);return Rs(this.cover(e,n),e,n,t)}function Rs(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o=t._root,a={data:r},s=t._x0,l=t._y0,u=t._x1,c=t._y1,h,d,f,v,m,g,w,y;if(!o)return t._root=a,t;for(;o.length;)if((m=e>=(h=(s+u)/2))?s=h:u=h,(g=n>=(d=(l+c)/2))?l=d:c=d,i=o,!(o=o[w=g<<1|m]))return i[w]=a,t;if(f=+t._x.call(null,o.data),v=+t._y.call(null,o.data),e===f&&n===v)return a.next=o,i?i[w]=a:t._root=a,t;do i=i?i[w]=new Array(4):t._root=new Array(4),(m=e>=(h=(s+u)/2))?s=h:u=h,(g=n>=(d=(l+c)/2))?l=d:c=d;while((w=g<<1|m)===(y=(v>=d)<<1|f>=h));return i[y]=o,i[w]=a,t}function Cs(t){var e,n,r=t.length,i,o,a=new Array(r),s=new Array(r),l=1/0,u=1/0,c=-1/0,h=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(o=+this._y.call(null,e))||(a[n]=i,s[n]=o,i<l&&(l=i),i>c&&(c=i),o<u&&(u=o),o>h&&(h=o));if(l>c||u>h)return this;for(this.cover(l,u).cover(c,h),n=0;n<r;++n)Rs(this,a[n],s[n],t[n]);return this}function Ls(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a=i-n||1,s=this._root,l,u;n>t||t>=i||r>e||e>=o;)switch(u=(e<r)<<1|t<n,l=new Array(4),l[u]=s,s=l,a*=2,u){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function Ns(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function Ds(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function pe(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function Is(t,e,n){var r,i=this._x0,o=this._y0,a,s,l,u,c=this._x1,h=this._y1,d=[],f=this._root,v,m;for(f&&d.push(new pe(f,i,o,c,h)),n==null?n=1/0:(i=t-n,o=e-n,c=t+n,h=e+n,n*=n);v=d.pop();)if(!(!(f=v.node)||(a=v.x0)>c||(s=v.y0)>h||(l=v.x1)<i||(u=v.y1)<o))if(f.length){var g=(a+l)/2,w=(s+u)/2;d.push(new pe(f[3],g,w,l,u),new pe(f[2],a,w,g,u),new pe(f[1],g,s,l,w),new pe(f[0],a,s,g,w)),(m=(e>=w)<<1|t>=g)&&(v=d[d.length-1],d[d.length-1]=d[d.length-1-m],d[d.length-1-m]=v)}else{var y=t-+this._x.call(null,f.data),_=e-+this._y.call(null,f.data),k=y*y+_*_;if(k<n){var T=Math.sqrt(n=k);i=t-T,o=e-T,c=t+T,h=e+T,r=f.data}}return r}function Ps(t){if(isNaN(c=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,o,a=this._x0,s=this._y0,l=this._x1,u=this._y1,c,h,d,f,v,m,g,w;if(!n)return this;if(n.length)for(;;){if((v=c>=(d=(a+l)/2))?a=d:l=d,(m=h>=(f=(s+u)/2))?s=f:u=f,e=n,!(n=n[g=m<<1|v]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,w=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):e?(o?e[g]=o:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[w]=n:this._root=n),this):(this._root=o,this)}function Ms(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Gs(){return this._root}function Fs(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function Os(t){var e=[],n,r=this._root,i,o,a,s,l;for(r&&e.push(new pe(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,o=n.x0,a=n.y0,s=n.x1,l=n.y1)&&r.length){var u=(o+s)/2,c=(a+l)/2;(i=r[3])&&e.push(new pe(i,u,c,s,l)),(i=r[2])&&e.push(new pe(i,o,c,u,l)),(i=r[1])&&e.push(new pe(i,u,a,s,c)),(i=r[0])&&e.push(new pe(i,o,a,u,c))}return this}function zs(t){var e=[],n=[],r;for(this._root&&e.push(new pe(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,l=r.x1,u=r.y1,c=(a+l)/2,h=(s+u)/2;(o=i[0])&&e.push(new pe(o,a,s,c,h)),(o=i[1])&&e.push(new pe(o,c,s,l,h)),(o=i[2])&&e.push(new pe(o,a,h,c,u)),(o=i[3])&&e.push(new pe(o,c,h,l,u))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function $s(t){return t[0]}function Us(t){return arguments.length?(this._x=t,this):this._x}function Hs(t){return t[1]}function Bs(t){return arguments.length?(this._y=t,this):this._y}function _t(t,e,n){var r=new Hi(e??$s,n??Hs,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Hi(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Ws(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var _e=_t.prototype=Hi.prototype;_e.copy=function(){var t=new Hi(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Ws(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Ws(r));return t};_e.add=As;_e.addAll=Cs;_e.cover=Ls;_e.data=Ns;_e.extent=Ds;_e.find=Is;_e.remove=Ps;_e.removeAll=Ms;_e.root=Gs;_e.size=Fs;_e.visit=Os;_e.visitAfter=zs;_e.x=Us;_e.y=Bs;function le(t){return function(){return t}}function He(t){return(t()-.5)*1e-6}function Mp(t){return t.x+t.vx}function Gp(t){return t.y+t.vy}function Bi(t){var e,n,r,i=1,o=1;typeof t!="function"&&(t=le(t==null?1:+t));function a(){for(var u,c=e.length,h,d,f,v,m,g,w=0;w<o;++w)for(h=_t(e,Mp,Gp).visitAfter(s),u=0;u<c;++u)d=e[u],m=n[d.index],g=m*m,f=d.x+d.vx,v=d.y+d.vy,h.visit(y);function y(_,k,T,C,M){var z=_.data,R=_.r,D=m+R;if(z){if(z.index>d.index){var N=f-z.x-z.vx,O=v-z.y-z.vy,H=N*N+O*O;H<D*D&&(N===0&&(N=He(r),H+=N*N),O===0&&(O=He(r),H+=O*O),H=(D-(H=Math.sqrt(H)))/H*i,d.vx+=(N*=H)*(D=(R*=R)/(g+R)),d.vy+=(O*=H)*D,z.vx-=N*(D=1-D),z.vy-=O*D)}return}return k>f+D||C<f-D||T>v+D||M<v-D}}function s(u){if(u.data)return u.r=n[u.data.index];for(var c=u.r=0;c<4;++c)u[c]&&u[c].r>u.r&&(u.r=u[c].r)}function l(){if(e){var u,c=e.length,h;for(n=new Array(c),u=0;u<c;++u)h=e[u],n[h.index]=+t(h,u,e)}}return a.initialize=function(u,c){e=u,r=c,l()},a.iterations=function(u){return arguments.length?(o=+u,a):o},a.strength=function(u){return arguments.length?(i=+u,a):i},a.radius=function(u){return arguments.length?(t=typeof u=="function"?u:le(+u),l(),a):t},a}function Fp(t){return t.index}function Ks(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Wi(t){var e=Fp,n=h,r,i=le(30),o,a,s,l,u,c=1;t==null&&(t=[]);function h(g){return 1/Math.min(s[g.source.index],s[g.target.index])}function d(g){for(var w=0,y=t.length;w<c;++w)for(var _=0,k,T,C,M,z,R,D;_<y;++_)k=t[_],T=k.source,C=k.target,M=C.x+C.vx-T.x-T.vx||He(u),z=C.y+C.vy-T.y-T.vy||He(u),R=Math.sqrt(M*M+z*z),R=(R-o[_])/R*g*r[_],M*=R,z*=R,C.vx-=M*(D=l[_]),C.vy-=z*D,T.vx+=M*(D=1-D),T.vy+=z*D}function f(){if(a){var g,w=a.length,y=t.length,_=new Map(a.map((T,C)=>[e(T,C,a),T])),k;for(g=0,s=new Array(w);g<y;++g)k=t[g],k.index=g,typeof k.source!="object"&&(k.source=Ks(_,k.source)),typeof k.target!="object"&&(k.target=Ks(_,k.target)),s[k.source.index]=(s[k.source.index]||0)+1,s[k.target.index]=(s[k.target.index]||0)+1;for(g=0,l=new Array(y);g<y;++g)k=t[g],l[g]=s[k.source.index]/(s[k.source.index]+s[k.target.index]);r=new Array(y),v(),o=new Array(y),m()}}function v(){if(a)for(var g=0,w=t.length;g<w;++g)r[g]=+n(t[g],g,t)}function m(){if(a)for(var g=0,w=t.length;g<w;++g)o[g]=+i(t[g],g,t)}return d.initialize=function(g,w){a=g,u=w,f()},d.links=function(g){return arguments.length?(t=g,f(),d):t},d.id=function(g){return arguments.length?(e=g,d):e},d.iterations=function(g){return arguments.length?(c=+g,d):c},d.strength=function(g){return arguments.length?(n=typeof g=="function"?g:le(+g),v(),d):n},d.distance=function(g){return arguments.length?(i=typeof g=="function"?g:le(+g),m(),d):i},d}var Op={value:()=>{}};function js(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new ur(n)}function ur(t){this._=t}function zp(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}ur.prototype=js.prototype={constructor:ur,on:function(t,e){var n=this._,r=zp(t+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(t=r[o]).type)&&(i=$p(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<a;)if(i=(t=r[o]).type)n[i]=Vs(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Vs(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new ur(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};function $p(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Vs(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Op,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Ki=js;var Ht=0,gn=0,pn=0,Ys=1e3,cr,mn,dr=0,kt=0,hr=0,vn=typeof performance=="object"&&performance.now?performance:Date,Xs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function qi(){return kt||(Xs(Up),kt=vn.now()+hr)}function Up(){kt=0}function Vi(){this._call=this._time=this._next=null}Vi.prototype=fr.prototype={constructor:Vi,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?qi():+n)+(e==null?0:+e),!this._next&&mn!==this&&(mn?mn._next=this:cr=this,mn=this),this._call=t,this._time=n,ji()},stop:function(){this._call&&(this._call=null,this._time=1/0,ji())}};function fr(t,e,n){var r=new Vi;return r.restart(t,e,n),r}function Zs(){qi(),++Ht;for(var t=cr,e;t;)(e=kt-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Ht}function qs(){kt=(dr=vn.now())+hr,Ht=gn=0;try{Zs()}finally{Ht=0,Bp(),kt=0}}function Hp(){var t=vn.now(),e=t-dr;e>Ys&&(hr-=e,dr=t)}function Bp(){for(var t,e=cr,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:cr=n);mn=t,ji(r)}function ji(t){if(!Ht){gn&&(gn=clearTimeout(gn));var e=t-kt;e>24?(t<1/0&&(gn=setTimeout(qs,t-vn.now()-hr)),pn&&(pn=clearInterval(pn))):(pn||(dr=vn.now(),pn=setInterval(Hp,Ys)),Ht=1,Xs(qs))}}function Qs(){let t=1;return()=>(t=(1664525*t+1013904223)%4294967296)/4294967296}function Js(t){return t.x}function el(t){return t.y}var Wp=10,Kp=Math.PI*(3-Math.sqrt(5));function Yi(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,l=fr(h),u=Ki("tick","end"),c=Qs();t==null&&(t=[]);function h(){d(),u.call("tick",e),n<r&&(l.stop(),u.call("end",e))}function d(m){var g,w=t.length,y;m===void 0&&(m=1);for(var _=0;_<m;++_)for(n+=(o-n)*i,s.forEach(function(k){k(n)}),g=0;g<w;++g)y=t[g],y.fx==null?y.x+=y.vx*=a:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=a:(y.y=y.fy,y.vy=0);return e}function f(){for(var m=0,g=t.length,w;m<g;++m){if(w=t[m],w.index=m,w.fx!=null&&(w.x=w.fx),w.fy!=null&&(w.y=w.fy),isNaN(w.x)||isNaN(w.y)){var y=Wp*Math.sqrt(.5+m),_=m*Kp;w.x=y*Math.cos(_),w.y=y*Math.sin(_)}(isNaN(w.vx)||isNaN(w.vy))&&(w.vx=w.vy=0)}}function v(m){return m.initialize&&m.initialize(t,c),m}return f(),e={tick:d,restart:function(){return l.restart(h),e},stop:function(){return l.stop(),e},nodes:function(m){return arguments.length?(t=m,f(),s.forEach(v),e):t},alpha:function(m){return arguments.length?(n=+m,e):n},alphaMin:function(m){return arguments.length?(r=+m,e):r},alphaDecay:function(m){return arguments.length?(i=+m,e):+i},alphaTarget:function(m){return arguments.length?(o=+m,e):o},velocityDecay:function(m){return arguments.length?(a=1-m,e):1-a},randomSource:function(m){return arguments.length?(c=m,s.forEach(v),e):c},force:function(m,g){return arguments.length>1?(g==null?s.delete(m):s.set(m,v(g)),e):s.get(m)},find:function(m,g,w){var y=0,_=t.length,k,T,C,M,z;for(w==null?w=1/0:w*=w,y=0;y<_;++y)M=t[y],k=m-M.x,T=g-M.y,C=k*k+T*T,C<w&&(z=M,w=C);return z},on:function(m,g){return arguments.length>1?(u.on(m,g),e):u.on(m)}}}function Xi(){var t,e,n,r,i=le(-30),o,a=1,s=1/0,l=.81;function u(f){var v,m=t.length,g=_t(t,Js,el).visitAfter(h);for(r=f,v=0;v<m;++v)e=t[v],g.visit(d)}function c(){if(t){var f,v=t.length,m;for(o=new Array(v),f=0;f<v;++f)m=t[f],o[m.index]=+i(m,f,t)}}function h(f){var v=0,m,g,w=0,y,_,k;if(f.length){for(y=_=k=0;k<4;++k)(m=f[k])&&(g=Math.abs(m.value))&&(v+=m.value,w+=g,y+=g*m.x,_+=g*m.y);f.x=y/w,f.y=_/w}else{m=f,m.x=m.data.x,m.y=m.data.y;do v+=o[m.data.index];while(m=m.next)}f.value=v}function d(f,v,m,g){if(!f.value)return!0;var w=f.x-e.x,y=f.y-e.y,_=g-v,k=w*w+y*y;if(_*_/l<k)return k<s&&(w===0&&(w=He(n),k+=w*w),y===0&&(y=He(n),k+=y*y),k<a&&(k=Math.sqrt(a*k)),e.vx+=w*f.value*r/k,e.vy+=y*f.value*r/k),!0;if(f.length||k>=s)return;(f.data!==e||f.next)&&(w===0&&(w=He(n),k+=w*w),y===0&&(y=He(n),k+=y*y),k<a&&(k=Math.sqrt(a*k)));do f.data!==e&&(_=o[f.data.index]*r/k,e.vx+=w*_,e.vy+=y*_);while(f=f.next)}return u.initialize=function(f,v){t=f,n=v,c()},u.strength=function(f){return arguments.length?(i=typeof f=="function"?f:le(+f),c(),u):i},u.distanceMin=function(f){return arguments.length?(a=f*f,u):Math.sqrt(a)},u.distanceMax=function(f){return arguments.length?(s=f*f,u):Math.sqrt(s)},u.theta=function(f){return arguments.length?(l=f*f,u):Math.sqrt(l)},u}function Zi(t){var e=le(.1),n,r,i;typeof t!="function"&&(t=le(t==null?0:+t));function o(s){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vx+=(i[l]-c.x)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:le(+s),a(),o):e},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:le(+s),a(),o):t},o}function Qi(t){var e=le(.1),n,r,i;typeof t!="function"&&(t=le(t==null?0:+t));function o(s){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vy+=(i[l]-c.y)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+t(n[s],s,n))?0:+e(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(e=typeof s=="function"?s:le(+s),a(),o):e},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:le(+s),a(),o):t},o}var Vp=9,pr=6,gr=18,jp=32,rl=9,mr=Vp+rl;function Ji(t){let e=Number.isFinite(t)&&t>0?t:0,n=Math.min(1,Math.log2(1+e)/Math.log2(1+jp));return pr+(gr-pr)*n}function eo(t){return t+rl}var qp=300,il=1,tl=.001,ve={containsRest:55,containsStrength:.12,relationDistance:50,relationStrength:.07,charge:-200,chargeMax:800,center:.05},yn={...ve};function to(t){Object.assign(ve,t)}function nl(t){return t==="contains"||t==="anchored-at"}function Yp(t){let e=Math.trunc(t)>>>0;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function Xp(t){let e=[],n=new Set;for(let o of t.nodes)n.has(o.id)||(n.add(o.id),e.push(o.id));let r=[],i=new Set;for(let o of t.edges){if(o.source===o.target||!n.has(o.source)||!n.has(o.target))continue;let a=`${o.source}\0${o.target}\0${o.kind}`;i.has(a)||(i.add(a),r.push(o))}return{ids:e,edges:r}}function no(t){let e=Wi(t.links).id(n=>n.id).distance(n=>nl(n.kind)?ve.containsRest:ve.relationDistance).strength(n=>nl(n.kind)?ve.containsStrength:ve.relationStrength).iterations(2);return Yi(t.nodes).randomSource(Yp(t.seed??il)).force("charge",Xi().strength(ve.charge).distanceMax(ve.chargeMax)).force("link",e).force("collide",Bi(n=>n.r??mr).strength(1)).force("x",Zi(0).strength(ve.center)).force("y",Qi(0).strength(ve.center)).stop()}function Zp(t,e,n){let r=no({nodes:t,links:e.map(({source:i,target:o,kind:a})=>({source:i,target:o,kind:a})),seed:n.seed}).alpha(n.warm?.3:1).alphaMin(tl).alphaDecay(n.ticks>0?1-Math.pow(tl,1/n.ticks):0);for(let i=0;i<n.ticks;i++)r.tick()}function ol(t,e={}){let n=Math.max(0,Math.trunc(e.ticks??qp)),{ids:r,edges:i}=Xp(t),o=r.map(l=>{let u=e.initial?.get(l),c={id:l,vx:0,vy:0};return u!==void 0&&Number.isFinite(u.x)&&Number.isFinite(u.y)&&(c.x=u.x,c.y=u.y,e.pinWarm===!0&&(c.fx=u.x,c.fy=u.y)),c}),a=new Map;for(let l of i)a.set(l.source,(a.get(l.source)??0)+1),a.set(l.target,(a.get(l.target)??0)+1);for(let l of o)l.r=eo(Ji(a.get(l.id)??0));o.length>1&&Zp(o,i,{ticks:n,seed:e.seed??il,warm:e.initial!==void 0});let s=new Map;for(let l of o)s.set(l.id,{x:Number.isFinite(l.x)?l.x:0,y:Number.isFinite(l.y)?l.y:0});return s}var Qp="sliders";function al(t){for(let e of t.replace(/^\?/,"").split("&")){let n=e.indexOf("=");if((n===-1?e:e.slice(0,n))!==Qp)continue;let i=n===-1?"":e.slice(n+1).toLowerCase();return i!=="0"&&i!=="false"}return!1}var vr=[{key:"containsStrength",label:"contains strength",hint:"how hard a parent holds its children — group cohesion",min:0,max:1,step:.01},{key:"containsRest",label:"contains rest",hint:"how far children sit from their parent — rosette radius",min:10,max:300,step:5},{key:"relationStrength",label:"relation strength",hint:"pull of links-to / mentions across groups",min:0,max:1,step:.01},{key:"relationDistance",label:"relation distance",hint:"how long those cross-group springs are",min:20,max:600,step:10},{key:"charge",label:"charge",hint:"node-to-node repulsion — more negative pushes harder",min:-1200,max:0,step:10},{key:"chargeMax",label:"charge range",hint:"distance past which repulsion stops — caps overall spread",min:100,max:4e3,step:50},{key:"center",label:"centre gravity",hint:"pull toward the origin — too much makes one blob",min:0,max:.3,step:.005}],sl={containsRest:90,containsStrength:.02,relationDistance:170,relationStrength:.05,charge:-50,chargeMax:1/0,center:.09};function ll(t,e){let n=t[e.key];return Number.isFinite(n)?Math.min(e.max,Math.max(e.min,n)):e.max}function ul(t,e){let n=Number.parseFloat(e);return Number.isFinite(n)?Math.min(t.max,Math.max(t.min,n)):yn[t.key]}function cl(t){return Number.isFinite(t)?Number.isInteger(t)?String(t):t.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):"∞"}function ro(t){let e=n=>` ${n}: ${Number.isFinite(t[n])?t[n]:"Infinity"},`;return["export const FORCES: ForceConstants = {",...vr.map(n=>e(n.key)),"};"].join(`
|
|
22
|
-
`)}function dl(t){return vr.every(e=>Object.is(t[e.key],yn[e.key]))}var hl="pi-weave.graph.groupColors.v1";function fl(t){try{return t.getItem(hl)!=="off"}catch{return!0}}function pl(t,e){try{t.setItem(hl,e?"on":"off")}catch{}}var Bt,oe,io,gl,wn=0,kl=[],se=q,ml=se.__b,vl=se.__r,yl=se.diffed,wl=se.__c,bl=se.unmount,xl=se.__;function wr(t,e){se.__h&&se.__h(oe,t,wn||e),wn=0;var n=oe.__H||(oe.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function K(t){return wn=1,Jp(Sl,t)}function Jp(t,e,n){var r=wr(Bt++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):Sl(void 0,e),function(s){var l=r.__N?r.__N[0]:r.__[0],u=r.t(l,s);l!==u&&(r.__N=[u,r.__[1]],r.__c.setState({}))}],r.__c=oe,!oe.__f)){var i=function(s,l,u){if(!r.__c.__H)return!0;var c=!1,h=r.__c.props!==s;if(r.__c.__H.__.some(function(f){if(f.__N){c=!0;var v=f.__[0];f.__=f.__N,f.__N=void 0,v!==f.__[0]&&(h=!0)}}),o){var d=o.call(this,s,l,u);return c?d||h:d}return!c||h};oe.__f=!0;var o=oe.shouldComponentUpdate,a=oe.componentWillUpdate;oe.componentWillUpdate=function(s,l,u){if(this.__e){var c=o;o=void 0,i(s,l,u),o=c}a&&a.call(this,s,l,u)},oe.shouldComponentUpdate=i}return r.__N||r.__}function re(t,e){var n=wr(Bt++,3);!se.__s&&ao(n.__H,e)&&(n.__=t,n.u=e,oe.__H.__h.push(n))}function Et(t,e){var n=wr(Bt++,4);!se.__s&&ao(n.__H,e)&&(n.__=t,n.u=e,oe.__h.push(n))}function V(t){return wn=5,Ze(function(){return{current:t}},[])}function Ze(t,e){var n=wr(Bt++,7);return ao(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function El(t,e){return wn=8,Ze(function(){return t},e)}function eg(){for(var t;t=kl.shift();){var e=t.__H;if(t.__P&&e)try{e.__h.some(yr),e.__h.some(oo),e.__h=[]}catch(n){e.__h=[],se.__e(n,t.__v)}}}se.__b=function(t){oe=null,ml&&ml(t)},se.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),xl&&xl(t,e)},se.__r=function(t){vl&&vl(t),Bt=0;var e=(oe=t.__c).__H;e&&(io===oe?(e.__h=[],oe.__h=[],e.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.some(yr),e.__h.some(oo),e.__h=[],Bt=0)),io=oe},se.diffed=function(t){yl&&yl(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(kl.push(e)!==1&&gl===se.requestAnimationFrame||((gl=se.requestAnimationFrame)||tg)(eg)),e.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),io=oe=null},se.__c=function(t,e){e.some(function(n){try{n.__h.some(yr),n.__h=n.__h.filter(function(r){return!r.__||oo(r)})}catch(r){e.some(function(i){i.__h&&(i.__h=[])}),e=[],se.__e(r,n.__v)}}),wl&&wl(t,e)},se.unmount=function(t){bl&&bl(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.some(function(r){try{yr(r)}catch(i){e=i}}),n.__H=void 0,e&&se.__e(e,n.__v))};var _l=typeof requestAnimationFrame=="function";function tg(t){var e,n=function(){clearTimeout(r),_l&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);_l&&(e=requestAnimationFrame(n))}function yr(t){var e=oe,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),oe=e}function oo(t){var e=oe;t.__c=t.__(),oe=e}function ao(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function Sl(t,e){return typeof e=="function"?e(t):e}var Ge=(t,e)=>fetch(t,{...e?.method===void 0?{}:{method:e.method},...e?.headers===void 0?{}:{headers:e.headers},...e?.body===void 0?{}:{body:e.body},...e?.signal===void 0?{}:{signal:e.signal},credentials:"same-origin"});function so(t,e=!1){return{ok:!0,data:t,cached:e}}function et(t,e,n){return{ok:!1,kind:t,status:e,message:n}}function Tl(t){return t===403?"auth":t===404?"missing":"server"}function Al(t){return t===403?"not authorised — this workspace session has ended":t===404?"not found":`server error (${t})`}async function br(t,e,n,r){let i;try{i=await t(e,r)}catch(a){return et("network",0,a instanceof Error?a.message:"network request failed")}if(!i.ok)return et(Tl(i.status),i.status,Al(i.status));let o;try{o=await i.json()}catch{return et("malformed",i.status,"response was not valid JSON")}return n(o)?so(o):et("malformed",i.status,"response did not match the expected shape")}function tt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ng(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function rg(t){if(!tt(t)||typeof t.stamp!="string")return!1;let e=t.model;return!tt(e)||!Array.isArray(e.nodes)||!Array.isArray(e.edges)?!1:tt(t.tags)&&tt(t.dangling)}function ig(t){if(!tt(t))return!1;for(let e of["slug","title","body","created","updated","source"])if(typeof t[e]!="string")return!1;return ng(t.tags)}function og(t){return tt(t)&&ig(t.note)}function ag(t){return tt(t)&&typeof t.query=="string"&&Array.isArray(t.hits)}function sg(t){return tt(t)&&typeof t.opened=="boolean"}function lg(t){return tt(t)&&t.ok===!0&&(t.id===void 0||typeof t.id=="string")}async function Rl(t,e=null){let n=e===null?void 0:{"if-none-match":`"${e.stamp}"`},r;try{r=await t("/api/graph",n===void 0?{}:{headers:n})}catch(o){return et("network",0,o instanceof Error?o.message:"network request failed")}if(r.status===304)return e===null?et("malformed",304,"server sent 304 for an unconditional request"):so(e,!0);if(!r.ok)return et(Tl(r.status),r.status,Al(r.status));let i;try{i=await r.json()}catch{return et("malformed",r.status,"response was not valid JSON")}return rg(i)?so(i):et("malformed",r.status,"response did not match the expected shape")}function Cl(t,e){return br(t,`/api/note/${encodeURIComponent(e)}`,og)}function Ll(t,e,n){return br(t,`/api/search?q=${encodeURIComponent(e)}`,ag,n===void 0?void 0:{signal:n})}function Nl(t,e){return br(t,"/api/open",sg,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({slug:e})})}function St(t,e,n,r){return br(t,e,lg,{method:n,...r===void 0?{}:{headers:{"content-type":"application/json"},body:JSON.stringify(r)}})}var xr=(t,e="")=>`/api/note/${encodeURIComponent(t)}${e}`,lo=(t,e="")=>`/api/folder/${t.split("/").map(encodeURIComponent).join("/")}${e}`,Dl=(t,e,n)=>St(t,xr(e),"POST",{body:n}),Il=(t,e,n)=>St(t,xr(e,"/rename"),"POST",{name:n}),Pl=(t,e,n)=>St(t,xr(e,"/move"),"POST",{folder:n}),Ml=(t,e)=>St(t,xr(e),"DELETE"),Gl=(t,e)=>St(t,lo(e),"POST"),Fl=(t,e,n)=>St(t,lo(e,"/rename"),"POST",{name:n}),Ol=(t,e)=>St(t,lo(e),"DELETE");function fo(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Rt=fo();function Vl(t){Rt=t}var Tt={exec:()=>null};function Wt(t){let e=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=e[r];return i||(i=t(r),e[r]=i),i}}function B(t,e=""){let n=typeof t=="string"?t:t.source,r={replace:(i,o)=>{let a=typeof o=="string"?o:o.source;return a=a.replace(ye.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,e)};return r}var ug=((t="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+t)}catch{return!1}})(),ye={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Wt(t=>new RegExp(`^ {0,${t}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Wt(t=>new RegExp(`^ {0,${t}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Wt(t=>new RegExp(`^ {0,${t}}(?:\`\`\`|~~~)`)),headingBeginRegex:Wt(t=>new RegExp(`^ {0,${t}}#`)),htmlBeginRegex:Wt(t=>new RegExp(`^ {0,${t}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Wt(t=>new RegExp(`^ {0,${t}}>`))},cg=/^(?:[ \t]*(?:\n|$))+/,dg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,hg=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_n=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,fg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,po=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,jl=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ql=B(jl).replace(/bull/g,po).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),pg=B(jl).replace(/bull/g,po).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),go=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,gg=/^[^\n]+/,mo=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,mg=B(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",mo).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),vg=B(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,po).getRegex(),Tr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",vo=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,yg=B("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",vo).replace("tag",Tr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Yl=t=>B(go).replace("hr",_n).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",t).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tr).getRegex(),wg=Yl(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),bg=Yl(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),xg=B(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",bg).getRegex(),yo={blockquote:xg,code:dg,def:mg,fences:hg,heading:fg,hr:_n,html:yg,lheading:ql,list:vg,newline:cg,paragraph:wg,table:Tt,text:gg},zl=B("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_n).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tr).getRegex(),_g={...yo,lheading:pg,table:zl,paragraph:B(go).replace("hr",_n).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",zl).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tr).getRegex()},kg={...yo,html:B(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",vo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Tt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:B(go).replace("hr",_n).replace("heading",` *#{1,6} *[^
|
|
23
|
-
]
|
|
24
|
-
`),n=e.length-1;for(;n>=0&&ye.blankLine.test(e[n]);)n--;return e.length-n<=2?t:e.slice(0,n+1).join(`
|
|
25
|
-
`)}function tm(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let r=0;r<t.length;r++)if(t[r]==="\\")r++;else if(t[r]===e[0])n++;else if(t[r]===e[1]&&(n--,n<0))return r;return n>0?-2:-1}function nm(t,e=0){let n=e,r="";for(let i of t)if(i===" "){let o=4-n%4;r+=" ".repeat(o),n+=o}else r+=i,n++;return r}function Kl(t,e,n,r,i){let o=e.href,a=e.title||null,s=t[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:a,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,l}function rm(t,e,n){let r=t.match(n.other.indentCodeCompensation);if(r===null)return e;let i=r[1];return e.split(`
|
|
26
|
-
`).map(o=>{let a=o.match(n.other.beginningSpace);if(a===null)return o;let[s]=a;return s.length>=i.length?o.slice(i.length):o}).join(`
|
|
27
|
-
`)}var Er=class{options;rules;lexer;constructor(t){this.options=t||Rt}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=this.options.pedantic?e[0]:Wl(e[0]),r=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:r}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],r=rm(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let r=ht(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:ht(e[0],`
|
|
28
|
-
`),depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:ht(e[0],`
|
|
29
|
-
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=ht(e[0],`
|
|
30
|
-
`).split(`
|
|
31
|
-
`),r="",i="",o=[];for(;n.length>0;){let a=!1,s=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))s.push(n[l]),a=!0;else if(!a)s.push(n[l]);else break;n=n.slice(l);let u=s.join(`
|
|
32
|
-
`),c=u.replace(this.rules.other.blockquoteSetextReplace,`
|
|
33
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
|
|
34
|
-
${u}`:u,i=i?`${i}
|
|
35
|
-
${c}`:c;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,o,!0),this.lexer.state.top=h,n.length===0)break;let d=o.at(-1);if(d?.type==="code")break;if(d?.type==="blockquote"){let f=d,v=n.join(`
|
|
36
|
-
`),m=f.raw+`
|
|
37
|
-
`+v.replace(this.rules.other.blockquoteSetextReplace2,""),g=this.blockquote(m);o[o.length-1]=g,r=`${r}
|
|
38
|
-
${v}`,i=i.substring(0,i.length-f.text.length)+g.text;break}else if(d?.type==="list"){let f=d,v=f.raw+`
|
|
39
|
-
`+n.join(`
|
|
40
|
-
`),m=this.list(v);o[o.length-1]=m,r=r.substring(0,r.length-d.raw.length)+m.raw,i=i.substring(0,i.length-f.raw.length)+m.raw,n=v.substring(o.at(-1).raw.length).split(`
|
|
41
|
-
`);continue}}return{type:"blockquote",raw:r,tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),a=!1;for(;t;){let l=!1,u="",c="";if(!(e=o.exec(t))||this.rules.block.hr.test(t))break;u=e[0],t=t.substring(u.length);let h=nm(e[2].split(`
|
|
42
|
-
`,1)[0],e[1].length),d=t.split(`
|
|
43
|
-
`,1)[0],f=!h.trim(),v=0;if(this.options.pedantic?(v=2,c=h.trimStart()):f?v=e[1].length+1:(v=h.search(this.rules.other.nonSpaceChar),v=v>4?1:v,c=h.slice(v),v+=e[1].length),f&&this.rules.other.blankLine.test(d)&&(u+=d+`
|
|
44
|
-
`,t=t.substring(d.length+1),l=!0),!l){let m=this.rules.other.nextBulletRegex(v),g=this.rules.other.hrRegex(v),w=this.rules.other.fencesBeginRegex(v),y=this.rules.other.headingBeginRegex(v),_=this.rules.other.htmlBeginRegex(v),k=this.rules.other.blockquoteBeginRegex(v);for(;t;){let T=t.split(`
|
|
45
|
-
`,1)[0],C;if(d=T,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),C=d):C=d.replace(this.rules.other.tabCharGlobal," "),w.test(d)||y.test(d)||_.test(d)||k.test(d)||m.test(d)||g.test(d))break;if(C.search(this.rules.other.nonSpaceChar)>=v||!d.trim())c+=`
|
|
46
|
-
`+C.slice(v);else{if(f||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||w.test(h)||y.test(h)||g.test(h))break;c+=`
|
|
47
|
-
`+d}f=!d.trim(),u+=T+`
|
|
48
|
-
`,t=t.substring(T.length+1),h=C.slice(v)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(a=!0)),i.items.push({type:"list_item",raw:u,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=u}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items)if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),!i.loose){let u=l.tokens.filter(h=>h.type==="space"),c=u.length>0&&u.some(h=>this.rules.other.anyLine.test(h.raw));i.loose=c}for(let l of i.items){let u=l.tokens[0];if(l.task&&(u?.type==="text"||u?.type==="paragraph")){l.text=l.text.replace(this.rules.other.listReplaceTask,""),u.raw=u.raw.replace(this.rules.other.listReplaceTask,""),u.text=u.text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}let c=this.rules.other.listTaskCheckbox.exec(l.raw);if(c){let h={type:"checkbox",raw:c[0]+" ",checked:c[0]!=="[ ]"};l.checked=h.checked,i.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=h.raw+l.tokens[0].raw,l.tokens[0].text=h.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(h)):l.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):l.tokens.unshift(h)}}else l.task&&(l.task=!1)}if(i.loose)for(let l of i.items){l.loose=!0;for(let u of l.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(t){let e=this.rules.block.html.exec(t);if(e){let n=Wl(e[0]);return{type:"html",block:!0,raw:n,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:n}}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:ht(e[0],`
|
|
49
|
-
`),href:r,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=Bl(e[1]),r=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
50
|
-
`):[],o={type:"table",raw:ht(e[0],`
|
|
51
|
-
`),header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?o.align.push("right"):this.rules.other.tableAlignCenter.test(a)?o.align.push("center"):this.rules.other.tableAlignLeft.test(a)?o.align.push("left"):o.align.push(null);for(let a=0;a<n.length;a++)o.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:o.align[a]});for(let a of i)o.rows.push(Bl(a,o.header.length).map((s,l)=>({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[l]})));return o}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e){let n=e[1].trim();return{type:"heading",raw:ht(e[0],`
|
|
52
|
-
`),depth:e[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
|
|
53
|
-
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=ht(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=tm(e[2],"()");if(o===-2)return;if(o>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],i=o[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Kl(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[r.toLowerCase()];if(!i){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return Kl(n,i,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=0,u=r[0][0],c=n===u,h=u==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,e=e.slice(-1*t.length+i);(r=h.exec(e))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){s+=a;continue}else if(r[5]||r[6]){if(i%3&&!((i+a)%3)){l+=a;continue}if(c)break}if(s-=a,s>0)continue;a=Math.min(a,a+s+l);let d=[...r[0]][0].length,f=t.slice(0,i+r.index+d+a);if(Math.min(i,a)%2){let m=f.slice(1,-1);return{type:"em",raw:f,text:m,tokens:this.lexer.inlineTokens(m)}}let v=f.slice(2,-2);return{type:"strong",raw:f,text:v,tokens:this.lexer.inlineTokens(v)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let r=this.rules.inline.delLDelim.exec(t);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=this.rules.inline.delRDelim;for(l.lastIndex=0,e=e.slice(-1*t.length+i);(r=l.exec(e))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(a=[...o].length,a!==i))continue;if(r[3]||r[4]){s+=a;continue}if(s-=a,s>0)continue;a=Math.min(a,a+s);let u=[...r[0]][0].length,c=t.slice(0,i+r.index+u+a),h=c.slice(i,-i);return{type:"del",raw:c,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,r;return e[2]==="@"?(n=e[1],r="mailto:"+n):(n=e[1],r=n),{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,r;if(e[2]==="@")n=e[0],r="mailto:"+n;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);n=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},Ae=class co{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Rt,this.options.tokenizer=this.options.tokenizer||new Er,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:ye,block:_r.normal,inline:bn.normal};this.options.pedantic?(n.block=_r.pedantic,n.inline=bn.pedantic):this.options.gfm&&(n.block=_r.gfm,this.options.breaks?n.inline=bn.breaks:n.inline=bn.gfm),this.tokenizer.rules=n}static get rules(){return{block:_r,inline:bn}}static lex(e,n){return new co(n).lex(e)}static lexInline(e,n){return new co(n).inlineTokens(e)}lex(e){e=e.replace(ye.carriageReturn,`
|
|
54
|
-
`),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(ye.tabCharGlobal," ").replace(ye.spaceLine,""));let i=1/0;for(;e;){if(e.length<i)i=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let o;if(this.options.extensions?.block?.some(s=>(o=s.call({lexer:this},e,n))?(e=e.substring(o.raw.length),n.push(o),!0):!1))continue;if(o=this.tokenizer.space(e)){e=e.substring(o.raw.length);let s=n.at(-1);o.raw.length===1&&s!==void 0?s.raw+=`
|
|
55
|
-
`:n.push(o);continue}if(o=this.tokenizer.code(e)){e=e.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
56
|
-
`)?"":`
|
|
57
|
-
`)+o.raw,s.text+=`
|
|
58
|
-
`+o.text,this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(o=this.tokenizer.fences(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.heading(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.hr(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.blockquote(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.list(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.html(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.def(e)){e=e.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
59
|
-
`)?"":`
|
|
60
|
-
`)+o.raw,s.text+=`
|
|
61
|
-
`+o.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},n.push(o));continue}if(o=this.tokenizer.table(e)){e=e.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.lheading(e)){e=e.substring(o.raw.length),n.push(o);continue}let a=e;if(this.options.extensions?.startBlock){let s=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(c=>{u=c.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=e.substring(0,s+1))}if(this.state.top&&(o=this.tokenizer.paragraph(a))){let s=n.at(-1);r&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(`
|
|
62
|
-
`)?"":`
|
|
63
|
-
`)+o.raw,s.text+=`
|
|
64
|
-
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o),r=a.length!==e.length,e=e.substring(o.raw.length);continue}if(o=this.tokenizer.text(e)){e=e.substring(o.raw.length);let s=n.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
65
|
-
`)?"":`
|
|
66
|
-
`)+o.raw,s.text+=`
|
|
67
|
-
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){this.tokenizer.lexer=this;let r=e;if(this.tokens.links){let s=Object.keys(this.tokens.links);s.length>0&&(r=r.replace(this.tokenizer.rules.inline.reflinkSearch,l=>s.includes(l.slice(l.lastIndexOf("[")+1,-1))?"["+"a".repeat(l.length-2)+"]":l))}r=r.replace(this.tokenizer.rules.inline.anyPunctuation,s=>"+".repeat(s.length)),r=r.replace(this.tokenizer.rules.inline.blockSkip,(s,l,u)=>{let c=u?u.length:0;return s.slice(0,c)+"["+"a".repeat(s.length-c-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let i=!1,o="",a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=""),i=!1;let s;if(this.options.extensions?.inline?.some(u=>(s=u.call({lexer:this},e,n))?(e=e.substring(s.raw.length),n.push(s),!0):!1))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);let u=n.at(-1);s.type==="text"&&u?.type==="text"?(u.raw+=s.raw,u.text+=s.text):n.push(s);continue}if(s=this.tokenizer.emStrong(e,r,o)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.del(e,r,o)){e=e.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),n.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),n.push(s);continue}let l=e;if(this.options.extensions?.startInline){let u=1/0,c=e.slice(1),h;this.options.extensions.startInline.forEach(d=>{h=d.call({lexer:this},c),typeof h=="number"&&h>=0&&(u=Math.min(u,h))}),u<1/0&&u>=0&&(l=e.substring(0,u+1))}if(s=this.tokenizer.inlineText(l)){e=e.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(o=s.raw.slice(-1)),i=!0;let u=n.at(-1);u?.type==="text"?(u.raw+=s.raw,u.text+=s.text):n.push(s);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return n}infiniteLoopError(e){let n="Infinite loop on byte: "+e;if(this.options.silent)console.error(n);else throw new Error(n)}},Sr=class{options;parser;constructor(t){this.options=t||Rt}space(t){return""}code({text:t,lang:e,escaped:n}){let r=(e||"").match(ye.notSpaceStart)?.[0],i=t.replace(ye.endingNewline,"")+`
|
|
68
|
-
`;return r?'<pre><code class="language-'+Qe(r)+'">'+(n?i:Qe(i,!0))+`</code></pre>
|
|
69
|
-
`:"<pre><code>"+(n?i:Qe(i,!0))+`</code></pre>
|
|
70
|
-
`}blockquote({tokens:t}){return`<blockquote>
|
|
71
|
-
${this.parser.parse(t)}</blockquote>
|
|
72
|
-
`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
|
|
73
|
-
`}hr(t){return`<hr>
|
|
74
|
-
`}list(t){let e=t.ordered,n=t.start,r="";for(let a=0;a<t.items.length;a++){let s=t.items[a];r+=this.listitem(s)}let i=e?"ol":"ul",o=e&&n!==1?' start="'+n+'"':"";return"<"+i+o+`>
|
|
75
|
-
`+r+"</"+i+`>
|
|
76
|
-
`}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
|
|
77
|
-
`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
|
|
78
|
-
`}table(t){let e="",n="";for(let i=0;i<t.header.length;i++)n+=this.tablecell(t.header[i]);e+=this.tablerow({text:n});let r="";for(let i=0;i<t.rows.length;i++){let o=t.rows[i];n="";for(let a=0;a<o.length;a++)n+=this.tablecell(o[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
|
|
79
|
-
<thead>
|
|
80
|
-
`+e+`</thead>
|
|
81
|
-
`+r+`</table>
|
|
82
|
-
`}tablerow({text:t}){return`<tr>
|
|
83
|
-
${t}</tr>
|
|
84
|
-
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
|
|
85
|
-
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${Qe(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let r=this.parser.parseInline(n),i=Hl(t);if(i===null)return r;t=i;let o='<a href="'+t+'"';return e&&(o+=' title="'+Qe(e)+'"'),o+=">"+r+"</a>",o}image({href:t,title:e,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Hl(t);if(i===null)return Qe(n);t=i;let o=`<img src="${t}" alt="${Qe(n)}"`;return e&&(o+=` title="${Qe(e)}"`),o+=">",o}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:Qe(t.text)}},bo=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},Be=class ho{options;renderer;textRenderer;constructor(e){this.options=e||Rt,this.options.renderer=this.options.renderer||new Sr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new bo}static parse(e,n){return new ho(n).parse(e)}static parseInline(e,n){return new ho(n).parseInline(e)}parse(e){this.renderer.parser=this;let n="";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,s=this.options.extensions.renderers[a.type].call({parser:this},a);if(s!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(a.type)){n+=s||"";continue}}let o=i;switch(o.type){case"space":{n+=this.renderer.space(o);break}case"hr":{n+=this.renderer.hr(o);break}case"heading":{n+=this.renderer.heading(o);break}case"code":{n+=this.renderer.code(o);break}case"table":{n+=this.renderer.table(o);break}case"blockquote":{n+=this.renderer.blockquote(o);break}case"list":{n+=this.renderer.list(o);break}case"checkbox":{n+=this.renderer.checkbox(o);break}case"html":{n+=this.renderer.html(o);break}case"def":{n+=this.renderer.def(o);break}case"paragraph":{n+=this.renderer.paragraph(o);break}case"text":{n+=this.renderer.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(e,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<e.length;i++){let o=e[i];if(this.options.extensions?.renderers?.[o.type]){let s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(o.type)){r+=s||"";continue}}let a=o;switch(a.type){case"escape":{r+=n.text(a);break}case"html":{r+=n.html(a);break}case"link":{r+=n.link(a);break}case"image":{r+=n.image(a);break}case"checkbox":{r+=n.checkbox(a);break}case"strong":{r+=n.strong(a);break}case"em":{r+=n.em(a);break}case"codespan":{r+=n.codespan(a);break}case"br":{r+=n.br(a);break}case"del":{r+=n.del(a);break}case"text":{r+=n.text(a);break}default:{let s='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}},xn=class{options;block;constructor(t){this.options=t||Rt}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?Ae.lex:Ae.lexInline}provideParser(t=this.block){return t?Be.parse:Be.parseInline}},Ar=class{defaults=fo();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Be;Renderer=Sr;TextRenderer=bo;Lexer=Ae;Tokenizer=Er;Hooks=xn;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let r of t)switch(n=n.concat(e.call(this,r)),r.type){case"table":{let i=r;for(let o of i.header)n=n.concat(this.walkTokens(o.tokens,e));for(let o of i.rows)for(let a of o)n=n.concat(this.walkTokens(a.tokens,e));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,e));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(o=>{let a=i[o].flat(1/0);n=n.concat(this.walkTokens(a,e))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let o=e.renderers[i.name];o?e.renderers[i.name]=function(...a){let s=i.renderer.apply(this,a);return s===!1&&(s=o.apply(this,a)),s}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[i.level];o?o.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),r.extensions=e),n.renderer){let i=this.defaults.renderer||new Sr(this.defaults);for(let o in n.renderer){if(!(o in i))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let a=o,s=n.renderer[a],l=i[a];i[a]=(...u)=>{let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Er(this.defaults);for(let o in n.tokenizer){if(!(o in i))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let a=o,s=n.tokenizer[a],l=i[a];i[a]=(...u)=>{let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new xn;for(let o in n.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let a=o,s=n.hooks[a],l=i[a];xn.passThroughHooks.has(o)?i[a]=u=>{if(this.defaults.async&&xn.passThroughHooksRespectAsync.has(o))return(async()=>{let h=await s.call(i,u);return l.call(i,h)})();let c=s.call(i,u);return l.call(i,c)}:i[a]=(...u)=>{if(this.defaults.async)return(async()=>{let h=await s.apply(i,u);return h===!1&&(h=await l.apply(i,u)),h})();let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(a){let s=[];return s.push(o.call(this,a)),i&&(s=s.concat(i.call(this,a))),s}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Ae.lex(t,e??this.defaults)}parser(t,e){return Be.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=t),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(e):e,s=await(i.hooks?await i.hooks.provideLexer(t):t?Ae.lex:Ae.lexInline)(a,i),l=i.hooks?await i.hooks.processAllTokens(s):s;i.walkTokens&&await Promise.all(this.walkTokens(l,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(t):t?Be.parse:Be.parseInline)(l,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(o);try{i.hooks&&(e=i.hooks.preprocess(e));let a=(i.hooks?i.hooks.provideLexer(t):t?Ae.lex:Ae.lexInline)(e,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let s=(i.hooks?i.hooks.provideParser(t):t?Be.parse:Be.parseInline)(a,i);return i.hooks&&(s=i.hooks.postprocess(s)),s}catch(a){return o(a)}}}onError(t,e){return n=>{if(n.message+=`
|
|
86
|
-
Please report this to https://github.com/markedjs/marked.`,t){let r="<p>An error occurred:</p><pre>"+Qe(n.message+"",!0)+"</pre>";return e?Promise.resolve(r):r}if(e)return Promise.reject(n);throw n}}},At=new Ar;function Q(t,e){return At.parse(t,e)}Q.options=Q.setOptions=function(t){return At.setOptions(t),Q.defaults=At.defaults,Vl(Q.defaults),Q};Q.getDefaults=fo;Q.defaults=Rt;function im(...t){return At.use(...t),Q.defaults=At.defaults,Vl(Q.defaults),Q}Q.use=im;Q.walkTokens=function(t,e){return At.walkTokens(t,e)};Q.parseInline=At.parseInline;Q.Parser=Be;Q.parser=Be.parse;Q.Renderer=Sr;Q.TextRenderer=bo;Q.Lexer=Ae;Q.lexer=Ae.lex;Q.Tokenizer=Er;Q.Hooks=xn;Q.parse=Q;var Rk=Q.options,Ck=Q.setOptions,Lk=Q.walkTokens,Nk=Q.parseInline;var Dk=Be.parse,Ik=Ae.lex;function Ne(t){if(t.kind==="external"&&t.detail.url){let e=t.detail.url.replace(/^[a-z]+:\/\//,"").replace(/^[^@\/]+@/,"").replace(/\.git$/,"").replace(/\/+$/,"");if(e)return e}return t.kind==="package"&&t.detail.manifest?`${t.label} (${t.detail.manifest})`:t.label}function om(t){let e=new Map;for(let l of t.nodes)e.set(l.id,l);let n=new Map,r=new Map,i=new Set;for(let l of t.edges){if(l.kind==="contains"){let u=n.get(l.source);u?u.push(l.target):n.set(l.source,[l.target])}if(l.kind==="contains"||l.kind==="anchored-at"){let u=r.get(l.source);u?u.push(l.target):r.set(l.source,[l.target]),i.add(l.target)}}let o=l=>{if(!l.detail.path)return null;let u=l.detail.path,c=null,h=0,d=n.get("repository")??[];for(let f of d){let v=e.get(f);if(v&&v.kind==="module"&&v.detail.path){let m=v.detail.path;u.startsWith(m+"/")&&m.length>h&&(c=f,h=m.length)}}return c},a=new Map;for(let l of t.nodes){if(l.kind!=="entryPoint")continue;let u=o(l);if(u){let c=a.get(u);c?c.push(l.id):a.set(u,[l.id])}}let s=t.nodes.filter(l=>!i.has(l.id)).map(l=>l.id);return{byId:e,contains:n,tree:r,incoming:i,moduleEntries:a,roots:s}}function iu(t){let e=new Set;for(let n of t.edges)(n.kind==="contains"||n.kind==="anchored-at")&&e.add(n.target);return t.nodes.filter(n=>!e.has(n.id)).map(n=>n.id)}function am(t){return t==="gitState"||t==="external"||t==="package"||t==="entryPoint"}function nu(t){return t?t.kind==="module"||t.id.startsWith("vfolder:"):!1}function sm(t,e){return t.slice().sort((n,r)=>{let i=e.get(n),o=e.get(r),a=nu(i),s=nu(o);if(a!==s)return a?-1:1;let l=Ne(i),u=Ne(o);return l.localeCompare(u)})}function ru(t,e,n){let r=Number(t);return Number.isFinite(r)?{kind:"count",n:r,unit:e,phrasing:n}:{kind:"text",text:n==="attribute"?`${e}=${t}`:`${t} ${e}`}}function lm(t){switch(t.kind){case"note":return t.detail.updated?{kind:"relTime",iso:t.detail.updated}:null;case"module":return t.detail.files?ru(t.detail.files,"files","attribute"):null;case"gitState":return t.detail.commit?{kind:"commit",sha:t.detail.commit}:null;case"repository":return t.detail.files?ru(t.detail.files,"files","prose"):null;case"package":return t.detail.kind?{kind:"text",text:t.detail.kind}:null;case"entryPoint":return t.detail.summary?{kind:"text",text:"summary"}:null;default:return null}}function xo(t,e){let n=om(t),{byId:r,tree:i,moduleEntries:o,roots:a}=n,s=v=>{let w=(i.get(v)??[]).filter(y=>{let _=r.get(y);if(!_||_.kind!=="entryPoint")return!0;for(let[,k]of o)if(k.includes(y))return!1;return!0}).concat(o.get(v)??[]);return w=w.filter(y=>r.has(y)),e.showInternals||(w=w.filter(y=>{let _=r.get(y);return!(_&&am(_.kind))})),sm(w,r)},l=e.provFilter!==null||e.query.length>0,u=v=>!(e.provFilter!==null&&v.provenance!==e.provFilter||e.query.length>0&&!Ne(v).toLowerCase().includes(e.query.toLowerCase())),c=new Set,h=v=>{let m=r.get(v),g=!1;for(let y of s(v))h(y)&&(g=!0);let w=u(m)||g;return w&&c.add(v),w};for(let v of a)h(v);let d=[],f=(v,m)=>{if(!c.has(v))return;let g=r.get(v),w=s(v),y=w.filter(k=>c.has(k)),_=l?y.length>0:e.expanded.has(v);if(d.push({id:v,depth:m,hasKids:w.length>0,expanded:_,label:Ne(g),kind:g.kind,provenance:g.provenance,meta:lm(g)}),_)for(let k of y)f(k,m+1)};for(let v of a)f(v,0);return d}function _o(t){if(!t.nodes.find(i=>i.kind==="vault"))return null;let n=t.nodes.some(i=>i.kind==="note"),r=t.nodes.some(i=>i.kind==="repository");return!n&&!r?"no notes yet — add one with the weave_note tool":null}function En(t,e){if(!t)return"";let n=Date.parse(t);if(Number.isNaN(n))return"";let r=Math.max(0,Math.floor((e-n)/1e3));if(r<60)return"just now";let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let o=Math.floor(i/60);if(o<24)return`${o}h ago`;let a=Math.floor(o/24);if(a<30)return`${a}d ago`;let s=Math.floor(a/30);return s<12?`${s}mo ago`:`${Math.floor(s/12)}y ago`}var um=7;function ko(t,e){if(t===null)return"";switch(t.kind){case"relTime":return En(t.iso,e);case"count":return t.phrasing==="attribute"?`${t.unit}=${t.n}`:`${t.n} ${t.unit}`;case"commit":return t.sha.slice(0,um);case"text":return t.text}}var cm=["title","description","path","size","slug","source","updated","created","tags","files","languages","branch","commit","uncommitted changes","captured","manifest","kind","url","summarized files","summarized by","summarized at","summary","dangling links","link references","warning","stale","preview","root","notes","state"];function Eo(t,e){let n=new Map;for(let s of t.nodes)n.set(s.id,s);let r=n.get(e);if(!r)return null;let i=[];for(let s of cm){let l=r.detail[s];l===void 0||l===""||i.push({id:`meta:${s}`,label:s,value:l})}let o=[];for(let s of t.edges){if(s.source!==e)continue;let l=n.get(s.target);l&&o.push({id:`link:${s.kind}:${s.target}`,target:s.target,label:`${s.kind} → ${Ne(l)}`,kind:l.kind,provenance:l.provenance,direction:"link"})}let a=[];for(let s of t.edges){if(s.kind!=="links-to"||s.target!==e)continue;let l=n.get(s.source);l&&a.push({id:`backlink:${s.source}`,target:s.source,label:`← ${Ne(l)}`,kind:l.kind,provenance:l.provenance,direction:"backlink"})}return{id:e,label:Ne(r),kind:r.kind,provenance:r.provenance,meta:i,links:o,backlinks:a}}function Rr(t,e){let n=new Set([t]);for(let r of e)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}var dm=["contains","anchored-at"];function hm(t){return dm.includes(t)}function Cr(t,e){let n=new Map;for(let d of t.nodes)n.set(d.id,d);let r=fm(t,n),i=iu(t),o=new Set,a=d=>{if(!o.has(d)&&(o.add(d),!!e.has(d)))for(let f of r.get(d)??[])a(f)};for(let d of i)a(d);let s=new Map;for(let d of r.keys())s.set(d,pm(d,r));let l=new Map;for(let d of t.nodes)if(!(!o.has(d.id)||e.has(d.id)))for(let f of s.get(d.id)??[])!o.has(f)&&!l.has(f)&&l.set(f,d.id);for(let d of t.nodes)!o.has(d.id)&&!l.has(d.id)&&o.add(d.id);let u=new Map;for(let[d,f]of r){let v=s.get(d);u.set(d,{children:f,descendants:v,members:v.filter(m=>l.get(m)===d),provenance:gm(v,n),expanded:e.has(d)})}let c=new Set,h=[];for(let d of t.nodes)o.has(d.id)?h.push(d):c.add(d.id);return{nodes:h,edges:mm(t.edges,o,l),clusters:u,hidden:c,representative:l,roots:i}}function fm(t,e){let n=new Map;for(let r of t.edges){if(!hm(r.kind)||!e.has(r.source)||!e.has(r.target))continue;let i=n.get(r.source);i===void 0?n.set(r.source,[r.target]):i.includes(r.target)||i.push(r.target)}return n}function pm(t,e){let n=[],r=new Set([t]),i=o=>{for(let a of e.get(o)??[])r.has(a)||(r.add(a),n.push(a),i(a))};return i(t),n}function gm(t,e){let n={human:0,agent:0,generated:0,none:0};for(let r of t){let i=e.get(r)?.provenance??null;i===null?n.none++:n[i]++}return n}function mm(t,e,n){let r=a=>e.has(a)?a:n.get(a),i=[],o=new Set;for(let a of t){let s=r(a.source),l=r(a.target);if(s===void 0||l===void 0||s===l)continue;let u=`${s}\0${l}\0${a.kind}`;o.has(u)||(o.add(u),i.push({source:s,target:l,kind:a.kind}))}return i}function So(t){let e=new Map;for(let n of t){if(n.kind!=="links-to")continue;let r=e.get(n.target);r?r.push(n.source):e.set(n.target,[n.source])}return e}var Vt=[null,"human","agent","generated"];function ou(t=["vault","repository"]){return{expanded:new Set(t),showInternals:!1,provFilter:null,query:""}}function Ct(t){return{...t.model,danglingLinks:t.dangling}}function au(t,e){return t===null?[]:xo(Ct(t),e)}var jt="vfolder:\0draft";function su(t){return t.type==="vault"?"":t.type==="folder"?t.path:t.path.split("/").slice(0,-1).join("/")}function lu(t,e){let n=e.trim();return n===""?null:t===""?n:`${t}/${n}`}function uu(t,e){if(e===null)return[...t];let n={id:jt,depth:e===""?1:e.split("/").length+1,hasKids:!1,expanded:!1,label:"",kind:"module",provenance:null,meta:null};if(e==="")return[...t,n];let r=t.findIndex(o=>o.id===`vfolder:${e}`);if(r===-1)return[...t,n];let i=r+1;for(;i<t.length&&t[i].depth>t[r].depth;)i++;return[...t.slice(0,i),n,...t.slice(i)]}function Ro(t,e){let n=new Set(t.expanded);return n.delete(e)||n.add(e),{...t,expanded:n}}function Co(t,e){if(t.expanded.has(e))return t;let n=new Set(t.expanded);return n.add(e),{...t,expanded:n}}function vm(t,e){if(!t.expanded.has(e))return t;let n=new Set(t.expanded);return n.delete(e),{...t,expanded:n}}function Lo(t){return t==="vault"?null:t.startsWith("vfolder:")?t.slice(8):void 0}function Sn(t){return t==="vault"?{type:"vault",path:""}:t.startsWith("note:")?{type:"note",path:t.slice(5)}:t.startsWith("vfolder:")?{type:"folder",path:t.slice(8)}:null}function Nr(t,e){return t===null?!1:e.type==="note"?t===`note:${e.path}`:e.type==="folder"?t===`vfolder:${e.path}`||t.startsWith(`vfolder:${e.path}/`)||t.startsWith(`note:${e.path}/`):!1}function No(t){return t.type==="folder"}function cu(t,e,n){return No(t)?n?`Delete “${e}” and everything in it`:"Delete…":"Delete"}function du(t,e){return t.query===e?t:{...t,query:e}}function hu(t){let e=Vt.indexOf(t.provFilter),n=Vt[(e+1)%Vt.length]??null;return{...t,provFilter:n}}function fu(t){return{...t,showInternals:!t.showInternals}}function Dr(t,e){return e===null?-1:t.findIndex(n=>n.id===e)}function Ao(t,e){return t[e]?.id??null}function To(t,e,n){if(t.length===0)return null;let r=Dr(t,e),i=r===-1?n>0?-1:t.length:r;return Ao(t,Math.min(t.length-1,Math.max(0,i+n)))}function ym(t,e){let n=Dr(t,e),r=n<=0?void 0:t[n];if(r===void 0)return null;for(let i of t.slice(0,n).reverse())if(i.depth<r.depth)return i.id;return null}var wm={j:"ArrowDown",k:"ArrowUp"};function bm(t){return wm[t]??t}function pu(t,e,n,r,i=!1){let o={state:e,selectedId:n,handled:!1};if(i)return o;let a=h=>({state:e,selectedId:h,handled:!0}),s=bm(r);if(s==="ArrowDown")return a(To(t,n,1));if(s==="ArrowUp")return a(To(t,n,-1));if(s==="Home")return a(Ao(t,0));if(s==="End")return a(Ao(t,t.length-1));if(s!=="ArrowRight"&&s!=="ArrowLeft")return o;let l=Dr(t,n),u=l===-1?void 0:t[l];if(u===void 0||n===null)return o;if(s==="ArrowRight")return u.hasKids?u.expanded?a(To(t,n,1)):{state:Co(e,n),selectedId:n,handled:!0}:o;if(u.hasKids&&u.expanded)return{state:vm(e,n),selectedId:n,handled:!0};let c=ym(t,n);return c===null?o:a(c)}var xm={vault:"vault",note:"note",repository:"repository",module:"module",package:"package",entryPoint:"entryPoint",gitState:"gitState",external:"external",file:"file"};function Do(t){return xm[t]}var _m={human:"●",agent:"◐",generated:"○"};function Lt(t){return t===null?"":_m[t]}function qt(t){return t===null?"":`${t}-authored`}function gu(t){return`weave-row-${t.replace(/[^A-Za-z0-9_-]/g,"-")}`}function km(t){let e=t.map(()=>({posinset:1,setsize:1})),n=[],r=i=>{for(let o of n.splice(i+1))for(let[a,s]of o.entries())e[s]={posinset:a+1,setsize:o.length}};for(let[i,o]of t.entries()){r(o.depth);let a=n[o.depth];if(a===void 0){for(a=[];n.length<o.depth;)n.push([]);n.push(a)}a.push(i)}return r(-1),e}function Em(t,e,n,r={posinset:1,setsize:1}){let i=t.hasKids?t.expanded?"open":"closed":"leaf";return{id:t.id,domId:gu(t.id),posinset:r.posinset,setsize:r.setsize,depth:t.depth,label:t.label,kind:t.kind,kindIcon:Do(t.kind),provenance:t.provenance,provenanceGlyph:Lt(t.provenance),provenanceTitle:qt(t.provenance),twisty:i,hasKids:t.hasKids,expanded:t.expanded,selected:t.id===e,meta:ko(t.meta,n),level:t.depth+1}}function mu(t,e,n){let r=km(t);return t.map((i,o)=>Em(i,e,n,r[o]))}function vu(t,e){return Dr(t,e)===-1?null:gu(e)}function yu(t){return{"--weave-depth":String(Math.max(0,t))}}function Lr(t){return t===null?"all":t}function wu(t){let e=Vt.indexOf(t),n=Vt[(e+1)%Vt.length]??null;return`provenance filter: ${Lr(t)} — click for ${Lr(n)}`}function bu(t){return t?"internals":"knowledge"}function xu(t){return t?"showing git state, packages, externals and entry points — click to hide":"hiding git state, packages, externals and entry points — click to show"}var _u="filter…",ku="Vault and repository",Eu="Filter the tree",Su="Filter the tree (/)";function Tu(t,e,n){if(t===null)return"loading…";let r=_o(Ct(t));return r!==null?r:e.length>0?null:n.query.length>0||n.provFilter!==null?"nothing matches this filter — clear it to see the whole vault":"nothing to show"}function Au(t){return t.length===1?"1 row":`${t.length} rows`}var Cu={"&":"&","<":"<",">":">",'"':""","'":"'"},Sm=new RegExp(`[${Object.keys(Cu).join("")}]`,"g");function De(t){return t.replace(Sm,e=>Cu[e])}var Tm=["http:","https:","mailto:"],Lu=/^[a-z][a-z0-9+.-]*:/i,Nu=/[\u0000-\u0020\u00a0\u1680\u180e\u2000-\u2029\u205f\u3000]/g;function Ru(t){let e=t.replace(Nu,""),n=Lu.exec(e);return n===null?e===""?null:t:Tm.includes(n[0].toLowerCase())?t:null}var rt="data-weave-target",Yt="data-weave-task";function Gr(t){return t?"Mark task incomplete":"Mark task complete"}var Pr="note:",Am={bySpelling:new Map,hasGhosts:!1,currentSlug:null};function Rm(t){if(t.kind!=="note"||!t.id.startsWith(Pr))return null;let e=t.id.slice(Pr.length);return e===""?null:e}function Du(t){if(t.kind!=="file"||!t.id.startsWith("artifact:"))return null;let e=t.detail.path;return e!==void 0&&/\.html?$/i.test(e)?e:null}function Iu(t){let e=Du(t);return e===null?null:`${e}:${t.detail.updated??""}`}function Pu(t,e){if(t===null||e===null)return null;let n=t.model.nodes.find(r=>r.id===e);return n===void 0?null:Du(n)}function Mu(t,e){if(t===null)return Am;let n=new Map;for(let i of t.model.nodes){let o=Rm(i);if(o!==null)for(let a of[o,i.label])n.set(a,o),n.set(a.toLowerCase(),o)}let r=e!==null&&(t.dangling[e]?.length??0)>0;return{bySpelling:n,hasGhosts:r,currentSlug:e}}function Gu(t,e){let n=e.trim();return t.bySpelling.get(n)??t.bySpelling.get(n.toLowerCase())??null}function Cm(t,e){if(t.currentSlug===null||Lu.test(e.replace(Nu,"")))return null;try{let n=new URL(e,`https://weave.invalid/${t.currentSlug}.md`);return n.origin!=="https://weave.invalid"||!n.pathname.toLowerCase().endsWith(".md")?null:Gu(t,decodeURIComponent(n.pathname.slice(1,-3)))}catch{return null}}function Lm(t){return t.hasGhosts}var Nm=/^\[\[([^\][|]+)(?:\|([^\]]*))?\]\]/;function Dm(t){let e=t.indexOf("[[");return e===-1?void 0:e}function Im(t){return{name:"wikilink",level:"inline",start:Dm,tokenizer(e){return Mm(e)},renderer(e){return Pm(t,e)}}}function Pm(t,e){let n=typeof e.target=="string"?e.target:"",r=typeof e.alias=="string"?e.alias:"";return Gm(t,n,r)}function Mm(t){let e=Nm.exec(t);if(e!==null)return{type:"wikilink",raw:e[0],target:e[1],alias:e[2]??""}}function Gm(t,e,n){let r=De((n===""?e:n).trim());if(r==="")return"";let i=Gu(t,e);return i!==null?`<a class="weave-wiki" ${rt}="${De(i)}" role="link" tabindex="0" title="${De(e.trim())}">${r}</a>`:Lm(t)?`<span class="weave-wiki weave-wiki-ghost" title="no note named ${De(e.trim())}">${r}</span>`:r}function Fm(t){let e=0;return new Ar({gfm:!0,async:!1,extensions:[Im(t)],renderer:{checkbox({checked:n}){return`<input type="checkbox"${n?' checked=""':""} ${Yt}="${e++}" aria-label="${Gr(n)}"> `},html({text:n}){return/^\s*<!--[\s\S]*?-->\s*$/.test(n)?"":De(n)},link({href:n,title:r,tokens:i}){let o=Ru(n),a=this.parser.parseInline(i),s=o===null?null:Cm(t,o);if(s!==null){let u=r==null||r===""?"":` title="${De(r)}"`;return`<a class="weave-wiki" ${rt}="${De(s)}" role="link" tabindex="0"${u}>${a}</a>`}return`<a${[o===null?"":` href="${De(o)}"`,r==null||r===""?"":` title="${De(r)}"`,o===null?"":' rel="noreferrer noopener" target="_blank"'].join("")}>${a}</a>`},image({href:n,title:r,text:i}){let o=Ru(n);if(o===null)return De(i);let a=r==null||r===""?"":` title="${De(r)}"`;return`<img src="${De(o)}" alt="${De(i)}"${a}>`}}})}function Om(t,e){return Fm(e).parse(t,{async:!1})}function Ir(t){return Object.freeze(t)}var zm=Ir({ALLOWED_TAGS:Ir(["p","br","hr","h1","h2","h3","h4","h5","h6","em","strong","del","code","pre","blockquote","ul","ol","li","a","span","img","table","thead","tbody","tr","th","td","input"]),ALLOWED_ATTR:Ir(["href","src","alt","title","class","role","tabindex","colspan","rowspan","align","type","checked","aria-label","start",rt,Yt]),ADD_URI_SAFE_ATTR:Ir([rt,Yt]),ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1});function Fu(t,e,n){return t.sanitize(Om(e,n),zm)}var $m=/^((?: {0,3}>[ \t]?)*[ \t]*(?:[*+-]|\d{1,9}[.)])[ \t]+\[)([ xX])(\] +\S)/;function Um(t){let e=[],n=t.replace(/\r\n?/g,`
|
|
87
|
-
`),r=0;for(let l of Ae.lex(n,{gfm:!0})){let u=n.indexOf(l.raw,r);if(u===-1||(r=u+l.raw.length,l.type!=="list"&&l.type!=="blockquote"))continue;let c=0;for(;c<l.raw.length;){let h=l.raw.indexOf(`
|
|
88
|
-
`,c),d=h===-1?l.raw.length:h,f=l.raw.slice(c,d).replace(/\r$/,""),v=$m.exec(f);v!==null&&e.push(u+c+v[1].length),c=h===-1?l.raw.length:h+1}}let i=new Ar,o=l=>{let u=[];return i.walkTokens(Ae.lex(l,{gfm:!0}),c=>{c.type==="checkbox"&&u.push(c.checked)}),u},a=o(n),s=a.map(()=>null);for(let l of e){let u=`${n.slice(0,l)}${n[l]===" "?"x":" "}${n.slice(l+1)}`,c=o(u);if(c.length!==a.length)continue;let h=-1;for(let d=0;d<a.length;d+=1)if(c[d]!==a[d]){if(h!==-1){h=-1;break}h=d}h!==-1&&(s[h]=l)}return s.map(l=>{if(l===null)return null;let u=0,c=0;for(;c<l;)u+=t[u]==="\r"&&t[u+1]===`
|
|
89
|
-
`?2:1,c+=1;return u})}function Ou(t,e){if(!Number.isSafeInteger(e)||e<0)return null;let n=Um(t)[e];return n==null?null:`${t.slice(0,n)}${t[n]===" "?"x":" "}${t.slice(n+1)}`}function zu(t){let e=t?.getAttribute(Yt);return e==null||!/^(?:0|[1-9]\d*)$/.test(e)?null:Number(e)}var $u=32;function Io(t){let e=t;for(let n=0;e!==null&&n<$u;n++){let r=e.getAttribute(rt);if(r!==null&&r!=="")return`${Pr}${r}`;e=e.parentElement}return null}function Uu(t){if(!t||t.isCollapsed===!0)return!1;let e=t.toString;return(typeof e=="function"&&e!==Object.prototype.toString?e.call(t):"").length>0}var Hu="edited",Bu="created",Wu="Edit",Ku="Done",Vu="Save",ju="Saving…",qu="Note body",Fr="Discard unsaved changes to this note?";function Yu(t,e){return t!==e}function Xu(t,e){return t===e}function Zu(t,e){return e!==null&&e!==t}function Qu(t,e){return{title:t.title,slug:t.slug,provenance:t.source,provenanceGlyph:Lt(t.source),provenanceTitle:qt(t.source),updated:En(t.updated,e),updatedIso:t.updated,created:En(t.created,e),createdIso:t.created,tags:t.tags}}function Ju(t){return`#${t}`}var Hm=200,Bm=8,Wm="no note",Po="weave-preview";function Mo(t){let e=t;for(let n=0;e!==null&&n<$u;n++){let r=e.getAttribute(rt);if(r!==null&&r!=="")return{slug:r,text:(e.textContent??"").trim()};if((e.className??"").split(/\s+/).includes("weave-wiki-ghost"))return{slug:null,text:(e.textContent??"").trim()};e=e.parentElement}return null}function Km(t){return t.replace(/```[\s\S]*?(?:```|$)/g," ").replace(/~~~[\s\S]*?(?:~~~|$)/g," ").replace(/`([^`]*)`/g,"$1").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]*)(?:\|([^\]]*))?\]\]/g,(e,n,r)=>r??n).replace(/<[^>]*>/g," ").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}([-*_][ \t]?){3,}$/gm," ").replace(/^\s{0,3}[-*+]\s+/gm,"").replace(/^\s{0,3}\d+[.)]\s+/gm,"").replace(/[*_~]{1,3}([^*_~]*)[*_~]{1,3}/g,"$1").replace(/\s+/g," ").trim()}function Vm(t,e=Hm){let n=Km(t);if(n.length<=e)return n;let r=n.lastIndexOf(" ",e);return`${r>0?n.slice(0,r):n.slice(0,e)}…`}function ec(t,e){if(e.slug===null){let i=e.text===""?"this link":e.text;return{ghost:!0,title:i,kind:Wm,text:`no note named “${i}” yet`}}let n=t?.model.nodes.find(i=>i.id===`note:${e.slug}`&&i.kind==="note");if(n===void 0)return null;let r=n.provenance===null?n.kind:`${n.kind} · ${qt(n.provenance)}`;return{ghost:!1,title:n.label,kind:r,text:Vm(n.detail.preview??"")}}function tc(t,e,n,r,i,o,a=Bm){let s=t+a,l=e+a;return s+n>i-a&&(s=t-a-n),l+r>o-a&&(l=e-a-r),s=Math.min(Math.max(s,a),Math.max(a,i-a-n)),l=Math.min(Math.max(l,a),Math.max(a,o-a-r)),{x:s,y:l}}var Mr={anchor:null,pointerX:0,pointerY:0};function nc(t,e){switch(e.type){case"show":return e.anchor.slug===null&&e.anchor.text===""?t:{anchor:e.anchor,pointerX:e.x,pointerY:e.y};case"hide":return t.anchor===null?t:Mr;case"dismiss":return Mr}}function rc(t,e,n=!1){return e!==null?null:t===null?"Nothing open — search with ⌘K, or walk the tree with j and k.":n?"Couldn’t load this note — retrying…":t.startsWith(Pr)?"Loading…":"This node has no note body — see the context rail for what it connects to."}var ic="(prefers-color-scheme: light)";function Or(t){return t==null||typeof t.matchMedia!="function"?"dark":t.matchMedia(ic).matches?"light":"dark"}function oc(t,e){if(typeof t.matchMedia!="function")return()=>{};let n=t.matchMedia(ic);if(typeof n.addEventListener!="function")return()=>{};let r=()=>e(n.matches?"light":"dark");return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}function jm(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Dt(t){var e=jm(t,"string");return typeof e=="symbol"?e:e+""}function ce(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ac(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,Dt(r.key),r)}}function de(t,e,n){return e&&ac(t.prototype,e),n&&ac(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Nt(t){return Nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Nt(t)}function sc(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(sc=function(){return!!t})()}function qm(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ym(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return qm(t)}function ke(t,e,n){return e=Nt(e),Ym(t,sc()?Reflect.construct(e,n||[],Nt(t).constructor):e.apply(t,n))}function Go(t,e){return Go=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Go(t,e)}function Ee(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Go(t,e)}function Xm(t){if(Array.isArray(t))return t}function Zm(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function zr(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function $o(t,e){if(t){if(typeof t=="string")return zr(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zr(t,e):void 0}}function Qm(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
90
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ft(t,e){return Xm(t)||Zm(t,e)||$o(t,e)||Qm()}var Fo={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"};var lc=new Int8Array(4),Oo=new Int32Array(lc.buffer,0,1),Jm=new Float32Array(lc.buffer,0,1),ev=/^\s*rgba?\s*\(/,tv=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function nv(t){var e=0,n=0,r=0,i=1;if(t[0]==="#")t.length===4?(e=parseInt(t.charAt(1)+t.charAt(1),16),n=parseInt(t.charAt(2)+t.charAt(2),16),r=parseInt(t.charAt(3)+t.charAt(3),16)):(e=parseInt(t.charAt(1)+t.charAt(2),16),n=parseInt(t.charAt(3)+t.charAt(4),16),r=parseInt(t.charAt(5)+t.charAt(6),16)),t.length===9&&(i=parseInt(t.charAt(7)+t.charAt(8),16)/255);else if(ev.test(t)){var o=t.match(tv);o&&(e=+o[1],n=+o[2],r=+o[3],o[4]&&(i=+o[4]))}return{r:e,g:n,b:r,a:i}}var Xt={};for(Tn in Fo)Xt[Tn]=Zt(Fo[Tn]),Xt[Fo[Tn]]=Xt[Tn];var Tn;function uc(t,e,n,r,i){return Oo[0]=r<<24|n<<16|e<<8|t,i&&(Oo[0]=Oo[0]&4278190079),Jm[0]}function Zt(t){if(t=t.toLowerCase(),typeof Xt[t]<"u")return Xt[t];var e=nv(t),n=e.r,r=e.g,i=e.b,o=e.a;o=o*255|0;var a=uc(n,r,i,o,!0);return Xt[t]=a,a}var zo={};function Uo(t){if(typeof zo[t]<"u")return zo[t];var e=(t&16711680)>>>16,n=(t&65280)>>>8,r=t&255,i=255,o=uc(e,n,r,i,!0);return zo[t]=o,o}function Ho(t,e,n,r){return n+(e<<8)+(t<<16)}function Bo(t,e,n,r,i,o){var a=Math.floor(n/o*i),s=Math.floor(t.drawingBufferHeight/o-r/o*i),l=new Uint8Array(4);t.bindFramebuffer(t.FRAMEBUFFER,e),t.readPixels(a,s,1,1,t.RGBA,t.UNSIGNED_BYTE,l);var u=ft(l,4),c=u[0],h=u[1],d=u[2],f=u[3];return[c,h,d,f]}function S(t,e,n){return(e=Dt(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function cc(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function G(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?cc(Object(n),!0).forEach(function(r){S(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):cc(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function rv(t,e){for(;!{}.hasOwnProperty.call(t,e)&&(t=Nt(t))!==null;);return t}function Vo(){return Vo=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=rv(t,e);if(r){var i=Object.getOwnPropertyDescriptor(r,e);return i.get?i.get.call(arguments.length<3?t:n):i.value}},Vo.apply(null,arguments)}function vc(t,e,n,r){var i=Vo(Nt(1&r?t.prototype:t),e,n);return 2&r&&typeof i=="function"?function(o){return i.apply(n,o)}:i}function iv(t){return t.normalized?1:t.size}function Wo(t){var e=0;return t.forEach(function(n){return e+=iv(n)}),e}function yc(t,e,n){var r=t==="VERTEX"?e.VERTEX_SHADER:e.FRAGMENT_SHADER,i=e.createShader(r);if(i===null)throw new Error("loadShader: error while creating the shader");e.shaderSource(i,n),e.compileShader(i);var o=e.getShaderParameter(i,e.COMPILE_STATUS);if(!o){var a=e.getShaderInfoLog(i);throw e.deleteShader(i),new Error(`loadShader: error while compiling the shader:
|
|
21
|
+
"use strict";(()=>{var Af=Object.create;var Fs=Object.defineProperty;var Cf=Object.getOwnPropertyDescriptor;var Lf=Object.getOwnPropertyNames;var Nf=Object.getPrototypeOf,Pf=Object.prototype.hasOwnProperty;var $s=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Df=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Lf(t))!Pf.call(e,i)&&i!==n&&Fs(e,i,{get:()=>t[i],enumerable:!(r=Cf(t,i))||r.enumerable});return e};var $n=(e,t,n)=>(n=e!=null?Af(Nf(e)):{},Df(t||!e||!e.__esModule?Fs(n,"default",{value:e,enumerable:!0}):n,e));var di=$s((z0,La)=>{"use strict";var _n=typeof Reflect=="object"?Reflect:null,md=_n&&typeof _n.apply=="function"?_n.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},ui;_n&&typeof _n.ownKeys=="function"?ui=_n.ownKeys:Object.getOwnPropertySymbols?ui=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ui=function(t){return Object.getOwnPropertyNames(t)};function Av(e){console&&console.warn&&console.warn(e)}var yd=Number.isNaN||function(t){return t!==t};function te(){te.init.call(this)}La.exports=te;La.exports.once=Pv;te.EventEmitter=te;te.prototype._events=void 0;te.prototype._eventsCount=0;te.prototype._maxListeners=void 0;var vd=10;function ci(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(te,"defaultMaxListeners",{enumerable:!0,get:function(){return vd},set:function(e){if(typeof e!="number"||e<0||yd(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vd=e}});te.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};te.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||yd(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function wd(e){return e._maxListeners===void 0?te.defaultMaxListeners:e._maxListeners}te.prototype.getMaxListeners=function(){return wd(this)};te.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[t];if(l===void 0)return!1;if(typeof l=="function")md(l,this,n);else for(var u=l.length,c=Ed(l,u),r=0;r<u;++r)md(c[r],this,n);return!0};function bd(e,t,n,r){var i,o,a;if(ci(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),a===void 0)a=o[t]=n,++e._eventsCount;else if(typeof a=="function"?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),i=wd(e),i>0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,Av(s)}return e}te.prototype.addListener=function(t,n){return bd(this,t,n,!1)};te.prototype.on=te.prototype.addListener;te.prototype.prependListener=function(t,n){return bd(this,t,n,!0)};function Cv(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function xd(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=Cv.bind(r);return i.listener=n,r.wrapFn=i,i}te.prototype.once=function(t,n){return ci(n),this.on(t,xd(this,t,n)),this};te.prototype.prependOnceListener=function(t,n){return ci(n),this.prependListener(t,xd(this,t,n)),this};te.prototype.removeListener=function(t,n){var r,i,o,a,s;if(ci(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){s=r[a].listener,o=a;break}if(o<0)return this;o===0?r.shift():Lv(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this};te.prototype.off=te.prototype.removeListener;te.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),a;for(i=0;i<o.length;++i)a=o[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function kd(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Nv(i):Ed(i,i.length)}te.prototype.listeners=function(t){return kd(this,t,!0)};te.prototype.rawListeners=function(t){return kd(this,t,!1)};te.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):_d.call(e,t)};te.prototype.listenerCount=_d;function _d(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}te.prototype.eventNames=function(){return this._eventsCount>0?ui(this._events):[]};function Ed(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function Lv(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Nv(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function Pv(e,t){return new Promise(function(n,r){function i(a){e.removeListener(t,o),r(a)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}Sd(e,t,o,{once:!0}),t!=="error"&&Dv(e,i,{once:!0})})}function Dv(e,t,n){typeof e.on=="function"&&Sd(e,"error",t,n)}function Sd(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Na=$s((U0,Rd)=>{"use strict";Rd.exports=function(t){return t!==null&&typeof t=="object"&&typeof t.addUndirectedEdgeWithKey=="function"&&typeof t.dropNode=="function"&&typeof t.multi=="boolean"}});var Ir,ee,Bs,If,Nt,zs,Ks,Vs,lo,Ar,zn,js,ho,uo,co,Mf,Nr={},Pr=[],Gf=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Mr=Array.isArray;function vt(e,t){for(var n in t)e[n]=t[n];return e}function po(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Of(e,t,n){var r,i,o,a={};for(o in t)o=="key"?r=t[o]:o=="ref"?i=t[o]:a[o]=t[o];if(arguments.length>2&&(a.children=arguments.length>3?Ir.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)a[o]===void 0&&(a[o]=e.defaultProps[o]);return Cr(e,a,r,i,null)}function Cr(e,t,n,r,i){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Bs,__i:-1,__u:0};return i==null&&ee.vnode!=null&&ee.vnode(o),o}function De(e){return e.children}function Lr(e,t){this.props=e,this.context=t}function Wt(e,t){if(t==null)return e.__?Wt(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?Wt(e):null}function Ff(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],i=[],o=vt({},t);o.__v=t.__v+1,ee.vnode&&ee.vnode(o),fo(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??Wt(t),!!(32&t.__u),i),o.__v=t.__v,o.__.__k[o.__i]=o,Qs(r,o,i),t.__e=t.__=null,o.__e!=n&&qs(o)}}function qs(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),qs(e)}function Ws(e){(!e.__d&&(e.__d=!0)&&Nt.push(e)&&!Dr.__r++||zs!=ee.debounceRendering)&&((zs=ee.debounceRendering)||Ks)(Dr)}function Dr(){try{for(var e,t=1;Nt.length;)Nt.length>t&&Nt.sort(Vs),e=Nt.shift(),t=Nt.length,Ff(e)}finally{Nt.length=Dr.__r=0}}function Ys(e,t,n,r,i,o,a,s,l,u,c){var h,d,p,m,w,v,b=r&&r.__k||Pr,y=t.length;for(l=$f(n,t,b,l,y),h=0;h<y;h++)(p=n.__k[h])!=null&&(d=p.__i!=-1&&b[p.__i]||Nr,p.__i=h,v=fo(e,p,d,i,o,a,s,l,u,c),m=p.__e,p.ref&&d.ref!=p.ref&&(d.ref&&go(d.ref,null,p),c.push(p.ref,p.__c||m,p)),w==null&&m!=null&&(w=m),4&p.__u?(l=Xs(p,l,e),d.__e&&(d.__e=null)):typeof p.type=="function"&&v!==void 0?l=v:m&&(l=m.nextSibling),p.__u&=-7);return n.__e=w,l}function $f(e,t,n,r,i){var o,a,s,l,u,c=n.length,h=c,d=0;for(e.__k=new Array(i),o=0;o<i;o++)(a=t[o])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=e.__k[o]=Cr(null,a,null,null,null):Mr(a)?a=e.__k[o]=Cr(De,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=e.__k[o]=Cr(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):e.__k[o]=a,l=o+d,a.__=e,a.__b=e.__b+1,s=null,(u=a.__i=zf(a,n,l,h))!=-1&&(h--,(s=n[u])&&(s.__u|=2)),s==null||s.__v==null?(u==-1&&(i>c?d--:i<c&&d++),typeof a.type!="function"&&(a.__u|=4)):u!=l&&(u==l-1?d--:u==l+1?d++:(u>l?d--:d++,a.__u|=4))):e.__k[o]=null;if(h)for(o=0;o<c;o++)(s=n[o])!=null&&(2&s.__u)==0&&(s.__e==r&&(r=Wt(s)),el(s,s));return r}function Xs(e,t,n){var r,i;if(typeof e.type=="function"){for(r=e.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=e,t=Xs(r[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=Wt(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function zf(e,t,n,r){var i,o,a,s=e.key,l=e.type,u=t[n],c=u!=null&&(2&u.__u)==0;if(u===null&&s==null||c&&s==u.key&&l==u.type)return n;if(r>(c?1:0)){for(i=n-1,o=n+1;i>=0||o<t.length;)if((u=t[a=i>=0?i--:o++])!=null&&(2&u.__u)==0&&s==u.key&&l==u.type)return a}return-1}function Hs(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Gf.test(t)?n:n+"px"}function Rr(e,t,n,r,i){var o,a;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Hs(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Hs(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(js,"$1")),a=t.toLowerCase(),t=a in e||t=="onFocusOut"||t=="onFocusIn"?a.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r?n[zn]=r[zn]:(n[zn]=ho,e.addEventListener(t,o?co:uo,o)):e.removeEventListener(t,o?co:uo,o);else{if(i=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Us(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[Ar]==null)t[Ar]=ho++;else if(t[Ar]<n[zn])return;return n(ee.event?ee.event(t):t)}}}function fo(e,t,n,r,i,o,a,s,l,u){var c,h,d,p,m,w,v,b,y,x,k,N,A,P,F,T,C=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[s=t.__e=n.__e]),(c=ee.__b)&&c(t);e:if(typeof C=="function"){h=a.length;try{if(y=t.props,x=C.prototype&&C.prototype.render,k=(c=C.contextType)&&r[c.__c],N=c?k?k.props.value:c.__:r,n.__c?b=(d=t.__c=n.__c).__=d.__E:(x?t.__c=d=new C(y,N):(t.__c=d=new Lr(y,N),d.constructor=C,d.render=Hf),k&&k.sub(d),d.state||(d.state={}),d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),x&&d.__s==null&&(d.__s=d.state),x&&C.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=vt({},d.__s)),vt(d.__s,C.getDerivedStateFromProps(y,d.__s))),m=d.props,w=d.state,d.__v=t,p)x&&C.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),x&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(x&&C.getDerivedStateFromProps==null&&y!==m&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(y,N),t.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(y,d.__s,N)===!1){t.__v!=n.__v&&(d.props=y,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(W){W&&(W.__=t)}),Pr.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d),s=Wt(n);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(y,d.__s,N),x&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(m,w,v)})}if(d.context=N,d.props=y,d.__P=e,d.__e=!1,A=ee.__r,P=0,x)d.state=d.__s,d.__d=!1,A&&A(t),c=d.render(d.props,d.state,d.context),Pr.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,A&&A(t),c=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++P<25);d.state=d.__s,d.getChildContext!=null&&(r=vt(vt({},r),d.getChildContext())),x&&!p&&d.getSnapshotBeforeUpdate!=null&&(v=d.getSnapshotBeforeUpdate(m,w)),F=c!=null&&c.type===De&&c.key==null?Js(c.props.children):c,s=Ys(e,Mr(F)?F:[F],t,n,r,i,o,a,s,l,u),d.base=t.__e,t.__u&=-161,d.__h.length&&a.push(d),b&&(d.__E=d.__=null)}catch(W){if(a.length=h,t.__v=null,l||o!=null){if(W.then){for(t.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;o!=null&&(o[o.indexOf(s)]=null),t.__e=s}else if(o!=null)for(T=o.length;T--;)po(o[T])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),W.then||Zs(t),ee.__e(W,t,n)}}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=Wf(n.__e,t,n,r,i,o,a,l,u);return(c=ee.diffed)&&c(t),128&t.__u?void 0:s}function Zs(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Zs))}function Qs(e,t,n){for(var r=0;r<n.length;r++)go(n[r],n[++r],n[++r]);ee.__c&&ee.__c(t,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(o){o.call(i)})}catch(o){ee.__e(o,i.__v)}})}function Js(e){return typeof e!="object"||e==null||e.__b>0?e:Mr(e)?e.map(Js):e.constructor!==void 0?null:vt({},e)}function Wf(e,t,n,r,i,o,a,s,l){var u,c,h,d,p,m,w,v=n.props||Nr,b=t.props,y=t.type;if(y=="svg"?i="http://www.w3.org/2000/svg":y=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(u=0;u<o.length;u++)if((p=o[u])&&"setAttribute"in p==!!y&&(y?p.localName==y:p.nodeType==3)){e=p,o[u]=null;break}}if(e==null){if(y==null)return document.createTextNode(b);e=document.createElementNS(i,y,b.is&&b),s&&(ee.__m&&ee.__m(t,o),s=!1),o=null}if(y==null)v===b||s&&e.data==b||(e.data=b);else{if(o=y=="textarea"&&b.defaultValue!=null?null:o&&Ir.call(e.childNodes),!s&&o!=null)for(v={},u=0;u<e.attributes.length;u++)v[(p=e.attributes[u]).name]=p.value;for(u in v)p=v[u],u=="dangerouslySetInnerHTML"?h=p:u=="children"||u in b||u=="value"&&"defaultValue"in b||u=="checked"&&"defaultChecked"in b||Rr(e,u,null,p,i);for(u in b)p=b[u],u=="children"?d=p:u=="dangerouslySetInnerHTML"?c=p:u=="value"?m=p:u=="checked"?w=p:s&&typeof p!="function"||v[u]===p||Rr(e,u,p,v[u],i);if(c)s||h&&(c.__html==h.__html||c.__html==e.innerHTML)||(e.innerHTML=c.__html),t.__k=[];else if(h&&(e.innerHTML=""),Ys(t.type=="template"?e.content:e,Mr(d)?d:[d],t,n,r,y=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&Wt(n,0),s,l),o!=null)for(u=o.length;u--;)po(o[u]);s&&y!="textarea"||(u="value",y=="progress"&&m==null?e.removeAttribute("value"):m!=null&&(m!==e[u]||y=="progress"&&!m||y=="option"&&m!=v[u])&&Rr(e,u,m,v[u],i),u="checked",w!=null&&w!=e[u]&&Rr(e,u,w,v[u],i))}return e}function go(e,t,n){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(i){ee.__e(i,n)}}function el(e,t,n){var r,i;if(ee.unmount&&ee.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||go(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){ee.__e(o,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&el(r[i],t,n||typeof e.type!="function");n||po(e.__e),e.__c=e.__=e.__e=void 0}function Hf(e,t,n){return this.constructor(e,n)}function tl(e,t,n){var r,i,o,a;t==document&&(t=document.documentElement),ee.__&&ee.__(e,t),i=(r=typeof n=="function")?null:n&&n.__k||t.__k,o=[],a=[],fo(t,e=(!r&&n||t).__k=Of(De,null,[e]),i||Nr,Nr,t.namespaceURI,!r&&n?[n]:i?null:t.firstChild?Ir.call(t.childNodes):null,o,!r&&n?n:i?i.__e:t.firstChild,r,a),Qs(o,e,a),e.props.children=null}Ir=Pr.slice,ee={__e:function(e,t,n,r){for(var i,o,a;t=t.__;)if((i=t.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(e)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),a=i.__d),a)return i.__E=i}catch(s){e=s}throw e}},Bs=0,If=function(e){return e!=null&&e.constructor===void 0},Lr.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=vt({},this.state),typeof e=="function"&&(e=e(vt({},n),this.props)),e&&vt(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ws(this))},Lr.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ws(this))},Lr.prototype.render=De,Nt=[],Ks=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Vs=function(e,t){return e.__v.__b-t.__v.__b},Dr.__r=0,lo=Math.random().toString(8),Ar="__d"+lo,zn="__a"+lo,js=/(PointerCapture)$|Capture$/i,ho=0,uo=Us(!1),co=Us(!0),Mf=0;var nl="weave-bootstrap";var mo={cwd:""};function Uf(e){return typeof e!="object"||e===null?!1:typeof e.cwd=="string"}function rl(e){if(e===null||e.trim()==="")return mo;let t;try{t=JSON.parse(e)}catch{return mo}return Uf(t)?t:mo}function il(e){let t=+this._x.call(null,e),n=+this._y.call(null,e);return ol(this.cover(t,n),t,n,e)}function ol(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,o=e._root,a={data:r},s=e._x0,l=e._y0,u=e._x1,c=e._y1,h,d,p,m,w,v,b,y;if(!o)return e._root=a,e;for(;o.length;)if((w=t>=(h=(s+u)/2))?s=h:u=h,(v=n>=(d=(l+c)/2))?l=d:c=d,i=o,!(o=o[b=v<<1|w]))return i[b]=a,e;if(p=+e._x.call(null,o.data),m=+e._y.call(null,o.data),t===p&&n===m)return a.next=o,i?i[b]=a:e._root=a,e;do i=i?i[b]=new Array(4):e._root=new Array(4),(w=t>=(h=(s+u)/2))?s=h:u=h,(v=n>=(d=(l+c)/2))?l=d:c=d;while((b=v<<1|w)===(y=(m>=d)<<1|p>=h));return i[y]=o,i[b]=a,e}function al(e){var t,n,r=e.length,i,o,a=new Array(r),s=new Array(r),l=1/0,u=1/0,c=-1/0,h=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=i,s[n]=o,i<l&&(l=i),i>c&&(c=i),o<u&&(u=o),o>h&&(h=o));if(l>c||u>h)return this;for(this.cover(l,u).cover(c,h),n=0;n<r;++n)ol(this,a[n],s[n],e[n]);return this}function sl(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,o=(r=Math.floor(t))+1;else{for(var a=i-n||1,s=this._root,l,u;n>e||e>=i||r>t||t>=o;)switch(u=(t<r)<<1|e<n,l=new Array(4),l[u]=s,s=l,a*=2,u){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function ll(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function ul(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function xe(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function cl(e,t,n){var r,i=this._x0,o=this._y0,a,s,l,u,c=this._x1,h=this._y1,d=[],p=this._root,m,w;for(p&&d.push(new xe(p,i,o,c,h)),n==null?n=1/0:(i=e-n,o=t-n,c=e+n,h=t+n,n*=n);m=d.pop();)if(!(!(p=m.node)||(a=m.x0)>c||(s=m.y0)>h||(l=m.x1)<i||(u=m.y1)<o))if(p.length){var v=(a+l)/2,b=(s+u)/2;d.push(new xe(p[3],v,b,l,u),new xe(p[2],a,b,v,u),new xe(p[1],v,s,l,b),new xe(p[0],a,s,v,b)),(w=(t>=b)<<1|e>=v)&&(m=d[d.length-1],d[d.length-1]=d[d.length-1-w],d[d.length-1-w]=m)}else{var y=e-+this._x.call(null,p.data),x=t-+this._y.call(null,p.data),k=y*y+x*x;if(k<n){var N=Math.sqrt(n=k);i=e-N,o=t-N,c=e+N,h=t+N,r=p.data}}return r}function dl(e){if(isNaN(c=+this._x.call(null,e))||isNaN(h=+this._y.call(null,e)))return this;var t,n=this._root,r,i,o,a=this._x0,s=this._y0,l=this._x1,u=this._y1,c,h,d,p,m,w,v,b;if(!n)return this;if(n.length)for(;;){if((m=c>=(d=(a+l)/2))?a=d:l=d,(w=h>=(p=(s+u)/2))?s=p:u=p,t=n,!(n=n[v=w<<1|m]))return this;if(!n.length)break;(t[v+1&3]||t[v+2&3]||t[v+3&3])&&(r=t,b=v)}for(;n.data!==e;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):t?(o?t[v]=o:delete t[v],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(r?r[b]=n:this._root=n),this):(this._root=o,this)}function hl(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function pl(){return this._root}function fl(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function gl(e){var t=[],n,r=this._root,i,o,a,s,l;for(r&&t.push(new xe(r,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(r=n.node,o=n.x0,a=n.y0,s=n.x1,l=n.y1)&&r.length){var u=(o+s)/2,c=(a+l)/2;(i=r[3])&&t.push(new xe(i,u,c,s,l)),(i=r[2])&&t.push(new xe(i,o,c,u,l)),(i=r[1])&&t.push(new xe(i,u,a,s,c)),(i=r[0])&&t.push(new xe(i,o,a,u,c))}return this}function ml(e){var t=[],n=[],r;for(this._root&&t.push(new xe(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,l=r.x1,u=r.y1,c=(a+l)/2,h=(s+u)/2;(o=i[0])&&t.push(new xe(o,a,s,c,h)),(o=i[1])&&t.push(new xe(o,c,s,l,h)),(o=i[2])&&t.push(new xe(o,a,h,c,u)),(o=i[3])&&t.push(new xe(o,c,h,l,u))}n.push(r)}for(;r=n.pop();)e(r.node,r.x0,r.y0,r.x1,r.y1);return this}function vl(e){return e[0]}function yl(e){return arguments.length?(this._x=e,this):this._x}function wl(e){return e[1]}function bl(e){return arguments.length?(this._y=e,this):this._y}function Ht(e,t,n){var r=new vo(t??vl,n??wl,NaN,NaN,NaN,NaN);return e==null?r:r.addAll(e)}function vo(e,t,n,r,i,o){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function xl(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Ie=Ht.prototype=vo.prototype;Ie.copy=function(){var e=new vo(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,r;if(!t)return e;if(!t.length)return e._root=xl(t),e;for(n=[{source:t,target:e._root=new Array(4)}];t=n.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?n.push({source:r,target:t.target[i]=new Array(4)}):t.target[i]=xl(r));return e};Ie.add=il;Ie.addAll=al;Ie.cover=sl;Ie.data=ll;Ie.extent=ul;Ie.find=cl;Ie.remove=dl;Ie.removeAll=hl;Ie.root=pl;Ie.size=fl;Ie.visit=gl;Ie.visitAfter=ml;Ie.x=yl;Ie.y=bl;function fe(e){return function(){return e}}function it(e){return(e()-.5)*1e-6}function Bf(e){return e.x+e.vx}function Kf(e){return e.y+e.vy}function yo(e){var t,n,r,i=1,o=1;typeof e!="function"&&(e=fe(e==null?1:+e));function a(){for(var u,c=t.length,h,d,p,m,w,v,b=0;b<o;++b)for(h=Ht(t,Bf,Kf).visitAfter(s),u=0;u<c;++u)d=t[u],w=n[d.index],v=w*w,p=d.x+d.vx,m=d.y+d.vy,h.visit(y);function y(x,k,N,A,P){var F=x.data,T=x.r,C=w+T;if(F){if(F.index>d.index){var W=p-F.x-F.vx,j=m-F.y-F.vy,Y=W*W+j*j;Y<C*C&&(W===0&&(W=it(r),Y+=W*W),j===0&&(j=it(r),Y+=j*j),Y=(C-(Y=Math.sqrt(Y)))/Y*i,d.vx+=(W*=Y)*(C=(T*=T)/(v+T)),d.vy+=(j*=Y)*C,F.vx-=W*(C=1-C),F.vy-=j*C)}return}return k>p+C||A<p-C||N>m+C||P<m-C}}function s(u){if(u.data)return u.r=n[u.data.index];for(var c=u.r=0;c<4;++c)u[c]&&u[c].r>u.r&&(u.r=u[c].r)}function l(){if(t){var u,c=t.length,h;for(n=new Array(c),u=0;u<c;++u)h=t[u],n[h.index]=+e(h,u,t)}}return a.initialize=function(u,c){t=u,r=c,l()},a.iterations=function(u){return arguments.length?(o=+u,a):o},a.strength=function(u){return arguments.length?(i=+u,a):i},a.radius=function(u){return arguments.length?(e=typeof u=="function"?u:fe(+u),l(),a):e},a}function Vf(e){return e.index}function kl(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function wo(e){var t=Vf,n=h,r,i=fe(30),o,a,s,l,u,c=1;e==null&&(e=[]);function h(v){return 1/Math.min(s[v.source.index],s[v.target.index])}function d(v){for(var b=0,y=e.length;b<c;++b)for(var x=0,k,N,A,P,F,T,C;x<y;++x)k=e[x],N=k.source,A=k.target,P=A.x+A.vx-N.x-N.vx||it(u),F=A.y+A.vy-N.y-N.vy||it(u),T=Math.sqrt(P*P+F*F),T=(T-o[x])/T*v*r[x],P*=T,F*=T,A.vx-=P*(C=l[x]),A.vy-=F*C,N.vx+=P*(C=1-C),N.vy+=F*C}function p(){if(a){var v,b=a.length,y=e.length,x=new Map(a.map((N,A)=>[t(N,A,a),N])),k;for(v=0,s=new Array(b);v<y;++v)k=e[v],k.index=v,typeof k.source!="object"&&(k.source=kl(x,k.source)),typeof k.target!="object"&&(k.target=kl(x,k.target)),s[k.source.index]=(s[k.source.index]||0)+1,s[k.target.index]=(s[k.target.index]||0)+1;for(v=0,l=new Array(y);v<y;++v)k=e[v],l[v]=s[k.source.index]/(s[k.source.index]+s[k.target.index]);r=new Array(y),m(),o=new Array(y),w()}}function m(){if(a)for(var v=0,b=e.length;v<b;++v)r[v]=+n(e[v],v,e)}function w(){if(a)for(var v=0,b=e.length;v<b;++v)o[v]=+i(e[v],v,e)}return d.initialize=function(v,b){a=v,u=b,p()},d.links=function(v){return arguments.length?(e=v,p(),d):e},d.id=function(v){return arguments.length?(t=v,d):t},d.iterations=function(v){return arguments.length?(c=+v,d):c},d.strength=function(v){return arguments.length?(n=typeof v=="function"?v:fe(+v),m(),d):n},d.distance=function(v){return arguments.length?(i=typeof v=="function"?v:fe(+v),w(),d):i},d}var jf={value:()=>{}};function El(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Gr(n)}function Gr(e){this._=e}function qf(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Gr.prototype=El.prototype={constructor:Gr,on:function(e,t){var n=this._,r=qf(e+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(e=r[o]).type)&&(i=Yf(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<a;)if(i=(e=r[o]).type)n[i]=_l(n[i],e.name,t);else if(t==null)for(i in n)n[i]=_l(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Gr(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,o=r.length;i<o;++i)r[i].value.apply(t,n)}};function Yf(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function _l(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=jf,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var bo=El;var pn=0,Hn=0,Wn=0,Tl=1e3,Or,Un,Fr=0,Ut=0,$r=0,Bn=typeof performance=="object"&&performance.now?performance:Date,Rl=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function _o(){return Ut||(Rl(Xf),Ut=Bn.now()+$r)}function Xf(){Ut=0}function xo(){this._call=this._time=this._next=null}xo.prototype=zr.prototype={constructor:xo,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?_o():+n)+(t==null?0:+t),!this._next&&Un!==this&&(Un?Un._next=this:Or=this,Un=this),this._call=e,this._time=n,ko()},stop:function(){this._call&&(this._call=null,this._time=1/0,ko())}};function zr(e,t,n){var r=new xo;return r.restart(e,t,n),r}function Al(){_o(),++pn;for(var e=Or,t;e;)(t=Ut-e._time)>=0&&e._call.call(void 0,t),e=e._next;--pn}function Sl(){Ut=(Fr=Bn.now())+$r,pn=Hn=0;try{Al()}finally{pn=0,Qf(),Ut=0}}function Zf(){var e=Bn.now(),t=e-Fr;t>Tl&&($r-=t,Fr=e)}function Qf(){for(var e,t=Or,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Or=n);Un=e,ko(r)}function ko(e){if(!pn){Hn&&(Hn=clearTimeout(Hn));var t=e-Ut;t>24?(e<1/0&&(Hn=setTimeout(Sl,e-Bn.now()-$r)),Wn&&(Wn=clearInterval(Wn))):(Wn||(Fr=Bn.now(),Wn=setInterval(Zf,Tl)),pn=1,Rl(Sl))}}function Cl(){let e=1;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function Ll(e){return e.x}function Nl(e){return e.y}var Jf=10,eg=Math.PI*(3-Math.sqrt(5));function Eo(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,l=zr(h),u=bo("tick","end"),c=Cl();e==null&&(e=[]);function h(){d(),u.call("tick",t),n<r&&(l.stop(),u.call("end",t))}function d(w){var v,b=e.length,y;w===void 0&&(w=1);for(var x=0;x<w;++x)for(n+=(o-n)*i,s.forEach(function(k){k(n)}),v=0;v<b;++v)y=e[v],y.fx==null?y.x+=y.vx*=a:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=a:(y.y=y.fy,y.vy=0);return t}function p(){for(var w=0,v=e.length,b;w<v;++w){if(b=e[w],b.index=w,b.fx!=null&&(b.x=b.fx),b.fy!=null&&(b.y=b.fy),isNaN(b.x)||isNaN(b.y)){var y=Jf*Math.sqrt(.5+w),x=w*eg;b.x=y*Math.cos(x),b.y=y*Math.sin(x)}(isNaN(b.vx)||isNaN(b.vy))&&(b.vx=b.vy=0)}}function m(w){return w.initialize&&w.initialize(e,c),w}return p(),t={tick:d,restart:function(){return l.restart(h),t},stop:function(){return l.stop(),t},nodes:function(w){return arguments.length?(e=w,p(),s.forEach(m),t):e},alpha:function(w){return arguments.length?(n=+w,t):n},alphaMin:function(w){return arguments.length?(r=+w,t):r},alphaDecay:function(w){return arguments.length?(i=+w,t):+i},alphaTarget:function(w){return arguments.length?(o=+w,t):o},velocityDecay:function(w){return arguments.length?(a=1-w,t):1-a},randomSource:function(w){return arguments.length?(c=w,s.forEach(m),t):c},force:function(w,v){return arguments.length>1?(v==null?s.delete(w):s.set(w,m(v)),t):s.get(w)},find:function(w,v,b){var y=0,x=e.length,k,N,A,P,F;for(b==null?b=1/0:b*=b,y=0;y<x;++y)P=e[y],k=w-P.x,N=v-P.y,A=k*k+N*N,A<b&&(F=P,b=A);return F},on:function(w,v){return arguments.length>1?(u.on(w,v),t):u.on(w)}}}function So(){var e,t,n,r,i=fe(-30),o,a=1,s=1/0,l=.81;function u(p){var m,w=e.length,v=Ht(e,Ll,Nl).visitAfter(h);for(r=p,m=0;m<w;++m)t=e[m],v.visit(d)}function c(){if(e){var p,m=e.length,w;for(o=new Array(m),p=0;p<m;++p)w=e[p],o[w.index]=+i(w,p,e)}}function h(p){var m=0,w,v,b=0,y,x,k;if(p.length){for(y=x=k=0;k<4;++k)(w=p[k])&&(v=Math.abs(w.value))&&(m+=w.value,b+=v,y+=v*w.x,x+=v*w.y);p.x=y/b,p.y=x/b}else{w=p,w.x=w.data.x,w.y=w.data.y;do m+=o[w.data.index];while(w=w.next)}p.value=m}function d(p,m,w,v){if(!p.value)return!0;var b=p.x-t.x,y=p.y-t.y,x=v-m,k=b*b+y*y;if(x*x/l<k)return k<s&&(b===0&&(b=it(n),k+=b*b),y===0&&(y=it(n),k+=y*y),k<a&&(k=Math.sqrt(a*k)),t.vx+=b*p.value*r/k,t.vy+=y*p.value*r/k),!0;if(p.length||k>=s)return;(p.data!==t||p.next)&&(b===0&&(b=it(n),k+=b*b),y===0&&(y=it(n),k+=y*y),k<a&&(k=Math.sqrt(a*k)));do p.data!==t&&(x=o[p.data.index]*r/k,t.vx+=b*x,t.vy+=y*x);while(p=p.next)}return u.initialize=function(p,m){e=p,n=m,c()},u.strength=function(p){return arguments.length?(i=typeof p=="function"?p:fe(+p),c(),u):i},u.distanceMin=function(p){return arguments.length?(a=p*p,u):Math.sqrt(a)},u.distanceMax=function(p){return arguments.length?(s=p*p,u):Math.sqrt(s)},u.theta=function(p){return arguments.length?(l=p*p,u):Math.sqrt(l)},u}function To(e){var t=fe(.1),n,r,i;typeof e!="function"&&(e=fe(e==null?0:+e));function o(s){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vx+=(i[l]-c.x)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(t=typeof s=="function"?s:fe(+s),a(),o):t},o.x=function(s){return arguments.length?(e=typeof s=="function"?s:fe(+s),a(),o):e},o}function Ro(e){var t=fe(.1),n,r,i;typeof e!="function"&&(e=fe(e==null?0:+e));function o(s){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vy+=(i[l]-c.y)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(t=typeof s=="function"?s:fe(+s),a(),o):t},o.y=function(s){return arguments.length?(e=typeof s=="function"?s:fe(+s),a(),o):e},o}var tg=9,Wr=6,Hr=18,ng=32,Il=9,Kn=tg+Il;function Ao(e){let t=Number.isFinite(e)&&e>0?e:0,n=Math.min(1,Math.log2(1+t)/Math.log2(1+ng));return Wr+(Hr-Wr)*n}function Co(e){return e+Il}var rg=300,Ml=1,Pl=.001,Re={containsRest:55,containsStrength:.12,relationDistance:50,relationStrength:.07,charge:-200,chargeMax:800,center:.05},Vn={...Re};function Lo(e){Object.assign(Re,e)}function Dl(e){return e==="contains"||e==="anchored-at"}function ig(e){let t=Math.trunc(e)>>>0;return()=>(t=(1664525*t+1013904223)%4294967296)/4294967296}function og(e){let t=[],n=new Set;for(let o of e.nodes)n.has(o.id)||(n.add(o.id),t.push(o.id));let r=[],i=new Set;for(let o of e.edges){if(o.source===o.target||!n.has(o.source)||!n.has(o.target))continue;let a=`${o.source}\0${o.target}\0${o.kind}`;i.has(a)||(i.add(a),r.push(o))}return{ids:t,edges:r}}function No(e){let t=wo(e.links).id(n=>n.id).distance(n=>Dl(n.kind)?Re.containsRest:Re.relationDistance).strength(n=>Dl(n.kind)?Re.containsStrength:Re.relationStrength).iterations(2);return Eo(e.nodes).randomSource(ig(e.seed??Ml)).force("charge",So().strength(Re.charge).distanceMax(Re.chargeMax)).force("link",t).force("collide",yo(n=>n.r??Kn).strength(1)).force("x",To(0).strength(Re.center)).force("y",Ro(0).strength(Re.center)).stop()}function ag(e,t,n){let r=No({nodes:e,links:t.map(({source:i,target:o,kind:a})=>({source:i,target:o,kind:a})),seed:n.seed}).alpha(n.warm?.3:1).alphaMin(Pl).alphaDecay(n.ticks>0?1-Math.pow(Pl,1/n.ticks):0);for(let i=0;i<n.ticks;i++)r.tick()}function Gl(e,t={}){let n=Math.max(0,Math.trunc(t.ticks??rg)),{ids:r,edges:i}=og(e),o=r.map(l=>{let u=t.initial?.get(l),c={id:l,vx:0,vy:0};return u!==void 0&&Number.isFinite(u.x)&&Number.isFinite(u.y)&&(c.x=u.x,c.y=u.y,t.pinWarm===!0&&(c.fx=u.x,c.fy=u.y)),c}),a=new Map;for(let l of i)a.set(l.source,(a.get(l.source)??0)+1),a.set(l.target,(a.get(l.target)??0)+1);for(let l of o)l.r=Co(Ao(a.get(l.id)??0));o.length>1&&ag(o,i,{ticks:n,seed:t.seed??Ml,warm:t.initial!==void 0});let s=new Map;for(let l of o)s.set(l.id,{x:Number.isFinite(l.x)?l.x:0,y:Number.isFinite(l.y)?l.y:0});return s}var sg="sliders";function Ol(e){for(let t of e.replace(/^\?/,"").split("&")){let n=t.indexOf("=");if((n===-1?t:t.slice(0,n))!==sg)continue;let i=n===-1?"":t.slice(n+1).toLowerCase();return i!=="0"&&i!=="false"}return!1}var Ur=[{key:"containsStrength",label:"contains strength",hint:"how hard a parent holds its children — group cohesion",min:0,max:1,step:.01},{key:"containsRest",label:"contains rest",hint:"how far children sit from their parent — rosette radius",min:10,max:300,step:5},{key:"relationStrength",label:"relation strength",hint:"pull of links-to / mentions across groups",min:0,max:1,step:.01},{key:"relationDistance",label:"relation distance",hint:"how long those cross-group springs are",min:20,max:600,step:10},{key:"charge",label:"charge",hint:"node-to-node repulsion — more negative pushes harder",min:-1200,max:0,step:10},{key:"chargeMax",label:"charge range",hint:"distance past which repulsion stops — caps overall spread",min:100,max:4e3,step:50},{key:"center",label:"centre gravity",hint:"pull toward the origin — too much makes one blob",min:0,max:.3,step:.005}],Fl={containsRest:90,containsStrength:.02,relationDistance:170,relationStrength:.05,charge:-50,chargeMax:1/0,center:.09};function $l(e,t){let n=e[t.key];return Number.isFinite(n)?Math.min(t.max,Math.max(t.min,n)):t.max}function zl(e,t){let n=Number.parseFloat(t);return Number.isFinite(n)?Math.min(e.max,Math.max(e.min,n)):Vn[e.key]}function Wl(e){return Number.isFinite(e)?Number.isInteger(e)?String(e):e.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):"∞"}function Po(e){let t=n=>` ${n}: ${Number.isFinite(e[n])?e[n]:"Infinity"},`;return["export const FORCES: ForceConstants = {",...Ur.map(n=>t(n.key)),"};"].join(`
|
|
22
|
+
`)}function Hl(e){return Ur.every(t=>Object.is(e[t.key],Vn[t.key]))}var Ul="pi-weave.graph.groupColors.v1";function Bl(e){try{return e.getItem(Ul)!=="off"}catch{return!0}}function Kl(e,t){try{e.setItem(Ul,t?"on":"off")}catch{}}var Bt,ue,Do,Vl,jn=0,eu=[],he=ee,jl=he.__b,ql=he.__r,Yl=he.diffed,Xl=he.__c,Zl=he.unmount,Ql=he.__;function qn(e,t){he.__h&&he.__h(ue,e,jn||t),jn=0;var n=ue.__H||(ue.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function V(e){return jn=1,lg(ru,e)}function lg(e,t,n){var r=qn(Bt++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):ru(void 0,t),function(s){var l=r.__N?r.__N[0]:r.__[0],u=r.t(l,s);l!==u&&(r.__N=[u,r.__[1]],r.__c.setState({}))}],r.__c=ue,!ue.__f)){var i=function(s,l,u){if(!r.__c.__H)return!0;var c=!1,h=r.__c.props!==s;if(r.__c.__H.__.some(function(p){if(p.__N){c=!0;var m=p.__[0];p.__=p.__N,p.__N=void 0,m!==p.__[0]&&(h=!0)}}),o){var d=o.call(this,s,l,u);return c?d||h:d}return!c||h};ue.__f=!0;var o=ue.shouldComponentUpdate,a=ue.componentWillUpdate;ue.componentWillUpdate=function(s,l,u){if(this.__e){var c=o;o=void 0,i(s,l,u),o=c}a&&a.call(this,s,l,u)},ue.shouldComponentUpdate=i}return r.__N||r.__}function se(e,t){var n=qn(Bt++,3);!he.__s&&Mo(n.__H,t)&&(n.__=e,n.u=t,ue.__H.__h.push(n))}function Qe(e,t){var n=qn(Bt++,4);!he.__s&&Mo(n.__H,t)&&(n.__=e,n.u=t,ue.__h.push(n))}function X(e){return jn=5,Kt(function(){return{current:e}},[])}function Kt(e,t){var n=qn(Bt++,7);return Mo(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function tu(e,t){return jn=8,Kt(function(){return e},t)}function nu(){var e=qn(Bt++,11);if(!e.__){for(var t=ue.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function ug(){for(var e;e=eu.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Br),t.__h.some(Io),t.__h=[]}catch(n){t.__h=[],he.__e(n,e.__v)}}}he.__b=function(e){ue=null,jl&&jl(e)},he.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ql&&Ql(e,t)},he.__r=function(e){ql&&ql(e),Bt=0;var t=(ue=e.__c).__H;t&&(Do===ue?(t.__h=[],ue.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(Br),t.__h.some(Io),t.__h=[],Bt=0)),Do=ue},he.diffed=function(e){Yl&&Yl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(eu.push(t)!==1&&Vl===he.requestAnimationFrame||((Vl=he.requestAnimationFrame)||cg)(ug)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),Do=ue=null},he.__c=function(e,t){t.some(function(n){try{n.__h.some(Br),n.__h=n.__h.filter(function(r){return!r.__||Io(r)})}catch(r){t.some(function(i){i.__h&&(i.__h=[])}),t=[],he.__e(r,n.__v)}}),Xl&&Xl(e,t)},he.unmount=function(e){Zl&&Zl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(r){try{Br(r)}catch(i){t=i}}),n.__H=void 0,t&&he.__e(t,n.__v))};var Jl=typeof requestAnimationFrame=="function";function cg(e){var t,n=function(){clearTimeout(r),Jl&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Jl&&(t=requestAnimationFrame(n))}function Br(e){var t=ue,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),ue=t}function Io(e){var t=ue;e.__c=e.__(),ue=t}function Mo(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function ru(e,t){return typeof t=="function"?t(e):t}var gn=e=>({id:e,kind:"document",history:[null],cursor:0,scroll:0});function iu(){return{version:1,panes:[{id:"pane-1",tabs:[gn("tab-1")],activeTab:"tab-1"}],activePane:"pane-1",split:"right",ratio:.5,treeVisible:!0,contextVisible:!0,treeWidth:240,contextWidth:240,theme:"system"}}function Yn(e){return e.panes.find(t=>t.id===e.activePane)}function mn(e){let t=Yn(e);return t.tabs.find(n=>n.id===t.activeTab)}function yt(e){return e.kind==="document"?e.history[e.cursor]??null:null}function Pt(e,t){let n=new Set(e.panes.flatMap(i=>[i.id,...i.tabs.map(o=>o.id)])),r=1;for(;n.has(`${t}-${r}`);)r++;return`${t}-${r}`}function Vt(e,t,n){return{...e,activePane:t.id,panes:e.panes.map(r=>r.id===t.id?Kr({...t,activeTab:n.id,tabs:t.tabs.map(i=>i.id===n.id?n:i)}):r)}}function zo(e){return e.tabs.find(t=>t.id===e.lastDocumentTab&&t.kind==="document")??[...e.tabs].reverse().find(t=>t.kind==="document")}function Kr(e){let{lastDocumentTab:t,...n}=e,r=e.tabs.find(i=>i.id===e.activeTab&&i.kind==="document")??zo(e);return r?{...n,lastDocumentTab:r.id}:n}function ou(e){if(mn(e).kind==="document")return e;let t=Yn(e),n=zo(t);return n?Vt(e,t,n):Vr(e,null,{newTab:!0})}function Wo(e,t,n){let r=e.panes.find(o=>o.id===t),i=r?.tabs.find(o=>o.id===n);return r&&i?{pane:r,tab:i}:null}function $o(e,t,n){return e.panes.reduce((r,i)=>r+i.tabs.length,0)>=40?e:Vt(e,{...t,tabs:[...t.tabs,n]},n)}function Go(e,t){let n=e.history.slice(0,e.cursor+1);return n.at(-1)===t?e:(n.push(t),n.length>100&&n.shift(),{...e,history:n,cursor:n.length-1,scroll:0})}function Vr(e,t,n={}){let r=e.panes.find(s=>s.id===(n.paneId??e.activePane));if(!r)return e;let i=r.activeTab,o=r.tabs.find(s=>s.id===i);if(o?.kind==="graph"&&(o=zo(r),o?r={...r,activeTab:o.id}:n.newTab||(n={...n,newTab:!0})),n.newTab||!o)return $o(e,r,Go(gn(Pt(e,"tab")),t));let a=Go(o,t);return a===o&&r.id===e.activePane&&i===o.id?e:Vt(e,r,a)}function Ho(e){let t=e.panes.flatMap(r=>r.tabs.filter(i=>i.kind==="graph").map(i=>({pane:r,tab:i})))[0];if(t)return t.pane.id===e.activePane&&t.pane.activeTab===t.tab.id?e:Vt(e,t.pane,t.tab);let n=Yn(e);return $o(e,n,{id:Pt(e,"tab"),kind:"graph",history:[null],cursor:0,scroll:0})}function Uo(e,t,n){let r=Wo(e,t,n);return!r||e.activePane===t&&r.pane.activeTab===n?e:Vt(e,r.pane,r.tab)}function Bo(e,t,n){let r=Wo(e,t,n);if(!r)return e;let{pane:i}=r;if(i.tabs.length===1){let u=e.panes.find(h=>h.id!==t);if(u)return{...e,panes:[u],activePane:u.id};let c=gn(Pt(e,"tab"));return Vt(e,{...i,tabs:[c]},c)}let o=i.tabs.filter(u=>u.id!==n),a=i.activeTab===n,s=o[Math.max(0,i.tabs.findIndex(u=>u.id===n)-1)],l=Kr({...i,tabs:o,activeTab:a?s.id:i.activeTab});return{...e,activePane:a?t:e.activePane,panes:e.panes.map(u=>u.id===t?l:u)}}function Ko(e,t,n){let r=e.panes.find(a=>a.id===t),i=r?.tabs.find(a=>a.id===r.activeTab);if(!r||!i||i.kind!=="document")return e;let o=i.cursor+n;return o<0||o>=i.history.length?e:Vt(e,r,{...i,cursor:o,scroll:0})}function Vo(e,t){if(e.panes.length===2)return e.split===t?e:{...e,split:t};if(e.panes.reduce((o,a)=>o+a.tabs.length,0)>=40)return e;let n=mn(e),r=Pt(e,"pane"),i=gn(Pt(e,"tab"));return n.kind==="document"&&(i={...n,id:i.id,history:[...n.history],scroll:n.scroll}),{...e,panes:[...e.panes,{id:r,tabs:[i],activeTab:i.id}],activePane:r,split:t}}function au(e,t){if(e.panes.length!==2||!e.panes.some(i=>i.id===t))return e;let n=e.panes.find(i=>i.id===t),r=e.panes.find(i=>i.id!==t);return{...e,panes:[{...r,tabs:[...r.tabs,...n.tabs]}],activePane:r.id}}function jr(e,t,n){return e.panes.some(r=>r.id===t)?e.panes.find(r=>r.id!==t&&r.tabs.some(i=>i.id===n))?.id??null:null}function jo(e,t,n){let r=Wo(e,t,n);if(!r)return e;let i=e.panes.find(c=>c.id!==t)??{id:Pt(e,"pane"),tabs:[],activeTab:""},o=r.pane.tabs.filter(c=>c.id!==n),a=Kr({...i,tabs:[...i.tabs,r.tab],activeTab:r.tab.id});if(!o.length&&e.panes.length===2)return{...e,panes:[a],activePane:i.id};if(!o.length&&e.panes.reduce((c,h)=>c+h.tabs.length,0)>=40)return e;let s=o.length?null:gn(Pt(e,"tab")),l=o.length?o:[s],u=Kr({...r.pane,tabs:l,activeTab:r.pane.activeTab===n?l[Math.max(0,r.pane.tabs.findIndex(c=>c.id===n)-1)].id:r.pane.activeTab});return{...e,activePane:i.id,panes:e.panes.length===1?[u,a]:e.panes.map(c=>c.id===u.id?u:a)}}function Oo(e,t){return Object.keys(e).length===t.length&&t.every(n=>Object.hasOwn(e,n))}function Fo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fn(e,t){return typeof e=="string"&&e.length<=2048&&(t===void 0?e.length>0&&!/[\u0000-\u001f\u007f]/.test(e):new RegExp(`^${t}-[1-9][0-9]{0,8}$`).test(e))}function su(e){if(!Fo(e)||!Oo(e,["version","panes","activePane","split","ratio","treeVisible","contextVisible","treeWidth","contextWidth","theme"])||e.version!==1||!Array.isArray(e.panes)||e.panes.length<1||e.panes.length>2||!fn(e.activePane,"pane")||e.split!=="right"&&e.split!=="down"||typeof e.ratio!="number"||!Number.isFinite(e.ratio)||e.ratio<.1||e.ratio>.9||typeof e.treeVisible!="boolean"||typeof e.contextVisible!="boolean"||typeof e.treeWidth!="number"||!Number.isFinite(e.treeWidth)||e.treeWidth<120||e.treeWidth>800||typeof e.contextWidth!="number"||!Number.isFinite(e.contextWidth)||e.contextWidth<120||e.contextWidth>800||e.theme!=="system"&&e.theme!=="light"&&e.theme!=="dark")return null;let t=new Set,n=0,r=0,i=[];for(let o of e.panes){if(!Fo(o)||!Oo(o,Object.hasOwn(o,"lastDocumentTab")?["id","tabs","activeTab","lastDocumentTab"]:["id","tabs","activeTab"])||!fn(o.id,"pane")||!Array.isArray(o.tabs)||o.tabs.length<1||!fn(o.activeTab,"tab")||t.has(o.id))return null;t.add(o.id);let a=[],s=!1;for(let u of o.tabs){if(!Fo(u)||!Oo(u,["id","kind","history","cursor","scroll"])||!fn(u.id,"tab")||t.has(u.id)||(t.add(u.id),u.kind!=="document"&&u.kind!=="graph"))return null;let c=u.kind;if(!Array.isArray(u.history)||u.history.length<1||u.history.length>100||!Number.isInteger(u.cursor)||u.cursor<0||u.cursor>=u.history.length||u.history.some(h=>h!==null&&!fn(h))||typeof u.scroll!="number"||!Number.isFinite(u.scroll)||u.scroll<0||u.scroll>1e9)return null;c==="graph"&&r++,n++,u.id===o.activeTab&&(s=!0),a.push({id:u.id,kind:c,history:u.history,cursor:u.cursor,scroll:u.scroll})}if(!s)return null;let l=o.lastDocumentTab;if(Object.hasOwn(o,"lastDocumentTab")&&(!fn(l,"tab")||!a.some(u=>u.id===l&&u.kind==="document")))return null;i.push({id:o.id,tabs:a,activeTab:o.activeTab,...typeof l=="string"?{lastDocumentTab:l}:{}})}return n>40||r>1||!i.some(o=>o.id===e.activePane)?null:{version:1,panes:i,activePane:e.activePane,split:e.split,ratio:e.ratio,treeVisible:e.treeVisible,contextVisible:e.contextVisible,treeWidth:e.treeWidth,contextWidth:e.contextWidth,theme:e.theme}}var Me=(e,t)=>fetch(e,{...t?.method===void 0?{}:{method:t.method},...t?.headers===void 0?{}:{headers:t.headers},...t?.body===void 0?{}:{body:t.body},...t?.signal===void 0?{}:{signal:t.signal},credentials:"same-origin"});function qo(e,t=!1){return{ok:!0,data:e,cached:t}}function wt(e,t,n){return{ok:!1,kind:e,status:t,message:n}}function lu(e){return e===403?"auth":e===404?"missing":"server"}function uu(e){return e===403?"not authorised — this workspace session has ended":e===404?"not found":`server error (${e})`}async function qr(e,t,n,r){let i;try{i=await e(t,r)}catch(a){return wt("network",0,a instanceof Error?a.message:"network request failed")}if(!i.ok)return wt(lu(i.status),i.status,uu(i.status));let o;try{o=await i.json()}catch{return wt("malformed",i.status,"response was not valid JSON")}return n(o)?qo(o):wt("malformed",i.status,"response did not match the expected shape")}function bt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dg(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function hg(e){if(!bt(e)||typeof e.stamp!="string")return!1;let t=e.model;return!bt(t)||!Array.isArray(t.nodes)||!Array.isArray(t.edges)?!1:bt(e.tags)&&bt(e.dangling)}function pg(e){if(!bt(e))return!1;for(let t of["slug","title","body","created","updated","source"])if(typeof e[t]!="string")return!1;return dg(e.tags)}function fg(e){return bt(e)&&pg(e.note)}function gg(e){return bt(e)&&typeof e.query=="string"&&Array.isArray(e.hits)}function mg(e){return bt(e)&&typeof e.opened=="boolean"}function vg(e){return bt(e)&&e.ok===!0&&(e.id===void 0||typeof e.id=="string")}async function cu(e,t=null){let n=t===null?void 0:{"if-none-match":`"${t.stamp}"`},r;try{r=await e("/api/graph",n===void 0?{}:{headers:n})}catch(o){return wt("network",0,o instanceof Error?o.message:"network request failed")}if(r.status===304)return t===null?wt("malformed",304,"server sent 304 for an unconditional request"):qo(t,!0);if(!r.ok)return wt(lu(r.status),r.status,uu(r.status));let i;try{i=await r.json()}catch{return wt("malformed",r.status,"response was not valid JSON")}return hg(i)?qo(i):wt("malformed",r.status,"response did not match the expected shape")}function Yo(e,t){return qr(e,`/api/note/${encodeURIComponent(t)}`,fg)}function du(e,t,n){return qr(e,`/api/search?q=${encodeURIComponent(t)}`,gg,n===void 0?void 0:{signal:n})}function hu(e,t){return qr(e,"/api/open",mg,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({slug:t})})}function jt(e,t,n,r){return qr(e,t,vg,{method:n,...r===void 0?{}:{headers:{"content-type":"application/json"},body:JSON.stringify(r)}})}var Yr=(e,t="")=>`/api/note/${encodeURIComponent(e)}${t}`,Xo=(e,t="")=>`/api/folder/${e.split("/").map(encodeURIComponent).join("/")}${t}`,pu=(e,t,n)=>jt(e,Yr(t),"POST",{body:n}),fu=(e,t,n)=>jt(e,Yr(t,"/rename"),"POST",{name:n}),gu=(e,t,n)=>jt(e,Yr(t,"/move"),"POST",{folder:n}),mu=(e,t)=>jt(e,Yr(t),"DELETE"),vu=(e,t)=>jt(e,Xo(t),"POST"),yu=(e,t,n)=>jt(e,Xo(t,"/rename"),"POST",{name:n}),wu=(e,t)=>jt(e,Xo(t),"DELETE");function je(e){if(e.kind==="external"&&e.detail.url){let t=e.detail.url.replace(/^[a-z]+:\/\//,"").replace(/^[^@\/]+@/,"").replace(/\.git$/,"").replace(/\/+$/,"");if(t)return t}return e.kind==="package"&&e.detail.manifest?`${e.label} (${e.detail.manifest})`:e.label}function yg(e){let t=new Map;for(let l of e.nodes)t.set(l.id,l);let n=new Map,r=new Map,i=new Set;for(let l of e.edges){if(l.kind==="contains"){let u=n.get(l.source);u?u.push(l.target):n.set(l.source,[l.target])}if(l.kind==="contains"||l.kind==="anchored-at"){let u=r.get(l.source);u?u.push(l.target):r.set(l.source,[l.target]),i.add(l.target)}}let o=l=>{if(!l.detail.path)return null;let u=l.detail.path,c=null,h=0,d=n.get("repository")??[];for(let p of d){let m=t.get(p);if(m&&m.kind==="module"&&m.detail.path){let w=m.detail.path;u.startsWith(w+"/")&&w.length>h&&(c=p,h=w.length)}}return c},a=new Map;for(let l of e.nodes){if(l.kind!=="entryPoint")continue;let u=o(l);if(u){let c=a.get(u);c?c.push(l.id):a.set(u,[l.id])}}let s=e.nodes.filter(l=>!i.has(l.id)).map(l=>l.id);return{byId:t,contains:n,tree:r,incoming:i,moduleEntries:a,roots:s}}function ku(e){let t=new Set;for(let n of e.edges)(n.kind==="contains"||n.kind==="anchored-at")&&t.add(n.target);return e.nodes.filter(n=>!t.has(n.id)).map(n=>n.id)}function wg(e){return e==="gitState"||e==="external"||e==="package"||e==="entryPoint"}function bu(e){return e?e.kind==="module"||e.id.startsWith("vfolder:"):!1}function bg(e,t){return e.slice().sort((n,r)=>{let i=t.get(n),o=t.get(r),a=bu(i),s=bu(o);if(a!==s)return a?-1:1;let l=je(i),u=je(o);return l.localeCompare(u)})}function xu(e,t,n){let r=Number(e);return Number.isFinite(r)?{kind:"count",n:r,unit:t,phrasing:n}:{kind:"text",text:n==="attribute"?`${t}=${e}`:`${e} ${t}`}}function xg(e){switch(e.kind){case"note":return e.detail.updated?{kind:"relTime",iso:e.detail.updated}:null;case"module":return e.detail.files?xu(e.detail.files,"files","attribute"):null;case"gitState":return e.detail.commit?{kind:"commit",sha:e.detail.commit}:null;case"repository":return e.detail.files?xu(e.detail.files,"files","prose"):null;case"package":return e.detail.kind?{kind:"text",text:e.detail.kind}:null;case"entryPoint":return e.detail.summary?{kind:"text",text:"summary"}:null;default:return null}}function Zo(e,t){let n=yg(e),{byId:r,tree:i,moduleEntries:o,roots:a}=n,s=m=>{let b=(i.get(m)??[]).filter(y=>{let x=r.get(y);if(!x||x.kind!=="entryPoint")return!0;for(let[,k]of o)if(k.includes(y))return!1;return!0}).concat(o.get(m)??[]);return b=b.filter(y=>r.has(y)),t.showInternals||(b=b.filter(y=>{let x=r.get(y);return!(x&&wg(x.kind))})),bg(b,r)},l=t.provFilter!==null||t.query.length>0,u=m=>!(t.provFilter!==null&&m.provenance!==t.provFilter||t.query.length>0&&!je(m).toLowerCase().includes(t.query.toLowerCase())),c=new Set,h=m=>{let w=r.get(m),v=!1;for(let y of s(m))h(y)&&(v=!0);let b=u(w)||v;return b&&c.add(m),b};for(let m of a)h(m);let d=[],p=(m,w)=>{if(!c.has(m))return;let v=r.get(m),b=s(m),y=b.filter(k=>c.has(k)),x=l?y.length>0:t.expanded.has(m);if(d.push({id:m,depth:w,hasKids:b.length>0,expanded:x,label:je(v),kind:v.kind,provenance:v.provenance,meta:xg(v)}),x)for(let k of y)p(k,w+1)};for(let m of a)p(m,0);return d}function Qo(e){if(!e.nodes.find(i=>i.kind==="vault"))return null;let n=e.nodes.some(i=>i.kind==="note"),r=e.nodes.some(i=>i.kind==="repository");return!n&&!r?"no notes yet — add one with the weave_note tool":null}function Xn(e,t){if(!e)return"";let n=Date.parse(e);if(Number.isNaN(n))return"";let r=Math.max(0,Math.floor((t-n)/1e3));if(r<60)return"just now";let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let o=Math.floor(i/60);if(o<24)return`${o}h ago`;let a=Math.floor(o/24);if(a<30)return`${a}d ago`;let s=Math.floor(a/30);return s<12?`${s}mo ago`:`${Math.floor(s/12)}y ago`}var kg=7;function Jo(e,t){if(e===null)return"";switch(e.kind){case"relTime":return Xn(e.iso,t);case"count":return e.phrasing==="attribute"?`${e.unit}=${e.n}`:`${e.n} ${e.unit}`;case"commit":return e.sha.slice(0,kg);case"text":return e.text}}var _g=["title","description","path","size","slug","source","updated","created","tags","files","languages","branch","commit","uncommitted changes","captured","manifest","kind","url","summarized files","summarized by","summarized at","summary","dangling links","link references","warning","stale","preview","root","notes","state"];function ea(e,t){let n=new Map;for(let s of e.nodes)n.set(s.id,s);let r=n.get(t);if(!r)return null;let i=[];for(let s of _g){let l=r.detail[s];l===void 0||l===""||i.push({id:`meta:${s}`,label:s,value:l})}let o=[];for(let s of e.edges){if(s.source!==t)continue;let l=n.get(s.target);l&&o.push({id:`link:${s.kind}:${s.target}`,target:s.target,label:`${s.kind} → ${je(l)}`,kind:l.kind,provenance:l.provenance,direction:"link"})}let a=[];for(let s of e.edges){if(s.kind!=="links-to"||s.target!==t)continue;let l=n.get(s.source);l&&a.push({id:`backlink:${s.source}`,target:s.source,label:`← ${je(l)}`,kind:l.kind,provenance:l.provenance,direction:"backlink"})}return{id:t,label:je(r),kind:r.kind,provenance:r.provenance,meta:i,links:o,backlinks:a}}function Xr(e,t){let n=new Set([e]);for(let r of t)r.source===e&&n.add(r.target),r.target===e&&n.add(r.source);return n}var Eg=["contains","anchored-at"];function Sg(e){return Eg.includes(e)}function Zr(e,t){let n=new Map;for(let d of e.nodes)n.set(d.id,d);let r=Tg(e,n),i=ku(e),o=new Set,a=d=>{if(!o.has(d)&&(o.add(d),!!t.has(d)))for(let p of r.get(d)??[])a(p)};for(let d of i)a(d);let s=new Map;for(let d of r.keys())s.set(d,Rg(d,r));let l=new Map;for(let d of e.nodes)if(!(!o.has(d.id)||t.has(d.id)))for(let p of s.get(d.id)??[])!o.has(p)&&!l.has(p)&&l.set(p,d.id);for(let d of e.nodes)!o.has(d.id)&&!l.has(d.id)&&o.add(d.id);let u=new Map;for(let[d,p]of r){let m=s.get(d);u.set(d,{children:p,descendants:m,members:m.filter(w=>l.get(w)===d),provenance:Ag(m,n),expanded:t.has(d)})}let c=new Set,h=[];for(let d of e.nodes)o.has(d.id)?h.push(d):c.add(d.id);return{nodes:h,edges:Cg(e.edges,o,l),clusters:u,hidden:c,representative:l,roots:i}}function Tg(e,t){let n=new Map;for(let r of e.edges){if(!Sg(r.kind)||!t.has(r.source)||!t.has(r.target))continue;let i=n.get(r.source);i===void 0?n.set(r.source,[r.target]):i.includes(r.target)||i.push(r.target)}return n}function Rg(e,t){let n=[],r=new Set([e]),i=o=>{for(let a of t.get(o)??[])r.has(a)||(r.add(a),n.push(a),i(a))};return i(e),n}function Ag(e,t){let n={human:0,agent:0,generated:0,none:0};for(let r of e){let i=t.get(r)?.provenance??null;i===null?n.none++:n[i]++}return n}function Cg(e,t,n){let r=a=>t.has(a)?a:n.get(a),i=[],o=new Set;for(let a of e){let s=r(a.source),l=r(a.target);if(s===void 0||l===void 0||s===l)continue;let u=`${s}\0${l}\0${a.kind}`;o.has(u)||(o.add(u),i.push({source:s,target:l,kind:a.kind}))}return i}function ta(e){let t=new Map;for(let n of e){if(n.kind!=="links-to")continue;let r=t.get(n.target);r?r.push(n.source):t.set(n.target,[n.source])}return t}var vn=[null,"human","agent","generated"];function _u(e=["vault","repository"]){return{expanded:new Set(e),showInternals:!1,provFilter:null,query:""}}function ia(e,t){let n=new Set(e.expanded).add("vault"),r="";for(let i of t?t.split("/"):[])r=r?`${r}/${i}`:i,n.add(`vfolder:${r}`);return{...e,expanded:n,query:"",provFilter:null}}function qt(e){return{...e.model,danglingLinks:e.dangling}}function Eu(e,t){return e===null?[]:Zo(qt(e),t)}var yn="vfolder:\0draft";function Su(e){return e.type==="vault"?"":e.type==="folder"?e.path:e.path.split("/").slice(0,-1).join("/")}function Tu(e,t){let n=t.trim();return n===""?null:e===""?n:`${e}/${n}`}function Ru(e,t){if(t===null)return[...e];let n={id:yn,depth:t===""?1:t.split("/").length+1,hasKids:!1,expanded:!1,label:"",kind:"module",provenance:null,meta:null};if(t==="")return[...e,n];let r=e.findIndex(o=>o.id===`vfolder:${t}`);if(r===-1)return[...e,n];let i=r+1;for(;i<e.length&&e[i].depth>e[r].depth;)i++;return[...e.slice(0,i),n,...e.slice(i)]}function oa(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function Lg(e,t){if(e.expanded.has(t))return e;let n=new Set(e.expanded);return n.add(t),{...e,expanded:n}}function Ng(e,t){if(!e.expanded.has(t))return e;let n=new Set(e.expanded);return n.delete(t),{...e,expanded:n}}function aa(e){return e==="vault"?null:e.startsWith("vfolder:")?e.slice(8):void 0}function Yt(e){return e==="vault"?{type:"vault",path:""}:e.startsWith("note:")?{type:"note",path:e.slice(5)}:e.startsWith("vfolder:")?{type:"folder",path:e.slice(8)}:null}function Jr(e,t){if(t.type==="note")return[t.path];if(t.type!=="folder"||e===null)return[];let n=`note:${t.path}/`;return e.model.nodes.filter(r=>r.kind==="note"&&r.id.startsWith(n)).map(r=>r.id.slice(5))}function Au(e,t){return e===null?!1:t.type==="note"?e===`note:${t.path}`:t.type==="folder"?e===`vfolder:${t.path}`||e.startsWith(`vfolder:${t.path}/`)||e.startsWith(`note:${t.path}/`):!1}function sa(e){return e.type==="folder"}function Cu(e,t,n){return sa(e)?n?`Delete “${t}” and everything in it`:"Delete…":"Delete"}function Lu(e,t){return e.query===t?e:{...e,query:t}}function Nu(e){let t=vn.indexOf(e.provFilter),n=vn[(t+1)%vn.length]??null;return{...e,provFilter:n}}function Pu(e){return{...e,showInternals:!e.showInternals}}function ei(e,t){return t===null?-1:e.findIndex(n=>n.id===t)}function ra(e,t){return e[t]?.id??null}function na(e,t,n){if(e.length===0)return null;let r=ei(e,t),i=r===-1?n>0?-1:e.length:r;return ra(e,Math.min(e.length-1,Math.max(0,i+n)))}function Pg(e,t){let n=ei(e,t),r=n<=0?void 0:e[n];if(r===void 0)return null;for(let i of e.slice(0,n).reverse())if(i.depth<r.depth)return i.id;return null}var Dg={j:"ArrowDown",k:"ArrowUp"};function Ig(e){return Dg[e]??e}function Du(e,t,n,r,i=!1){let o={state:t,selectedId:n,handled:!1};if(i)return o;let a=h=>({state:t,selectedId:h,handled:!0}),s=Ig(r);if(s==="ArrowDown")return a(na(e,n,1));if(s==="ArrowUp")return a(na(e,n,-1));if(s==="Home")return a(ra(e,0));if(s==="End")return a(ra(e,e.length-1));if(s!=="ArrowRight"&&s!=="ArrowLeft")return o;let l=ei(e,n),u=l===-1?void 0:e[l];if(u===void 0||n===null)return o;if(s==="ArrowRight")return u.hasKids?u.expanded?a(na(e,n,1)):{state:Lg(t,n),selectedId:n,handled:!0}:o;if(u.hasKids&&u.expanded)return{state:Ng(t,n),selectedId:n,handled:!0};let c=Pg(e,n);return c===null?o:a(c)}var Mg={vault:"vault",note:"note",repository:"repository",module:"module",package:"package",entryPoint:"entryPoint",gitState:"gitState",external:"external",file:"file"};function Xt(e){return Mg[e]}var Gg={human:"●",agent:"◐",generated:"○"};function Zt(e){return e===null?"":Gg[e]}function wn(e){return e===null?"":`${e}-authored`}function Iu(e){return`weave-row-${e.replace(/[^A-Za-z0-9_-]/g,"-")}`}function Og(e){let t=e.map(()=>({posinset:1,setsize:1})),n=[],r=i=>{for(let o of n.splice(i+1))for(let[a,s]of o.entries())t[s]={posinset:a+1,setsize:o.length}};for(let[i,o]of e.entries()){r(o.depth);let a=n[o.depth];if(a===void 0){for(a=[];n.length<o.depth;)n.push([]);n.push(a)}a.push(i)}return r(-1),t}function Fg(e,t,n,r={posinset:1,setsize:1}){let i=e.hasKids?e.expanded?"open":"closed":"leaf";return{id:e.id,domId:Iu(e.id),posinset:r.posinset,setsize:r.setsize,depth:e.depth,label:e.label,kind:e.kind,kindIcon:Xt(e.kind),provenance:e.provenance,provenanceGlyph:Zt(e.provenance),provenanceTitle:wn(e.provenance),twisty:i,hasKids:e.hasKids,expanded:e.expanded,selected:e.id===t,meta:Jo(e.meta,n),level:e.depth+1}}function Mu(e,t,n){let r=Og(e);return e.map((i,o)=>Fg(i,t,n,r[o]))}function Gu(e,t){return ei(e,t)===-1?null:Iu(t)}function Ou(e){return{"--weave-depth":String(Math.max(0,e))}}function Qr(e){return e===null?"all":e}function Fu(e){let t=vn.indexOf(e),n=vn[(t+1)%vn.length]??null;return`provenance filter: ${Qr(e)} — click for ${Qr(n)}`}function $u(e){return e?"internals":"knowledge"}function zu(e){return e?"showing git state, packages, externals and entry points — click to hide":"hiding git state, packages, externals and entry points — click to show"}var Wu="filter…",Hu="Vault and repository",Uu="Filter the tree",Bu="Filter the tree (/)";function Ku(e,t,n){if(e===null)return"loading…";let r=Qo(qt(e));return r!==null?r:t.length>0?null:n.query.length>0||n.provFilter!==null?"nothing matches this filter — clear it to see the whole vault":"nothing to show"}function Vu(e){return e.length===1?"1 row":`${e.length} rows`}var Dt={dark:{accent:"#c6a0f6",success:"#a6da95",warning:"#eed49f",dim:"#a5adcb",text:"#cad3f5",muted:"#939ab7",line:"#494d64",ground:"#24273a"},light:{accent:"#7113ec",success:"#28641b",warning:"#7c4f10",dim:"#56586a",text:"#4c4f69",muted:"#606274",line:"#bcc0cc",ground:"#eff1f5"}},$g={vault:"accent",note:"text",repository:"accent",module:"dim",package:"dim",entryPoint:"dim",gitState:"dim",external:"dim",file:"dim"},zg={contains:"dim","anchored-at":"dim","links-to":"accent",mentions:"accent"};function Wg(e,t){return Dt[t][$g[e]]}function ju(e,t){return Dt[t][zg[e]]}function Hg(e,t){return Ug(e)?ua(ju(e,t),t,Bg):ju(e,t)}function Ug(e){return e==="contains"||e==="anchored-at"}var la=.85,Bg=.3;function Zn(e,t,n){let r=l=>/^#[0-9a-f]{6}$/.test(l)?[Number.parseInt(l.slice(1,3),16),Number.parseInt(l.slice(3,5),16),Number.parseInt(l.slice(5,7),16)]:null,i=r(e),o=r(t);if(i===null||o===null)return e;let a=Math.min(1,Math.max(0,Number.isFinite(n)?n:0)),s=(l,u)=>Math.round(l+(u-l)*a).toString(16).padStart(2,"0");return`#${s(i[0],o[0])}${s(i[1],o[1])}${s(i[2],o[2])}`}function ua(e,t,n=la){return Zn(e,Dt[t].ground,n)}var Kg={contains:1,"anchored-at":1,"links-to":1.4,mentions:1},qu=1.6,Xu=32,Vg=Xu/2;function jg(e,t=Xu){if(t<=0)return e.length>0?"…":e;if(e.length<=t)return e;let n=t-1,i=e.slice(0,n).lastIndexOf(" "),o=i>=Vg?i:n;return`${e.slice(0,o).trimEnd()}…`}function qg(e){let t=Zt(e.provenance),n=je(e);return jg(t===""?n:`${t} ${n}`)}var Yg=6,Xg=6;function Zg(e){return(t,n,r)=>{if(n.label===null||n.label==="")return;let i=Dt[e];t.save(),t.font=`${r.labelSize}px ${r.labelFont}`,t.textAlign="center",t.shadowColor=i.ground,t.shadowBlur=Xg,t.fillStyle=i.text,t.fillText(n.label,n.x,n.y+n.size+r.labelSize+Yg),t.restore()}}function Zu(e){let t=1/0,n=1/0,r=-1/0,i=-1/0,o=0;for(let s of e)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(o++,s.x<t&&(t=s.x),s.x>r&&(r=s.x),s.y<n&&(n=s.y),s.y>i&&(i=s.y));if(o===0)return null;let a=Math.max(0,(Kn*4-Math.max(r-t,i-n))/2);return{x:[t-a,r+a],y:[n-a,i+a]}}var Qu={nodes:[],edges:[]};function Ju(e){return`${e.source}\0${e.target}\0${e.kind}`}function Qg(e,t){let n=new Map,r=new Set;for(let i of e){if(i.source===i.target||!t.has(i.source)||!t.has(i.target))continue;let o=Ju(i);r.has(o)||(r.add(o),n.set(i.source,(n.get(i.source)??0)+1),n.set(i.target,(n.get(i.target)??0)+1))}return n}function ec(e,t,n,r,i){let o=new Map;for(let h of e){if(o.has(h.id))continue;let d=n.get(h.id);d===void 0||!Number.isFinite(d.x)||!Number.isFinite(d.y)||o.set(h.id,h)}let a=new Set(o.keys()),s=Qg(t,a),l=[];for(let[h,d]of o){let p=n.get(h),m=Ao(s.get(h)??0);l.push({id:h,x:p.x,y:p.y,size:m,label:qg(d),color:i?.get(h)??Wg(d.kind,r),kind:d.kind,provenance:d.provenance,zIndex:Math.round(m),type:"circle"})}let u=[],c=new Set;for(let h of t){if(h.source===h.target||!a.has(h.source)||!a.has(h.target))continue;let d=Ju(h);c.has(d)||(c.add(d),u.push({key:d,source:h.source,target:h.target,size:Kg[h.kind],color:Hg(h.kind,r),kind:h.kind,zIndex:0,type:"line"}))}return{nodes:l,edges:u}}function tc(e,t,n=1){return(r,i,o)=>e===null||n<=0?{}:r===t&&e.has(r)?{zIndex:i.zIndex+Yu*2,size:i.size*ti(nm,n)}:e.has(r)?{zIndex:i.zIndex+Yu,size:i.size*ti(rm,n)}:{color:ua(i.color,o,la*n),label:n>=tm?null:i.label,zIndex:0}}var Jg=60,em=.004;function nc(e,t,n){let r=Number.isFinite(n)&&n>0?n:0,i=t+(e-t)*Math.exp(-r/Jg);return Math.abs(t-i)<em?t:i}function ti(e,t){return 1+(e-1)*t}var tm=.5,nm=1.45,rm=1.15,Yu=Hr+1;function rc(e,t,n=1){return(r,i,o)=>e===null||n<=0?{}:!e.has(i.source)||!e.has(i.target)?{color:ua(i.color,o,la*n)}:t!=null&&(i.source===t||i.target===t)?{zIndex:2,size:i.size*ti(qu*1.35,n),color:Zn(i.color,Dt[o].accent,n)}:{zIndex:1,size:i.size*ti(qu,n)}}var im=(Wr+Hr)/2,om=Kn*4,am=1;function ic(e){let t=Dt[e];return{hideEdgesOnMove:!0,enableCameraPanning:!0,renderEdgeLabels:!1,labelDensity:am,labelGridCellSize:om,labelRenderedSizeThreshold:im,labelFont:"inherit",labelSize:11,labelColor:{color:t.text},defaultNodeColor:t.dim,defaultEdgeColor:t.line,defaultNodeType:"circle",defaultEdgeType:"line",minEdgeThickness:.6,zIndex:!0,itemSizesReference:"positions",zoomToSizeRatioFunction:n=>n,stagePadding:Kn,defaultDrawNodeHover:Zg(e),allowInvalidContainer:!0}}function oc(e){return e==="contains"||e==="anchored-at"}function sm(e,t){let n=new Set(e.map(i=>i.id)),r=new Map;for(let i of t)oc(i.kind)&&i.source!==i.target&&(!n.has(i.source)||!n.has(i.target)||r.has(i.target)||r.set(i.target,i.source));return r}function lm(e,t){let n=sm(e,t),r=new Map;for(let i of e){let o=i.id,a=i.id,s=0,l=new Set([o]);for(;;){let u=n.get(o);if(u===void 0||l.has(u))break;l.add(u),a=o,o=u,s++}r.set(i.id,{key:a,depth:Math.max(0,s-1)})}return r}function um(e){let t=new Map;for(let n of e.values())t.set(n,(t.get(n)??0)+1);return t}var cm={dark:["#f5bde6","#c6a0f6","#ed8796","#f5a97f","#eed49f","#a6da95","#8bd5ca","#7dc4e4","#8aadf4","#b7bdf8"],light:["#824171","#7832d4","#d20f39","#9f3e07","#7b4e10","#28641b","#106368","#14616e","#1853c8","#445198"]},dm=3;function hm(e,t){let n=cm[t],i=[...um(e).entries()].sort((a,s)=>s[1]-a[1]||(a[0]<s[0]?-1:a[0]>s[0]?1:0)),o=new Map;return i.forEach(([a],s)=>o.set(a,n[s*dm%n.length])),o}var pm=.11,fm=.34;function gm(e,t,n){let r=Number.isFinite(t)&&t>0?t:0;return Zn(e,Dt[n].ground,Math.min(fm,r*pm))}var mm=.26,vm=.55;function ym(e,t,n){if(t.length===0)return e;let r=e,i=0;for(let o of t){let a=Math.min(mm,vm-i);if(a<=0)break;i+=a,r=Zn(r,o,a)}return r}function ac(e,t,n){let r=lm(e,t),i=new Map;for(let[c,h]of r)i.set(c,h.key);let o=hm(i,n),a=new Set(e.map(c=>c.id)),s=new Map,l=(c,h)=>{let d=r.get(c)?.key,p=r.get(h)?.key;if(d===void 0||p===void 0||d===p)return;let m=s.get(c);m===void 0?s.set(c,new Set([p])):m.add(p)};for(let c of t)oc(c.kind)||c.source!==c.target&&(!a.has(c.source)||!a.has(c.target)||(l(c.source,c.target),l(c.target,c.source)));let u=new Map;for(let c of e){let h=r.get(c.id);if(h===void 0)continue;let d=o.get(h.key);if(d===void 0)continue;let p=gm(d,h.depth,n),m=[...s.get(c.id)??[]].sort().map(w=>o.get(w)).filter(w=>w!==void 0);u.set(c.id,ym(p,m,n))}return u}function sc(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}var wm=300,bm=1;function xm(e,t,n){let r=new Map(n??[]);if(r.size>0)for(let o of t){if(o.kind!=="contains"&&o.kind!=="anchored-at"||r.has(o.target))continue;let a=r.get(o.source);a!==void 0&&r.set(o.target,{x:a.x,y:a.y})}let i={ticks:wm,seed:bm,pinWarm:!0};return r.size>0&&(i.initial=r),Gl({generatedAt:"",staleness:null,nodes:[...e],edges:[...t],contentDigest:""},i)}function km(e,t){let n=0,r=0;for(let o of e){let a=sc(o.id);n^=a,r=r+a>>>0}for(let o of t){let a=sc(`${o.source}\0${o.target}\0${o.kind}`);n^=a,r=r+a>>>0}return[e.length,t.length,n>>>0,r].map(o=>o.toString(16)).join("-")}var ni="pi-weave.graph.positions.v4";function lc(e){return Math.round(e*10)/10}function _m(e,t){let n={};for(let[r,i]of t)n[r]=[lc(i.x),lc(i.y)];return JSON.stringify({v:4,key:e,at:n})}function Em(e,t){if(e===null)return null;let n;try{n=JSON.parse(e)}catch{return null}if(typeof n!="object"||n===null||Array.isArray(n))return null;let r=n;if(r.v!==4||r.key!==t)return null;let i=r.at;if(typeof i!="object"||i===null||Array.isArray(i))return null;let o=new Map;for(let[a,s]of Object.entries(i)){if(!Array.isArray(s)||s.length!==2)return null;let[l,u]=s;if(typeof l!="number"||typeof u!="number"||!Number.isFinite(l)||!Number.isFinite(u))return null;o.set(a,{x:l,y:u})}return o.size===0?null:o}function Sm(e,t){let n;try{n=e.getItem(ni)}catch{return null}return Em(n,t)}function Tm(e,t,n){try{return e.setItem(ni,_m(t,n)),!0}catch{return!1}}function uc(e,t,n){let r=km(t,n),i=Sm(e,r);if(i!==null&&t.every(a=>i.has(a.id)))return{key:r,positions:i,cached:!0};let o=xm(t,n);return Tm(e,r,o),{key:r,positions:o,cached:!1}}function dc(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(i=>i.id===t);if(n===void 0)return null;let r=t.startsWith("artifact:")?"HTML artifact":t.startsWith("vfolder:")?"Folder":n.kind;return{id:t,title:n.label,kind:r,icon:Xt(n.kind)}}function Rm(e){return{expanded:new Set(Zr(e,new Set).clusters.keys())}}function hc(e,t){return t!==null?t:e===null?{expanded:new Set}:Rm(qt(e))}function Am(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function Cm(e,t){return t===null?null:Xr(t,e)}function pc(e,t,n){return t===null?n:Xr(t,e)}var fc="fit",gc="frame the whole graph",mc="sliders",vc="tune the layout physics and colours",ri={selected:"selected",neighborhood:"neighborhood",dimmed:"not related"};function yc(e,t){let n=t===1?"node":"nodes";return e===t?`${t} ${n}`:`${e} of ${t} ${n}`}function Lm(e,t){return e===null?"Loading…":e.model.nodes.length===0?"Nothing indexed yet — add a note or run /weave-scan.":t===0?"Nothing to draw at this expansion.":null}var Nm="The workspace did not load — ⟳ retries now, and the next change to the vault retries on its own.",cc={graph:Qu,highlight:null,key:"",cached:!1,clusters:new Map,visible:0,total:0,empty:"Loading…"};function wc(e,t,n,r,i,o=!1,a=!0){if(e===null)return o?{...cc,empty:Nm}:cc;let s=qt(e),l=Zr(s,n.expanded),c=n.expanded.has("vault")?l.edges.filter(p=>p.source!=="vault"&&p.target!=="vault"):l.edges,h=uc(r,l.nodes,c),d=a?ac(l.nodes,c,i):void 0;return{graph:ec(l.nodes,c,h.positions,i,d),highlight:Cm(c,t),key:h.key,cached:h.cached,clusters:l.clusters,visible:l.nodes.length,total:s.nodes.length,empty:Lm(e,l.nodes.length)}}function bc(e,t,n){return n===null?{state:e,selectedId:null}:t.get(n)===void 0||e.expanded.has(n)?{state:e,selectedId:n}:{state:Am(e,n),selectedId:n}}var xc="(prefers-color-scheme: light)";function ii(e){return e==null||typeof e.matchMedia!="function"?"dark":e.matchMedia(xc).matches?"light":"dark"}function kc(e,t){if(typeof e.matchMedia!="function")return()=>{};let n=e.matchMedia(xc);if(typeof n.addEventListener!="function")return()=>{};let r=()=>t(n.matches?"light":"dark");return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}var Pm=.06,Dm=.2,ca=.001,_c=.5;function Ec(e,t){if(e.nodes.length===0)return null;let n=e.nodes.map(s=>{let l=t?.get(s.id);return{id:s.id,x:l!==void 0&&Number.isFinite(l.x)?l.x:s.x,y:l!==void 0&&Number.isFinite(l.y)?l.y:s.y,vx:0,vy:0,r:Co(s.size)}}),r=new Map(n.map(s=>[s.id,s])),i=new Set,o=[];for(let s of e.edges){if(s.source===s.target||!r.has(s.source)||!r.has(s.target))continue;let l=`${s.source}\0${s.target}\0${s.kind}`;i.has(l)||(i.add(l),o.push({source:s.source,target:s.target,kind:s.kind}))}let a=No({nodes:n,links:o,seed:1}).alpha(Pm).alphaMin(ca);return{tick(){a.tick()},awake(){return a.alphaTarget()>ca||a.alpha()>ca},positions(){return new Map(n.map(s=>[s.id,{x:s.x??0,y:s.y??0}]))},pin(s,l){let u=r.get(s);if(!u)return;let c=u.fx!=null&&u.fy!=null&&Math.abs(u.fx-l.x)<_c&&Math.abs(u.fy-l.y)<_c;u.fx=l.x,u.fy=l.y,a.alphaTarget(c?0:Dm)},release(s){let l=r.get(s);l&&(l.fx=null,l.fy=null,a.alphaTarget(0))}}}var Im=0;function g(e,t,n,r,i,o){t||(t={});var a,s,l=t;if("ref"in l)for(s in l={},t)s=="ref"?a=t[s]:l[s]=t[s];var u={type:e,props:l,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Im,__i:-1,__u:0,__source:i,__self:o};if(typeof e=="function"&&(a=e.defaultProps))for(s in a)l[s]===void 0&&(l[s]=a[s]);return ee.vnode&&ee.vnode(u),u}function Sc(e){let[,t]=V(0),[n,r]=V(!1),i=(a,s)=>{Lo({[a.key]:zl(a,s)}),r(!1),t(l=>l+1),e.onChange()},o=a=>{Lo(a),r(!1),t(s=>s+1),e.onChange()};return g("div",{class:"weave-tuner",children:[g("p",{class:"weave-tuner-title",children:"graph forces · ?sliders=1"}),g("label",{class:"weave-tuner-toggle",title:"hue per containment group, shade per kind",children:[g("input",{type:"checkbox",checked:e.groupColors,onChange:a=>e.onGroupColors(a.currentTarget.checked)}),g("span",{children:"colour by group"})]}),Ur.map(a=>g("label",{class:"weave-tuner-row",title:a.hint,children:[g("span",{class:"weave-tuner-label",children:[a.label,g("b",{children:Wl(Re[a.key])})]}),g("input",{type:"range",min:a.min,max:a.max,step:a.step,value:$l(Re,a),onInput:s=>i(a,s.currentTarget.value)})]},a.key)),g("div",{class:"weave-tuner-actions",children:[g("button",{type:"button",class:"weave-chip",disabled:Hl(Re),onClick:()=>o(Vn),children:"reset"}),g("button",{type:"button",class:"weave-chip",title:"the pre-tuner constants, for comparison — see HAIRBALL",onClick:()=>o(Fl),children:"before"}),g("button",{type:"button",class:"weave-chip",onClick:()=>{navigator.clipboard?.writeText(Po(Re)).then(()=>r(!0),()=>r(!1))},children:n?"copied ✓":"copy values"})]}),g("pre",{class:"weave-tuner-snippet",children:Po(Re)})]})}var Qn="application/x-weave-note";function Tc(e,t){return t.startsWith("note:")&&e?.model.nodes.some(n=>n.id===t&&n.kind==="note")?t:null}function da(e,t){return t===null?e:[t,...e.filter(n=>n!==t)].slice(0,100)}function Rc(e,t){return t!==null&&t===e}function Ac(e,t,n){return e.map(r=>{let i=t?.model.nodes.find(a=>a.id===r),o=i?.kind??(r.startsWith("vfolder:")?"module":r.startsWith("artifact:")?"file":"note");return{id:r,label:i?.label??r.replace(/^[^:]+:/,""),icon:Xt(o),selected:r===n}})}var Cc={title:"Context"},Lc="—";function Nc(e,t,n){return{cwd:e===""?Lc:e,selection:t??"nothing selected",stamp:n}}function Pc(e){return e===null?Lc:/T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}var Dc=6e4;function ha(e){return e?"⌘K":"Ctrl K"}function Ic(e){return`Search notes and repository (${e})`}function pa(e){return/mac|iphone|ipad/i.test(e)}var Mm={k:{type:"openSearch"}},Mc={1:"tree",2:"note",3:"graph"};function Gm(e){return e.ctrl!==e.meta&&!e.alt&&!e.shift}function Om(e){return!e.ctrl&&!e.meta&&!e.alt}var Fm={"/":{type:"filterTree"},g:{type:"fitGraph"},"?":{type:"openHelp"},t:{type:"cycleTheme"}};function Gc(e,t){if(t.overlay!==null)return e.key==="Escape"?{type:"closeOverlay"}:null;if(e.alt&&!e.meta&&!e.ctrl&&!e.shift&&e.key.toLowerCase()==="w")return{type:"closeTab"};if(Gm(e)){let n=Mm[e.key.toLowerCase()];if(n!==void 0)return n;let r=Mc[e.key];return r===void 0?null:{type:"focusColumn",column:r}}return e.key==="Escape"?t.hasSelection?{type:"clearSelection"}:null:!Om(e)||e.typing?null:Fm[e.key]??null}var $m=["INPUT","TEXTAREA","SELECT"];function fa(e,t){return t?!0:e!==null&&$m.includes(e.toUpperCase())}function Oc(e){return{key:e.altKey&&e.code==="KeyW"?"w":e.key,ctrl:e.ctrlKey,meta:e.metaKey,shift:e.shiftKey,alt:e.altKey,typing:fa(e.target?.tagName??null,e.target?.isContentEditable===!0)}}var bn={tree:".weave-sidebar-notes .weave-rows",note:".weave-pane-active .weave-note-body",graph:".weave-graph-host .weave-graph-canvas"},ga=".weave-sidebar-notes .weave-filter";function zm(e){let t=e;return typeof t?.focus=="function"?t:null}function oi(e,t){let n=zm(e.querySelector(t));return n===null?!1:(n.focus(),!0)}function Fc(e,t){switch(e.type){case"openSearch":return t.setOverlay("search");case"openHelp":return t.setOverlay("help");case"closeOverlay":return t.setOverlay(null);case"focusColumn":return void t.focusSelector(bn[e.column]);case"filterTree":return void t.focusSelector(ga);case"fitGraph":return t.fitGraph();case"clearSelection":return t.clearSelection();case"closeTab":return t.closeTab();case"cycleTheme":return t.cycleTheme()}}function $c(e){return[{title:"Global",entries:[{combo:"⌥W / Alt W",what:"Close the active tab"},{combo:`${e}K`,what:"Search notes and the repository"},...Object.entries(Mc).map(([t,n])=>({combo:`${e}${t}`,what:n==="tree"?"Open and focus the notes sidebar":n==="graph"?"Open and focus Graph view":"Focus the note"})),{combo:"?",what:"This help"},{combo:"t",what:"Cycle the colour theme (system / light / dark)"},{combo:"Esc",what:"Clear the selection, or close an overlay"}]},{title:"Tree",entries:[{combo:"/",what:"Filter the tree"},{combo:"j / ↓",what:"Next row"},{combo:"k / ↑",what:"Previous row"},{combo:"→",what:"Expand, or step into"},{combo:"←",what:"Collapse, or step out"},{combo:"Home / End",what:"First / last row"}]},{title:"Tabs and panes",entries:[{combo:"← / → / Home / End",what:"Select a tab when the tab strip is focused"},{combo:`${e}click`,what:"Open a note or search result in a new tab"},{combo:"Pane options (···)",what:"Split right or down, move a tab, or close a pane"}]},{title:"Graph",entries:[{combo:"g",what:"Fit the whole graph"}]},{title:"Search",entries:[{combo:"↑ / ↓",what:"Move through results"},{combo:"↵",what:"Open the highlighted result"},{combo:`${e}↵`,what:"Open the highlighted result in a new tab"},{combo:"Esc",what:"Close the palette"}]}]}var ma="Keyboard shortcuts",zc="esc close";var Wc={chevron:{d:["M5.75 4.25 9.5 8l-3.75 3.75"],filled:!1},vault:{d:["M8 2.6 13.4 8 8 13.4 2.6 8Z"],filled:!0},note:{d:["M4.5 2.75h4.75l2.25 2.25v8.25h-7Z","M9.25 2.75V5h2.25"],filled:!1},repository:{d:["M2.75 4.25h10.5v7.5H2.75Z","M2.75 6.75h10.5"],filled:!1},module:{d:["M2.75 4.25h4l1.5 1.75h5v5.75h-10.5Z"],filled:!1},package:{d:["M8 2.5 13.25 5v6L8 13.5 2.75 11V5Z","M2.75 5 8 7.5 13.25 5","M8 7.5v6"],filled:!1},entryPoint:{d:["M5.75 3.75v8.5L12.75 8Z"],filled:!0},gitState:{d:["M8 2.85 13.15 8 8 13.15 2.85 8Z"],filled:!1},external:{d:["M4.5 11.5l7-7","M6.75 4.5h4.75v4.75"],filled:!1},file:{d:["M4.5 2.75h7v10.5h-7Z"],filled:!1}};function xt({name:e,class:t}){let n=Wc[e];return g("svg",{class:t,width:16,height:16,viewBox:`0 0 ${16} ${16}`,fill:n.filled?"currentColor":"none",stroke:n.filled?void 0:"currentColor","stroke-width":n.filled?void 0:n.width??1.5,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:n.d.map(r=>g("path",{d:r}))})}function Hm({view:e,recentIds:t,edit:n,onEdit:r,onRename:i,onSelect:o,onToggle:a,onMenu:s,onDrop:l}){let u=aa(e.id);return g("li",{id:e.domId,"data-row-id":e.id,class:`weave-row weave-row-${e.kind}${e.selected?" weave-row-on":""}${t.has(e.id)?" weave-row-new":""}`,role:"treeitem","aria-level":e.level,"aria-posinset":e.posinset,"aria-setsize":e.setsize,"aria-selected":e.selected,"aria-expanded":e.hasKids?e.expanded:void 0,style:Ou(e.depth),onClick:c=>o(c.metaKey||c.ctrlKey),draggable:e.id.startsWith("note:"),"aria-label":e.id===yn?"New folder":void 0,onDragStart:c=>{c.dataTransfer?.setData("text/plain",e.id),c.dataTransfer?.setData(Qn,e.id),c.dataTransfer&&(c.dataTransfer.effectAllowed="copyMove")},onDragOver:u===void 0?void 0:c=>c.preventDefault(),onDrop:u===void 0?void 0:c=>{c.preventDefault(),l(c.dataTransfer?.getData("text/plain")??"")},onContextMenu:c=>{c.preventDefault(),c.stopPropagation(),s(c.clientX,c.clientY)},children:[g("span",{class:"weave-twisty","aria-hidden":"true",onClick:c=>{c.stopPropagation(),a()},children:e.hasKids?g(xt,{name:"chevron",class:e.expanded?"weave-icon weave-icon-open":"weave-icon"}):null}),g("span",{class:"weave-kind","aria-hidden":"true",children:g(xt,{name:e.kindIcon,class:"weave-icon"})}),g("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),n===null?g("span",{class:"weave-label",children:e.label}):g(Um,{value:n,draft:e.id===yn,onEdit:r,onCommit:i}),g("span",{class:"weave-meta",children:e.meta})]})}function Um({value:e,draft:t,onEdit:n,onCommit:r}){let i=X(null);return Qe(()=>{let o=i.current;o!==null&&(o.focus(),o.select())},[]),g("input",{ref:i,class:"weave-tree-rename",value:e,placeholder:t?"New folder name…":void 0,onClick:o=>o.stopPropagation(),onInput:o=>n(o.currentTarget.value),onBlur:o=>r(o.currentTarget.value),onKeyDown:o=>{o.stopPropagation(),o.key==="Enter"?o.currentTarget.blur():o.key==="Escape"&&r(null)}})}function Hc(e){let[t,n]=V(_u),[r,i]=V(null),o=X(null);Qe(()=>{r!==null&&o.current?.querySelector(".weave-menu button")?.focus()},[r?.id]);let a=()=>{i(null),o.current?.querySelector(".weave-tree-actions")?.focus()},[s,l]=V(null),[u,c]=V(null),h=Ru(Eu(e.graph,t),u),d=Ku(e.graph,h,t),p=async(b,y)=>{let x=await b;if(!x.ok)window.alert(x.message);else{let k=x.data.id??y;k!==void 0&&e.onSelect(k),e.onRefresh()}},m=async b=>{if(r===null)return;let y=Yt(r.id);if(i(null),y!==null){if(b==="newFolder"){let x=Su(y);n(k=>ia(k,x)),c(x),l({id:yn,label:"",value:""})}else if(b==="rename")n(x=>ia(x,y.path.split("/").slice(0,-1).join("/"))),l({id:r.id,label:r.label,value:r.label});else if(y.type!=="vault"){if(!e.onMutate(Jr(e.graph,y)))return;await p(y.type==="note"?mu(Me,y.path):wu(Me,y.path),Au(e.selectedId,y)?"vault":void 0)}}},w=b=>{if(r!==null){if(sa(b)&&r.armed!==!0){i({...r,armed:!0});return}m("delete")}},v=b=>{let y=s,x=u;if(l(null),c(null),y===null)return;let k=b?.trim();if(y.id===yn){let A=x===null||!k?null:Tu(x,k);A!==null&&p(vu(Me,A));return}let N=Yt(y.id);if(N!==null&&k&&k!==y.label){if(!e.onMutate(Jr(e.graph,N)))return;p(N.type==="note"?fu(Me,N.path,k):yu(Me,N.path,k))}};return g("div",{class:"weave-tree",ref:o,onKeyDown:b=>{if(r!==null&&b.key==="Escape"){b.preventDefault(),b.stopPropagation(),a();return}let y=b.target,x=Du(h,t,e.selectedId,b.key,fa(y?.tagName??null,y?.isContentEditable===!0));x.handled&&(b.preventDefault(),n(x.state),x.selectedId!==null&&e.onSelect(x.selectedId,!1,!0))},children:[g("div",{class:"weave-tree-controls",children:[g("input",{type:"search",class:"weave-filter",value:t.query,placeholder:Wu,"aria-label":Uu,title:Bu,onInput:b=>n(Lu(t,b.currentTarget.value))}),g("button",{type:"button",class:"weave-chip",title:Fu(t.provFilter),onClick:()=>n(Nu(t)),children:["◧ ",Qr(t.provFilter)]}),g("button",{type:"button",class:"weave-chip",title:zu(t.showInternals),onClick:()=>n(Pu(t)),children:["◧ ",$u(t.showInternals)]}),g("button",{type:"button",class:"weave-chip weave-tree-actions","aria-label":"File actions",title:"File actions for the selected item",onClick:b=>{let y=e.selectedId!==null&&Yt(e.selectedId)!==null?e.selectedId:"vault",x=b.currentTarget.getBoundingClientRect();i({id:y,label:e.graph?.model.nodes.find(k=>k.id===y)?.label??"Vault",x:x.left,y:x.bottom})},children:"···"})]}),d===null?g("ul",{class:"weave-rows",role:"tree",tabIndex:0,"aria-label":Hu,"aria-activedescendant":Gu(h,e.selectedId)??void 0,onContextMenu:b=>{b.preventDefault(),i({id:"vault",label:"Vault",x:b.clientX,y:b.clientY})},children:Mu(h,e.selectedId,e.now).map(b=>g(Hm,{view:b,recentIds:e.recentIds,edit:s?.id===b.id?s.value:null,onEdit:y=>l(x=>x===null?null:{...x,value:y}),onRename:v,onSelect:y=>{e.onSelect(b.id,y),b.hasKids&&n(x=>oa(x,b.id))},onToggle:()=>n(oa(t,b.id)),onMenu:(y,x)=>i({id:b.id,label:b.label,x:y,y:x}),onDrop:y=>{let x=aa(b.id);if(y.startsWith("note:")&&x!==void 0){let k=Yt(y);if(k!==null&&!e.onMutate(Jr(e.graph,k)))return;p(gu(Me,y.slice(5),x))}}},b.id))}):g("p",{class:"weave-tree-empty",children:d}),g("p",{class:"weave-tree-count",children:Vu(h)}),r!==null&&Yt(r.id)!==null?(()=>{let b=Yt(r.id);return g(De,{children:[g("button",{type:"button",class:"weave-menu-backdrop","aria-label":"Close context menu",onClick:a}),g("div",{class:"weave-menu",role:"menu",style:{left:`${r.x}px`,top:`${r.y}px`},onKeyDown:y=>{if(y.key==="Escape")y.preventDefault(),a();else if(["ArrowDown","ArrowUp","Home","End"].includes(y.key)){y.preventDefault();let x=[...y.currentTarget.querySelectorAll("button")],k=x.indexOf(document.activeElement),N=y.key==="Home"?0:y.key==="End"?x.length-1:(k+(y.key==="ArrowDown"?1:-1)+x.length)%x.length;x[N]?.focus()}y.stopPropagation()},children:[g("button",{type:"button",role:"menuitem",onClick:()=>{m("newFolder")},children:"New folder…"}),b.type!=="vault"?g(De,{children:[g("button",{type:"button",role:"menuitem",onClick:()=>{m("rename")},children:"Rename…"}),g("button",{type:"button",role:"menuitem",class:"weave-menu-danger",onClick:()=>w(b),children:Cu(b,r.label,r.armed===!0)})]}):null]})]})})():null]})}function Uc(e){let t=X(null),n=X(null),r=X(null),i=X(null),o=tu(()=>{if(i.current!==null)return;let x=()=>{i.current=null;let k=r.current;k!==null&&(k.tick(),k.awake()&&(n.current?.setPositions(k.positions()),i.current=requestAnimationFrame(x)))};i.current=requestAnimationFrame(x)},[]),[a,s]=V(null),[l,u]=V(0),[c,h]=V(()=>Bl(e.storage)),[d,p]=V(e.tuner===!0),m=e.scheme??ii(e.host),w=hc(e.graph,a),v=Kt(()=>wc(e.graph,e.selectedId,w,e.storage,m,e.bootFailed,c),[e.graph,e.selectedId,w,e.storage,m,e.bootFailed,l,c]),b=dc(e.graph,e.previewId),y=X({view:w,model:v,onSelect:e.onSelect,selectedId:e.selectedId});return y.current={view:w,model:v,onSelect:e.onSelect,selectedId:e.selectedId},se(()=>{let x=e.renderer(m);return x.onSelect(k=>{let N=bc(y.current.view,y.current.model.clusters,k);s(N.state),y.current.onSelect(N.selectedId)}),x.onHover(k=>{let{model:N,selectedId:A}=y.current;x.setHighlight(pc(N.graph.edges,k,N.highlight),k??A)}),x.onDragStart(k=>{let N=n.current?.positions().get(k);N&&(r.current?.pin(k,N),o())}),x.onDragMove((k,N)=>{r.current?.pin(k,N)}),x.onDragEnd(k=>{r.current?.release(k)}),x.mount(t.current??{clientWidth:0,clientHeight:0}),n.current=x,x.setGraph(y.current.model.graph),x.setHighlight(y.current.model.highlight,y.current.selectedId),e.fit.current=()=>x.fit(),()=>{x.destroy(),n.current=null,e.fit.current=null}},[e.renderer,m]),se(()=>{n.current?.setGraph(v.graph)},[v.key,l,c]),se(()=>{let x=Ec(v.graph,n.current?.positions());return r.current=x,x!==null&&o(),()=>{r.current=null}},[v.key,o,l]),se(()=>()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),se(()=>{n.current?.setHighlight(v.highlight,e.selectedId)},[v.highlight,e.selectedId]),g("div",{class:"weave-graph",children:[v.empty===null?null:g("p",{class:"weave-graph-empty",children:v.empty}),g("div",{class:"weave-graph-canvas",ref:t,role:"img","aria-label":"Knowledge graph",tabIndex:-1}),b===null?null:g("aside",{class:"weave-graph-preview","aria-label":"Selected graph node",children:[g("div",{class:"weave-graph-preview-info",children:[g("span",{class:"weave-kind","aria-hidden":"true",children:g(xt,{name:b.icon,class:"weave-icon"})}),g("div",{class:"weave-graph-preview-copy",children:[g("span",{class:"weave-graph-preview-kind",children:b.kind}),g("strong",{class:"weave-graph-preview-title",title:b.title,children:b.title})]})]}),g("button",{type:"button",class:"weave-graph-preview-close","aria-label":"Clear graph selection",onClick:()=>e.onSelect(null),children:"×"}),g("button",{type:"button",class:"weave-chip",onClick:()=>e.onOpen(b.id),children:"Open in new tab"})]}),d?g(Sc,{groupColors:c,onGroupColors:x=>{Kl(e.storage,x),h(x)},onChange:()=>{try{e.storage.setItem(ni,"")}catch{}u(x=>x+1)}}):null,g("div",{class:"weave-graph-controls",children:[g("button",{type:"button",class:"weave-chip",title:gc,onClick:()=>n.current?.fit(),children:fc}),g("button",{type:"button",class:d?"weave-chip weave-chip-on":"weave-chip",title:vc,"aria-pressed":d,onClick:()=>p(!d),children:mc}),g("span",{class:"weave-graph-legend",children:[g("span",{class:"weave-legend-on",children:["◉ ",ri.selected]}),g("span",{class:"weave-legend-near",children:["● ",ri.neighborhood]}),g("span",{class:"weave-legend-dim",children:["· ",ri.dimmed]})]})]}),g("p",{class:"weave-graph-count",children:yc(v.visible,v.total)})]})}function Bm(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jt(e){var t=Bm(e,"string");return typeof t=="symbol"?t:t+""}function me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bc(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Jt(r.key),r)}}function ve(e,t,n){return t&&Bc(e.prototype,t),n&&Bc(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Qt(e){return Qt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Qt(e)}function Kc(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Kc=function(){return!!e})()}function Km(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Vm(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Km(e)}function Ge(e,t,n){return t=Qt(t),Vm(e,Kc()?Reflect.construct(t,n||[],Qt(e).constructor):t.apply(e,n))}function va(e,t){return va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},va(e,t)}function Oe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&va(e,t)}function jm(e){if(Array.isArray(e))return e}function qm(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function si(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function xa(e,t){if(e){if(typeof e=="string")return si(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?si(e,t):void 0}}function Ym(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
23
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function It(e,t){return jm(e)||qm(e,t)||xa(e,t)||Ym()}var ya={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"};var Vc=new Int8Array(4),wa=new Int32Array(Vc.buffer,0,1),Xm=new Float32Array(Vc.buffer,0,1),Zm=/^\s*rgba?\s*\(/,Qm=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function Jm(e){var t=0,n=0,r=0,i=1;if(e[0]==="#")e.length===4?(t=parseInt(e.charAt(1)+e.charAt(1),16),n=parseInt(e.charAt(2)+e.charAt(2),16),r=parseInt(e.charAt(3)+e.charAt(3),16)):(t=parseInt(e.charAt(1)+e.charAt(2),16),n=parseInt(e.charAt(3)+e.charAt(4),16),r=parseInt(e.charAt(5)+e.charAt(6),16)),e.length===9&&(i=parseInt(e.charAt(7)+e.charAt(8),16)/255);else if(Zm.test(e)){var o=e.match(Qm);o&&(t=+o[1],n=+o[2],r=+o[3],o[4]&&(i=+o[4]))}return{r:t,g:n,b:r,a:i}}var xn={};for(Jn in ya)xn[Jn]=kn(ya[Jn]),xn[ya[Jn]]=xn[Jn];var Jn;function jc(e,t,n,r,i){return wa[0]=r<<24|n<<16|t<<8|e,i&&(wa[0]=wa[0]&4278190079),Xm[0]}function kn(e){if(e=e.toLowerCase(),typeof xn[e]<"u")return xn[e];var t=Jm(e),n=t.r,r=t.g,i=t.b,o=t.a;o=o*255|0;var a=jc(n,r,i,o,!0);return xn[e]=a,a}var ba={};function ka(e){if(typeof ba[e]<"u")return ba[e];var t=(e&16711680)>>>16,n=(e&65280)>>>8,r=e&255,i=255,o=jc(t,n,r,i,!0);return ba[e]=o,o}function _a(e,t,n,r){return n+(t<<8)+(e<<16)}function Ea(e,t,n,r,i,o){var a=Math.floor(n/o*i),s=Math.floor(e.drawingBufferHeight/o-r/o*i),l=new Uint8Array(4);e.bindFramebuffer(e.FRAMEBUFFER,t),e.readPixels(a,s,1,1,e.RGBA,e.UNSIGNED_BYTE,l);var u=It(l,4),c=u[0],h=u[1],d=u[2],p=u[3];return[c,h,d,p]}function R(e,t,n){return(t=Jt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?qc(Object(n),!0).forEach(function(r){R(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qc(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ev(e,t){for(;!{}.hasOwnProperty.call(e,t)&&(e=Qt(e))!==null;);return e}function Ra(){return Ra=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=ev(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},Ra.apply(null,arguments)}function td(e,t,n,r){var i=Ra(Qt(1&r?e.prototype:e),t,n);return 2&r&&typeof i=="function"?function(o){return i.apply(n,o)}:i}function tv(e){return e.normalized?1:e.size}function Sa(e){var t=0;return e.forEach(function(n){return t+=tv(n)}),t}function nd(e,t,n){var r=e==="VERTEX"?t.VERTEX_SHADER:t.FRAGMENT_SHADER,i=t.createShader(r);if(i===null)throw new Error("loadShader: error while creating the shader");t.shaderSource(i,n),t.compileShader(i);var o=t.getShaderParameter(i,t.COMPILE_STATUS);if(!o){var a=t.getShaderInfoLog(i);throw t.deleteShader(i),new Error(`loadShader: error while compiling the shader:
|
|
91
24
|
`.concat(a,`
|
|
92
|
-
`).concat(n))}return i}function
|
|
93
|
-
`,
|
|
25
|
+
`).concat(n))}return i}function nv(e,t){return nd("VERTEX",e,t)}function rv(e,t){return nd("FRAGMENT",e,t)}function iv(e,t){var n=e.createProgram();if(n===null)throw new Error("loadProgram: error while creating the program.");var r,i;for(r=0,i=t.length;r<i;r++)e.attachShader(n,t[r]);e.linkProgram(n);var o=e.getProgramParameter(n,e.LINK_STATUS);if(!o){var a=e.getProgramInfoLog(n);throw e.deleteProgram(n),new Error("loadProgram: error while linking the program: ".concat(a))}return n}function Yc(e){var t=e.gl,n=e.buffer,r=e.program,i=e.vertexShader,o=e.fragmentShader;t.deleteShader(i),t.deleteShader(o),t.deleteProgram(r),t.deleteBuffer(n)}var Xc=`#define PICKING_MODE
|
|
26
|
+
`,ov=R(R(R(R(R(R(R(R({},WebGL2RenderingContext.BOOL,1),WebGL2RenderingContext.BYTE,1),WebGL2RenderingContext.UNSIGNED_BYTE,1),WebGL2RenderingContext.SHORT,2),WebGL2RenderingContext.UNSIGNED_SHORT,2),WebGL2RenderingContext.INT,4),WebGL2RenderingContext.UNSIGNED_INT,4),WebGL2RenderingContext.FLOAT,4);var rd=(function(){function e(t,n,r){me(this,e),R(this,"array",new Float32Array),R(this,"constantArray",new Float32Array),R(this,"capacity",0),R(this,"verticesCount",0);var i=this.getDefinition();if(this.VERTICES=i.VERTICES,this.VERTEX_SHADER_SOURCE=i.VERTEX_SHADER_SOURCE,this.FRAGMENT_SHADER_SOURCE=i.FRAGMENT_SHADER_SOURCE,this.UNIFORMS=i.UNIFORMS,this.ATTRIBUTES=i.ATTRIBUTES,this.METHOD=i.METHOD,this.CONSTANT_ATTRIBUTES="CONSTANT_ATTRIBUTES"in i?i.CONSTANT_ATTRIBUTES:[],this.CONSTANT_DATA="CONSTANT_DATA"in i?i.CONSTANT_DATA:[],this.isInstanced="CONSTANT_ATTRIBUTES"in i,this.ATTRIBUTES_ITEMS_COUNT=Sa(this.ATTRIBUTES),this.STRIDE=this.VERTICES*this.ATTRIBUTES_ITEMS_COUNT,this.renderer=r,this.normalProgram=this.getProgramInfo("normal",t,i.VERTEX_SHADER_SOURCE,i.FRAGMENT_SHADER_SOURCE,null),this.pickProgram=n?this.getProgramInfo("pick",t,Xc+i.VERTEX_SHADER_SOURCE,Xc+i.FRAGMENT_SHADER_SOURCE,n):null,this.isInstanced){var o=Sa(this.CONSTANT_ATTRIBUTES);if(this.CONSTANT_DATA.length!==this.VERTICES)throw new Error("Program: error while getting constant data (expected ".concat(this.VERTICES," items, received ").concat(this.CONSTANT_DATA.length," instead)"));this.constantArray=new Float32Array(this.CONSTANT_DATA.length*o);for(var a=0;a<this.CONSTANT_DATA.length;a++){var s=this.CONSTANT_DATA[a];if(s.length!==o)throw new Error("Program: error while getting constant data (one vector has ".concat(s.length," items instead of ").concat(o,")"));for(var l=0;l<s.length;l++)this.constantArray[a*o+l]=s[l]}this.STRIDE=this.ATTRIBUTES_ITEMS_COUNT}}return ve(e,[{key:"kill",value:function(){Yc(this.normalProgram),this.pickProgram&&(Yc(this.pickProgram),this.pickProgram=null)}},{key:"getProgramInfo",value:function(n,r,i,o,a){var s=this.getDefinition(),l=r.createBuffer();if(l===null)throw new Error("Program: error while creating the WebGL buffer.");var u=nv(r,i),c=rv(r,o),h=iv(r,[u,c]),d={};s.UNIFORMS.forEach(function(w){var v=r.getUniformLocation(h,w);v&&(d[w]=v)});var p={};s.ATTRIBUTES.forEach(function(w){p[w.name]=r.getAttribLocation(h,w.name)});var m;if("CONSTANT_ATTRIBUTES"in s&&(s.CONSTANT_ATTRIBUTES.forEach(function(w){p[w.name]=r.getAttribLocation(h,w.name)}),m=r.createBuffer(),m===null))throw new Error("Program: error while creating the WebGL constant buffer.");return{name:n,program:h,gl:r,frameBuffer:a,buffer:l,constantBuffer:m||{},uniformLocations:d,attributeLocations:p,isPicking:n==="pick",vertexShader:u,fragmentShader:c}}},{key:"bindProgram",value:function(n){var r=this,i=0,o=n.gl,a=n.buffer;this.isInstanced?(o.bindBuffer(o.ARRAY_BUFFER,n.constantBuffer),i=0,this.CONSTANT_ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!1)}),o.bufferData(o.ARRAY_BUFFER,this.constantArray,o.STATIC_DRAW),o.bindBuffer(o.ARRAY_BUFFER,n.buffer),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!0)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)):(o.bindBuffer(o.ARRAY_BUFFER,a),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)),o.bindBuffer(o.ARRAY_BUFFER,null)}},{key:"unbindProgram",value:function(n){var r=this;this.isInstanced?(this.CONSTANT_ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!1)}),this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!0)})):this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n)})}},{key:"bindAttribute",value:function(n,r,i,o){var a=ov[n.type];if(typeof a!="number")throw new Error('Program.bind: yet unsupported attribute type "'.concat(n.type,'"'));var s=r.attributeLocations[n.name],l=r.gl;if(s!==-1){l.enableVertexAttribArray(s);var u=this.isInstanced?(o?this.ATTRIBUTES_ITEMS_COUNT:Sa(this.CONSTANT_ATTRIBUTES))*Float32Array.BYTES_PER_ELEMENT:this.ATTRIBUTES_ITEMS_COUNT*Float32Array.BYTES_PER_ELEMENT;if(l.vertexAttribPointer(s,n.size,n.type,n.normalized||!1,u,i),this.isInstanced&&o)if(l instanceof WebGL2RenderingContext)l.vertexAttribDivisor(s,1);else{var c=l.getExtension("ANGLE_instanced_arrays");c&&c.vertexAttribDivisorANGLE(s,1)}}return n.size*a}},{key:"unbindAttribute",value:function(n,r,i){var o=r.attributeLocations[n.name],a=r.gl;if(o!==-1&&(a.disableVertexAttribArray(o),this.isInstanced&&i))if(a instanceof WebGL2RenderingContext)a.vertexAttribDivisor(o,0);else{var s=a.getExtension("ANGLE_instanced_arrays");s&&s.vertexAttribDivisorANGLE(o,0)}}},{key:"reallocate",value:function(n){n!==this.capacity&&(this.capacity=n,this.verticesCount=this.VERTICES*n,this.array=new Float32Array(this.isInstanced?this.capacity*this.ATTRIBUTES_ITEMS_COUNT:this.verticesCount*this.ATTRIBUTES_ITEMS_COUNT))}},{key:"hasNothingToRender",value:function(){return this.verticesCount===0}},{key:"renderProgram",value:function(n,r){var i=r.gl,o=r.program;i.enable(i.BLEND),i.useProgram(o),this.setUniforms(n,r),this.drawWebGL(this.METHOD,r)}},{key:"render",value:function(n){this.hasNothingToRender()||(this.pickProgram&&(this.pickProgram.gl.viewport(0,0,n.width*n.pixelRatio/n.downSizingRatio,n.height*n.pixelRatio/n.downSizingRatio),this.bindProgram(this.pickProgram),this.renderProgram($($({},n),{},{pixelRatio:n.pixelRatio/n.downSizingRatio}),this.pickProgram),this.unbindProgram(this.pickProgram)),this.normalProgram.gl.viewport(0,0,n.width*n.pixelRatio,n.height*n.pixelRatio),this.bindProgram(this.normalProgram),this.renderProgram(n,this.normalProgram),this.unbindProgram(this.normalProgram))}},{key:"drawWebGL",value:function(n,r){var i=r.gl,o=r.frameBuffer;if(i.bindFramebuffer(i.FRAMEBUFFER,o),!this.isInstanced)i.drawArrays(n,0,this.verticesCount);else if(i instanceof WebGL2RenderingContext)i.drawArraysInstanced(n,0,this.VERTICES,this.capacity);else{var a=i.getExtension("ANGLE_instanced_arrays");a&&a.drawArraysInstancedANGLE(n,0,this.VERTICES,this.capacity)}}}])})();var av=(function(e){function t(){return me(this,t),Ge(this,t,arguments)}return Oe(t,e),ve(t,[{key:"kill",value:function(){td(t,"kill",this,3)([])}},{key:"process",value:function(r,i,o){var a=i*this.STRIDE;if(o.hidden){for(var s=a+this.STRIDE;a<s;a++)this.array[a]=0;return}return this.processVisibleItem(ka(r),a,o)}}])})(rd);var Aa=(function(e){function t(){var n;me(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=Ge(this,t,[].concat(i)),R(n,"drawLabel",void 0),n}return Oe(t,e),ve(t,[{key:"kill",value:function(){td(t,"kill",this,3)([])}},{key:"process",value:function(r,i,o,a,s){var l=i*this.STRIDE;if(s.hidden||o.hidden||a.hidden){for(var u=l+this.STRIDE;l<u;l++)this.array[l]=0;return}return this.processVisibleItem(ka(r),l,o,a,s)}}])})(rd);function sv(e,t){return(function(){function n(r,i,o){me(this,n),R(this,"drawLabel",t),this.programs=e.map(function(a){return new a(r,i,o)})}return ve(n,[{key:"reallocate",value:function(i){this.programs.forEach(function(o){return o.reallocate(i)})}},{key:"process",value:function(i,o,a,s,l){this.programs.forEach(function(u){return u.process(i,o,a,s,l)})}},{key:"render",value:function(i){this.programs.forEach(function(o){return o.render(i)})}},{key:"kill",value:function(){this.programs.forEach(function(i){return i.kill()})}}])})()}function id(e,t,n,r,i){var o=i.edgeLabelSize,a=i.edgeLabelFont,s=i.edgeLabelWeight,l=i.edgeLabelColor.attribute?t[i.edgeLabelColor.attribute]||i.edgeLabelColor.color||"#000":i.edgeLabelColor.color,u=t.label;if(u){e.fillStyle=l,e.font="".concat(s," ").concat(o,"px ").concat(a);var c=n.size,h=r.size,d=n.x,p=n.y,m=r.x,w=r.y,v=(d+m)/2,b=(p+w)/2,y=m-d,x=w-p,k=Math.sqrt(y*y+x*x);if(!(k<c+h)){d+=y*c/k,p+=x*c/k,m-=y*h/k,w-=x*h/k,v=(d+m)/2,b=(p+w)/2,y=m-d,x=w-p,k=Math.sqrt(y*y+x*x);var N=e.measureText(u).width;if(N>k){var A="…";for(u=u+A,N=e.measureText(u).width;N>k&&u.length>1;)u=u.slice(0,-2)+A,N=e.measureText(u).width;if(u.length<4)return}var P;y>0?x>0?P=Math.acos(y/k):P=Math.asin(x/k):x>0?P=Math.acos(y/k)+Math.PI:P=Math.asin(y/k)+Math.PI/2,e.save(),e.translate(v,b),e.rotate(P),e.fillText(u,-N/2,t.size/2+o),e.restore()}}}function Ca(e,t,n){if(t.label){var r=n.labelSize,i=n.labelFont,o=n.labelWeight,a=n.labelColor.attribute?t[n.labelColor.attribute]||n.labelColor.color||"#000":n.labelColor.color;e.fillStyle=a,e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillText(t.label,t.x+t.size+3,t.y+r/3)}}function od(e,t,n){var r=n.labelSize,i=n.labelFont,o=n.labelWeight;e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillStyle="#FFF",e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=8,e.shadowColor="#000";var a=2;if(typeof t.label=="string"){var s=e.measureText(t.label).width,l=Math.round(s+5),u=Math.round(r+2*a),c=Math.max(t.size,r/2)+a,h=Math.asin(u/2/c),d=Math.sqrt(Math.abs(Math.pow(c,2)-Math.pow(u/2,2)));e.beginPath(),e.moveTo(t.x+d,t.y+u/2),e.lineTo(t.x+c+l,t.y+u/2),e.lineTo(t.x+c+l,t.y-u/2),e.lineTo(t.x+d,t.y-u/2),e.arc(t.x,t.y,c,h,-h),e.closePath(),e.fill()}else e.beginPath(),e.arc(t.x,t.y,t.size+a,0,Math.PI*2),e.closePath(),e.fill();e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=0,Ca(e,t,n)}var lv=`
|
|
94
27
|
precision highp float;
|
|
95
28
|
|
|
96
29
|
varying vec4 v_color;
|
|
@@ -122,7 +55,7 @@ void main(void) {
|
|
|
122
55
|
gl_FragColor = mix(v_color, transparent, t);
|
|
123
56
|
#endif
|
|
124
57
|
}
|
|
125
|
-
`,
|
|
58
|
+
`,uv=lv,cv=`
|
|
126
59
|
attribute vec4 a_id;
|
|
127
60
|
attribute vec4 a_color;
|
|
128
61
|
attribute vec2 a_position;
|
|
@@ -163,7 +96,7 @@ void main() {
|
|
|
163
96
|
|
|
164
97
|
v_color.a *= bias;
|
|
165
98
|
}
|
|
166
|
-
`,
|
|
99
|
+
`,dv=cv,ad=WebGLRenderingContext,Zc=ad.UNSIGNED_BYTE,Ta=ad.FLOAT,hv=["u_sizeRatio","u_correctionRatio","u_matrix"],tr=(function(e){function t(){return me(this,t),Ge(this,t,arguments)}return Oe(t,e),ve(t,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:dv,FRAGMENT_SHADER_SOURCE:uv,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:hv,ATTRIBUTES:[{name:"a_position",size:2,type:Ta},{name:"a_size",size:1,type:Ta},{name:"a_color",size:4,type:Zc,normalized:!0},{name:"a_id",size:4,type:Zc,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:Ta}],CONSTANT_DATA:[[t.ANGLE_1],[t.ANGLE_2],[t.ANGLE_3]]}}},{key:"processVisibleItem",value:function(r,i,o){var a=this.array,s=kn(o.color);a[i++]=o.x,a[i++]=o.y,a[i++]=o.size,a[i++]=s,a[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,a=i.uniformLocations,s=a.u_sizeRatio,l=a.u_correctionRatio,u=a.u_matrix;o.uniform1f(l,r.correctionRatio),o.uniform1f(s,r.sizeRatio),o.uniformMatrix3fv(u,!1,r.matrix)}}])})(av);R(tr,"ANGLE_1",0);R(tr,"ANGLE_2",2*Math.PI/3);R(tr,"ANGLE_3",4*Math.PI/3);var pv=`
|
|
167
100
|
precision mediump float;
|
|
168
101
|
|
|
169
102
|
varying vec4 v_color;
|
|
@@ -171,7 +104,7 @@ varying vec4 v_color;
|
|
|
171
104
|
void main(void) {
|
|
172
105
|
gl_FragColor = v_color;
|
|
173
106
|
}
|
|
174
|
-
`,
|
|
107
|
+
`,fv=pv,gv=`
|
|
175
108
|
attribute vec2 a_position;
|
|
176
109
|
attribute vec2 a_normal;
|
|
177
110
|
attribute float a_radius;
|
|
@@ -237,7 +170,7 @@ void main() {
|
|
|
237
170
|
|
|
238
171
|
v_color.a *= bias;
|
|
239
172
|
}
|
|
240
|
-
`,
|
|
173
|
+
`,mv=gv,sd=WebGLRenderingContext,Qc=sd.UNSIGNED_BYTE,li=sd.FLOAT,vv=["u_matrix","u_sizeRatio","u_correctionRatio","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio"],ld={extremity:"target",lengthToThicknessRatio:2.5,widenessToThicknessRatio:2};function ud(e){var t=$($({},ld),e||{});return(function(n){function r(){return me(this,r),Ge(this,r,arguments)}return Oe(r,n),ve(r,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:mv,FRAGMENT_SHADER_SOURCE:fv,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:vv,ATTRIBUTES:[{name:"a_position",size:2,type:li},{name:"a_normal",size:2,type:li},{name:"a_radius",size:1,type:li},{name:"a_color",size:4,type:Qc,normalized:!0},{name:"a_id",size:4,type:Qc,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_barycentric",size:3,type:li}],CONSTANT_DATA:[[1,0,0],[0,1,0],[0,0,1]]}}},{key:"processVisibleItem",value:function(o,a,s,l,u){if(t.extremity==="source"){var c=[l,s];s=c[0],l=c[1]}var h=u.size||1,d=l.size||1,p=s.x,m=s.y,w=l.x,v=l.y,b=kn(u.color),y=w-p,x=v-m,k=y*y+x*x,N=0,A=0;k&&(k=1/Math.sqrt(k),N=-x*k*h,A=y*k*h);var P=this.array;P[a++]=w,P[a++]=v,P[a++]=-N,P[a++]=-A,P[a++]=d,P[a++]=b,P[a++]=o}},{key:"setUniforms",value:function(o,a){var s=a.gl,l=a.uniformLocations,u=l.u_matrix,c=l.u_sizeRatio,h=l.u_correctionRatio,d=l.u_minEdgeThickness,p=l.u_lengthToThicknessRatio,m=l.u_widenessToThicknessRatio;s.uniformMatrix3fv(u,!1,o.matrix),s.uniform1f(c,o.sizeRatio),s.uniform1f(h,o.correctionRatio),s.uniform1f(d,o.minEdgeThickness),s.uniform1f(p,t.lengthToThicknessRatio),s.uniform1f(m,t.widenessToThicknessRatio)}}])})(Aa)}var O0=ud();var yv=`
|
|
241
174
|
precision mediump float;
|
|
242
175
|
|
|
243
176
|
varying vec4 v_color;
|
|
@@ -263,7 +196,7 @@ void main(void) {
|
|
|
263
196
|
gl_FragColor = mix(v_color, transparent, t);
|
|
264
197
|
#endif
|
|
265
198
|
}
|
|
266
|
-
`,
|
|
199
|
+
`,cd=yv,wv=`
|
|
267
200
|
attribute vec4 a_id;
|
|
268
201
|
attribute vec4 a_color;
|
|
269
202
|
attribute vec2 a_normal;
|
|
@@ -331,7 +264,7 @@ void main() {
|
|
|
331
264
|
|
|
332
265
|
v_color.a *= bias;
|
|
333
266
|
}
|
|
334
|
-
`,
|
|
267
|
+
`,bv=wv,dd=WebGLRenderingContext,Jc=dd.UNSIGNED_BYTE,en=dd.FLOAT,xv=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness","u_lengthToThicknessRatio"],kv={lengthToThicknessRatio:ld.lengthToThicknessRatio};function hd(e){var t=$($({},kv),e||{});return(function(n){function r(){return me(this,r),Ge(this,r,arguments)}return Oe(r,n),ve(r,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:bv,FRAGMENT_SHADER_SOURCE:cd,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:xv,ATTRIBUTES:[{name:"a_positionStart",size:2,type:en},{name:"a_positionEnd",size:2,type:en},{name:"a_normal",size:2,type:en},{name:"a_color",size:4,type:Jc,normalized:!0},{name:"a_id",size:4,type:Jc,normalized:!0},{name:"a_radius",size:1,type:en}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:en},{name:"a_normalCoef",size:1,type:en},{name:"a_radiusCoef",size:1,type:en}],CONSTANT_DATA:[[0,1,0],[0,-1,0],[1,1,1],[1,1,1],[0,-1,0],[1,-1,-1]]}}},{key:"processVisibleItem",value:function(o,a,s,l,u){var c=u.size||1,h=s.x,d=s.y,p=l.x,m=l.y,w=kn(u.color),v=p-h,b=m-d,y=l.size||1,x=v*v+b*b,k=0,N=0;x&&(x=1/Math.sqrt(x),k=-b*x*c,N=v*x*c);var A=this.array;A[a++]=h,A[a++]=d,A[a++]=p,A[a++]=m,A[a++]=k,A[a++]=N,A[a++]=w,A[a++]=o,A[a++]=y}},{key:"setUniforms",value:function(o,a){var s=a.gl,l=a.uniformLocations,u=l.u_matrix,c=l.u_zoomRatio,h=l.u_feather,d=l.u_pixelRatio,p=l.u_correctionRatio,m=l.u_sizeRatio,w=l.u_minEdgeThickness,v=l.u_lengthToThicknessRatio;s.uniformMatrix3fv(u,!1,o.matrix),s.uniform1f(c,o.zoomRatio),s.uniform1f(m,o.sizeRatio),s.uniform1f(p,o.correctionRatio),s.uniform1f(d,o.pixelRatio),s.uniform1f(h,o.antiAliasingFeather),s.uniform1f(w,o.minEdgeThickness),s.uniform1f(v,t.lengthToThicknessRatio)}}])})(Aa)}var F0=hd();function _v(e){return sv([hd(e),ud(e)])}var Ev=_v(),pd=Ev,Sv=`
|
|
335
268
|
attribute vec4 a_id;
|
|
336
269
|
attribute vec4 a_color;
|
|
337
270
|
attribute vec2 a_normal;
|
|
@@ -396,16 +329,198 @@ void main() {
|
|
|
396
329
|
|
|
397
330
|
v_color.a *= bias;
|
|
398
331
|
}
|
|
399
|
-
`,Cv=Rv,Lc=WebGLRenderingContext,mc=Lc.UNSIGNED_BYTE,An=Lc.FLOAT,Lv=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness"],Nc=(function(t){function e(){return ce(this,e),ke(this,e,arguments)}return Ee(e,t),de(e,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Cv,FRAGMENT_SHADER_SOURCE:Tc,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Lv,ATTRIBUTES:[{name:"a_positionStart",size:2,type:An},{name:"a_positionEnd",size:2,type:An},{name:"a_normal",size:2,type:An},{name:"a_color",size:4,type:mc,normalized:!0},{name:"a_id",size:4,type:mc,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:An},{name:"a_normalCoef",size:1,type:An}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[1,1],[0,-1],[1,-1]]}}},{key:"processVisibleItem",value:function(r,i,o,a,s){var l=s.size||1,u=o.x,c=o.y,h=a.x,d=a.y,f=Zt(s.color),v=h-u,m=d-c,g=v*v+m*m,w=0,y=0;g&&(g=1/Math.sqrt(g),w=-m*g*l,y=v*g*l);var _=this.array;_[i++]=u,_[i++]=c,_[i++]=h,_[i++]=d,_[i++]=w,_[i++]=y,_[i++]=f,_[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,a=i.uniformLocations,s=a.u_matrix,l=a.u_zoomRatio,u=a.u_feather,c=a.u_pixelRatio,h=a.u_correctionRatio,d=a.u_sizeRatio,f=a.u_minEdgeThickness;o.uniformMatrix3fv(s,!1,r.matrix),o.uniform1f(l,r.zoomRatio),o.uniform1f(d,r.sizeRatio),o.uniform1f(h,r.correctionRatio),o.uniform1f(c,r.pixelRatio),o.uniform1f(u,r.antiAliasingFeather),o.uniform1f(f,r.minEdgeThickness)}}])})(jo);var Hc=hn(Br()),Wr=(function(t){function e(){var n;return ce(this,e),n=ke(this,e),n.rawEmitter=n,n}return Ee(e,t),de(e)})(Hc.EventEmitter);var Vc=hn(Xo());var Fv=function(e){return e},Ov=function(e){return e*e},zv=function(e){return e*(2-e)},$v=function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},Uv=function(e){return e*e*e},Hv=function(e){return--e*e*e+1},Bv=function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},jc={linear:Fv,quadraticIn:Ov,quadraticOut:zv,quadraticInOut:$v,cubicIn:Uv,cubicOut:Hv,cubicInOut:Bv},qc={easing:"quadraticInOut",duration:150};function Fe(){return Float32Array.of(1,0,0,0,1,0,0,0,1)}function Kr(t,e,n){return t[0]=e,t[4]=typeof n=="number"?n:e,t}function Wc(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[3]=-n,t[4]=r,t}function Kc(t,e,n){return t[6]=e,t[7]=n,t}function pt(t,e){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],l=t[6],u=t[7],c=t[8],h=e[0],d=e[1],f=e[2],v=e[3],m=e[4],g=e[5],w=e[6],y=e[7],_=e[8];return t[0]=h*n+d*o+f*l,t[1]=h*r+d*a+f*u,t[2]=h*i+d*s+f*c,t[3]=v*n+m*o+g*l,t[4]=v*r+m*a+g*u,t[5]=v*i+m*s+g*c,t[6]=w*n+y*o+_*l,t[7]=w*r+y*a+_*u,t[8]=w*i+y*s+_*c,t}function Vr(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=t[0],i=t[1],o=t[3],a=t[4],s=t[6],l=t[7],u=e.x,c=e.y;return{x:u*r+c*o+s*n,y:u*i+c*a+l*n}}function Wv(t,e){var n=t.height/t.width,r=e.height/e.width;return n<1&&r>1||n>1&&r<1?1:Math.min(Math.max(r,1/r),Math.max(1/n,n))}function Jt(t,e,n,r,i){var o=t.angle,a=t.ratio,s=t.x,l=t.y,u=e.width,c=e.height,h=Fe(),d=Math.min(u,c)-2*r,f=Wv(e,n);return i?(pt(h,Kc(Fe(),s,l)),pt(h,Kr(Fe(),a)),pt(h,Wc(Fe(),o)),pt(h,Kr(Fe(),u/d/2/f,c/d/2/f))):(pt(h,Kr(Fe(),2*(d/u)*f,2*(d/c)*f)),pt(h,Wc(Fe(),-o)),pt(h,Kr(Fe(),1/a)),pt(h,Kc(Fe(),-s,-l))),h}function Yc(t,e,n){var r=Vr(t,{x:Math.cos(e.angle),y:Math.sin(e.angle)},0),i=r.x,o=r.y;return 1/Math.sqrt(Math.pow(i,2)+Math.pow(o,2))/n.width}function Xc(t){if(!t.order)return{x:[0,1],y:[0,1]};var e=1/0,n=-1/0,r=1/0,i=-1/0;return t.forEachNode(function(o,a){var s=a.x,l=a.y;s<e&&(e=s),s>n&&(n=s),l<r&&(r=l),l>i&&(i=l)}),{x:[e,n],y:[r,i]}}function Zc(t){if(!(0,Vc.default)(t))throw new Error("Sigma: invalid graph instance.");t.forEachNode(function(e,n){if(!Number.isFinite(n.x)||!Number.isFinite(n.y))throw new Error("Sigma: Coordinates of node ".concat(e," are invalid. A node must have a numeric 'x' and 'y' attribute."))})}function Qc(t,e,n){var r=document.createElement(t);if(e)for(var i in e)r.style[i]=e[i];if(n)for(var o in n)r.setAttribute(o,n[o]);return r}function Zo(){return typeof window.devicePixelRatio<"u"?window.devicePixelRatio:1}function Qo(t,e,n){return n.sort(function(r,i){var o=e(r)||0,a=e(i)||0;return o<a?-1:o>a?1:0})}function Jo(t){var e=ft(t.x,2),n=e[0],r=e[1],i=ft(t.y,2),o=i[0],a=i[1],s=Math.max(r-n,a-o),l=(r+n)/2,u=(a+o)/2;(s===0||Math.abs(s)===1/0||isNaN(s))&&(s=1),isNaN(l)&&(l=0),isNaN(u)&&(u=0);var c=function(d){return{x:.5+(d.x-l)/s,y:.5+(d.y-u)/s}};return c.applyTo=function(h){h.x=.5+(h.x-l)/s,h.y=.5+(h.y-u)/s},c.inverse=function(h){return{x:l+s*(h.x-.5),y:u+s*(h.y-.5)}},c.ratio=s,c}function jr(t){"@babel/helpers - typeof";return jr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jr(t)}function ea(t,e){var n=e.size;if(n!==0){var r=t.length;t.length+=n;var i=0;e.forEach(function(o){t[r+i]=o,i++})}}function qr(t){t=t||{};for(var e=0,n=arguments.length<=1?0:arguments.length-1;e<n;e++){var r=e+1<1||arguments.length<=e+1?void 0:arguments[e+1];r&&Object.assign(t,r)}return t}var Yr={hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!1,enableEdgeEvents:!1,defaultNodeColor:"#999",defaultNodeType:"circle",defaultEdgeColor:"#ccc",defaultEdgeType:"line",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,defaultDrawEdgeLabel:bc,defaultDrawNodeLabel:qo,defaultDrawNodeHover:xc,minEdgeThickness:1.7,antiAliasingFeather:1,dragTimeout:100,draggedEventsTolerance:3,inertiaDuration:200,inertiaRatio:3,zoomDuration:250,zoomingRatio:1.7,doubleClickTimeout:300,doubleClickZoomingRatio:2.2,doubleClickZoomingDuration:200,tapMoveTolerance:10,zoomToSizeRatioFunction:Math.sqrt,itemSizesReference:"screen",autoRescale:!0,autoCenter:!0,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,nodeReducer:null,edgeReducer:null,zIndex:!1,minCameraRatio:null,maxCameraRatio:null,enableCameraZooming:!0,enableCameraPanning:!0,enableCameraRotation:!0,cameraPanBoundaries:null,allowInvalidContainer:!1,nodeProgramClasses:{},nodeHoverProgramClasses:{},edgeProgramClasses:{}},Kv={circle:Rn},Vv={arrow:Cc,line:Nc};function Xr(t){if(typeof t.labelDensity!="number"||t.labelDensity<0)throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");var e=t.minCameraRatio,n=t.maxCameraRatio;if(typeof e=="number"&&typeof n=="number"&&n<e)throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.")}function Jc(t){var e=qr({},Yr,t);return e.nodeProgramClasses=qr({},Kv,e.nodeProgramClasses),e.edgeProgramClasses=qr({},Vv,e.edgeProgramClasses),e}var IE=hn(Br()),PE=hn(Xo()),Zr=1.5,ed=(function(t){function e(){var n;return ce(this,e),n=ke(this,e),S(n,"x",.5),S(n,"y",.5),S(n,"angle",0),S(n,"ratio",1),S(n,"minRatio",null),S(n,"maxRatio",null),S(n,"enabledZooming",!0),S(n,"enabledPanning",!0),S(n,"enabledRotation",!0),S(n,"clean",null),S(n,"nextFrame",null),S(n,"previousState",null),S(n,"enabled",!0),n.previousState=n.getState(),n}return Ee(e,t),de(e,[{key:"enable",value:function(){return this.enabled=!0,this}},{key:"disable",value:function(){return this.enabled=!1,this}},{key:"getState",value:function(){return{x:this.x,y:this.y,angle:this.angle,ratio:this.ratio}}},{key:"hasState",value:function(r){return this.x===r.x&&this.y===r.y&&this.ratio===r.ratio&&this.angle===r.angle}},{key:"getPreviousState",value:function(){var r=this.previousState;return r?{x:r.x,y:r.y,angle:r.angle,ratio:r.ratio}:null}},{key:"getBoundedRatio",value:function(r){var i=r;return typeof this.minRatio=="number"&&(i=Math.max(i,this.minRatio)),typeof this.maxRatio=="number"&&(i=Math.min(i,this.maxRatio)),i}},{key:"validateState",value:function(r){var i={};return this.enabledPanning&&typeof r.x=="number"&&(i.x=r.x),this.enabledPanning&&typeof r.y=="number"&&(i.y=r.y),this.enabledZooming&&typeof r.ratio=="number"&&(i.ratio=this.getBoundedRatio(r.ratio)),this.enabledRotation&&typeof r.angle=="number"&&(i.angle=r.angle),this.clean?this.clean(G(G({},this.getState()),i)):i}},{key:"isAnimated",value:function(){return!!this.nextFrame}},{key:"setState",value:function(r){if(!this.enabled)return this;this.previousState=this.getState();var i=this.validateState(r);return typeof i.x=="number"&&(this.x=i.x),typeof i.y=="number"&&(this.y=i.y),typeof i.ratio=="number"&&(this.ratio=i.ratio),typeof i.angle=="number"&&(this.angle=i.angle),this.hasState(this.previousState)||this.emit("updated",this.getState()),this}},{key:"updateState",value:function(r){return this.setState(r(this.getState())),this}},{key:"animate",value:function(r){var i=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;if(!a)return new Promise(function(f){return i.animate(r,o,f)});if(this.enabled){var s=G(G({},qc),o),l=this.validateState(r),u=typeof s.easing=="function"?s.easing:jc[s.easing],c=Date.now(),h=this.getState(),d=function(){var v=(Date.now()-c)/s.duration;if(v>=1){i.nextFrame=null,i.setState(l),i.animationCallback&&(i.animationCallback.call(null),i.animationCallback=void 0);return}var m=u(v),g={};typeof l.x=="number"&&(g.x=h.x+(l.x-h.x)*m),typeof l.y=="number"&&(g.y=h.y+(l.y-h.y)*m),i.enabledRotation&&typeof l.angle=="number"&&(g.angle=h.angle+(l.angle-h.angle)*m),typeof l.ratio=="number"&&(g.ratio=h.ratio+(l.ratio-h.ratio)*m),i.setState(g),i.nextFrame=requestAnimationFrame(d)};this.nextFrame?(cancelAnimationFrame(this.nextFrame),this.animationCallback&&this.animationCallback.call(null),this.nextFrame=requestAnimationFrame(d)):d(),this.animationCallback=a}}},{key:"animatedZoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio/r}):this.animate({ratio:this.ratio/(r.factor||Zr)},r):this.animate({ratio:this.ratio/Zr})}},{key:"animatedUnzoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio*r}):this.animate({ratio:this.ratio*(r.factor||Zr)},r):this.animate({ratio:this.ratio*Zr})}},{key:"animatedReset",value:function(r){return this.animate({x:.5,y:.5,ratio:1,angle:0},r)}},{key:"copy",value:function(){return e.from(this.getState())}}],[{key:"from",value:function(r){var i=new e;return i.setState(r)}}])})(Wr);function We(t,e){var n=e.getBoundingClientRect();return{x:t.clientX-n.left,y:t.clientY-n.top}}function it(t,e){var n=G(G({},We(t,e)),{},{sigmaDefaultPrevented:!1,preventSigmaDefault:function(){n.sigmaDefaultPrevented=!0},original:t});return n}function Cn(t){var e="x"in t?t:G(G({},t.touches[0]||t.previousTouches[0]),{},{original:t.original,sigmaDefaultPrevented:t.sigmaDefaultPrevented,preventSigmaDefault:function(){t.sigmaDefaultPrevented=!0,e.sigmaDefaultPrevented=!0}});return e}function jv(t,e){return G(G({},it(t,e)),{},{delta:ad(t)})}var qv=2;function Qr(t){for(var e=[],n=0,r=Math.min(t.length,qv);n<r;n++)e.push(t[n]);return e}function Ln(t,e,n){var r={touches:Qr(t.touches).map(function(i){return We(i,n)}),previousTouches:e.map(function(i){return We(i,n)}),sigmaDefaultPrevented:!1,preventSigmaDefault:function(){r.sigmaDefaultPrevented=!0},original:t};return r}function ad(t){if(typeof t.deltaY<"u")return t.deltaY*-3/360;if(typeof t.detail<"u")return t.detail/-9;throw new Error("Captor: could not extract delta from event.")}var sd=(function(t){function e(n,r){var i;return ce(this,e),i=ke(this,e),i.container=n,i.renderer=r,i}return Ee(e,t),de(e)})(Wr),Yv=["doubleClickTimeout","doubleClickZoomingDuration","doubleClickZoomingRatio","dragTimeout","draggedEventsTolerance","inertiaDuration","inertiaRatio","zoomDuration","zoomingRatio"],Xv=Yv.reduce(function(t,e){return G(G({},t),{},S({},e,Yr[e]))},{}),Zv=(function(t){function e(n,r){var i;return ce(this,e),i=ke(this,e,[n,r]),S(i,"enabled",!0),S(i,"draggedEvents",0),S(i,"downStartTime",null),S(i,"lastMouseX",null),S(i,"lastMouseY",null),S(i,"isMouseDown",!1),S(i,"isMoving",!1),S(i,"movingTimeout",null),S(i,"startCameraState",null),S(i,"clicks",0),S(i,"doubleClickTimeout",null),S(i,"currentWheelDirection",0),S(i,"settings",Xv),i.handleClick=i.handleClick.bind(i),i.handleRightClick=i.handleRightClick.bind(i),i.handleDown=i.handleDown.bind(i),i.handleUp=i.handleUp.bind(i),i.handleMove=i.handleMove.bind(i),i.handleWheel=i.handleWheel.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleEnter=i.handleEnter.bind(i),n.addEventListener("click",i.handleClick,{capture:!1}),n.addEventListener("contextmenu",i.handleRightClick,{capture:!1}),n.addEventListener("mousedown",i.handleDown,{capture:!1}),n.addEventListener("wheel",i.handleWheel,{capture:!1}),n.addEventListener("mouseleave",i.handleLeave,{capture:!1}),n.addEventListener("mouseenter",i.handleEnter,{capture:!1}),document.addEventListener("mousemove",i.handleMove,{capture:!1}),document.addEventListener("mouseup",i.handleUp,{capture:!1}),i}return Ee(e,t),de(e,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("click",this.handleClick),r.removeEventListener("contextmenu",this.handleRightClick),r.removeEventListener("mousedown",this.handleDown),r.removeEventListener("wheel",this.handleWheel),r.removeEventListener("mouseleave",this.handleLeave),r.removeEventListener("mouseenter",this.handleEnter),document.removeEventListener("mousemove",this.handleMove),document.removeEventListener("mouseup",this.handleUp)}},{key:"handleClick",value:function(r){var i=this;if(this.enabled){if(this.clicks++,this.clicks===2)return this.clicks=0,typeof this.doubleClickTimeout=="number"&&(clearTimeout(this.doubleClickTimeout),this.doubleClickTimeout=null),this.handleDoubleClick(r);setTimeout(function(){i.clicks=0,i.doubleClickTimeout=null},this.settings.doubleClickTimeout),this.draggedEvents<this.settings.draggedEventsTolerance&&this.emit("click",it(r,this.container))}}},{key:"handleRightClick",value:function(r){this.enabled&&this.emit("rightClick",it(r,this.container))}},{key:"handleDoubleClick",value:function(r){if(this.enabled){r.preventDefault(),r.stopPropagation();var i=it(r,this.container);if(this.emit("doubleClick",i),!i.sigmaDefaultPrevented){var o=this.renderer.getCamera(),a=o.getBoundedRatio(o.getState().ratio/this.settings.doubleClickZoomingRatio);o.animate(this.renderer.getViewportZoomedState(We(r,this.container),a),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}}},{key:"handleDown",value:function(r){if(this.enabled){if(r.button===0){this.startCameraState=this.renderer.getCamera().getState();var i=We(r,this.container),o=i.x,a=i.y;this.lastMouseX=o,this.lastMouseY=a,this.draggedEvents=0,this.downStartTime=Date.now(),this.isMouseDown=!0}this.emit("mousedown",it(r,this.container))}}},{key:"handleUp",value:function(r){var i=this;if(!(!this.enabled||!this.isMouseDown)){var o=this.renderer.getCamera();this.isMouseDown=!1,typeof this.movingTimeout=="number"&&(clearTimeout(this.movingTimeout),this.movingTimeout=null);var a=We(r,this.container),s=a.x,l=a.y,u=o.getState(),c=o.getPreviousState()||{x:0,y:0};this.isMoving?o.animate({x:u.x+this.settings.inertiaRatio*(u.x-c.x),y:u.y+this.settings.inertiaRatio*(u.y-c.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"}):(this.lastMouseX!==s||this.lastMouseY!==l)&&o.setState({x:u.x,y:u.y}),this.isMoving=!1,setTimeout(function(){var h=i.draggedEvents>0;i.draggedEvents=0,h&&i.renderer.getSetting("hideEdgesOnMove")&&i.renderer.refresh()},0),this.emit("mouseup",it(r,this.container))}}},{key:"handleMove",value:function(r){var i=this;if(this.enabled){var o=it(r,this.container);if(this.emit("mousemovebody",o),(r.target===this.container||r.composedPath()[0]===this.container)&&this.emit("mousemove",o),!o.sigmaDefaultPrevented&&this.isMouseDown){this.isMoving=!0,this.draggedEvents++,typeof this.movingTimeout=="number"&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.movingTimeout=null,i.isMoving=!1},this.settings.dragTimeout);var a=this.renderer.getCamera(),s=We(r,this.container),l=s.x,u=s.y,c=this.renderer.viewportToFramedGraph({x:this.lastMouseX,y:this.lastMouseY}),h=this.renderer.viewportToFramedGraph({x:l,y:u}),d=c.x-h.x,f=c.y-h.y,v=a.getState(),m=v.x+d,g=v.y+f;a.setState({x:m,y:g}),this.lastMouseX=l,this.lastMouseY=u,r.preventDefault(),r.stopPropagation()}}}},{key:"handleLeave",value:function(r){this.emit("mouseleave",it(r,this.container))}},{key:"handleEnter",value:function(r){this.emit("mouseenter",it(r,this.container))}},{key:"handleWheel",value:function(r){var i=this,o=this.renderer.getCamera();if(!(!this.enabled||!o.enabledZooming)){var a=ad(r);if(a){var s=jv(r,this.container);if(this.emit("wheel",s),s.sigmaDefaultPrevented){r.preventDefault(),r.stopPropagation();return}var l=o.getState().ratio,u=a>0?1/this.settings.zoomingRatio:this.settings.zoomingRatio,c=o.getBoundedRatio(l*u),h=a>0?1:-1,d=Date.now();l!==c&&(r.preventDefault(),r.stopPropagation(),!(this.currentWheelDirection===h&&this.lastWheelTriggerTime&&d-this.lastWheelTriggerTime<this.settings.zoomDuration/5)&&(o.animate(this.renderer.getViewportZoomedState(We(r,this.container),c),{easing:"quadraticOut",duration:this.settings.zoomDuration},function(){i.currentWheelDirection=0}),this.currentWheelDirection=h,this.lastWheelTriggerTime=d))}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(sd),Qv=["dragTimeout","inertiaDuration","inertiaRatio","doubleClickTimeout","doubleClickZoomingRatio","doubleClickZoomingDuration","tapMoveTolerance"],Jv=Qv.reduce(function(t,e){return G(G({},t),{},S({},e,Yr[e]))},{}),ey=(function(t){function e(n,r){var i;return ce(this,e),i=ke(this,e,[n,r]),S(i,"enabled",!0),S(i,"isMoving",!1),S(i,"hasMoved",!1),S(i,"touchMode",0),S(i,"startTouchesPositions",[]),S(i,"lastTouches",[]),S(i,"lastTap",null),S(i,"settings",Jv),i.handleStart=i.handleStart.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleMove=i.handleMove.bind(i),n.addEventListener("touchstart",i.handleStart,{capture:!1}),n.addEventListener("touchcancel",i.handleLeave,{capture:!1}),document.addEventListener("touchend",i.handleLeave,{capture:!1,passive:!1}),document.addEventListener("touchmove",i.handleMove,{capture:!1,passive:!1}),i}return Ee(e,t),de(e,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("touchstart",this.handleStart),r.removeEventListener("touchcancel",this.handleLeave),document.removeEventListener("touchend",this.handleLeave),document.removeEventListener("touchmove",this.handleMove)}},{key:"getDimensions",value:function(){return{width:this.container.offsetWidth,height:this.container.offsetHeight}}},{key:"handleStart",value:function(r){var i=this;if(this.enabled){r.preventDefault();var o=Qr(r.touches);if(this.touchMode=o.length,this.startCameraState=this.renderer.getCamera().getState(),this.startTouchesPositions=o.map(function(f){return We(f,i.container)}),this.touchMode===2){var a=ft(this.startTouchesPositions,2),s=a[0],l=s.x,u=s.y,c=a[1],h=c.x,d=c.y;this.startTouchesAngle=Math.atan2(d-u,h-l),this.startTouchesDistance=Math.sqrt(Math.pow(h-l,2)+Math.pow(d-u,2))}this.emit("touchdown",Ln(r,this.lastTouches,this.container)),this.lastTouches=o,this.lastTouchesPositions=this.startTouchesPositions}}},{key:"handleLeave",value:function(r){if(!(!this.enabled||!this.startTouchesPositions.length)){switch(r.cancelable&&r.preventDefault(),this.movingTimeout&&(this.isMoving=!1,clearTimeout(this.movingTimeout)),this.touchMode){case 2:if(r.touches.length===1){this.handleStart(r),r.preventDefault();break}case 1:if(this.isMoving){var i=this.renderer.getCamera(),o=i.getState(),a=i.getPreviousState()||{x:0,y:0};i.animate({x:o.x+this.settings.inertiaRatio*(o.x-a.x),y:o.y+this.settings.inertiaRatio*(o.y-a.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"})}this.hasMoved=!1,this.isMoving=!1,this.touchMode=0;break}if(this.emit("touchup",Ln(r,this.lastTouches,this.container)),!r.touches.length){var s=We(this.lastTouches[0],this.container),l=this.startTouchesPositions[0],u=Math.pow(s.x-l.x,2)+Math.pow(s.y-l.y,2);if(!r.touches.length&&u<Math.pow(this.settings.tapMoveTolerance,2))if(this.lastTap&&Date.now()-this.lastTap.time<this.settings.doubleClickTimeout){var c=Ln(r,this.lastTouches,this.container);if(this.emit("doubletap",c),this.lastTap=null,!c.sigmaDefaultPrevented){var h=this.renderer.getCamera(),d=h.getBoundedRatio(h.getState().ratio/this.settings.doubleClickZoomingRatio);h.animate(this.renderer.getViewportZoomedState(s,d),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}else{var f=Ln(r,this.lastTouches,this.container);this.emit("tap",f),this.lastTap={time:Date.now(),position:f.touches[0]||f.previousTouches[0]}}}this.lastTouches=Qr(r.touches),this.startTouchesPositions=[]}}},{key:"handleMove",value:function(r){var i=this;if(!(!this.enabled||!this.startTouchesPositions.length)){r.preventDefault();var o=Qr(r.touches),a=o.map(function(je){return We(je,i.container)}),s=this.lastTouches;this.lastTouches=o,this.lastTouchesPositions=a;var l=Ln(r,s,this.container);if(this.emit("touchmove",l),!l.sigmaDefaultPrevented&&(this.hasMoved||(this.hasMoved=a.some(function(je,sn){var Me=i.startTouchesPositions[sn];return Me&&(je.x!==Me.x||je.y!==Me.y)})),!!this.hasMoved)){this.isMoving=!0,this.movingTimeout&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.isMoving=!1},this.settings.dragTimeout);var u=this.renderer.getCamera(),c=this.startCameraState,h=this.renderer.getSetting("stagePadding");switch(this.touchMode){case 1:{var d=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0]),f=d.x,v=d.y,m=this.renderer.viewportToFramedGraph(a[0]),g=m.x,w=m.y;u.setState({x:c.x+f-g,y:c.y+v-w});break}case 2:{var y={x:.5,y:.5,angle:0,ratio:1},_=a[0],k=_.x,T=_.y,C=a[1],M=C.x,z=C.y,R=Math.atan2(z-T,M-k)-this.startTouchesAngle,D=Math.hypot(z-T,M-k)/this.startTouchesDistance,N=u.getBoundedRatio(c.ratio/D);y.ratio=N,y.angle=c.angle+R;var O=this.getDimensions(),H=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0],{cameraState:c}),Y=Math.min(O.width,O.height)-2*h,j=Y/O.width,Ce=Y/O.height,vt=N/Y,be=k-Y/2/j,$e=T-Y/2/Ce,Ue=[be*Math.cos(-y.angle)-$e*Math.sin(-y.angle),$e*Math.cos(-y.angle)+be*Math.sin(-y.angle)];be=Ue[0],$e=Ue[1],y.x=H.x-be*vt,y.y=H.y+$e*vt,u.setState(y);break}}}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(sd);function ty(t){if(Array.isArray(t))return zr(t)}function ny(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function ry(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
400
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function td(t){return ty(t)||ny(t)||$o(t)||ry()}function iy(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}function ta(t,e){if(t==null)return{};var n,r,i=iy(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}var nd=(function(){function t(e,n){ce(this,t),this.key=e,this.size=n}return de(t,null,[{key:"compare",value:function(n,r){return n.size>r.size?-1:n.size<r.size||n.key>r.key?1:-1}}])})(),rd=(function(){function t(){ce(this,t),S(this,"width",0),S(this,"height",0),S(this,"cellSize",0),S(this,"columns",0),S(this,"rows",0),S(this,"cells",{})}return de(t,[{key:"resizeAndClear",value:function(n,r){this.width=n.width,this.height=n.height,this.cellSize=r,this.columns=Math.ceil(n.width/r),this.rows=Math.ceil(n.height/r),this.cells={}}},{key:"getIndex",value:function(n){var r=Math.floor(n.x/this.cellSize),i=Math.floor(n.y/this.cellSize);return i*this.columns+r}},{key:"add",value:function(n,r,i){var o=new nd(n,r),a=this.getIndex(i),s=this.cells[a];s||(s=[],this.cells[a]=s),s.push(o)}},{key:"organize",value:function(){for(var n in this.cells){var r=this.cells[n];r.sort(nd.compare)}}},{key:"getLabelsToDisplay",value:function(n,r){var i=this.cellSize*this.cellSize,o=i/n/n,a=o*r/i,s=Math.ceil(a),l=[];for(var u in this.cells)for(var c=this.cells[u],h=0;h<Math.min(s,c.length);h++)l.push(c[h].key);return l}}])})();function oy(t){var e=t.graph,n=t.hoveredNode,r=t.highlightedNodes,i=t.displayedNodeLabels,o=[];return e.forEachEdge(function(a,s,l,u){(l===n||u===n||r.has(l)||r.has(u)||i.has(l)&&i.has(u))&&o.push(a)}),o}var id=150,od=50,ot=Object.prototype.hasOwnProperty;function ay(t,e,n){if(!ot.call(n,"x")||!ot.call(n,"y"))throw new Error('Sigma: could not find a valid position (x, y) for node "'.concat(e,'". All your nodes must have a number "x" and "y". Maybe your forgot to apply a layout or your "nodeReducer" is not returning the correct data?'));return n.color||(n.color=t.defaultNodeColor),!n.label&&n.label!==""&&(n.label=null),n.label!==void 0&&n.label!==null?n.label=""+n.label:n.label=null,n.size||(n.size=2),ot.call(n,"hidden")||(n.hidden=!1),ot.call(n,"highlighted")||(n.highlighted=!1),ot.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=t.defaultNodeType),n.zIndex||(n.zIndex=0),n}function sy(t,e,n){return n.color||(n.color=t.defaultEdgeColor),n.label||(n.label=""),n.size||(n.size=.5),ot.call(n,"hidden")||(n.hidden=!1),ot.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=t.defaultEdgeType),n.zIndex||(n.zIndex=0),n}var ly=(function(t){function e(n,r){var i,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(ce(this,e),i=ke(this,e),S(i,"elements",{}),S(i,"canvasContexts",{}),S(i,"webGLContexts",{}),S(i,"pickingLayers",new Set),S(i,"textures",{}),S(i,"frameBuffers",{}),S(i,"activeListeners",{}),S(i,"labelGrid",new rd),S(i,"nodeDataCache",{}),S(i,"edgeDataCache",{}),S(i,"nodeProgramIndex",{}),S(i,"edgeProgramIndex",{}),S(i,"nodesWithForcedLabels",new Set),S(i,"edgesWithForcedLabels",new Set),S(i,"nodeExtent",{x:[0,1],y:[0,1]}),S(i,"nodeZExtent",[1/0,-1/0]),S(i,"edgeZExtent",[1/0,-1/0]),S(i,"matrix",Fe()),S(i,"invMatrix",Fe()),S(i,"correctionRatio",1),S(i,"customBBox",null),S(i,"normalizationFunction",Jo({x:[0,1],y:[0,1]})),S(i,"graphToViewportRatio",1),S(i,"itemIDsIndex",{}),S(i,"nodeIndices",{}),S(i,"edgeIndices",{}),S(i,"width",0),S(i,"height",0),S(i,"pixelRatio",Zo()),S(i,"pickingDownSizingRatio",2*i.pixelRatio),S(i,"displayedNodeLabels",new Set),S(i,"displayedEdgeLabels",new Set),S(i,"highlightedNodes",new Set),S(i,"hoveredNode",null),S(i,"hoveredEdge",null),S(i,"renderFrame",null),S(i,"renderHighlightedNodesFrame",null),S(i,"needToProcess",!1),S(i,"checkEdgesEventsFrame",null),S(i,"nodePrograms",{}),S(i,"nodeHoverPrograms",{}),S(i,"edgePrograms",{}),i.settings=Jc(o),Xr(i.settings),Zc(n),!(r instanceof HTMLElement))throw new Error("Sigma: container should be an html element.");i.graph=n,i.container=r,i.createWebGLContext("edges",{picking:o.enableEdgeEvents}),i.createCanvasContext("edgeLabels"),i.createWebGLContext("nodes",{picking:!0}),i.createCanvasContext("labels"),i.createCanvasContext("hovers"),i.createWebGLContext("hoverNodes"),i.createCanvasContext("mouse",{style:{touchAction:"none",userSelect:"none"}}),i.resize();for(var a in i.settings.nodeProgramClasses)i.registerNodeProgram(a,i.settings.nodeProgramClasses[a],i.settings.nodeHoverProgramClasses[a]);for(var s in i.settings.edgeProgramClasses)i.registerEdgeProgram(s,i.settings.edgeProgramClasses[s]);return i.camera=new ed,i.bindCameraHandlers(),i.mouseCaptor=new Zv(i.elements.mouse,i),i.mouseCaptor.setSettings(i.settings),i.touchCaptor=new ey(i.elements.mouse,i),i.touchCaptor.setSettings(i.settings),i.bindEventHandlers(),i.bindGraphHandlers(),i.handleSettingsUpdate(),i.refresh(),i}return Ee(e,t),de(e,[{key:"registerNodeProgram",value:function(r,i,o){return this.nodePrograms[r]&&this.nodePrograms[r].kill(),this.nodeHoverPrograms[r]&&this.nodeHoverPrograms[r].kill(),this.nodePrograms[r]=new i(this.webGLContexts.nodes,this.frameBuffers.nodes,this),this.nodeHoverPrograms[r]=new(o||i)(this.webGLContexts.hoverNodes,null,this),this}},{key:"registerEdgeProgram",value:function(r,i){return this.edgePrograms[r]&&this.edgePrograms[r].kill(),this.edgePrograms[r]=new i(this.webGLContexts.edges,this.frameBuffers.edges,this),this}},{key:"unregisterNodeProgram",value:function(r){if(this.nodePrograms[r]){var i=this.nodePrograms,o=i[r],a=ta(i,[r].map(Dt));o.kill(),this.nodePrograms=a}if(this.nodeHoverPrograms[r]){var s=this.nodeHoverPrograms,l=s[r],u=ta(s,[r].map(Dt));l.kill(),this.nodePrograms=u}return this}},{key:"unregisterEdgeProgram",value:function(r){if(this.edgePrograms[r]){var i=this.edgePrograms,o=i[r],a=ta(i,[r].map(Dt));o.kill(),this.edgePrograms=a}return this}},{key:"resetWebGLTexture",value:function(r){var i=this.webGLContexts[r],o=this.frameBuffers[r],a=this.textures[r];a&&i.deleteTexture(a);var s=i.createTexture();return i.bindFramebuffer(i.FRAMEBUFFER,o),i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,s,0),this.textures[r]=s,this}},{key:"bindCameraHandlers",value:function(){var r=this;return this.activeListeners.camera=function(){r.scheduleRender()},this.camera.on("updated",this.activeListeners.camera),this}},{key:"unbindCameraHandlers",value:function(){return this.camera.removeListener("updated",this.activeListeners.camera),this}},{key:"getNodeAtPosition",value:function(r){var i=r.x,o=r.y,a=Bo(this.webGLContexts.nodes,this.frameBuffers.nodes,i,o,this.pixelRatio,this.pickingDownSizingRatio),s=Ho.apply(void 0,td(a)),l=this.itemIDsIndex[s];return l&&l.type==="node"?l.id:null}},{key:"bindEventHandlers",value:function(){var r=this;this.activeListeners.handleResize=function(){r.scheduleRefresh()},window.addEventListener("resize",this.activeListeners.handleResize),this.activeListeners.handleMove=function(o){var a=Cn(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}},l=r.getNodeAtPosition(a);if(l&&r.hoveredNode!==l&&!r.nodeDataCache[l].hidden){r.hoveredNode&&r.emit("leaveNode",G(G({},s),{},{node:r.hoveredNode})),r.hoveredNode=l,r.emit("enterNode",G(G({},s),{},{node:l})),r.scheduleHighlightedNodesRender();return}if(r.hoveredNode&&r.getNodeAtPosition(a)!==r.hoveredNode){var u=r.hoveredNode;r.hoveredNode=null,r.emit("leaveNode",G(G({},s),{},{node:u})),r.scheduleHighlightedNodesRender();return}if(r.settings.enableEdgeEvents){var c=r.hoveredNode?null:r.getEdgeAtPoint(s.event.x,s.event.y);c!==r.hoveredEdge&&(r.hoveredEdge&&r.emit("leaveEdge",G(G({},s),{},{edge:r.hoveredEdge})),c&&r.emit("enterEdge",G(G({},s),{},{edge:c})),r.hoveredEdge=c)}},this.activeListeners.handleMoveBody=function(o){var a=Cn(o);r.emit("moveBody",{event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}})},this.activeListeners.handleLeave=function(o){var a=Cn(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.hoveredNode&&(r.emit("leaveNode",G(G({},s),{},{node:r.hoveredNode})),r.scheduleHighlightedNodesRender()),r.settings.enableEdgeEvents&&r.hoveredEdge&&(r.emit("leaveEdge",G(G({},s),{},{edge:r.hoveredEdge})),r.scheduleHighlightedNodesRender()),r.emit("leaveStage",G({},s))},this.activeListeners.handleEnter=function(o){var a=Cn(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.emit("enterStage",G({},s))};var i=function(a){return function(s){var l=Cn(s),u={event:l,preventSigmaDefault:function(){l.preventSigmaDefault()}},c=r.getNodeAtPosition(l);if(c)return r.emit("".concat(a,"Node"),G(G({},u),{},{node:c}));if(r.settings.enableEdgeEvents){var h=r.getEdgeAtPoint(l.x,l.y);if(h)return r.emit("".concat(a,"Edge"),G(G({},u),{},{edge:h}))}return r.emit("".concat(a,"Stage"),u)}};return this.activeListeners.handleClick=i("click"),this.activeListeners.handleRightClick=i("rightClick"),this.activeListeners.handleDoubleClick=i("doubleClick"),this.activeListeners.handleWheel=i("wheel"),this.activeListeners.handleDown=i("down"),this.activeListeners.handleUp=i("up"),this.mouseCaptor.on("mousemove",this.activeListeners.handleMove),this.mouseCaptor.on("mousemovebody",this.activeListeners.handleMoveBody),this.mouseCaptor.on("click",this.activeListeners.handleClick),this.mouseCaptor.on("rightClick",this.activeListeners.handleRightClick),this.mouseCaptor.on("doubleClick",this.activeListeners.handleDoubleClick),this.mouseCaptor.on("wheel",this.activeListeners.handleWheel),this.mouseCaptor.on("mousedown",this.activeListeners.handleDown),this.mouseCaptor.on("mouseup",this.activeListeners.handleUp),this.mouseCaptor.on("mouseleave",this.activeListeners.handleLeave),this.mouseCaptor.on("mouseenter",this.activeListeners.handleEnter),this.touchCaptor.on("touchdown",this.activeListeners.handleDown),this.touchCaptor.on("touchdown",this.activeListeners.handleMove),this.touchCaptor.on("touchup",this.activeListeners.handleUp),this.touchCaptor.on("touchmove",this.activeListeners.handleMove),this.touchCaptor.on("tap",this.activeListeners.handleClick),this.touchCaptor.on("doubletap",this.activeListeners.handleDoubleClick),this.touchCaptor.on("touchmove",this.activeListeners.handleMoveBody),this}},{key:"bindGraphHandlers",value:function(){var r=this,i=this.graph,o=new Set(["x","y","zIndex","type"]);return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachNode(function(c){return r.updateNode(c)});var u=!l||l.some(function(c){return o.has(c)});r.refresh({partialGraph:{nodes:i.nodes()},skipIndexation:!u,schedule:!0})},this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachEdge(function(c){return r.updateEdge(c)});var u=l&&["zIndex","type"].some(function(c){return l?.includes(c)});r.refresh({partialGraph:{edges:i.edges()},skipIndexation:!u,schedule:!0})},this.activeListeners.addNodeGraphUpdate=function(a){var s=a.key;r.addNode(s),r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.updateNodeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropNodeGraphUpdate=function(a){var s=a.key;r.removeNode(s),r.refresh({schedule:!0})},this.activeListeners.addEdgeGraphUpdate=function(a){var s=a.key;r.addEdge(s),r.refresh({partialGraph:{edges:[s]},schedule:!0})},this.activeListeners.updateEdgeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{edges:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropEdgeGraphUpdate=function(a){var s=a.key;r.removeEdge(s),r.refresh({schedule:!0})},this.activeListeners.clearEdgesGraphUpdate=function(){r.clearEdgeState(),r.clearEdgeIndices(),r.refresh({schedule:!0})},this.activeListeners.clearGraphUpdate=function(){r.clearEdgeState(),r.clearNodeState(),r.clearEdgeIndices(),r.clearNodeIndices(),r.refresh({schedule:!0})},i.on("nodeAdded",this.activeListeners.addNodeGraphUpdate),i.on("nodeDropped",this.activeListeners.dropNodeGraphUpdate),i.on("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),i.on("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),i.on("edgeAdded",this.activeListeners.addEdgeGraphUpdate),i.on("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),i.on("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),i.on("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),i.on("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),i.on("cleared",this.activeListeners.clearGraphUpdate),this}},{key:"unbindGraphHandlers",value:function(){var r=this.graph;r.removeListener("nodeAdded",this.activeListeners.addNodeGraphUpdate),r.removeListener("nodeDropped",this.activeListeners.dropNodeGraphUpdate),r.removeListener("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),r.removeListener("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),r.removeListener("edgeAdded",this.activeListeners.addEdgeGraphUpdate),r.removeListener("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),r.removeListener("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),r.removeListener("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),r.removeListener("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),r.removeListener("cleared",this.activeListeners.clearGraphUpdate)}},{key:"getEdgeAtPoint",value:function(r,i){var o=Bo(this.webGLContexts.edges,this.frameBuffers.edges,r,i,this.pixelRatio,this.pickingDownSizingRatio),a=Ho.apply(void 0,td(o)),s=this.itemIDsIndex[a];return s&&s.type==="edge"?s.id:null}},{key:"process",value:function(){var r=this;this.emit("beforeProcess");var i=this.graph,o=this.settings,a=this.getDimensions();if(this.nodeExtent=Xc(this.graph),!this.settings.autoRescale){var s=a.width,l=a.height,u=this.nodeExtent,c=u.x,h=u.y;this.nodeExtent={x:[(c[0]+c[1])/2-s/2,(c[0]+c[1])/2+s/2],y:[(h[0]+h[1])/2-l/2,(h[0]+h[1])/2+l/2]}}this.normalizationFunction=Jo(this.customBBox||this.nodeExtent);var d=new ed,f=Jt(d.getState(),a,this.getGraphDimensions(),this.getStagePadding());this.labelGrid.resizeAndClear(a,o.labelGridCellSize);for(var v={},m={},g={},w={},y=1,_=i.nodes(),k=0,T=_.length;k<T;k++){var C=_[k],M=this.nodeDataCache[C],z=i.getNodeAttributes(C);M.x=z.x,M.y=z.y,this.normalizationFunction.applyTo(M),typeof M.label=="string"&&!M.hidden&&this.labelGrid.add(C,M.size,this.framedGraphToViewport(M,{matrix:f})),v[M.type]=(v[M.type]||0)+1}this.labelGrid.organize();for(var R in this.nodePrograms){if(!ot.call(this.nodePrograms,R))throw new Error('Sigma: could not find a suitable program for node type "'.concat(R,'"!'));this.nodePrograms[R].reallocate(v[R]||0),v[R]=0}this.settings.zIndex&&this.nodeZExtent[0]!==this.nodeZExtent[1]&&(_=Qo(this.nodeZExtent,function(ln){return r.nodeDataCache[ln].zIndex},_));for(var D=0,N=_.length;D<N;D++){var O=_[D];m[O]=y,w[m[O]]={type:"node",id:O},y++;var H=this.nodeDataCache[O];this.addNodeToProgram(O,m[O],v[H.type]++)}for(var Y={},j=i.edges(),Ce=0,vt=j.length;Ce<vt;Ce++){var be=j[Ce],$e=this.edgeDataCache[be];Y[$e.type]=(Y[$e.type]||0)+1}this.settings.zIndex&&this.edgeZExtent[0]!==this.edgeZExtent[1]&&(j=Qo(this.edgeZExtent,function(ln){return r.edgeDataCache[ln].zIndex},j));for(var Ue in this.edgePrograms){if(!ot.call(this.edgePrograms,Ue))throw new Error('Sigma: could not find a suitable program for edge type "'.concat(Ue,'"!'));this.edgePrograms[Ue].reallocate(Y[Ue]||0),Y[Ue]=0}for(var je=0,sn=j.length;je<sn;je++){var Me=j[je];g[Me]=y,w[g[Me]]={type:"edge",id:Me},y++;var J=this.edgeDataCache[Me];this.addEdgeToProgram(Me,g[Me],Y[J.type]++)}return this.itemIDsIndex=w,this.nodeIndices=m,this.edgeIndices=g,this.emit("afterProcess"),this}},{key:"handleSettingsUpdate",value:function(r){var i=this,o=this.settings;if(this.camera.minRatio=o.minCameraRatio,this.camera.maxRatio=o.maxCameraRatio,this.camera.enabledZooming=o.enableCameraZooming,this.camera.enabledPanning=o.enableCameraPanning,this.camera.enabledRotation=o.enableCameraRotation,o.cameraPanBoundaries?this.camera.clean=function(c){return i.cleanCameraState(c,o.cameraPanBoundaries&&jr(o.cameraPanBoundaries)==="object"?o.cameraPanBoundaries:{})}:this.camera.clean=null,this.camera.setState(this.camera.validateState(this.camera.getState())),r){if(r.edgeProgramClasses!==o.edgeProgramClasses){for(var a in o.edgeProgramClasses)o.edgeProgramClasses[a]!==r.edgeProgramClasses[a]&&this.registerEdgeProgram(a,o.edgeProgramClasses[a]);for(var s in r.edgeProgramClasses)o.edgeProgramClasses[s]||this.unregisterEdgeProgram(s)}if(r.nodeProgramClasses!==o.nodeProgramClasses||r.nodeHoverProgramClasses!==o.nodeHoverProgramClasses){for(var l in o.nodeProgramClasses)(o.nodeProgramClasses[l]!==r.nodeProgramClasses[l]||o.nodeHoverProgramClasses[l]!==r.nodeHoverProgramClasses[l])&&this.registerNodeProgram(l,o.nodeProgramClasses[l],o.nodeHoverProgramClasses[l]);for(var u in r.nodeProgramClasses)o.nodeProgramClasses[u]||this.unregisterNodeProgram(u)}}return this.mouseCaptor.setSettings(this.settings),this.touchCaptor.setSettings(this.settings),this}},{key:"cleanCameraState",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.tolerance,a=o===void 0?0:o,s=i.boundaries,l=G({},r),u=s||this.nodeExtent,c=ft(u.x,2),h=c[0],d=c[1],f=ft(u.y,2),v=f[0],m=f[1],g=[this.graphToViewport({x:h,y:v},{cameraState:r}),this.graphToViewport({x:d,y:v},{cameraState:r}),this.graphToViewport({x:h,y:m},{cameraState:r}),this.graphToViewport({x:d,y:m},{cameraState:r})],w=1/0,y=-1/0,_=1/0,k=-1/0;g.forEach(function(Y){var j=Y.x,Ce=Y.y;w=Math.min(w,j),y=Math.max(y,j),_=Math.min(_,Ce),k=Math.max(k,Ce)});var T=y-w,C=k-_,M=this.getDimensions(),z=M.width,R=M.height,D=0,N=0;if(T>=z?y<z-a?D=y-(z-a):w>a&&(D=w-a):y>z+a?D=y-(z+a):w<-a&&(D=w+a),C>=R?k<R-a?N=k-(R-a):_>a&&(N=_-a):k>R+a?N=k-(R+a):_<-a&&(N=_+a),D||N){var O=this.viewportToFramedGraph({x:0,y:0},{cameraState:r}),H=this.viewportToFramedGraph({x:D,y:N},{cameraState:r});D=H.x-O.x,N=H.y-O.y,l.x+=D,l.y+=N}return l}},{key:"renderLabels",value:function(){if(!this.settings.renderLabels)return this;var r=this.camera.getState(),i=this.labelGrid.getLabelsToDisplay(r.ratio,this.settings.labelDensity);ea(i,this.nodesWithForcedLabels),this.displayedNodeLabels=new Set;for(var o=this.canvasContexts.labels,a=0,s=i.length;a<s;a++){var l=i[a],u=this.nodeDataCache[l];if(!this.displayedNodeLabels.has(l)&&!u.hidden){var c=this.framedGraphToViewport(u),h=c.x,d=c.y,f=this.scaleSize(u.size);if(!(!u.forceLabel&&f<this.settings.labelRenderedSizeThreshold)&&!(h<-id||h>this.width+id||d<-od||d>this.height+od)){this.displayedNodeLabels.add(l);var v=this.settings.defaultDrawNodeLabel,m=this.nodePrograms[u.type],g=m?.drawLabel||v;g(o,G(G({key:l},u),{},{size:f,x:h,y:d}),this.settings)}}}return this}},{key:"renderEdgeLabels",value:function(){if(!this.settings.renderEdgeLabels)return this;var r=this.canvasContexts.edgeLabels;r.clearRect(0,0,this.width,this.height);var i=oy({graph:this.graph,hoveredNode:this.hoveredNode,displayedNodeLabels:this.displayedNodeLabels,highlightedNodes:this.highlightedNodes});ea(i,this.edgesWithForcedLabels);for(var o=new Set,a=0,s=i.length;a<s;a++){var l=i[a],u=this.graph.extremities(l),c=this.nodeDataCache[u[0]],h=this.nodeDataCache[u[1]],d=this.edgeDataCache[l];if(!o.has(l)&&!(d.hidden||c.hidden||h.hidden)){var f=this.settings.defaultDrawEdgeLabel,v=this.edgePrograms[d.type],m=v?.drawLabel||f;m(r,G(G({key:l},d),{},{size:this.scaleSize(d.size)}),G(G(G({key:u[0]},c),this.framedGraphToViewport(c)),{},{size:this.scaleSize(c.size)}),G(G(G({key:u[1]},h),this.framedGraphToViewport(h)),{},{size:this.scaleSize(h.size)}),this.settings),o.add(l)}}return this.displayedEdgeLabels=o,this}},{key:"renderHighlightedNodes",value:function(){var r=this,i=this.canvasContexts.hovers;i.clearRect(0,0,this.width,this.height);var o=function(f){var v=r.nodeDataCache[f],m=r.framedGraphToViewport(v),g=m.x,w=m.y,y=r.scaleSize(v.size),_=r.settings.defaultDrawNodeHover,k=r.nodePrograms[v.type],T=k?.drawHover||_;T(i,G(G({key:f},v),{},{size:y,x:g,y:w}),r.settings)},a=[];this.hoveredNode&&!this.nodeDataCache[this.hoveredNode].hidden&&a.push(this.hoveredNode),this.highlightedNodes.forEach(function(d){d!==r.hoveredNode&&a.push(d)}),a.forEach(function(d){return o(d)});var s={};a.forEach(function(d){var f=r.nodeDataCache[d].type;s[f]=(s[f]||0)+1});for(var l in this.nodeHoverPrograms)this.nodeHoverPrograms[l].reallocate(s[l]||0),s[l]=0;a.forEach(function(d){var f=r.nodeDataCache[d];r.nodeHoverPrograms[f.type].process(0,s[f.type]++,f)}),this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);var u=this.getRenderParams();for(var c in this.nodeHoverPrograms){var h=this.nodeHoverPrograms[c];h.render(u)}}},{key:"scheduleHighlightedNodesRender",value:function(){var r=this;this.renderHighlightedNodesFrame||this.renderFrame||(this.renderHighlightedNodesFrame=requestAnimationFrame(function(){r.renderHighlightedNodesFrame=null,r.renderHighlightedNodes(),r.renderEdgeLabels()}))}},{key:"render",value:function(){var r=this;this.emit("beforeRender");var i=function(){return r.emit("afterRender"),r};if(this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.resize(),this.needToProcess&&this.process(),this.needToProcess=!1,this.clear(),this.pickingLayers.forEach(function(g){return r.resetWebGLTexture(g)}),!this.graph.order)return i();var o=this.mouseCaptor,a=this.camera.isAnimated()||o.isMoving||o.draggedEvents||o.currentWheelDirection,s=this.camera.getState(),l=this.getDimensions(),u=this.getGraphDimensions(),c=this.getStagePadding();this.matrix=Jt(s,l,u,c),this.invMatrix=Jt(s,l,u,c,!0),this.correctionRatio=Yc(this.matrix,s,l),this.graphToViewportRatio=this.getGraphToViewportRatio();var h=this.getRenderParams();for(var d in this.nodePrograms){var f=this.nodePrograms[d];f.render(h)}if(!this.settings.hideEdgesOnMove||!a)for(var v in this.edgePrograms){var m=this.edgePrograms[v];m.render(h)}return this.settings.hideLabelsOnMove&&a||(this.renderLabels(),this.renderEdgeLabels(),this.renderHighlightedNodes()),i()}},{key:"addNode",value:function(r){var i=Object.assign({},this.graph.getNodeAttributes(r));this.settings.nodeReducer&&(i=this.settings.nodeReducer(r,i));var o=ay(this.settings,r,i);this.nodeDataCache[r]=o,this.nodesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.nodesWithForcedLabels.add(r),this.highlightedNodes.delete(r),o.highlighted&&!o.hidden&&this.highlightedNodes.add(r),this.settings.zIndex&&(o.zIndex<this.nodeZExtent[0]&&(this.nodeZExtent[0]=o.zIndex),o.zIndex>this.nodeZExtent[1]&&(this.nodeZExtent[1]=o.zIndex))}},{key:"updateNode",value:function(r){this.addNode(r);var i=this.nodeDataCache[r];this.normalizationFunction.applyTo(i)}},{key:"removeNode",value:function(r){delete this.nodeDataCache[r],delete this.nodeProgramIndex[r],this.highlightedNodes.delete(r),this.hoveredNode===r&&(this.hoveredNode=null),this.nodesWithForcedLabels.delete(r)}},{key:"addEdge",value:function(r){var i=Object.assign({},this.graph.getEdgeAttributes(r));this.settings.edgeReducer&&(i=this.settings.edgeReducer(r,i));var o=sy(this.settings,r,i);this.edgeDataCache[r]=o,this.edgesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.edgesWithForcedLabels.add(r),this.settings.zIndex&&(o.zIndex<this.edgeZExtent[0]&&(this.edgeZExtent[0]=o.zIndex),o.zIndex>this.edgeZExtent[1]&&(this.edgeZExtent[1]=o.zIndex))}},{key:"updateEdge",value:function(r){this.addEdge(r)}},{key:"removeEdge",value:function(r){delete this.edgeDataCache[r],delete this.edgeProgramIndex[r],this.hoveredEdge===r&&(this.hoveredEdge=null),this.edgesWithForcedLabels.delete(r)}},{key:"clearNodeIndices",value:function(){this.labelGrid=new rd,this.nodeExtent={x:[0,1],y:[0,1]},this.nodeDataCache={},this.edgeProgramIndex={},this.nodesWithForcedLabels=new Set,this.nodeZExtent=[1/0,-1/0],this.highlightedNodes=new Set}},{key:"clearEdgeIndices",value:function(){this.edgeDataCache={},this.edgeProgramIndex={},this.edgesWithForcedLabels=new Set,this.edgeZExtent=[1/0,-1/0]}},{key:"clearIndices",value:function(){this.clearEdgeIndices(),this.clearNodeIndices()}},{key:"clearNodeState",value:function(){this.displayedNodeLabels=new Set,this.highlightedNodes=new Set,this.hoveredNode=null}},{key:"clearEdgeState",value:function(){this.displayedEdgeLabels=new Set,this.highlightedNodes=new Set,this.hoveredEdge=null}},{key:"clearState",value:function(){this.clearEdgeState(),this.clearNodeState()}},{key:"addNodeToProgram",value:function(r,i,o){var a=this.nodeDataCache[r],s=this.nodePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for node type "'.concat(a.type,'"!'));s.process(i,o,a),this.nodeProgramIndex[r]=o}},{key:"addEdgeToProgram",value:function(r,i,o){var a=this.edgeDataCache[r],s=this.edgePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for edge type "'.concat(a.type,'"!'));var l=this.graph.extremities(r),u=this.nodeDataCache[l[0]],c=this.nodeDataCache[l[1]];s.process(i,o,u,c,a),this.edgeProgramIndex[r]=o}},{key:"getRenderParams",value:function(){return{matrix:this.matrix,invMatrix:this.invMatrix,width:this.width,height:this.height,pixelRatio:this.pixelRatio,zoomRatio:this.camera.ratio,cameraAngle:this.camera.angle,sizeRatio:1/this.scaleSize(),correctionRatio:this.correctionRatio,downSizingRatio:this.pickingDownSizingRatio,minEdgeThickness:this.settings.minEdgeThickness,antiAliasingFeather:this.settings.antiAliasingFeather}}},{key:"getStagePadding",value:function(){var r=this.settings,i=r.stagePadding,o=r.autoRescale;return o&&i||0}},{key:"createLayer",value:function(r,i){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.elements[r])throw new Error('Sigma: a layer named "'.concat(r,'" already exists'));var a=Qc(i,{position:"absolute"},{class:"sigma-".concat(r)});return o.style&&Object.assign(a.style,o.style),this.elements[r]=a,"beforeLayer"in o&&o.beforeLayer?this.elements[o.beforeLayer].before(a):"afterLayer"in o&&o.afterLayer?this.elements[o.afterLayer].after(a):this.container.appendChild(a),a}},{key:"createCanvas",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.createLayer(r,"canvas",i)}},{key:"createCanvasContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.createCanvas(r,i),a={preserveDrawingBuffer:!1,antialias:!1};return this.canvasContexts[r]=o.getContext("2d",a),this}},{key:"createWebGLContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i?.canvas||this.createCanvas(r,i);i.hidden&&o.remove();var a=G({preserveDrawingBuffer:!1,antialias:!1},i),s;s=o.getContext("webgl2",a),s||(s=o.getContext("webgl",a)),s||(s=o.getContext("experimental-webgl",a));var l=s;if(this.webGLContexts[r]=l,l.blendFunc(l.ONE,l.ONE_MINUS_SRC_ALPHA),i.picking){this.pickingLayers.add(r);var u=l.createFramebuffer();if(!u)throw new Error("Sigma: cannot create a new frame buffer for layer ".concat(r));this.frameBuffers[r]=u}return l}},{key:"killLayer",value:function(r){var i=this.elements[r];if(!i)throw new Error("Sigma: cannot kill layer ".concat(r,", which does not exist"));if(this.webGLContexts[r]){var o,a=this.webGLContexts[r];(o=a.getExtension("WEBGL_lose_context"))===null||o===void 0||o.loseContext(),delete this.webGLContexts[r]}else this.canvasContexts[r]&&delete this.canvasContexts[r];return i.remove(),delete this.elements[r],this}},{key:"getCamera",value:function(){return this.camera}},{key:"setCamera",value:function(r){this.unbindCameraHandlers(),this.camera=r,this.bindCameraHandlers()}},{key:"getContainer",value:function(){return this.container}},{key:"getGraph",value:function(){return this.graph}},{key:"setGraph",value:function(r){r!==this.graph&&(this.hoveredNode&&!r.hasNode(this.hoveredNode)&&(this.hoveredNode=null),this.hoveredEdge&&!r.hasEdge(this.hoveredEdge)&&(this.hoveredEdge=null),this.unbindGraphHandlers(),this.checkEdgesEventsFrame!==null&&(cancelAnimationFrame(this.checkEdgesEventsFrame),this.checkEdgesEventsFrame=null),this.graph=r,this.bindGraphHandlers(),this.refresh())}},{key:"getMouseCaptor",value:function(){return this.mouseCaptor}},{key:"getTouchCaptor",value:function(){return this.touchCaptor}},{key:"getDimensions",value:function(){return{width:this.width,height:this.height}}},{key:"getGraphDimensions",value:function(){var r=this.customBBox||this.nodeExtent;return{width:r.x[1]-r.x[0]||1,height:r.y[1]-r.y[0]||1}}},{key:"getNodeDisplayData",value:function(r){var i=this.nodeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getEdgeDisplayData",value:function(r){var i=this.edgeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getNodeDisplayedLabels",value:function(){return new Set(this.displayedNodeLabels)}},{key:"getEdgeDisplayedLabels",value:function(){return new Set(this.displayedEdgeLabels)}},{key:"getSettings",value:function(){return G({},this.settings)}},{key:"getSetting",value:function(r){return this.settings[r]}},{key:"setSetting",value:function(r,i){var o=G({},this.settings);return this.settings[r]=i,Xr(this.settings),this.handleSettingsUpdate(o),this.scheduleRefresh(),this}},{key:"updateSetting",value:function(r,i){return this.setSetting(r,i(this.settings[r])),this}},{key:"setSettings",value:function(r){var i=G({},this.settings);return this.settings=G(G({},this.settings),r),Xr(this.settings),this.handleSettingsUpdate(i),this.scheduleRefresh(),this}},{key:"resize",value:function(r){var i=this.width,o=this.height;if(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.pixelRatio=Zo(),this.width===0)if(this.settings.allowInvalidContainer)this.width=1;else throw new Error("Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(this.height===0)if(this.settings.allowInvalidContainer)this.height=1;else throw new Error("Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(!r&&i===this.width&&o===this.height)return this;for(var a in this.elements){var s=this.elements[a];s.style.width=this.width+"px",s.style.height=this.height+"px"}for(var l in this.canvasContexts)this.elements[l].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[l].setAttribute("height",this.height*this.pixelRatio+"px"),this.pixelRatio!==1&&this.canvasContexts[l].scale(this.pixelRatio,this.pixelRatio);for(var u in this.webGLContexts){this.elements[u].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[u].setAttribute("height",this.height*this.pixelRatio+"px");var c=this.webGLContexts[u];if(c.viewport(0,0,this.width*this.pixelRatio,this.height*this.pixelRatio),this.pickingLayers.has(u)){var h=this.textures[u];h&&c.deleteTexture(h)}}return this.emit("resize"),this}},{key:"clear",value:function(){return this.emit("beforeClear"),this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.canvasContexts.labels.clearRect(0,0,this.width,this.height),this.canvasContexts.hovers.clearRect(0,0,this.width,this.height),this.canvasContexts.edgeLabels.clearRect(0,0,this.width,this.height),this.emit("afterClear"),this}},{key:"refresh",value:function(r){var i=this,o=r?.skipIndexation!==void 0?r?.skipIndexation:!1,a=r?.schedule!==void 0?r.schedule:!1,s=!r||!r.partialGraph;if(s)this.clearEdgeIndices(),this.clearNodeIndices(),this.graph.forEachNode(function(k){return i.addNode(k)}),this.graph.forEachEdge(function(k){return i.addEdge(k)});else{for(var l,u,c=((l=r.partialGraph)===null||l===void 0?void 0:l.nodes)||[],h=0,d=c?.length||0;h<d;h++){var f=c[h];if(this.updateNode(f),o){var v=this.nodeProgramIndex[f];if(v===void 0)throw new Error('Sigma: node "'.concat(f,`" can't be repaint`));this.addNodeToProgram(f,this.nodeIndices[f],v)}}for(var m=(r==null||(u=r.partialGraph)===null||u===void 0?void 0:u.edges)||[],g=0,w=m.length;g<w;g++){var y=m[g];if(this.updateEdge(y),o){var _=this.edgeProgramIndex[y];if(_===void 0)throw new Error('Sigma: edge "'.concat(y,`" can't be repaint`));this.addEdgeToProgram(y,this.edgeIndices[y],_)}}}return(s||!o)&&(this.needToProcess=!0),a?this.scheduleRender():this.render(),this}},{key:"scheduleRender",value:function(){var r=this;return this.renderFrame||(this.renderFrame=requestAnimationFrame(function(){r.render()})),this}},{key:"scheduleRefresh",value:function(r){return this.refresh(G(G({},r),{},{schedule:!0}))}},{key:"getViewportZoomedState",value:function(r,i){var o=this.camera.getState(),a=o.ratio,s=o.angle,l=o.x,u=o.y,c=this.settings,h=c.minCameraRatio,d=c.maxCameraRatio;typeof d=="number"&&(i=Math.min(i,d)),typeof h=="number"&&(i=Math.max(i,h));var f=i/a,v={x:this.width/2,y:this.height/2},m=this.viewportToFramedGraph(r),g=this.viewportToFramedGraph(v);return{angle:s,x:(m.x-g.x)*(1-f)+l,y:(m.y-g.y)*(1-f)+u,ratio:i}}},{key:"viewRectangle",value:function(){var r=this.viewportToFramedGraph({x:0,y:0}),i=this.viewportToFramedGraph({x:this.width,y:0}),o=this.viewportToFramedGraph({x:0,y:this.height});return{x1:r.x,y1:r.y,x2:i.x,y2:i.y,height:i.y-o.y}}},{key:"framedGraphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!!i.graphDimensions,a=i.matrix?i.matrix:o?Jt(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding()):this.matrix,s=Vr(a,r);return{x:(1+s.x)*this.width/2,y:(1-s.y)*this.height/2}}},{key:"viewportToFramedGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!i.graphDimensions,a=i.matrix?i.matrix:o?Jt(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding(),!0):this.invMatrix,s=Vr(a,{x:r.x/this.width*2-1,y:1-r.y/this.height*2});return isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),s}},{key:"viewportToGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.normalizationFunction.inverse(this.viewportToFramedGraph(r,i))}},{key:"graphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.framedGraphToViewport(this.normalizationFunction(r),i)}},{key:"getGraphToViewportRatio",value:function(){var r={x:0,y:0},i={x:1,y:1},o=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),a=this.graphToViewport(r),s=this.graphToViewport(i),l=Math.sqrt(Math.pow(a.x-s.x,2)+Math.pow(a.y-s.y,2));return l/o}},{key:"getBBox",value:function(){return this.nodeExtent}},{key:"getCustomBBox",value:function(){return this.customBBox}},{key:"setCustomBBox",value:function(r){return this.customBBox=r,this.scheduleRender(),this}},{key:"kill",value:function(){this.emit("kill"),this.removeAllListeners(),this.unbindCameraHandlers(),window.removeEventListener("resize",this.activeListeners.handleResize),this.mouseCaptor.kill(),this.touchCaptor.kill(),this.unbindGraphHandlers(),this.clearIndices(),this.clearState(),this.nodeDataCache={},this.edgeDataCache={},this.highlightedNodes.clear(),this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.renderHighlightedNodesFrame&&(cancelAnimationFrame(this.renderHighlightedNodesFrame),this.renderHighlightedNodesFrame=null);for(var r=this.container;r.firstChild;)r.removeChild(r.firstChild);for(var i in this.nodePrograms)this.nodePrograms[i].kill();for(var o in this.nodeHoverPrograms)this.nodeHoverPrograms[o].kill();for(var a in this.edgePrograms)this.edgePrograms[a].kill();this.nodePrograms={},this.nodeHoverPrograms={},this.edgePrograms={};for(var s in this.elements)this.killLayer(s);this.canvasContexts={},this.webGLContexts={},this.elements={}}},{key:"scaleSize",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.camera.ratio;return r/this.settings.zoomToSizeRatioFunction(i)*(this.getSetting("itemSizesReference")==="positions"?i*this.graphToViewportRatio:1)}},{key:"getCanvases",value:function(){var r={};for(var i in this.elements)this.elements[i]instanceof HTMLCanvasElement&&(r[i]=this.elements[i]);return r}}])})(Wr),ld=ly;var gt={dark:{accent:"#c6a0f6",success:"#a6da95",warning:"#eed49f",dim:"#a5adcb",text:"#cad3f5",muted:"#939ab7",line:"#494d64",ground:"#24273a"},light:{accent:"#7113ec",success:"#28641b",warning:"#7c4f10",dim:"#56586a",text:"#4c4f69",muted:"#606274",line:"#bcc0cc",ground:"#eff1f5"}},uy={vault:"accent",note:"text",repository:"accent",module:"dim",package:"dim",entryPoint:"dim",gitState:"dim",external:"dim",file:"dim"},cy={contains:"dim","anchored-at":"dim","links-to":"accent",mentions:"accent"};function dy(t,e){return gt[e][uy[t]]}function ud(t,e){return gt[e][cy[t]]}function hy(t,e){return fy(t)?ra(ud(t,e),e,py):ud(t,e)}function fy(t){return t==="contains"||t==="anchored-at"}var na=.85,py=.3;function Nn(t,e,n){let r=l=>/^#[0-9a-f]{6}$/.test(l)?[Number.parseInt(l.slice(1,3),16),Number.parseInt(l.slice(3,5),16),Number.parseInt(l.slice(5,7),16)]:null,i=r(t),o=r(e);if(i===null||o===null)return t;let a=Math.min(1,Math.max(0,Number.isFinite(n)?n:0)),s=(l,u)=>Math.round(l+(u-l)*a).toString(16).padStart(2,"0");return`#${s(i[0],o[0])}${s(i[1],o[1])}${s(i[2],o[2])}`}function ra(t,e,n=na){return Nn(t,gt[e].ground,n)}var gy={contains:1,"anchored-at":1,"links-to":1.4,mentions:1},cd=1.6,hd=32,my=hd/2;function vy(t,e=hd){if(e<=0)return t.length>0?"…":t;if(t.length<=e)return t;let n=e-1,i=t.slice(0,n).lastIndexOf(" "),o=i>=my?i:n;return`${t.slice(0,o).trimEnd()}…`}function yy(t){let e=Lt(t.provenance),n=Ne(t);return vy(e===""?n:`${e} ${n}`)}var wy=6,by=6;function xy(t){return(e,n,r)=>{if(n.label===null||n.label==="")return;let i=gt[t];e.save(),e.font=`${r.labelSize}px ${r.labelFont}`,e.textAlign="center",e.shadowColor=i.ground,e.shadowBlur=by,e.fillStyle=i.text,e.fillText(n.label,n.x,n.y+n.size+r.labelSize+wy),e.restore()}}function fd(t){let e=1/0,n=1/0,r=-1/0,i=-1/0,o=0;for(let a of t)!Number.isFinite(a.x)||!Number.isFinite(a.y)||(o++,a.x<e&&(e=a.x),a.x>r&&(r=a.x),a.y<n&&(n=a.y),a.y>i&&(i=a.y));return o===0?null:{x:[e,r],y:[n,i]}}var pd={nodes:[],edges:[]};function gd(t){return`${t.source}\0${t.target}\0${t.kind}`}function _y(t,e){let n=new Map,r=new Set;for(let i of t){if(i.source===i.target||!e.has(i.source)||!e.has(i.target))continue;let o=gd(i);r.has(o)||(r.add(o),n.set(i.source,(n.get(i.source)??0)+1),n.set(i.target,(n.get(i.target)??0)+1))}return n}function md(t,e,n,r,i){let o=new Map;for(let h of t){if(o.has(h.id))continue;let d=n.get(h.id);d===void 0||!Number.isFinite(d.x)||!Number.isFinite(d.y)||o.set(h.id,h)}let a=new Set(o.keys()),s=_y(e,a),l=[];for(let[h,d]of o){let f=n.get(h),v=Ji(s.get(h)??0);l.push({id:h,x:f.x,y:f.y,size:v,label:yy(d),color:i?.get(h)??dy(d.kind,r),kind:d.kind,provenance:d.provenance,zIndex:Math.round(v),type:"circle"})}let u=[],c=new Set;for(let h of e){if(h.source===h.target||!a.has(h.source)||!a.has(h.target))continue;let d=gd(h);c.has(d)||(c.add(d),u.push({key:d,source:h.source,target:h.target,size:gy[h.kind],color:hy(h.kind,r),kind:h.kind,zIndex:0,type:"line"}))}return{nodes:l,edges:u}}function vd(t,e,n=1){return(r,i,o)=>t===null||n<=0?{}:r===e&&t.has(r)?{zIndex:i.zIndex+dd*2,size:i.size*Jr(Ty,n)}:t.has(r)?{zIndex:i.zIndex+dd,size:i.size*Jr(Ay,n)}:{color:ra(i.color,o,na*n),label:n>=Sy?null:i.label,zIndex:0}}var ky=60,Ey=.004;function yd(t,e,n){let r=Number.isFinite(n)&&n>0?n:0,i=e+(t-e)*Math.exp(-r/ky);return Math.abs(e-i)<Ey?e:i}function Jr(t,e){return 1+(t-1)*e}var Sy=.5,Ty=1.45,Ay=1.15,dd=gr+1;function wd(t,e,n=1){return(r,i,o)=>t===null||n<=0?{}:!t.has(i.source)||!t.has(i.target)?{color:ra(i.color,o,na*n)}:e!=null&&(i.source===e||i.target===e)?{zIndex:2,size:i.size*Jr(cd*1.35,n),color:Nn(i.color,gt[o].accent,n)}:{zIndex:1,size:i.size*Jr(cd,n)}}var Ry=(pr+gr)/2,Cy=mr*4,Ly=1;function bd(t){let e=gt[t];return{hideEdgesOnMove:!0,enableCameraPanning:!0,renderEdgeLabels:!1,labelDensity:Ly,labelGridCellSize:Cy,labelRenderedSizeThreshold:Ry,labelFont:"inherit",labelSize:11,labelColor:{color:e.text},defaultNodeColor:e.dim,defaultEdgeColor:e.line,defaultNodeType:"circle",defaultEdgeType:"line",minEdgeThickness:.6,zIndex:!0,itemSizesReference:"positions",zoomToSizeRatioFunction:n=>n,stagePadding:mr,defaultDrawNodeHover:xy(t),allowInvalidContainer:!0}}var Ed=hn(Br(),1);function Ny(){let t=arguments[0];for(let e=1,n=arguments.length;e<n;e++)if(arguments[e])for(let r in arguments[e])t[r]=arguments[e][r];return t}var he=Ny;typeof Object.assign=="function"&&(he=Object.assign);function ze(t,e,n,r){let i=t._nodes.get(e),o=null;return i&&(r==="mixed"?o=i.out&&i.out[n]||i.undirected&&i.undirected[n]:r==="directed"?o=i.out&&i.out[n]:o=i.undirected&&i.undirected[n]),o}function me(t){return typeof t=="object"&&t!==null}function Sd(t){let e;for(e in t)return!1;return!0}function Oe(t,e,n){Object.defineProperty(t,e,{enumerable:!1,configurable:!1,writable:!0,value:n})}function Ke(t,e,n){let r={enumerable:!0,configurable:!0};typeof n=="function"?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(t,e,r)}function xd(t){return!(!me(t)||t.attributes&&!Array.isArray(t.attributes))}function Dy(){let t=Math.floor(Math.random()*256)&255;return()=>t++}function at(){let t=arguments,e=null,n=-1;return{[Symbol.iterator](){return this},next(){let r=null;do{if(e===null){if(n++,n>=t.length)return{done:!0};e=t[n][Symbol.iterator]()}if(r=e.next(),r.done){e=null;continue}break}while(!0);return r}}}function tn(){return{[Symbol.iterator](){return this},next(){return{done:!0}}}}var Pn=class extends Error{constructor(e){super(),this.name="GraphError",this.message=e}},P=class t extends Pn{constructor(e){super(e),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t.prototype.constructor)}},L=class t extends Pn{constructor(e){super(e),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t.prototype.constructor)}},$=class t extends Pn{constructor(e){super(e),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t.prototype.constructor)}};function Td(t,e){this.key=t,this.attributes=e,this.clear()}Td.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function Ad(t,e){this.key=t,this.attributes=e,this.clear()}Ad.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function Rd(t,e){this.key=t,this.attributes=e,this.clear()}Rd.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function nn(t,e,n,r,i){this.key=e,this.attributes=i,this.undirected=t,this.source=n,this.target=r}nn.prototype.attach=function(){let t="out",e="in";this.undirected&&(t=e="undirected");let n=this.source.key,r=this.target.key;this.source[t][r]=this,!(this.undirected&&n===r)&&(this.target[e][n]=this)};nn.prototype.attachMulti=function(){let t="out",e="in",n=this.source.key,r=this.target.key;this.undirected&&(t=e="undirected");let i=this.source[t],o=i[r];if(typeof o>"u"){i[r]=this,this.undirected&&n===r||(this.target[e][n]=this);return}o.previous=this,this.next=o,i[r]=this,this.target[e][n]=this};nn.prototype.detach=function(){let t=this.source.key,e=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][e],delete this.target[r][t]};nn.prototype.detachMulti=function(){let t=this.source.key,e=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][e],delete this.target[r][t]):(this.next.previous=void 0,this.source[n][e]=this.next,this.target[r][t]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};var Cd=0,Ld=1,Iy=2,Nd=3;function st(t,e,n,r,i,o,a){let s,l,u,c;if(r=""+r,n===Cd){if(s=t._nodes.get(r),!s)throw new L(`Graph.${e}: could not find the "${r}" node in the graph.`);u=i,c=o}else if(n===Nd){if(i=""+i,l=t._edges.get(i),!l)throw new L(`Graph.${e}: could not find the "${i}" edge in the graph.`);let h=l.source.key,d=l.target.key;if(r===h)s=l.target;else if(r===d)s=l.source;else throw new L(`Graph.${e}: the "${r}" node is not attached to the "${i}" edge (${h}, ${d}).`);u=o,c=a}else{if(l=t._edges.get(r),!l)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`);n===Ld?s=l.source:s=l.target,u=i,c=o}return[s,u,c]}function Py(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);return a.attributes[s]}}function My(t,e,n){t.prototype[e]=function(r,i){let[o]=st(this,e,n,r,i);return o.attributes}}function Gy(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);return a.attributes.hasOwnProperty(s)}}function Fy(t,e,n){t.prototype[e]=function(r,i,o,a){let[s,l,u]=st(this,e,n,r,i,o,a);return s.attributes[l]=u,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function Oy(t,e,n){t.prototype[e]=function(r,i,o,a){let[s,l,u]=st(this,e,n,r,i,o,a);if(typeof u!="function")throw new P(`Graph.${e}: updater should be a function.`);let c=s.attributes,h=u(c[l]);return c[l]=h,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function zy(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);return delete a.attributes[s],this.emit("nodeAttributesUpdated",{key:a.key,type:"remove",attributes:a.attributes,name:s}),this}}function $y(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);if(!me(s))throw new P(`Graph.${e}: provided attributes are not a plain object.`);return a.attributes=s,this.emit("nodeAttributesUpdated",{key:a.key,type:"replace",attributes:a.attributes}),this}}function Uy(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);if(!me(s))throw new P(`Graph.${e}: provided attributes are not a plain object.`);return he(a.attributes,s),this.emit("nodeAttributesUpdated",{key:a.key,type:"merge",attributes:a.attributes,data:s}),this}}function Hy(t,e,n){t.prototype[e]=function(r,i,o){let[a,s]=st(this,e,n,r,i,o);if(typeof s!="function")throw new P(`Graph.${e}: provided updater is not a function.`);return a.attributes=s(a.attributes),this.emit("nodeAttributesUpdated",{key:a.key,type:"update",attributes:a.attributes}),this}}var By=[{name:t=>`get${t}Attribute`,attacher:Py},{name:t=>`get${t}Attributes`,attacher:My},{name:t=>`has${t}Attribute`,attacher:Gy},{name:t=>`set${t}Attribute`,attacher:Fy},{name:t=>`update${t}Attribute`,attacher:Oy},{name:t=>`remove${t}Attribute`,attacher:zy},{name:t=>`replace${t}Attributes`,attacher:$y},{name:t=>`merge${t}Attributes`,attacher:Uy},{name:t=>`update${t}Attributes`,attacher:Hy}];function Wy(t){By.forEach(function({name:e,attacher:n}){n(t,e("Node"),Cd),n(t,e("Source"),Ld),n(t,e("Target"),Iy),n(t,e("Opposite"),Nd)})}function Ky(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]}}function Vy(t,e,n){t.prototype[e]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,a=""+arguments[1];if(i=ze(this,o,a,n),!i)throw new L(`Graph.${e}: could not find an edge for the given path ("${o}" - "${a}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function jy(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}return o.attributes.hasOwnProperty(i)}}function qy(t,e,n){t.prototype[e]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=ze(this,s,l,n),!a)throw new L(`Graph.${e}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}return a.attributes[i]=o,this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Yy(t,e,n){t.prototype[e]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=ze(this,s,l,n),!a)throw new L(`Graph.${e}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}if(typeof o!="function")throw new P(`Graph.${e}: updater should be a function.`);return a.attributes[i]=o(a.attributes[i]),this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Xy(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}return delete o.attributes[i],this.emit("edgeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:i}),this}}function Zy(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}if(!me(i))throw new P(`Graph.${e}: provided attributes are not a plain object.`);return o.attributes=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function Qy(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}if(!me(i))throw new P(`Graph.${e}: provided attributes are not a plain object.`);return he(o.attributes,i),this.emit("edgeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:i}),this}}function Jy(t,e,n){t.prototype[e]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new $(`Graph.${e}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new $(`Graph.${e}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=ze(this,a,s,n),!o)throw new L(`Graph.${e}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new $(`Graph.${e}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new L(`Graph.${e}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new P(`Graph.${e}: provided updater is not a function.`);return o.attributes=i(o.attributes),this.emit("edgeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}var ew=[{name:t=>`get${t}Attribute`,attacher:Ky},{name:t=>`get${t}Attributes`,attacher:Vy},{name:t=>`has${t}Attribute`,attacher:jy},{name:t=>`set${t}Attribute`,attacher:qy},{name:t=>`update${t}Attribute`,attacher:Yy},{name:t=>`remove${t}Attribute`,attacher:Xy},{name:t=>`replace${t}Attributes`,attacher:Zy},{name:t=>`merge${t}Attributes`,attacher:Qy},{name:t=>`update${t}Attributes`,attacher:Jy}];function tw(t){ew.forEach(function({name:e,attacher:n}){n(t,e("Edge"),"mixed"),n(t,e("DirectedEdge"),"directed"),n(t,e("UndirectedEdge"),"undirected")})}var nw=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function rw(t,e,n,r){let i=!1;for(let o in e){if(o===r)continue;let a=e[o];if(i=n(a.key,a.attributes,a.source.key,a.target.key,a.source.attributes,a.target.attributes,a.undirected),t&&i)return a.key}}function iw(t,e,n,r){let i,o,a,s=!1;for(let l in e)if(l!==r){i=e[l];do{if(o=i.source,a=i.target,s=n(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected),t&&s)return i.key;i=i.next}while(i!==void 0)}}function ia(t,e){let n=Object.keys(t),r=n.length,i,o=0;return{[Symbol.iterator](){return this},next(){do if(i)i=i.next;else{if(o>=r)return{done:!0};let a=n[o++];if(a===e){i=void 0;continue}i=t[a]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}}}}function ow(t,e,n,r){let i=e[n];if(!i)return;let o=i.source,a=i.target;if(r(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected)&&t)return i.key}function aw(t,e,n,r){let i=e[n];if(!i)return;let o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),t&&o)return i.key;i=i.next}while(i!==void 0)}function oa(t,e){let n=t[e];if(n.next!==void 0)return{[Symbol.iterator](){return this},next(){if(!n)return{done:!0};let i={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:i}}};let r=!1;return{[Symbol.iterator](){return this},next(){return r===!0?{done:!0}:(r=!0,{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}})}}}function sw(t,e){if(t.size===0)return[];if(e==="mixed"||e===t.type)return Array.from(t._edges.keys());let n=e==="undirected"?t.undirectedSize:t.directedSize,r=new Array(n),i=e==="undirected",o=t._edges.values(),a=0,s,l;for(;s=o.next(),s.done!==!0;)l=s.value,l.undirected===i&&(r[a++]=l.key);return r}function Dd(t,e,n,r){if(e.size===0)return;let i=n!=="mixed"&&n!==e.type,o=n==="undirected",a,s,l=!1,u=e._edges.values();for(;a=u.next(),a.done!==!0;){if(s=a.value,i&&s.undirected!==o)continue;let{key:c,attributes:h,source:d,target:f}=s;if(l=r(c,h,d.key,f.key,d.attributes,f.attributes,s.undirected),t&&l)return c}}function lw(t,e){if(t.size===0)return tn();let n=e!=="mixed"&&e!==t.type,r=e==="undirected",i=t._edges.values();return{[Symbol.iterator](){return this},next(){let o,a;for(;;){if(o=i.next(),o.done)return o;if(a=o.value,!(n&&a.undirected!==r))break}return{value:{edge:a.key,attributes:a.attributes,source:a.source.key,target:a.target.key,sourceAttributes:a.source.attributes,targetAttributes:a.target.attributes,undirected:a.undirected},done:!1}}}}function aa(t,e,n,r,i,o){let a=e?iw:rw,s;if(n!=="undirected"&&(r!=="out"&&(s=a(t,i.in,o),t&&s)||r!=="in"&&(s=a(t,i.out,o,r?void 0:i.key),t&&s))||n!=="directed"&&(s=a(t,i.undirected,o),t&&s))return s}function uw(t,e,n,r){let i=[];return aa(!1,t,e,n,r,function(o){i.push(o)}),i}function cw(t,e,n){let r=tn();return t!=="undirected"&&(e!=="out"&&typeof n.in<"u"&&(r=at(r,ia(n.in))),e!=="in"&&typeof n.out<"u"&&(r=at(r,ia(n.out,e?void 0:n.key)))),t!=="directed"&&typeof n.undirected<"u"&&(r=at(r,ia(n.undirected))),r}function sa(t,e,n,r,i,o,a){let s=n?aw:ow,l;if(e!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(l=s(t,i.in,o,a),t&&l)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==o)&&(l=s(t,i.out,o,a),t&&l))||e!=="directed"&&typeof i.undirected<"u"&&(l=s(t,i.undirected,o,a),t&&l))return l}function dw(t,e,n,r,i){let o=[];return sa(!1,t,e,n,r,i,function(a){o.push(a)}),o}function hw(t,e,n,r){let i=tn();return t!=="undirected"&&(typeof n.in<"u"&&e!=="out"&&r in n.in&&(i=at(i,oa(n.in,r))),typeof n.out<"u"&&e!=="in"&&r in n.out&&(e||n.key!==r)&&(i=at(i,oa(n.out,r)))),t!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=at(i,oa(n.undirected,r))),i}function fw(t,e){let{name:n,type:r,direction:i}=e;t.prototype[n]=function(o,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return sw(this,r);if(arguments.length===1){o=""+o;let s=this._nodes.get(o);if(typeof s>"u")throw new L(`Graph.${n}: could not find the "${o}" node in the graph.`);return uw(this.multi,r==="mixed"?this.type:r,i,s)}if(arguments.length===2){o=""+o,a=""+a;let s=this._nodes.get(o);if(!s)throw new L(`Graph.${n}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(a))throw new L(`Graph.${n}: could not find the "${a}" target node in the graph.`);return dw(r,this.multi,i,s,a)}throw new P(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function pw(t,e){let{name:n,type:r,direction:i}=e,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(u,c,h){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return h=u,Dd(!1,this,r,h);if(arguments.length===2){u=""+u,h=c;let d=this._nodes.get(u);if(typeof d>"u")throw new L(`Graph.${o}: could not find the "${u}" node in the graph.`);return aa(!1,this.multi,r==="mixed"?this.type:r,i,d,h)}if(arguments.length===3){u=""+u,c=""+c;let d=this._nodes.get(u);if(!d)throw new L(`Graph.${o}: could not find the "${u}" source node in the graph.`);if(!this._nodes.has(c))throw new L(`Graph.${o}: could not find the "${c}" target node in the graph.`);return sa(!1,r,this.multi,i,d,c,h)}throw new P(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};let a="map"+n[0].toUpperCase()+n.slice(1);t.prototype[a]=function(){let u=Array.prototype.slice.call(arguments),c=u.pop(),h;if(u.length===0){let d=0;r!=="directed"&&(d+=this.undirectedSize),r!=="undirected"&&(d+=this.directedSize),h=new Array(d);let f=0;u.push((v,m,g,w,y,_,k)=>{h[f++]=c(v,m,g,w,y,_,k)})}else h=[],u.push((d,f,v,m,g,w,y)=>{h.push(c(d,f,v,m,g,w,y))});return this[o].apply(this,u),h};let s="filter"+n[0].toUpperCase()+n.slice(1);t.prototype[s]=function(){let u=Array.prototype.slice.call(arguments),c=u.pop(),h=[];return u.push((d,f,v,m,g,w,y)=>{c(d,f,v,m,g,w,y)&&h.push(d)}),this[o].apply(this,u),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);t.prototype[l]=function(){let u=Array.prototype.slice.call(arguments);if(u.length<2||u.length>4)throw new P(`Graph.${l}: invalid number of arguments (expecting 2, 3 or 4 and got ${u.length}).`);if(typeof u[u.length-1]=="function"&&typeof u[u.length-2]!="function")throw new P(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let c,h;u.length===2?(c=u[0],h=u[1],u=[]):u.length===3?(c=u[1],h=u[2],u=[u[0]]):u.length===4&&(c=u[2],h=u[3],u=[u[0],u[1]]);let d=h;return u.push((f,v,m,g,w,y,_)=>{d=c(d,f,v,m,g,w,y,_)}),this[o].apply(this,u),d}}function gw(t,e){let{name:n,type:r,direction:i}=e,o="find"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(l,u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return c=l,Dd(!0,this,r,c);if(arguments.length===2){l=""+l,c=u;let h=this._nodes.get(l);if(typeof h>"u")throw new L(`Graph.${o}: could not find the "${l}" node in the graph.`);return aa(!0,this.multi,r==="mixed"?this.type:r,i,h,c)}if(arguments.length===3){l=""+l,u=""+u;let h=this._nodes.get(l);if(!h)throw new L(`Graph.${o}: could not find the "${l}" source node in the graph.`);if(!this._nodes.has(u))throw new L(`Graph.${o}: could not find the "${u}" target node in the graph.`);return sa(!0,r,this.multi,i,h,u,c)}throw new P(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};let a="some"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[a]=function(){let l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((h,d,f,v,m,g,w)=>u(h,d,f,v,m,g,w)),!!this[o].apply(this,l)};let s="every"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[s]=function(){let l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((h,d,f,v,m,g,w)=>!u(h,d,f,v,m,g,w)),!this[o].apply(this,l)}}function mw(t,e){let{name:n,type:r,direction:i}=e,o=n.slice(0,-1)+"Entries";t.prototype[o]=function(a,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return tn();if(!arguments.length)return lw(this,r);if(arguments.length===1){a=""+a;let l=this._nodes.get(a);if(!l)throw new L(`Graph.${o}: could not find the "${a}" node in the graph.`);return cw(r,i,l)}if(arguments.length===2){a=""+a,s=""+s;let l=this._nodes.get(a);if(!l)throw new L(`Graph.${o}: could not find the "${a}" source node in the graph.`);if(!this._nodes.has(s))throw new L(`Graph.${o}: could not find the "${s}" target node in the graph.`);return hw(r,i,l,s)}throw new P(`Graph.${o}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function vw(t){nw.forEach(e=>{fw(t,e),pw(t,e),gw(t,e),mw(t,e)})}var yw=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function ai(){this.A=null,this.B=null}ai.prototype.wrap=function(t){this.A===null?this.A=t:this.B===null&&(this.B=t)};ai.prototype.has=function(t){return this.A!==null&&t in this.A||this.B!==null&&t in this.B};function Dn(t,e,n,r,i){for(let o in r){let a=r[o],s=a.source,l=a.target,u=s===n?l:s;if(e&&e.has(u.key))continue;let c=i(u.key,u.attributes);if(t&&c)return u.key}}function la(t,e,n,r,i){if(e!=="mixed"){if(e==="undirected")return Dn(t,null,r,r.undirected,i);if(typeof n=="string")return Dn(t,null,r,r[n],i)}let o=new ai,a;if(e!=="undirected"){if(n!=="out"){if(a=Dn(t,null,r,r.in,i),t&&a)return a;o.wrap(r.in)}if(n!=="in"){if(a=Dn(t,o,r,r.out,i),t&&a)return a;o.wrap(r.out)}}if(e!=="directed"&&(a=Dn(t,o,r,r.undirected,i),t&&a))return a}function ww(t,e,n){if(t!=="mixed"){if(t==="undirected")return Object.keys(n.undirected);if(typeof e=="string")return Object.keys(n[e])}let r=[];return la(!1,t,e,n,function(i){r.push(i)}),r}function In(t,e,n){let r=Object.keys(n),i=r.length,o=0;return{[Symbol.iterator](){return this},next(){let a=null;do{if(o>=i)return t&&t.wrap(n),{done:!0};let s=n[r[o++]],l=s.source,u=s.target;if(a=l===e?u:l,t&&t.has(a.key)){a=null;continue}}while(a===null);return{done:!1,value:{neighbor:a.key,attributes:a.attributes}}}}}function bw(t,e,n){if(t!=="mixed"){if(t==="undirected")return In(null,n,n.undirected);if(typeof e=="string")return In(null,n,n[e])}let r=tn(),i=new ai;return t!=="undirected"&&(e!=="out"&&(r=at(r,In(i,n,n.in))),e!=="in"&&(r=at(r,In(i,n,n.out)))),t!=="directed"&&(r=at(r,In(i,n,n.undirected))),r}function xw(t,e){let{name:n,type:r,direction:i}=e;t.prototype[n]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];o=""+o;let a=this._nodes.get(o);if(typeof a>"u")throw new L(`Graph.${n}: could not find the "${o}" node in the graph.`);return ww(r==="mixed"?this.type:r,i,a)}}function _w(t,e){let{name:n,type:r,direction:i}=e,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;let h=this._nodes.get(u);if(typeof h>"u")throw new L(`Graph.${o}: could not find the "${u}" node in the graph.`);la(!1,r==="mixed"?this.type:r,i,h,c)};let a="map"+n[0].toUpperCase()+n.slice(1);t.prototype[a]=function(u,c){let h=[];return this[o](u,(d,f)=>{h.push(c(d,f))}),h};let s="filter"+n[0].toUpperCase()+n.slice(1);t.prototype[s]=function(u,c){let h=[];return this[o](u,(d,f)=>{c(d,f)&&h.push(d)}),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);t.prototype[l]=function(u,c,h){if(arguments.length<3)throw new P(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let d=h;return this[o](u,(f,v)=>{d=c(d,f,v)}),d}}function kw(t,e){let{name:n,type:r,direction:i}=e,o=n[0].toUpperCase()+n.slice(1,-1),a="find"+o;t.prototype[a]=function(u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;let h=this._nodes.get(u);if(typeof h>"u")throw new L(`Graph.${a}: could not find the "${u}" node in the graph.`);return la(!0,r==="mixed"?this.type:r,i,h,c)};let s="some"+o;t.prototype[s]=function(u,c){return!!this[a](u,c)};let l="every"+o;t.prototype[l]=function(u,c){return!this[a](u,(d,f)=>!c(d,f))}}function Ew(t,e){let{name:n,type:r,direction:i}=e,o=n.slice(0,-1)+"Entries";t.prototype[o]=function(a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return tn();a=""+a;let s=this._nodes.get(a);if(typeof s>"u")throw new L(`Graph.${o}: could not find the "${a}" node in the graph.`);return bw(r==="mixed"?this.type:r,i,s)}}function Sw(t){yw.forEach(e=>{xw(t,e),_w(t,e),kw(t,e),Ew(t,e)})}function ei(t,e,n,r,i){let o=r._nodes.values(),a=r.type,s,l,u,c,h,d,f;for(;s=o.next(),s.done!==!0;){let v=!1;if(l=s.value,a!=="undirected"){c=l.out;for(u in c){h=c[u];do{if(d=h.target,v=!0,f=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),t&&f)return h;h=h.next}while(h)}}if(a!=="directed"){c=l.undirected;for(u in c)if(!(e&&l.key>u)){h=c[u];do{if(d=h.target,d.key!==u&&(d=h.source),v=!0,f=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),t&&f)return h;h=h.next}while(h)}}if(n&&!v&&(f=i(l.key,null,l.attributes,null,null,null,null),t&&f))return null}}function Tw(t,e){let n={key:t};return Sd(e.attributes)||(n.attributes=he({},e.attributes)),n}function Aw(t,e,n){let r={key:e,source:n.source.key,target:n.target.key};return Sd(n.attributes)||(r.attributes=he({},n.attributes)),t==="mixed"&&n.undirected&&(r.undirected=!0),r}function Rw(t){if(!me(t))throw new P('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in t))throw new P("Graph.import: serialized node is missing its key.");if("attributes"in t&&(!me(t.attributes)||t.attributes===null))throw new P("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function Cw(t){if(!me(t))throw new P('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in t))throw new P("Graph.import: serialized edge is missing its source.");if(!("target"in t))throw new P("Graph.import: serialized edge is missing its target.");if("attributes"in t&&(!me(t.attributes)||t.attributes===null))throw new P("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in t&&typeof t.undirected!="boolean")throw new P("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}var Lw=Dy(),Nw=new Set(["directed","undirected","mixed"]),_d=new Set(["domain","_events","_eventsCount","_maxListeners"]),Dw=[{name:t=>`${t}Edge`,generateKey:!0},{name:t=>`${t}DirectedEdge`,generateKey:!0,type:"directed"},{name:t=>`${t}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:t=>`${t}EdgeWithKey`},{name:t=>`${t}DirectedEdgeWithKey`,type:"directed"},{name:t=>`${t}UndirectedEdgeWithKey`,type:"undirected"}],Iw={allowSelfLoops:!0,multi:!1,type:"mixed"};function Pw(t,e,n){if(n&&!me(n))throw new P(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(e=""+e,n=n||{},t._nodes.has(e))throw new $(`Graph.addNode: the "${e}" node already exist in the graph.`);let r=new t.NodeDataClass(e,n);return t._nodes.set(e,r),t.emit("nodeAdded",{key:e,attributes:n}),r}function kd(t,e,n){let r=new t.NodeDataClass(e,n);return t._nodes.set(e,r),t.emit("nodeAdded",{key:e,attributes:n}),r}function Id(t,e,n,r,i,o,a,s){if(!r&&t.type==="undirected")throw new $(`Graph.${e}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&t.type==="directed")throw new $(`Graph.${e}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(s&&!me(s))throw new P(`Graph.${e}: invalid attributes. Expecting an object but got "${s}"`);if(o=""+o,a=""+a,s=s||{},!t.allowSelfLoops&&o===a)throw new $(`Graph.${e}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let l=t._nodes.get(o),u=t._nodes.get(a);if(!l)throw new L(`Graph.${e}: source node "${o}" not found.`);if(!u)throw new L(`Graph.${e}: target node "${a}" not found.`);let c={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=t._edgeKeyGenerator();else if(i=""+i,t._edges.has(i))throw new $(`Graph.${e}: the "${i}" edge already exists in the graph.`);if(!t.multi&&(r?typeof l.undirected[a]<"u":typeof l.out[a]<"u"))throw new $(`Graph.${e}: an edge linking "${o}" to "${a}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);let h=new nn(r,i,l,u,s);t._edges.set(i,h);let d=o===a;return r?(l.undirectedDegree++,u.undirectedDegree++,d&&(l.undirectedLoops++,t._undirectedSelfLoopCount++)):(l.outDegree++,u.inDegree++,d&&(l.directedLoops++,t._directedSelfLoopCount++)),t.multi?h.attachMulti():h.attach(),r?t._undirectedSize++:t._directedSize++,c.key=i,t.emit("edgeAdded",c),i}function Mw(t,e,n,r,i,o,a,s,l){if(!r&&t.type==="undirected")throw new $(`Graph.${e}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&t.type==="directed")throw new $(`Graph.${e}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(s){if(l){if(typeof s!="function")throw new P(`Graph.${e}: invalid updater function. Expecting a function but got "${s}"`)}else if(!me(s))throw new P(`Graph.${e}: invalid attributes. Expecting an object but got "${s}"`)}o=""+o,a=""+a;let u;if(l&&(u=s,s=void 0),!t.allowSelfLoops&&o===a)throw new $(`Graph.${e}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let c=t._nodes.get(o),h=t._nodes.get(a),d,f;if(!n&&(d=t._edges.get(i),d)){if((d.source.key!==o||d.target.key!==a)&&(!r||d.source.key!==a||d.target.key!==o))throw new $(`Graph.${e}: inconsistency detected when attempting to merge the "${i}" edge with "${o}" source & "${a}" target vs. ("${d.source.key}", "${d.target.key}").`);f=d}if(!f&&!t.multi&&c&&(f=r?c.undirected[a]:c.out[a]),f){let y=[f.key,!1,!1,!1];if(l?!u:!s)return y;if(l){let _=f.attributes;f.attributes=u(_),t.emit("edgeAttributesUpdated",{type:"replace",key:f.key,attributes:f.attributes})}else he(f.attributes,s),t.emit("edgeAttributesUpdated",{type:"merge",key:f.key,attributes:f.attributes,data:s});return y}s=s||{},l&&u&&(s=u(s));let v={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=t._edgeKeyGenerator();else if(i=""+i,t._edges.has(i))throw new $(`Graph.${e}: the "${i}" edge already exists in the graph.`);let m=!1,g=!1;c||(c=kd(t,o,{}),m=!0,o===a&&(h=c,g=!0)),h||(h=kd(t,a,{}),g=!0),d=new nn(r,i,c,h,s),t._edges.set(i,d);let w=o===a;return r?(c.undirectedDegree++,h.undirectedDegree++,w&&(c.undirectedLoops++,t._undirectedSelfLoopCount++)):(c.outDegree++,h.inDegree++,w&&(c.directedLoops++,t._directedSelfLoopCount++)),t.multi?d.attachMulti():d.attach(),r?t._undirectedSize++:t._directedSize++,v.key=i,t.emit("edgeAdded",v),[i,!0,m,g]}function en(t,e){t._edges.delete(e.key);let{source:n,target:r,attributes:i}=e,o=e.undirected,a=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,a&&(n.undirectedLoops--,t._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,a&&(n.directedLoops--,t._directedSelfLoopCount--)),t.multi?e.detachMulti():e.detach(),o?t._undirectedSize--:t._directedSize--,t.emit("edgeDropped",{key:e.key,attributes:i,source:n.key,target:r.key,undirected:o})}var Z=class t extends Ed.EventEmitter{constructor(e){if(super(),e=he({},Iw,e),typeof e.multi!="boolean")throw new P(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${e.multi}".`);if(!Nw.has(e.type))throw new P(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${e.type}".`);if(typeof e.allowSelfLoops!="boolean")throw new P(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${e.allowSelfLoops}".`);let n=e.type==="mixed"?Td:e.type==="directed"?Ad:Rd;Oe(this,"NodeDataClass",n);let r="geid_"+Lw()+"_",i=0,o=()=>{let a;do a=r+i++;while(this._edges.has(a));return a};Oe(this,"_attributes",{}),Oe(this,"_nodes",new Map),Oe(this,"_edges",new Map),Oe(this,"_directedSize",0),Oe(this,"_undirectedSize",0),Oe(this,"_directedSelfLoopCount",0),Oe(this,"_undirectedSelfLoopCount",0),Oe(this,"_edgeKeyGenerator",o),Oe(this,"_options",e),_d.forEach(a=>Oe(this,a,this[a])),Ke(this,"order",()=>this._nodes.size),Ke(this,"size",()=>this._edges.size),Ke(this,"directedSize",()=>this._directedSize),Ke(this,"undirectedSize",()=>this._undirectedSize),Ke(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),Ke(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),Ke(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),Ke(this,"multi",this._options.multi),Ke(this,"type",this._options.type),Ke(this,"allowSelfLoops",this._options.allowSelfLoops),Ke(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(e){return this._nodes.has(""+e)}hasDirectedEdge(e,n){if(this.type==="undirected")return!1;if(arguments.length===1){let r=""+e,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){e=""+e,n=""+n;let r=this._nodes.get(e);return r?r.out.hasOwnProperty(n):!1}throw new P(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(e,n){if(this.type==="directed")return!1;if(arguments.length===1){let r=""+e,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){e=""+e,n=""+n;let r=this._nodes.get(e);return r?r.undirected.hasOwnProperty(n):!1}throw new P(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(e,n){if(arguments.length===1){let r=""+e;return this._edges.has(r)}else if(arguments.length===2){e=""+e,n=""+n;let r=this._nodes.get(e);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new P(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(e,n){if(this.type==="undirected")return;if(e=""+e,n=""+n,this.multi)throw new $("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");let r=this._nodes.get(e);if(!r)throw new L(`Graph.directedEdge: could not find the "${e}" source node in the graph.`);if(!this._nodes.has(n))throw new L(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(e,n){if(this.type==="directed")return;if(e=""+e,n=""+n,this.multi)throw new $("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");let r=this._nodes.get(e);if(!r)throw new L(`Graph.undirectedEdge: could not find the "${e}" source node in the graph.`);if(!this._nodes.has(n))throw new L(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);let i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(e,n){if(this.multi)throw new $("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.edge: could not find the "${e}" source node in the graph.`);if(!this._nodes.has(n))throw new L(`Graph.edge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areDirectedNeighbors: could not find the "${e}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areOutNeighbors: could not find the "${e}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areInNeighbors: could not find the "${e}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areUndirectedNeighbors: could not find the "${e}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areNeighbors: could not find the "${e}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areInboundNeighbors: could not find the "${e}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(e,n){e=""+e,n=""+n;let r=this._nodes.get(e);if(!r)throw new L(`Graph.areOutboundNeighbors: could not find the "${e}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.inDegree: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.outDegree: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.directedDegree: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.undirectedDegree: could not find the "${e}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.inboundDegree: could not find the "${e}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.outboundDegree: could not find the "${e}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.degree: could not find the "${e}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.inDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.outDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.directedDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.degreeWithoutSelfLoops: could not find the "${e}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.source: could not find the "${e}" edge in the graph.`);return n.source.key}target(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.target: could not find the "${e}" edge in the graph.`);return n.target.key}extremities(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.extremities: could not find the "${e}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(e,n){e=""+e,n=""+n;let r=this._edges.get(n);if(!r)throw new L(`Graph.opposite: could not find the "${n}" edge in the graph.`);let i=r.source.key,o=r.target.key;if(e===i)return o;if(e===o)return i;throw new L(`Graph.opposite: the "${e}" node is not attached to the "${n}" edge (${i}, ${o}).`)}hasExtremity(e,n){e=""+e,n=""+n;let r=this._edges.get(e);if(!r)throw new L(`Graph.hasExtremity: could not find the "${e}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.isUndirected: could not find the "${e}" edge in the graph.`);return n.undirected}isDirected(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.isDirected: could not find the "${e}" edge in the graph.`);return!n.undirected}isSelfLoop(e){e=""+e;let n=this._edges.get(e);if(!n)throw new L(`Graph.isSelfLoop: could not find the "${e}" edge in the graph.`);return n.source===n.target}addNode(e,n){return Pw(this,e,n).key}mergeNode(e,n){if(n&&!me(n))throw new P(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);e=""+e,n=n||{};let r=this._nodes.get(e);return r?(n&&(he(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:e,attributes:r.attributes,data:n})),[e,!1]):(r=new this.NodeDataClass(e,n),this._nodes.set(e,r),this.emit("nodeAdded",{key:e,attributes:n}),[e,!0])}updateNode(e,n){if(n&&typeof n!="function")throw new P(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);e=""+e;let r=this._nodes.get(e);if(r){if(n){let o=r.attributes;r.attributes=n(o),this.emit("nodeAttributesUpdated",{type:"replace",key:e,attributes:r.attributes})}return[e,!1]}let i=n?n({}):{};return r=new this.NodeDataClass(e,i),this._nodes.set(e,r),this.emit("nodeAdded",{key:e,attributes:i}),[e,!0]}dropNode(e){e=""+e;let n=this._nodes.get(e);if(!n)throw new L(`Graph.dropNode: could not find the "${e}" node in the graph.`);let r;if(this.type!=="undirected"){for(let i in n.out){r=n.out[i];do en(this,r),r=r.next;while(r)}for(let i in n.in){r=n.in[i];do en(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(let i in n.undirected){r=n.undirected[i];do en(this,r),r=r.next;while(r)}this._nodes.delete(e),this.emit("nodeDropped",{key:e,attributes:n.attributes})}dropEdge(e){let n;if(arguments.length>1){let r=""+arguments[0],i=""+arguments[1];if(n=ze(this,r,i,this.type),!n)throw new L(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(e=""+e,n=this._edges.get(e),!n)throw new L(`Graph.dropEdge: could not find the "${e}" edge in the graph.`);return en(this,n),this}dropDirectedEdge(e,n){if(arguments.length<2)throw new $("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new $("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");e=""+e,n=""+n;let r=ze(this,e,n,"directed");if(!r)throw new L(`Graph.dropDirectedEdge: could not find a "${e}" -> "${n}" edge in the graph.`);return en(this,r),this}dropUndirectedEdge(e,n){if(arguments.length<2)throw new $("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new $("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");let r=ze(this,e,n,"undirected");if(!r)throw new L(`Graph.dropUndirectedEdge: could not find a "${e}" -> "${n}" edge in the graph.`);return en(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){let e=this._nodes.values(),n;for(;n=e.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(e){return this._attributes[e]}getAttributes(){return this._attributes}hasAttribute(e){return this._attributes.hasOwnProperty(e)}setAttribute(e,n){return this._attributes[e]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:e}),this}updateAttribute(e,n){if(typeof n!="function")throw new P("Graph.updateAttribute: updater should be a function.");let r=this._attributes[e];return this._attributes[e]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:e}),this}removeAttribute(e){return delete this._attributes[e],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:e}),this}replaceAttributes(e){if(!me(e))throw new P("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=e,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(e){if(!me(e))throw new P("Graph.mergeAttributes: provided attributes are not a plain object.");return he(this._attributes,e),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:e}),this}updateAttributes(e){if(typeof e!="function")throw new P("Graph.updateAttributes: provided updater is not a function.");return this._attributes=e(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(e,n){if(typeof e!="function")throw new P("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!xd(n))throw new P("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._nodes.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,o.attributes=e(o.key,o.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(e,n){if(typeof e!="function")throw new P("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!xd(n))throw new P("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._edges.values(),i,o,a,s;for(;i=r.next(),i.done!==!0;)o=i.value,a=o.source,s=o.target,o.attributes=e(o.key,o.attributes,a.key,s.key,a.attributes,s.attributes,o.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(e){if(typeof e!="function")throw new P("Graph.forEachAdjacencyEntry: expecting a callback.");ei(!1,!1,!1,this,e)}forEachAdjacencyEntryWithOrphans(e){if(typeof e!="function")throw new P("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");ei(!1,!1,!0,this,e)}forEachAssymetricAdjacencyEntry(e){if(typeof e!="function")throw new P("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");ei(!1,!0,!1,this,e)}forEachAssymetricAdjacencyEntryWithOrphans(e){if(typeof e!="function")throw new P("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");ei(!1,!0,!0,this,e)}nodes(){return Array.from(this._nodes.keys())}forEachNode(e){if(typeof e!="function")throw new P("Graph.forEachNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)i=r.value,e(i.key,i.attributes)}findNode(e){if(typeof e!="function")throw new P("Graph.findNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,e(i.key,i.attributes))return i.key}mapNodes(e){if(typeof e!="function")throw new P("Graph.mapNode: expecting a callback.");let n=this._nodes.values(),r,i,o=new Array(this.order),a=0;for(;r=n.next(),r.done!==!0;)i=r.value,o[a++]=e(i.key,i.attributes);return o}someNode(e){if(typeof e!="function")throw new P("Graph.someNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,e(i.key,i.attributes))return!0;return!1}everyNode(e){if(typeof e!="function")throw new P("Graph.everyNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!e(i.key,i.attributes))return!1;return!0}filterNodes(e){if(typeof e!="function")throw new P("Graph.filterNodes: expecting a callback.");let n=this._nodes.values(),r,i,o=[];for(;r=n.next(),r.done!==!0;)i=r.value,e(i.key,i.attributes)&&o.push(i.key);return o}reduceNodes(e,n){if(typeof e!="function")throw new P("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new P("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n,i=this._nodes.values(),o,a;for(;o=i.next(),o.done!==!0;)a=o.value,r=e(r,a.key,a.attributes);return r}nodeEntries(){let e=this._nodes.values();return{[Symbol.iterator](){return this},next(){let n=e.next();if(n.done)return n;let r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}}}}export(){let e=new Array(this._nodes.size),n=0;this._nodes.forEach((i,o)=>{e[n++]=Tw(o,i)});let r=new Array(this._edges.size);return n=0,this._edges.forEach((i,o)=>{r[n++]=Aw(this.type,o,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:e,edges:r}}import(e,n=!1){if(e instanceof t)return e.forEachNode((l,u)=>{n?this.mergeNode(l,u):this.addNode(l,u)}),e.forEachEdge((l,u,c,h,d,f,v)=>{n?v?this.mergeUndirectedEdgeWithKey(l,c,h,u):this.mergeDirectedEdgeWithKey(l,c,h,u):v?this.addUndirectedEdgeWithKey(l,c,h,u):this.addDirectedEdgeWithKey(l,c,h,u)}),this;if(!me(e))throw new P("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(e.attributes){if(!me(e.attributes))throw new P("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(e.attributes):this.replaceAttributes(e.attributes)}let r,i,o,a,s;if(e.nodes){if(o=e.nodes,!Array.isArray(o))throw new P("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=o.length;r<i;r++){a=o[r],Rw(a);let{key:l,attributes:u}=a;n?this.mergeNode(l,u):this.addNode(l,u)}}if(e.edges){let l=!1;if(this.type==="undirected"&&(l=!0),o=e.edges,!Array.isArray(o))throw new P("Graph.import: invalid edges. Expecting an array.");for(r=0,i=o.length;r<i;r++){s=o[r],Cw(s);let{source:u,target:c,attributes:h,undirected:d=l}=s,f;"key"in s?(f=n?d?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:d?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey,f.call(this,s.key,u,c,h)):(f=n?d?this.mergeUndirectedEdge:this.mergeDirectedEdge:d?this.addUndirectedEdge:this.addDirectedEdge,f.call(this,u,c,h))}}return this}nullCopy(e){let n=new t(he({},this._options,e));return n.replaceAttributes(he({},this.getAttributes())),n}emptyCopy(e){let n=this.nullCopy(e);return this._nodes.forEach((r,i)=>{let o=he({},r.attributes);r=new n.NodeDataClass(i,o),n._nodes.set(i,r)}),n}copy(e){if(e=e||{},typeof e.type=="string"&&e.type!==this.type&&e.type!=="mixed")throw new $(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${e.type}" because this would mean losing information about the current graph.`);if(typeof e.multi=="boolean"&&e.multi!==this.multi&&e.multi!==!0)throw new $("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof e.allowSelfLoops=="boolean"&&e.allowSelfLoops!==this.allowSelfLoops&&e.allowSelfLoops!==!0)throw new $("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");let n=this.emptyCopy(e),r=this._edges.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,Id(n,"copy",!1,o.undirected,o.key,o.source.key,o.target.key,he({},o.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){let e={};this._nodes.forEach((o,a)=>{e[a]=o.attributes});let n={},r={};this._edges.forEach((o,a)=>{let s=o.undirected?"--":"->",l="",u=o.source.key,c=o.target.key,h;o.undirected&&u>c&&(h=u,u=c,c=h);let d=`(${u})${s}(${c})`;a.startsWith("geid_")?this.multi&&(typeof r[d]>"u"?r[d]=0:r[d]++,l+=`${r[d]}. `):l+=`[${a}]: `,l+=d,n[l]=o.attributes});let i={};for(let o in this)this.hasOwnProperty(o)&&!_d.has(o)&&typeof this[o]!="function"&&typeof o!="symbol"&&(i[o]=this[o]);return i.attributes=this._attributes,i.nodes=e,i.edges=n,Oe(i,"constructor",this.constructor),i}};typeof Symbol<"u"&&(Z.prototype[Symbol.for("nodejs.util.inspect.custom")]=Z.prototype.inspect);Dw.forEach(t=>{["add","merge","update"].forEach(e=>{let n=t.name(e),r=e==="add"?Id:Mw;t.generateKey?Z.prototype[n]=function(i,o,a){return r(this,n,!0,(t.type||this.type)==="undirected",null,i,o,a,e==="update")}:Z.prototype[n]=function(i,o,a,s){return r(this,n,!1,(t.type||this.type)==="undirected",i,o,a,s,e==="update")}})});Wy(Z);tw(Z);vw(Z);Sw(Z);var ti=class extends Z{constructor(e){let n=he({type:"directed"},e);if("multi"in n&&n.multi!==!1)throw new P("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new P('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},ni=class extends Z{constructor(e){let n=he({type:"undirected"},e);if("multi"in n&&n.multi!==!1)throw new P("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new P('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},ri=class extends Z{constructor(e){let n=he({multi:!0},e);if("multi"in n&&n.multi!==!0)throw new P("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}},ii=class extends Z{constructor(e){let n=he({type:"directed",multi:!0},e);if("multi"in n&&n.multi!==!0)throw new P("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new P('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},oi=class extends Z{constructor(e){let n=he({type:"undirected",multi:!0},e);if("multi"in n&&n.multi!==!0)throw new P("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new P('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}};function rn(t){t.from=function(e,n){let r=he({},e.options,n),i=new t(r);return i.import(e),i}}rn(Z);rn(ti);rn(ni);rn(ri);rn(ii);rn(oi);Z.Graph=Z;Z.DirectedGraph=ti;Z.UndirectedGraph=ni;Z.MultiGraph=ri;Z.MultiDirectedGraph=ii;Z.MultiUndirectedGraph=oi;Z.InvalidArgumentsGraphError=P;Z.NotFoundGraphError=L;Z.UsageGraphError=$;function Gw(){return new Z({multi:!0,type:"directed"})}function ua(t){let e=Gw();for(let n of t.nodes){let{id:r,...i}=n;e.addNode(r,i)}for(let n of t.edges){let{key:r,source:i,target:o,...a}=n;e.addDirectedEdgeWithKey(r,i,o,{source:i,target:o,...a})}return e}function Pd(t,e){let n=0;for(let[r,i]of e)t.hasNode(r)&&(!Number.isFinite(i.x)||!Number.isFinite(i.y)||(t.mergeNodeAttributes(r,{x:i.x,y:i.y}),n++));return n}function ca(t){let e=new Map;return t.forEachNode((n,r)=>{e.set(n,{x:r.x,y:r.y})}),e}var Md=t=>({now:()=>t.performance.now(),request:e=>t.requestAnimationFrame(()=>e()),cancel:e=>t.cancelAnimationFrame(e)});function Gd(t,e,n){let r=null,i=ua({nodes:[],edges:[]}),o=null,a=null,s=0,l=0,u=null,c=0,h=()=>{},d=()=>{},f=()=>{},v=()=>{},m=()=>{},g=null,w=T=>{if(g===null)return;let C=g;g=null,r?.setSetting("enableCameraPanning",!0),(T===null||T===C)&&m(C)},y=()=>fd([...ca(i).values()]),_=T=>{let C=vd(o,a,s),M=wd(o,a,s);T.setSetting("nodeReducer",(z,R)=>({...R,...C(z,R,e)})),T.setSetting("edgeReducer",(z,R)=>({...R,...M(z,R,e)}))},k=()=>{if(n===void 0||u!==null)return;c=n.now();let T=()=>{u=null;let C=n.now();if(s=yd(s,l,C-c),c=C,r!==null&&_(r),s===l){s===0&&(o=null);return}u=n.request(T)};u=n.request(T)};return{mount(T){if(r!==null)return;let C=t(i,T,bd(e));C.on("clickNode",({node:M})=>h(M)),C.on("clickStage",()=>h(null)),C.on("downNode",({node:M})=>{g=M,r?.setSetting("enableCameraPanning",!1),f(M)}),C.on("moveBody",M=>{g!==null&&(M.preventSigmaDefault(),v(g,C.viewportToGraph({x:M.event.x,y:M.event.y})))}),C.on("enterNode",({node:M})=>d(M)),C.on("leaveNode",()=>d(null)),C.on("upNode",()=>w(g)),C.on("upStage",()=>w(null)),_(C),C.setCustomBBox(y()),r=C},setGraph(T){i=ua(T),r?.setGraph(i),r?.setCustomBBox(y())},setPositions(T){Pd(i,T),r?.refresh()},setHighlight(T,C=null){if(n===void 0){o=T,a=C,s=T===null?0:1,l=s,r!==null&&_(r);return}if(T===null){if(l=0,o===null)return}else o=T,a=C,l=1;r!==null&&_(r),s!==l&&k()},onSelect(T){h=T},onHover(T){d=T},onDragStart(T){f=T},onDragMove(T){v=T},onDragEnd(T){m=T},fit(){r?.setCustomBBox(y()),r?.getCamera().animatedReset()},positions(){return ca(i)},destroy(){u!==null&&(n?.cancel(u),u=null),r?.kill(),r=null}}}var Fd=t=>Gd((e,n,r)=>new ld(e,n,r),t,Md(window));var Od=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function zd(t,e,n){return t===0?null:t===1?0:e<0?n?t-1:0:n?e===0?t-1:e-1:e===t-1?0:e+1}function $d(t,e,n,r){return t==="Tab"&&!e&&!n&&!r}function Ud(t){return t===null?!1:(t.focus(),!0)}function si(){let t=V(null);return re(()=>{let e=document.activeElement;return t.current?.focus(),()=>{Ud(e instanceof HTMLElement?e:null)}},[]),{ref:t,onKeyDown(e){if(!$d(e.key,e.ctrlKey,e.metaKey,e.altKey))return!1;let n=[...t.current?.querySelectorAll(Od)??[]],r=zd(n.length,n.indexOf(document.activeElement),e.shiftKey);return r===null?!1:(e.preventDefault(),n[r]?.focus(),!0)}}}function Wd(t,e){let n=e.trim().toLowerCase();if(!n)return 0;let r=t.toLowerCase(),i=r.indexOf(n);return i<0?0:r===n?100:i===0?70:/[a-z0-9]/.test(r.charAt(i-1))?30:50}function Fw(t){return Math.min(Math.max(t,0),10)*2}function Ow(t){return`note:${t}`}function zw(t,e){return Wd(t.summary.title,e)+Fw(t.score)}function $w(t,e){return Wd(t.label,e)}var Uw=["path","manifest","url","slug"];function Hw(t){for(let e of Uw){let n=t.detail[e];if(typeof n=="string"&&n)return n}return""}function Bw(t,e){return t.score!==e.score?e.score-t.score:t.kind!==e.kind?t.kind==="note"?-1:1:t.label.localeCompare(e.label)||t.id.localeCompare(e.id)}function Ww(t,e,n,r){let i=new Map;for(let o of t){let a=Ow(o.summary.slug);i.set(a,{id:a,kind:"note",label:o.summary.title,detail:o.snippet,badge:"note",score:zw(o,e)})}for(let o of n){if(i.has(o.id))continue;let a=$w(o,r);a&&i.set(o.id,{id:o.id,kind:"node",label:o.label,detail:Hw(o),badge:o.kind,score:a})}return[...i.values()].sort(Bw).slice(0,20)}function Kd(){return{query:"",answered:"",hits:[],cursor:0,loading:!1,failed:!1}}function da(t,e){return e<=0?0:Math.min(Math.max(t,0),e-1)}function Hd(t,e,n){return n<=0?0:((t+e)%n+n)%n}function Vd(t,e){return e===null?null:t[e]?.id??null}function jd(t,e,n){let r={cursor:t,activate:null,dismiss:!1,handled:!1},i=da(t,n);return e==="ArrowDown"?{...r,cursor:Hd(i,1,n),handled:!0}:e==="ArrowUp"?{...r,cursor:Hd(i,-1,n),handled:!0}:e==="Home"?{...r,cursor:0,handled:!0}:e==="End"?{...r,cursor:da(n-1,n),handled:!0}:e==="Escape"?{...r,dismiss:!0,handled:!0}:e!=="Enter"||n===0?r:{...r,cursor:i,activate:i,dismiss:!0,handled:!0}}var li="Search the workspace",qd="Search notes and repository…",Yd="↑↓ move · ↵ open · esc close";function Kw(t,e){return t.query.trim()?e>0?null:t.failed?"search failed — the workspace server may be gone":t.loading?"searching…":`no matches for “${t.query.trim()}”`:"Type to search notes, modules, files and entry points."}function Vw(t){return t===1?"1 result":`${t} results`}function Bd(t){return`weave-search-row-${t}`}function Xd(t,e){let n=Ww(t.hits,t.answered,e?.model.nodes??[],t.query),r=da(t.cursor,n.length);return{rows:n.map((o,a)=>({...o,active:a===r,domId:Bd(a)})),status:Kw(t,n.length),count:n.length,countLabel:Vw(n.length),cursor:r,activeDomId:n.length?Bd(r):null}}var jw=0;function b(t,e,n,r,i,o){e||(e={});var a,s,l=e;if("ref"in l)for(s in l={},e)s=="ref"?a=e[s]:l[s]=e[s];var u={type:t,props:l,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--jw,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(a=t.defaultProps))for(s in a)l[s]===void 0&&(l[s]=a[s]);return q.vnode&&q.vnode(u),u}function Yw({row:t,onPick:e,onHover:n}){return b("li",{id:t.domId,role:"option","aria-selected":t.active,class:`weave-hit weave-hit-${t.kind}${t.active?" weave-hit-on":""}`,onMouseMove:n,onClick:e,children:[b("span",{class:"weave-hit-badge",children:t.badge}),b("span",{class:"weave-hit-label",children:t.label}),b("span",{class:"weave-hit-detail",children:t.detail})]})}function Zd(t){let[e,n]=K(Kd),r=V(0),i=V(null),o=si(),a=V(null);re(()=>{a.current?.focus()},[]),re(()=>{let u=e.query.trim(),c=!0;if(!u)return i.current?.abort(),n(d=>({...d,hits:[],answered:"",loading:!1,failed:!1})),()=>{c=!1};let h=window.setTimeout(async()=>{let d=++r.current;i.current?.abort();let f=new AbortController;i.current=f,n(m=>({...m,loading:!0,failed:!1}));let v=await Ll(t.ports.fetch,u,f.signal);!c||f.signal.aborted||d!==r.current||n(m=>v.ok?{...m,hits:v.data.hits,answered:u,loading:!1,failed:!1,cursor:0}:{...m,loading:!1,failed:!0})},140);return()=>{c=!1,window.clearTimeout(h),i.current?.abort()}},[e.query,t.ports.fetch]);let s=Xd(e,t.graph),l=u=>{let c=Vd(s.rows,u);c!==null&&t.onSelect(c),t.onClose()};return b("div",{class:"weave-scrim",onClick:()=>l(null),children:b("div",{class:"weave-palette",role:"dialog","aria-modal":"true","aria-label":li,tabIndex:-1,ref:o.ref,onClick:u=>u.stopPropagation(),onKeyDown:u=>{if(o.onKeyDown(u))return;let c=jd(e.cursor,u.key,s.count);c.handled&&(u.preventDefault(),n(h=>({...h,cursor:c.cursor})),c.dismiss&&l(c.activate))},children:[b("input",{type:"search",class:"weave-palette-input",ref:a,value:e.query,placeholder:qd,"aria-label":li,"aria-controls":"weave-search-results","aria-activedescendant":s.activeDomId??void 0,onInput:u=>n(c=>({...c,query:u.currentTarget.value,cursor:0}))}),s.status===null?b("ul",{id:"weave-search-results",class:"weave-hits",role:"listbox","aria-label":li,children:s.rows.map((u,c)=>b(Yw,{row:u,onPick:()=>l(c),onHover:()=>n(h=>({...h,cursor:c}))},u.id))}):b("p",{class:"weave-palette-status",role:"status",children:s.status}),b("p",{class:"weave-palette-foot",children:[b("span",{children:s.countLabel}),b("span",{class:"weave-palette-hint",children:Yd})]})]})})}var Qd="pi-weave.selection.v1";function Jd(t,e){try{return t.setItem(Qd,e??""),!0}catch{return!1}}function eh(t,e){if(t===null)return null;let n;try{n=e.getItem(Qd)}catch{return null}return n===null||n===""?null:t.model.nodes.some(r=>r.id===n)?n:null}function th(){return{graph:null,graphFailed:!1,note:null,noteFailed:!1,recentIds:new Set,selectedId:null}}var Xw=2e3,Zw=3e3,rh=new Set;function Qw(t,e){if(t===null)return rh;let n=new Set(t.model.nodes.map(r=>r.id));return new Set(e.model.nodes.filter(r=>!n.has(r.id)).map(r=>r.id))}function nh(t){if(t===null||!t.startsWith("note:"))return null;let e=t.slice(5);return e===""?null:e}function ih(t){let e=t.state,n=!1,r=!1,i=null,o=d=>{Object.entries(d).every(([f,v])=>e[f]===v)||(e={...e,...d},t.setState(e))},a=t.defer??((d,f)=>{let v=setTimeout(d,f);return()=>clearTimeout(v)}),s=async()=>{let d=nh(e.selectedId);if(d===null){o({note:null,noteFailed:!1});return}let f=await Cl(t.fetch,d);f.ok?o({note:f.data,noteFailed:!1}):o({note:null,noteFailed:!0})},l=async()=>{let d=e.graph,f=await Rl(t.fetch,e.graph);if(!f.ok)return e.graph===null&&o({graphFailed:!0}),f;if(!f.cached){let v=Qw(d,f.data);o({graph:f.data,graphFailed:!1,recentIds:v}),i?.(),i=null,v.size>0&&(i=a(()=>{i=null,o({recentIds:rh})},Zw))}return f},u=async()=>{if(!(n||r)){r=!0;try{let d=await l();nh(e.selectedId)!==null&&(e.note===null||d.ok&&!d.cached)&&await s()}finally{r=!1}}},h=(t.repeat??((d,f)=>{let v=setInterval(d,f);return()=>clearInterval(v)}))(()=>{u()},Xw);return u(),{refresh:()=>{u()},select:async d=>{o({selectedId:d}),await s()},syncNote:s,stop:()=>{n||(n=!0,h(),i?.(),i=null)}}}function oh(t){return t==="contains"||t==="anchored-at"}function Jw(t,e){let n=new Set(t.map(i=>i.id)),r=new Map;for(let i of e)oh(i.kind)&&i.source!==i.target&&(!n.has(i.source)||!n.has(i.target)||r.has(i.target)||r.set(i.target,i.source));return r}function eb(t,e){let n=Jw(t,e),r=new Map;for(let i of t){let o=i.id,a=i.id,s=0,l=new Set([o]);for(;;){let u=n.get(o);if(u===void 0||l.has(u))break;l.add(u),a=o,o=u,s++}r.set(i.id,{key:a,depth:Math.max(0,s-1)})}return r}function tb(t){let e=new Map;for(let n of t.values())e.set(n,(e.get(n)??0)+1);return e}var nb={dark:["#f5bde6","#c6a0f6","#ed8796","#f5a97f","#eed49f","#a6da95","#8bd5ca","#7dc4e4","#8aadf4","#b7bdf8"],light:["#824171","#7832d4","#d20f39","#9f3e07","#7b4e10","#28641b","#106368","#14616e","#1853c8","#445198"]},rb=3;function ib(t,e){let n=nb[e],i=[...tb(t).entries()].sort((a,s)=>s[1]-a[1]||(a[0]<s[0]?-1:a[0]>s[0]?1:0)),o=new Map;return i.forEach(([a],s)=>o.set(a,n[s*rb%n.length])),o}var ob=.11,ab=.34;function sb(t,e,n){let r=Number.isFinite(e)&&e>0?e:0;return Nn(t,gt[n].ground,Math.min(ab,r*ob))}var lb=.26,ub=.55;function cb(t,e,n){if(e.length===0)return t;let r=t,i=0;for(let o of e){let a=Math.min(lb,ub-i);if(a<=0)break;i+=a,r=Nn(r,o,a)}return r}function ah(t,e,n){let r=eb(t,e),i=new Map;for(let[c,h]of r)i.set(c,h.key);let o=ib(i,n),a=new Set(t.map(c=>c.id)),s=new Map,l=(c,h)=>{let d=r.get(c)?.key,f=r.get(h)?.key;if(d===void 0||f===void 0||d===f)return;let v=s.get(c);v===void 0?s.set(c,new Set([f])):v.add(f)};for(let c of e)oh(c.kind)||c.source!==c.target&&(!a.has(c.source)||!a.has(c.target)||(l(c.source,c.target),l(c.target,c.source)));let u=new Map;for(let c of t){let h=r.get(c.id);if(h===void 0)continue;let d=o.get(h.key);if(d===void 0)continue;let f=sb(d,h.depth,n),v=[...s.get(c.id)??[]].sort().map(m=>o.get(m)).filter(m=>m!==void 0);u.set(c.id,cb(f,v,n))}return u}function sh(t){let e=2166136261;for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,e>>>0}var db=300,hb=1;function fb(t,e,n){let r=new Map(n??[]);if(r.size>0)for(let o of e){if(o.kind!=="contains"&&o.kind!=="anchored-at"||r.has(o.target))continue;let a=r.get(o.source);a!==void 0&&r.set(o.target,{x:a.x,y:a.y})}let i={ticks:db,seed:hb,pinWarm:!0};return r.size>0&&(i.initial=r),ol({generatedAt:"",staleness:null,nodes:[...t],edges:[...e],contentDigest:""},i)}function pb(t,e){let n=0,r=0;for(let o of t){let a=sh(o.id);n^=a,r=r+a>>>0}for(let o of e){let a=sh(`${o.source}\0${o.target}\0${o.kind}`);n^=a,r=r+a>>>0}return[t.length,e.length,n>>>0,r].map(o=>o.toString(16)).join("-")}var ui="pi-weave.graph.positions.v4";function lh(t){return Math.round(t*10)/10}function gb(t,e){let n={};for(let[r,i]of e)n[r]=[lh(i.x),lh(i.y)];return JSON.stringify({v:4,key:t,at:n})}function mb(t,e){if(t===null)return null;let n;try{n=JSON.parse(t)}catch{return null}if(typeof n!="object"||n===null||Array.isArray(n))return null;let r=n;if(r.v!==4||r.key!==e)return null;let i=r.at;if(typeof i!="object"||i===null||Array.isArray(i))return null;let o=new Map;for(let[a,s]of Object.entries(i)){if(!Array.isArray(s)||s.length!==2)return null;let[l,u]=s;if(typeof l!="number"||typeof u!="number"||!Number.isFinite(l)||!Number.isFinite(u))return null;o.set(a,{x:l,y:u})}return o.size===0?null:o}function vb(t,e){let n;try{n=t.getItem(ui)}catch{return null}return mb(n,e)}function yb(t,e,n){try{return t.setItem(ui,gb(e,n)),!0}catch{return!1}}function uh(t,e,n){let r=pb(e,n),i=vb(t,r);if(i!==null&&e.every(a=>i.has(a.id)))return{key:r,positions:i,cached:!0};let o=fb(e,n);return yb(t,r,o),{key:r,positions:o,cached:!1}}function wb(t){return{expanded:new Set(Cr(t,new Set).clusters.keys())}}function dh(t,e){return e!==null?e:t===null?{expanded:new Set}:wb(Ct(t))}function bb(t,e){let n=new Set(t.expanded);return n.delete(e)||n.add(e),{...t,expanded:n}}function xb(t,e){return e===null?null:Rr(e,t)}function hh(t,e,n){return e===null?n:Rr(e,t)}var fh="fit",ph="frame the whole graph",gh="sliders",mh="tune the layout physics and colours",ci={selected:"selected",neighborhood:"neighborhood",dimmed:"not related"};function vh(t,e){let n=e===1?"node":"nodes";return t===e?`${e} ${n}`:`${t} of ${e} ${n}`}function _b(t,e){return t===null?"Loading…":t.model.nodes.length===0?"Nothing indexed yet — add a note or run /weave-scan.":e===0?"Nothing to draw at this expansion.":null}var kb="The workspace did not load — ⟳ retries now, and the next change to the vault retries on its own.",ch={graph:pd,highlight:null,key:"",cached:!1,clusters:new Map,visible:0,total:0,empty:"Loading…"};function yh(t,e,n,r,i,o=!1,a=!0){if(t===null)return o?{...ch,empty:kb}:ch;let s=Ct(t),l=Cr(s,n.expanded),c=n.expanded.has("vault")?l.edges.filter(f=>f.source!=="vault"&&f.target!=="vault"):l.edges,h=uh(r,l.nodes,c),d=a?ah(l.nodes,c,i):void 0;return{graph:md(l.nodes,c,h.positions,i,d),highlight:xb(c,e),key:h.key,cached:h.cached,clusters:l.clusters,visible:l.nodes.length,total:s.nodes.length,empty:_b(t,l.nodes.length)}}function wh(t,e,n){return n===null?{state:t,selectedId:null}:e.get(n)===void 0||t.expanded.has(n)?{state:t,selectedId:n}:{state:bb(t,n),selectedId:n}}var Eb=.06,Sb=.2,ha=.001,bh=.5;function xh(t,e){if(t.nodes.length===0)return null;let n=t.nodes.map(s=>{let l=e?.get(s.id);return{id:s.id,x:l!==void 0&&Number.isFinite(l.x)?l.x:s.x,y:l!==void 0&&Number.isFinite(l.y)?l.y:s.y,vx:0,vy:0,r:eo(s.size)}}),r=new Map(n.map(s=>[s.id,s])),i=new Set,o=[];for(let s of t.edges){if(s.source===s.target||!r.has(s.source)||!r.has(s.target))continue;let l=`${s.source}\0${s.target}\0${s.kind}`;i.has(l)||(i.add(l),o.push({source:s.source,target:s.target,kind:s.kind}))}let a=no({nodes:n,links:o,seed:1}).alpha(Eb).alphaMin(ha);return{tick(){a.tick()},awake(){return a.alphaTarget()>ha||a.alpha()>ha},positions(){return new Map(n.map(s=>[s.id,{x:s.x??0,y:s.y??0}]))},pin(s,l){let u=r.get(s);if(!u)return;let c=u.fx!=null&&u.fy!=null&&Math.abs(u.fx-l.x)<bh&&Math.abs(u.fy-l.y)<bh;u.fx=l.x,u.fy=l.y,a.alphaTarget(c?0:Sb)},release(s){let l=r.get(s);l&&(l.fx=null,l.fy=null,a.alphaTarget(0))}}}function _h(t){let[,e]=K(0),[n,r]=K(!1),i=(a,s)=>{to({[a.key]:ul(a,s)}),r(!1),e(l=>l+1),t.onChange()},o=a=>{to(a),r(!1),e(s=>s+1),t.onChange()};return b("div",{class:"weave-tuner",children:[b("p",{class:"weave-tuner-title",children:"graph forces · ?sliders=1"}),b("label",{class:"weave-tuner-toggle",title:"hue per containment group, shade per kind",children:[b("input",{type:"checkbox",checked:t.groupColors,onChange:a=>t.onGroupColors(a.currentTarget.checked)}),b("span",{children:"colour by group"})]}),vr.map(a=>b("label",{class:"weave-tuner-row",title:a.hint,children:[b("span",{class:"weave-tuner-label",children:[a.label,b("b",{children:cl(ve[a.key])})]}),b("input",{type:"range",min:a.min,max:a.max,step:a.step,value:ll(ve,a),onInput:s=>i(a,s.currentTarget.value)})]},a.key)),b("div",{class:"weave-tuner-actions",children:[b("button",{type:"button",class:"weave-chip",disabled:dl(ve),onClick:()=>o(yn),children:"reset"}),b("button",{type:"button",class:"weave-chip",title:"the pre-tuner constants, for comparison — see HAIRBALL",onClick:()=>o(sl),children:"before"}),b("button",{type:"button",class:"weave-chip",onClick:()=>{navigator.clipboard?.writeText(ro(ve)).then(()=>r(!0),()=>r(!1))},children:n?"copied ✓":"copy values"})]}),b("pre",{class:"weave-tuner-snippet",children:ro(ve)})]})}function kh(t){let e=V(null),n=V(null),r=V(null),i=V(null),o=El(()=>{if(i.current!==null)return;let y=()=>{i.current=null;let _=r.current;_!==null&&(_.tick(),_.awake()&&(n.current?.setPositions(_.positions()),i.current=requestAnimationFrame(y)))};i.current=requestAnimationFrame(y)},[]),[a,s]=K(null),[l,u]=K(0),[c,h]=K(()=>fl(t.storage)),[d,f]=K(t.tuner===!0),v=t.scheme??Or(t.host),m=dh(t.graph,a),g=Ze(()=>yh(t.graph,t.selectedId,m,t.storage,v,t.bootFailed,c),[t.graph,t.selectedId,m,t.storage,v,t.bootFailed,l,c]),w=V({view:m,model:g,onSelect:t.onSelect,selectedId:t.selectedId});return w.current={view:m,model:g,onSelect:t.onSelect,selectedId:t.selectedId},re(()=>{let y=t.renderer(v);return y.onSelect(_=>{let k=wh(w.current.view,w.current.model.clusters,_);s(k.state),w.current.onSelect(k.selectedId)}),y.onHover(_=>{let{model:k,selectedId:T}=w.current;y.setHighlight(hh(k.graph.edges,_,k.highlight),_??T)}),y.onDragStart(_=>{let k=n.current?.positions().get(_);k&&(r.current?.pin(_,k),o())}),y.onDragMove((_,k)=>{r.current?.pin(_,k)}),y.onDragEnd(_=>{r.current?.release(_)}),y.mount(e.current??{clientWidth:0,clientHeight:0}),n.current=y,y.setGraph(w.current.model.graph),y.setHighlight(w.current.model.highlight,w.current.selectedId),t.fit.current=()=>y.fit(),()=>{y.destroy(),n.current=null,t.fit.current=null}},[t.renderer,v]),re(()=>{n.current?.setGraph(g.graph)},[g.key,l,c]),re(()=>{let y=xh(g.graph,n.current?.positions());return r.current=y,y!==null&&o(),()=>{r.current=null}},[g.key,o,l]),re(()=>()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),re(()=>{n.current?.setHighlight(g.highlight,t.selectedId)},[g.highlight,t.selectedId]),b("div",{class:"weave-graph",children:[g.empty===null?null:b("p",{class:"weave-graph-empty",children:g.empty}),b("div",{class:"weave-graph-canvas",ref:e,role:"img","aria-label":"Knowledge graph",tabIndex:-1}),d?b(_h,{groupColors:c,onGroupColors:y=>{pl(t.storage,y),h(y)},onChange:()=>{try{t.storage.setItem(ui,"")}catch{}u(y=>y+1)}}):null,b("div",{class:"weave-graph-controls",children:[b("button",{type:"button",class:"weave-chip",title:ph,onClick:()=>n.current?.fit(),children:fh}),b("button",{type:"button",class:d?"weave-chip weave-chip-on":"weave-chip",title:mh,"aria-pressed":d,onClick:()=>f(!d),children:gh}),b("span",{class:"weave-graph-legend",children:[b("span",{class:"weave-legend-on",children:["◉ ",ci.selected]}),b("span",{class:"weave-legend-near",children:["● ",ci.neighborhood]}),b("span",{class:"weave-legend-dim",children:["· ",ci.dimmed]})]})]}),b("p",{class:"weave-graph-count",children:vh(g.visible,g.total)})]})}function Eh(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function Tb(t){if(Array.isArray(t))return t}function Ab(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(t)).next,e!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function Rb(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
401
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Cb(t,e){return Tb(t)||Ab(t,e)||Lb(t,e)||Rb()}function Lb(t,e){if(t){if(typeof t=="string")return Eh(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Eh(t,e):void 0}}var zh=Object.entries,Sh=Object.setPrototypeOf,Nb=Object.isFrozen,Db=Object.getPrototypeOf,Ib=Object.getOwnPropertyDescriptor,fe=Object.freeze,ge=Object.seal,on=Object.create,$h=typeof Reflect<"u"&&Reflect,wa=$h.apply,ba=$h.construct;fe||(fe=function(e){return e});ge||(ge=function(e){return e});wa||(wa=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return e.apply(n,i)});ba||(ba=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new e(...r)});var Mt=ue(Array.prototype.forEach),Pb=ue(Array.prototype.lastIndexOf),Th=ue(Array.prototype.pop),Mn=ue(Array.prototype.push),Mb=ue(Array.prototype.splice),an=Array.isArray,On=ue(String.prototype.toLowerCase),fa=ue(String.prototype.toString),Ah=ue(String.prototype.match),Gn=ue(String.prototype.replace),Rh=ue(String.prototype.indexOf),Gb=ue(String.prototype.trim),Fb=ue(Number.prototype.toString),Ob=ue(Boolean.prototype.toString),Ch=typeof BigInt>"u"?null:ue(BigInt.prototype.toString),Lh=typeof Symbol>"u"?null:ue(Symbol.prototype.toString),Re=ue(Object.prototype.hasOwnProperty),Fn=ue(Object.prototype.toString),we=ue(RegExp.prototype.test),Pt=zb(TypeError);function ue(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return wa(t,e,r)}}function zb(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return ba(t,n)}}function W(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:On;if(Sh&&Sh(t,null),!an(e))return t;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let o=n(i);o!==i&&(Nb(e)||(e[r]=o),i=o)}t[i]=!0}return t}function $b(t){for(let e=0;e<t.length;e++)Re(t,e)||(t[e]=null);return t}function Pe(t){let e=on(null);for(let r of zh(t)){var n=Cb(r,2);let i=n[0],o=n[1];Re(t,i)&&(an(o)?e[i]=$b(o):o&&typeof o=="object"&&o.constructor===Object?e[i]=Pe(o):e[i]=o)}return e}function Ub(t){switch(typeof t){case"string":return t;case"number":return Fb(t);case"boolean":return Ob(t);case"bigint":return Ch?Ch(t):"0";case"symbol":return Lh?Lh(t):"Symbol()";case"undefined":return Fn(t);case"function":case"object":{if(t===null)return Fn(t);let e=t,n=Ve(e,"toString");if(typeof n=="function"){let r=n(e);return typeof r=="string"?r:Fn(r)}return Fn(t)}default:return Fn(t)}}function Ve(t,e){for(;t!==null;){let r=Ib(t,e);if(r){if(r.get)return ue(r.get);if(typeof r.value=="function")return ue(r.value)}t=Db(t)}function n(){return null}return n}function Hb(t){try{return we(t,""),!0}catch{return!1}}var Nh=fe(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),pa=fe(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),ga=fe(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Bb=fe(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ma=fe(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Wb=fe(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Dh=fe(["#text"]),Ih=fe(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),va=fe(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Ph=fe(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),di=fe(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Kb=ge(/{{[\w\W]*|^[\w\W]*}}/g),Vb=ge(/<%[\w\W]*|^[\w\W]*%>/g),jb=ge(/\${[\w\W]*/g),qb=ge(/^data-[\-\w.\u00B7-\uFFFF]+$/),Yb=ge(/^aria-[\-\w]+$/),Mh=ge(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Xb=ge(/^(?:\w+script|data):/i),Zb=ge(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Qb=ge(/^html$/i),Jb=ge(/^[a-z][.\w]*(-[.\w]+)+$/i),Gh=ge(/<[/\w!]/g),Fh=ge(/<[/\w]/g),ex=ge(/<\/no(script|embed|frames)/i),tx=ge(/\/>/i),Ie={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Uh=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],nx=fe(W({},Uh)),rx=(function(){let t={};return Mt(Uh,e=>{t[e]=ge(new RegExp("</"+e+"(?=[\\t\\n\\f\\r />])","i"))}),fe(t)})(),ix=function(){return typeof window>"u"?null:window},ox=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Oh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},mt=function(e,n,r,i){return Re(e,n)&&an(e[n])?W(i.base?Pe(i.base):{},e[n],i.transform):r},ya=function(e,n,r){let i=Re(e,n)?e[n]:void 0;return i&&typeof i=="object"?Pe(i):r()};function Hh(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ix(),e=A=>Hh(A);if(e.version="3.4.14",e.removed=[],!t||!t.document||t.document.nodeType!==Ie.document||!t.Element)return e.isSupported=!1,e;let n=t.document,r=n,i=r.currentScript;t.DocumentFragment;let o=t.HTMLTemplateElement,a=t.Node,s=t.Element,l=t.NodeFilter,u=t.NamedNodeMap;u===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;let c=t.DOMParser,h=t.trustedTypes,d=s.prototype,f=Ve(d,"cloneNode"),v=Ve(d,"remove"),m=Ve(d,"nextSibling"),g=Ve(d,"childNodes"),w=Ve(d,"parentNode"),y=Ve(d,"shadowRoot"),_=Ve(d,"attributes"),k=a&&a.prototype?Ve(a.prototype,"nodeType"):null,T=a&&a.prototype?Ve(a.prototype,"nodeName"):null,C=a&&a.prototype?Ve(a.prototype,"ownerDocument"):null,M=function(p){return k?k(p):p.nodeType},z=function(p){return T?T(p):p.nodeName};if(typeof o=="function"){let A=n.createElement("template");A.content&&A.content.ownerDocument&&(n=A.content.ownerDocument)}let R,D="",N,O=!1,H=0,Y=function(){if(H>0)throw Pt('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},j=function(p){Y(),H++;try{return R.createHTML(p)}finally{H--}},Ce=function(p){Y(),H++;try{return R.createScriptURL(p)}finally{H--}},vt=function(){return O||(N=ox(h,i),O=!0),N},be=n,$e=be.implementation,Ue=be.createNodeIterator,je=be.createDocumentFragment,sn=be.getElementsByTagName,Me=r.importNode,J=Oh();e.isSupported=typeof zh=="function"&&typeof w=="function"&&$e&&$e.createHTMLDocument!==void 0;let ln=Kb,Zf=Vb,Qf=jb,Jf=qb,ep=Yb,tp=Xb,Da=Zb,np=Jb,Ia=Mh,te=null,wi=W({},[...Nh,...pa,...ga,...ma,...Dh]),ne=null,bi=W({},[...Ih,...va,...Ph,...di]),qe=Object.seal(on(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),un=null,Pa=null,lt=Object.seal(on(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Ma=!0,xi=!0,Ga=!1,Fa=!0,ut=!1,yt=!0,wt=!1,_i=!1,Hn=null,Bn=null,ki=!1,Gt=!1,Wn=!1,Kn=!1,Oa=!0,za=!1,$a="user-content-",Ei=!0,Si=!1,Ft={},Ot=null,Ua=W({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ha=null,Ba=W({},["audio","video","img","source","image","track"]),Wa=null,Ka=W({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Vn="http://www.w3.org/1998/Math/MathML",jn="http://www.w3.org/2000/svg",Ye="http://www.w3.org/1999/xhtml",zt=Ye,Ti=!1,Ai=null,rp=W({},[Vn,jn,Ye],fa),Va=fe(["mi","mo","mn","ms","mtext"]),Ri=W({},Va),ja=fe(["annotation-xml"]),Ci=W({},ja),ip=W({},["title","style","font","a","script"]),cn=null,op=["application/xhtml+xml","text/html"],ap="text/html",ae=null,$t=null,sp=n.createElement("form"),qa=function(p){return p instanceof RegExp||p instanceof Function},Li=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if($t&&$t===p)return;(!p||typeof p!="object")&&(p={}),p=Pe(p),cn=op.indexOf(p.PARSER_MEDIA_TYPE)===-1?ap:p.PARSER_MEDIA_TYPE,ae=cn==="application/xhtml+xml"?fa:On,te=mt(p,"ALLOWED_TAGS",wi,{transform:ae}),ne=mt(p,"ALLOWED_ATTR",bi,{transform:ae}),Ai=mt(p,"ALLOWED_NAMESPACES",rp,{transform:fa}),Wa=mt(p,"ADD_URI_SAFE_ATTR",Ka,{transform:ae,base:Ka}),Ha=mt(p,"ADD_DATA_URI_TAGS",Ba,{transform:ae,base:Ba}),Ot=mt(p,"FORBID_CONTENTS",Ua,{transform:ae}),un=mt(p,"FORBID_TAGS",Pe({}),{transform:ae}),Pa=mt(p,"FORBID_ATTR",Pe({}),{transform:ae}),Ft=Re(p,"USE_PROFILES")?p.USE_PROFILES&&typeof p.USE_PROFILES=="object"?Pe(p.USE_PROFILES):p.USE_PROFILES:!1,Ma=p.ALLOW_ARIA_ATTR!==!1,xi=p.ALLOW_DATA_ATTR!==!1,Ga=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Fa=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ut=p.SAFE_FOR_TEMPLATES||!1,yt=p.SAFE_FOR_XML!==!1,wt=p.WHOLE_DOCUMENT||!1,Gt=p.RETURN_DOM||!1,Wn=p.RETURN_DOM_FRAGMENT||!1,Kn=p.RETURN_TRUSTED_TYPE||!1,ki=p.FORCE_BODY||!1,Oa=p.SANITIZE_DOM!==!1,za=p.SANITIZE_NAMED_PROPS||!1,Ei=p.KEEP_CONTENT!==!1,Si=p.IN_PLACE||!1,Ia=Hb(p.ALLOWED_URI_REGEXP)?p.ALLOWED_URI_REGEXP:Mh,zt=typeof p.NAMESPACE=="string"?p.NAMESPACE:Ye,Ri=ya(p,"MATHML_TEXT_INTEGRATION_POINTS",()=>W({},Va)),Ci=ya(p,"HTML_INTEGRATION_POINTS",()=>W({},ja));let x=ya(p,"CUSTOM_ELEMENT_HANDLING",()=>on(null));if(qe=on(null),Re(x,"tagNameCheck")&&qa(x.tagNameCheck)&&(qe.tagNameCheck=x.tagNameCheck),Re(x,"attributeNameCheck")&&qa(x.attributeNameCheck)&&(qe.attributeNameCheck=x.attributeNameCheck),Re(x,"allowCustomizedBuiltInElements")&&typeof x.allowCustomizedBuiltInElements=="boolean"&&(qe.allowCustomizedBuiltInElements=x.allowCustomizedBuiltInElements),ge(qe),ut&&(xi=!1),Wn&&(Gt=!0),Ft&&(te=W({},Dh),ne=on(null),Ft.html===!0&&(W(te,Nh),W(ne,Ih)),Ft.svg===!0&&(W(te,pa),W(ne,va),W(ne,di)),Ft.svgFilters===!0&&(W(te,ga),W(ne,va),W(ne,di)),Ft.mathMl===!0&&(W(te,ma),W(ne,Ph),W(ne,di))),lt.tagCheck=null,lt.attributeCheck=null,Re(p,"ADD_TAGS")&&(typeof p.ADD_TAGS=="function"?lt.tagCheck=p.ADD_TAGS:an(p.ADD_TAGS)&&(te===wi&&(te=Pe(te)),W(te,p.ADD_TAGS,ae))),Re(p,"ADD_ATTR")&&(typeof p.ADD_ATTR=="function"?lt.attributeCheck=p.ADD_ATTR:an(p.ADD_ATTR)&&(ne===bi&&(ne=Pe(ne)),W(ne,p.ADD_ATTR,ae))),Re(p,"ADD_FORBID_CONTENTS")&&an(p.ADD_FORBID_CONTENTS)&&(Ot===Ua&&(Ot=Pe(Ot)),W(Ot,p.ADD_FORBID_CONTENTS,ae)),Ei&&(te["#text"]=!0),wt&&W(te,["html","head","body"]),te.table&&(W(te,["tbody"]),delete un.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw Pt('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Pt('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let E=R;R=p.TRUSTED_TYPES_POLICY;try{D=j("")}catch(I){throw R=E,I}}else p.TRUSTED_TYPES_POLICY===null?(R=void 0,D=""):(R===void 0&&(R=vt()),R&&typeof D=="string"&&(D=j("")));fe&&fe(p),$t=p},Ya=W({},[...pa,...ga,...Bb]),Xa=W({},[...ma,...Wb]),lp=function(p,x,E){return x.namespaceURI===Ye?p==="svg":x.namespaceURI===Vn?p==="svg"&&(E==="annotation-xml"||Ri[E]):!!Ya[p]},up=function(p,x,E){return x.namespaceURI===Ye?p==="math":x.namespaceURI===jn?p==="math"&&Ci[E]:!!Xa[p]},cp=function(p,x,E){return x.namespaceURI===jn&&!Ci[E]||x.namespaceURI===Vn&&!Ri[E]?!1:!Xa[p]&&(ip[p]||!Ya[p])},dp=function(p){let x=w(p);(!x||!x.tagName)&&(x={namespaceURI:zt,tagName:"template"});let E=On(p.tagName),I=On(x.tagName);return Ai[p.namespaceURI]?p.namespaceURI===jn?lp(E,x,I):p.namespaceURI===Vn?up(E,x,I):p.namespaceURI===Ye?cp(E,x,I):!!(cn==="application/xhtml+xml"&&Ai[p.namespaceURI]):!1},ct=function(p){Mn(e.removed,{element:p});try{w(p).removeChild(p)}catch{if(v(p),!w(p))throw Pt("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Za=function(p,x,E){try{p.removeAttributeNode(x)}catch{try{p.removeAttribute(E)}catch{}}},qn=function(p){Yn(p);let x=g(p);if(x){let I=[];Mt(x,F=>{Mn(I,F)}),Mt(I,F=>{try{v(F)}catch{}})}let E=_(p);if(E)for(let I=E.length-1;I>=0;--I){let F=E[I],U=F&&F.name;typeof U=="string"&&Za(p,F,U)}},bt=function(p,x,E){if(!E)try{E=x.getAttributeNode(p)}catch{E=null}Mn(e.removed,{attribute:E||null,from:x});try{E?x.removeAttributeNode(E):x.removeAttribute(p)}catch{try{x.removeAttribute(p)}catch{}}if(p==="is")if(Gt||Wn)try{ct(x)}catch{}else try{x.setAttribute(p,"")}catch{}},hp=function(p){let x=_(p);if(x)for(let E=x.length-1;E>=0;--E){let I=x[E],F=I&&I.name;typeof F!="string"||ne[ae(F)]||Za(p,I,F)}},Yn=function(p){let x=[p];for(;x.length>0;){let E=x.pop();M(E)===Ie.element&&hp(E);let F=g(E);if(F)for(let U=F.length-1;U>=0;--U)x.push(F[U])}},Qa=function(p,x){return yt?p==="patchsrc"?!0:p==="for"&&x!=="label"&&x!=="output":!1},fp=function(p){if(!yt)return;let x=[p];for(;x.length>0;){let E=x.pop(),I=M(E);if(I===Ie.processingInstruction||I===Ie.comment&&we(Fh,E.data)){try{v(E)}catch{}continue}if(I===Ie.element){let U=E,ee=ae(z(E));try{U.hasAttribute&&U.hasAttribute("patchsrc")&&U.removeAttribute("patchsrc"),U.hasAttribute&&U.hasAttribute("for")&&Qa("for",ee)&&U.removeAttribute("for")}catch{}}let F=g(E);if(F)for(let U=F.length-1;U>=0;--U)x.push(F[U])}},Ja=function(p){let x=null,E=null;if(ki)p="<remove></remove>"+p;else{let U=Ah(p,/^[\r\n\t ]+/);E=U&&U[0]}cn==="application/xhtml+xml"&&zt===Ye&&(p='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+p+"</body></html>");let I=R?j(p):p;if(zt===Ye)try{x=new c().parseFromString(I,cn)}catch{}if(!x||!x.documentElement){x=$e.createDocument(zt,"template",null);try{x.documentElement.innerHTML=Ti?D:I}catch{}}let F=x.body||x.documentElement;return p&&E&&F.insertBefore(n.createTextNode(E),F.childNodes[0]||null),zt===Ye?sn.call(x,wt?"html":"body")[0]:wt?x.documentElement:F},es=function(p){let x=C?C(p):p.ownerDocument;return Ue.call(x||p,p,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Xn=function(p){return p=Gn(p,ln," "),p=Gn(p,Zf," "),p=Gn(p,Qf," "),p},Ni=function(p){var x;p.normalize();let E=C?C(p):p.ownerDocument,I=Ue.call(E||p,p,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),F=I.nextNode();for(;F;)F.data=Xn(F.data),F=I.nextNode();let U=(x=p.querySelectorAll)===null||x===void 0?void 0:x.call(p,"template");U&&Mt(U,ee=>{Ut(ee.content)&&Ni(ee.content)})},Zn=function(p){let x=T?T(p):null;return typeof x!="string"||ae(x)!=="form"?!1:typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||p.attributes!==_(p)||typeof p.removeAttribute!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function"||p.nodeType!==k(p)||p.childNodes!==g(p)},Ut=function(p){if(!k||typeof p!="object"||p===null)return!1;try{return k(p)===Ie.documentFragment}catch{return!1}},dn=function(p){if(!k||typeof p!="object"||p===null)return!1;try{return typeof k(p)=="number"}catch{return!1}};function Xe(A,p,x){A.length!==0&&Mt(A,E=>{E.call(e,p,x,$t)})}let pp=function(p,x){return!!(yt&&p.hasChildNodes()&&!dn(p.firstElementChild)&&we(Gh,p.textContent)&&we(Gh,p.innerHTML)||yt&&p.namespaceURI===Ye&&nx[x]&&(dn(p.firstElementChild)||typeof p.textContent=="string"&&we(rx[x],p.textContent))||p.nodeType===Ie.processingInstruction||yt&&p.nodeType===Ie.comment&&we(Fh,p.data))},Qn=function(p,x){if(p instanceof RegExp)return we(p,x);if(p instanceof Function){for(var E=arguments.length,I=new Array(E>2?E-2:0),F=2;F<E;F++)I[F-2]=arguments[F];return!!p(x,...I)}return!1},gp=function(p,x,E){if(!un[x]&&os(x)&&Qn(qe.tagNameCheck,x))return!1;if(Ei&&!Ot[x]){let I=w(p),F=g(p);if(F&&I){let U=F.length;for(let ee=U-1;ee>=0;--ee){let ie=p===E?f(F[ee],!0):F[ee];I.insertBefore(ie,m(p))}}}return ct(p),!0},ts=function(p,x,E,I){return p.length===0?x:x===E||x===I?Pe(x):x},ns=function(p,x){return p===x||w(p)!==null?!1:(Si&&Yn(p),!0)},rs=function(p,x){if(Xe(J.beforeSanitizeElements,p,null),ns(p,x))return!0;if(Zn(p))return ct(p),!0;let E=ae(z(p));if(te=ts(J.uponSanitizeElement,te,wi,Hn),Xe(J.uponSanitizeElement,p,{tagName:E,allowedTags:te}),ns(p,x))return!0;if(pp(p,E))return ct(p),!0;if(un[E]||!(lt.tagCheck instanceof Function&<.tagCheck(E))&&!te[E]){let F=gp(p,E,x);return F===!1&&Xe(J.afterSanitizeElements,p,null),F}if(M(p)===Ie.element&&!dp(p)||(E==="noscript"||E==="noembed"||E==="noframes")&&we(ex,p.innerHTML))return ct(p),!0;if(ut&&p.nodeType===Ie.text){let F=Xn(p.textContent);p.textContent!==F&&(Mn(e.removed,{element:p.cloneNode()}),p.textContent=F)}return Xe(J.afterSanitizeElements,p,null),!1},is=function(p,x,E){if(Pa[x]||Qa(x,p)||Oa&&(x==="id"||x==="name")&&(E in n||E in sp))return!1;let I=ne[x]||lt.attributeCheck instanceof Function&<.attributeCheck(x,p);return xi&&we(Jf,x)||Ma&&we(ep,x)?!0:I?Wa[x]||we(Ia,Gn(E,Da,""))||(x==="src"||x==="xlink:href"||x==="href")&&p!=="script"&&Rh(E,"data:")===0&&Ha[p]||Ga&&!we(tp,Gn(E,Da,""))?!0:!E:os(p)&&Qn(qe.tagNameCheck,p)&&Qn(qe.attributeNameCheck,x,p)||x==="is"&&qe.allowCustomizedBuiltInElements&&Qn(qe.tagNameCheck,E)},mp=W({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),os=function(p){return!mp[On(p)]&&we(np,p)},vp=function(p,x,E,I){if(R&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!E)switch(h.getAttributeType(p,x)){case"TrustedHTML":return j(I);case"TrustedScriptURL":return Ce(I)}return I},yp=function(p,x,E,I){try{E?p.setAttributeNS(E,x,I):p.setAttribute(x,I),Zn(p)?ct(p):Th(e.removed)}catch{bt(x,p)}},as=function(p){Xe(J.beforeSanitizeAttributes,p,null);let x=p.attributes;if(!x||Zn(p))return;ne=ts(J.uponSanitizeAttribute,ne,bi,Bn);let E={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ne,forceKeepAttr:void 0},I=x.length,F=ae(p.nodeName);for(;I--;){let U=x[I],ee=U.name,ie=U.namespaceURI,Se=U.value,Te=ae(ee),Ii=Se,xe=ee==="value"?Ii:Gb(Ii);if(E.attrName=Te,E.attrValue=xe,E.keepAttr=!0,E.forceKeepAttr=void 0,Xe(J.uponSanitizeAttribute,p,E),xe=E.attrValue,za&&(Te==="id"||Te==="name")&&Rh(xe,$a)!==0&&(bt(ee,p,U),xe=$a+xe),yt&&we(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,xe)){bt(ee,p,U);continue}if(Te==="attributename"&&Ah(xe,"href")){bt(ee,p,U);continue}if(!E.forceKeepAttr){if(!E.keepAttr){bt(ee,p,U);continue}if(!Fa&&we(tx,xe)){bt(ee,p,U);continue}if(ut&&(xe=Xn(xe)),!is(F,Te,xe)){bt(ee,p,U);continue}xe=vp(F,Te,ie,xe),xe!==Ii&&yp(p,ee,ie,xe)}}Xe(J.afterSanitizeAttributes,p,null)},Jn=function(p){let x=null,E=es(p);for(Xe(J.beforeSanitizeShadowDOM,p,null);x=E.nextNode();)if(Xe(J.uponSanitizeShadowNode,x,null),rs(x,p),as(x),Ut(x.content)&&Jn(x.content),M(x)===Ie.element){let I=y(x);Ut(I)&&(Di(I),Jn(I))}Xe(J.afterSanitizeShadowDOM,p,null)},Di=function(p){let x=[{node:p,shadow:null}];for(;x.length>0;){let E=x.pop();if(E.shadow){Jn(E.shadow);continue}let I=E.node,U=M(I)===Ie.element,ee=g(I);if(ee)for(let ie=ee.length-1;ie>=0;--ie)x.push({node:ee[ie],shadow:null});if(U){let ie=T?T(I):null;if(typeof ie=="string"&&ae(ie)==="template"){let Se=I.content;Ut(Se)&&x.push({node:Se,shadow:null})}}if(U){let ie=y(I);Ut(ie)&&x.push({node:null,shadow:ie},{node:ie,shadow:null})}}};return e.sanitize=function(A){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=null,E=null,I=null,F=null;if(Ti=!A,Ti&&(A="<!-->"),typeof A!="string"&&!dn(A)&&(A=Ub(A),typeof A!="string"))throw Pt("dirty is not a string, aborting");if(!e.isSupported)return A;_i?(te=Hn,ne=Bn):Li(p),(J.uponSanitizeElement.length>0||J.uponSanitizeAttribute.length>0)&&(te=Pe(te)),J.uponSanitizeAttribute.length>0&&(ne=Pe(ne)),e.removed=[];let U=Si&&typeof A!="string"&&dn(A);if(U){fp(A);let Se=z(A);if(typeof Se=="string"){let Te=ae(Se);if(!te[Te]||un[Te])throw qn(A),Pt("root node is forbidden and cannot be sanitized in-place")}if(Zn(A))throw qn(A),Pt("root node is clobbered and cannot be sanitized in-place");try{Di(A)}catch(Te){throw qn(A),Te}}else if(dn(A))x=Ja("<!---->"),E=x.ownerDocument.importNode(A,!0),E.nodeType===Ie.element&&E.nodeName==="BODY"||E.nodeName==="HTML"?x=E:x.appendChild(E),Di(E);else{if(!Gt&&!ut&&!wt&&A.indexOf("<")===-1)return R&&Kn?j(A):A;if(x=Ja(A),!x)return Gt?null:Kn?D:""}x&&ki&&ct(x.firstChild);let ee=U?A:x;try{let Se=es(ee);for(;I=Se.nextNode();)rs(I,ee),as(I),Ut(I.content)&&Jn(I.content)}catch(Se){throw U&&(qn(A),Mt(e.removed,Te=>{Te.element&&Yn(Te.element)})),Se}if(U)return Mt(e.removed,Se=>{Se.element&&Yn(Se.element)}),ut&&Ni(A),A;if(Gt){if(ut&&Ni(x),Wn)for(F=je.call(x.ownerDocument);x.firstChild;)F.appendChild(x.firstChild);else F=x;return(ne.shadowroot||ne.shadowrootmode)&&(F=Me.call(r,F,!0)),F}let ie=wt?x.outerHTML:x.innerHTML;return wt&&te["!doctype"]&&x.ownerDocument&&x.ownerDocument.doctype&&x.ownerDocument.doctype.name&&we(Qb,x.ownerDocument.doctype.name)&&(ie="<!DOCTYPE "+x.ownerDocument.doctype.name+`>
|
|
402
|
-
`+ie),ut&&(ie=Xn(ie)),R&&Kn?j(ie):ie},e.setConfig=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Li(A),_i=!0,Hn=te,Bn=ne},e.clearConfig=function(){$t=null,_i=!1,Hn=null,Bn=null,R=N,D=""},e.isValidAttribute=function(A,p,x){$t||Li({});let E=ae(A),I=ae(p);return is(E,I,x)},e.addHook=function(A,p){typeof p=="function"&&Re(J,A)&&Mn(J[A],p)},e.removeHook=function(A,p){if(Re(J,A)){if(p!==void 0){let x=Pb(J[A],p);return x===-1?void 0:Mb(J[A],x,1)[0]}return Th(J[A])}},e.removeHooks=function(A){Re(J,A)&&(J[A]=[])},e.removeAllHooks=function(){J=Oh()},e}var Bh=Hh();var ax="weave-preview-x",sx="weave-preview-y";function lx({view:t,open:e,editing:n,saving:r,onToggle:i,onSave:o}){return b("header",{class:"weave-note-head",children:[b("h3",{class:"weave-note-title",children:t.title}),b("p",{class:"weave-note-meta",children:[n?b(Le,{children:[b("button",{type:"button",class:"weave-note-save",disabled:r,onClick:o,children:r?ju:Vu}),b("button",{type:"button",class:"weave-note-edit",onClick:i,children:Ku})]}):b("button",{type:"button",class:"weave-note-edit",onClick:i,children:Wu}),b("button",{type:"button",class:"weave-note-open",title:"Open in $EDITOR","aria-label":"Open in $EDITOR",onClick:e,children:b("span",{class:"weave-note-open-mark","aria-hidden":"true",children:"↗"})}),b("span",{class:`weave-prov weave-prov-${t.provenance}`,title:t.provenanceTitle,children:[t.provenanceGlyph," ",t.provenance]}),b("span",{class:"weave-note-time",title:t.updatedIso,children:[Hu," ",t.updated]}),b("span",{class:"weave-note-time",title:t.createdIso,children:[Bu," ",t.created]})]}),b("p",{class:"weave-note-tags",children:t.tags.map(a=>b("span",{class:"weave-tag",children:Ju(a)},a))})]})}function Wh(t){let e=t.note?.note??null,n=Pu(t.graph,t.selectedId),r=rc(t.selectedId,e,t.loadFailed),i=Ze(()=>e===null?null:Mu(t.graph,e.slug),[e,t.graph]),o=Ze(()=>e===null||i===null?"":Fu(Bh,e.body,i),[e,i]),[a,s]=K(Mr),l=N=>{s(O=>nc(O,N))},u=V(null),c=V(null),h=V(!1),d=V(null);e===null?d.current=null:(d.current===null||d.current.slug!==e.slug||d.current.serverBody!==e.body)&&(d.current={slug:e.slug,serverBody:e.body,body:e.body});let[f,v]=K(null),[m,g]=K(!1),w=e!==null&&f!==null&&Yu(f,e.body),y=V(0),_=V(f);_.current=f,t.editor.current={dirty:()=>w,discard:()=>k()},re(()=>()=>{t.editor.current=null},[t.editor]);let k=()=>{y.current+=1,v(null),g(!1)},T=N=>{y.current+=1,v(N)},C=async()=>{if(e===null||f===null||m)return;let N=y.current,O=f;g(!0);let H=await t.onSave(e.slug,O);Xu(N,y.current)&&(!H||Zu(O,_.current)?g(!1):k())},M=async(N,O)=>{let H=d.current,Y=()=>{N.checked=!N.checked,N.setAttribute("aria-label",Gr(N.checked))};if(H===null||h.current){Y();return}let j=Ou(H.body,O);if(j===null){Y();return}let Ce=[...u.current?.querySelectorAll(`input[${Yt}]`)??[]];h.current=!0,N.setAttribute("aria-label",Gr(N.checked));for(let be of Ce)be.disabled=!0;await t.onSave(H.slug,j)?H.body=j:Y();for(let be of Ce)be.disabled=!1;h.current=!1},z=()=>{e!==null&&(f===null?T(e.body):(!w||window.confirm(Fr))&&k())},R=a.anchor===null?null:ec(t.graph,a.anchor);if(Et(()=>{l({type:"hide"}),k()},[e===null?null:e.slug]),Et(()=>{let N=u.current;if(N!==null){let Y=a.anchor?.slug??null;for(let j of N.querySelectorAll(`a[${rt}]`))Y!==null&&j.getAttribute(rt)===Y?j.setAttribute("aria-describedby",Po):j.removeAttribute("aria-describedby")}let O=c.current;if(O===null||R===null)return;let H=tc(a.pointerX,a.pointerY,O.offsetWidth,O.offsetHeight,window.innerWidth,window.innerHeight);O.style.setProperty(`--${ax}`,`${H.x}px`),O.style.setProperty(`--${sx}`,`${H.y}px`)},[a,R]),n!==null){let N=t.graph?.model.nodes.find(Y=>Y.id===t.selectedId),O=N?.label??n,H=N===void 0?n:Iu(N)??n;return b("article",{class:"weave-note weave-note-artifact",children:[b("header",{class:"weave-note-head",children:[b("h3",{class:"weave-note-title",children:O}),b("p",{class:"weave-note-meta",children:b("span",{class:"weave-note-time",children:n})})]}),b("iframe",{class:"weave-artifact-frame",title:O,sandbox:"allow-scripts",src:`/api/artifact/${encodeURIComponent(n)}`},H)]},H)}if(e===null||i===null)return b("p",{class:"weave-note-empty",children:r});let D=Qu(e,t.now);return b("article",{class:`weave-note weave-note-${D.provenance}`,children:[b(lx,{view:D,open:()=>t.onOpen(e.slug),editing:f!==null,saving:m,onToggle:z,onSave:()=>{C()}}),f!==null?b("textarea",{class:"weave-note-editor","aria-label":qu,spellcheck:!0,value:f,onInput:N=>v(N.target.value),onKeyDown:N=>{if(N.key==="Escape"){N.stopPropagation(),z();return}N.key.toLowerCase()!=="s"||!(N.metaKey||N.ctrlKey)||(N.preventDefault(),C())}}):b("div",{ref:u,class:"weave-note-body",tabIndex:-1,onMouseOver:N=>{let O=Mo(N.target);l(O!==null?{type:"show",anchor:O,x:N.clientX,y:N.clientY}:{type:"hide"})},onMouseLeave:()=>l({type:"hide"}),onFocus:N=>{let O=Mo(N.target);if(O===null)return;let H=N.target.getBoundingClientRect?.();l({type:"show",anchor:O,x:H?.left??0,y:H?.bottom??0})},onBlur:()=>l({type:"hide"}),onClick:N=>{let O=N.target,H=zu(O);if(H!==null){M(O,H);return}let Y=typeof window<"u"&&typeof window.getSelection=="function"?window.getSelection():null;if(Uu(Y))return;let j=Io(N.target);j!==null&&t.onSelect(j)},onKeyDown:N=>{if(N.key==="Escape"&&a.anchor!==null){N.stopPropagation(),l({type:"dismiss"});return}if(N.key!=="Enter"&&N.key!==" ")return;let O=Io(N.target);O!==null&&(N.preventDefault(),t.onSelect(O))},dangerouslySetInnerHTML:{__html:o}}),R===null?null:b("div",{ref:c,id:Po,role:"tooltip",class:`weave-preview${R.ghost?" weave-preview-ghost":""}`,children:[b("span",{class:"weave-preview-kind",children:R.kind}),b("span",{class:"weave-preview-title",children:R.title}),R.text===""?null:b("p",{class:"weave-preview-text",children:R.text})]})]},e.slug)}var zn=["tree","note","graph"],xa={tree:180,note:320,graph:260},jh={tree:.22,note:.46,graph:.32},ux=1100,cx=800;function qh(t){return!Number.isFinite(t)||t<cx?"narrow":t<ux?"medium":"wide"}function Kh(t){return t==="wide"?zn:t==="medium"?["tree","note"]:["note"]}function Yh(t,e,n){let r={tree:0,note:0,graph:0},i=0;for(let l of t){let u=e[l];r[l]=Number.isFinite(u)&&u>0?u:jh[l],i+=r[l]}for(let l of t)r[l]/=i;let o=0,a=0,s={tree:!1,note:!1,graph:!1};for(let l of t){let u=n[l];r[l]<u?(o+=u-r[l],r[l]=u,s[l]=!0):a+=r[l]-u}if(o>0&&a>0){let l=Math.min(o,a)/a;for(let u of t)s[u]||(r[u]-=(r[u]-n[u])*l)}return{tree:r.tree,note:r.note,graph:r.graph}}function Xh(t,e){return Yh(zn,t,e)}function ka(t){let e=Number.isFinite(t)&&t>0?t:1,n={tree:xa.tree/e,note:xa.note/e,graph:xa.graph/e},r=n.tree+n.note+n.graph;if(r<=.9)return n;let i=.9/r;return{tree:n.tree*i,note:n.note*i,graph:n.graph*i}}function Zh(t,e){return{fractions:Xh(t,ka(e))}}function Vh(t){return Zh(jh,t)}function Qh(t,e,n){let r=Number.isFinite(e)&&e>0?e:0,i=Yh(Kh(n),t.fractions,ka(r));return Kh(n).map(o=>({id:o,width:i[o]*r}))}function dx(t){return t==="tree"?["tree","note"]:["note","graph"]}function Ea(t,e,n,r){let i=Number.isFinite(r)&&r>0?r:0;if(i===0||!Number.isFinite(n)||n===0)return t;let[o,a]=dx(e),s=ka(i),l=Math.max(-Math.max(0,t.fractions[o]-s[o]),Math.min(Math.max(0,t.fractions[a]-s[a]),n/i));return l===0?t:{fractions:Xh({...t.fractions,[o]:t.fractions[o]+l,[a]:t.fractions[a]-l},s)}}var Jh="pi-weave.layout.v1",_a=t=>Math.round(t*1e4)/1e4;function hx(t){return JSON.stringify({v:1,tree:_a(t.fractions.tree),note:_a(t.fractions.note),graph:_a(t.fractions.graph)})}function fx(t,e){if(t===null)return null;let n;try{n=JSON.parse(t)}catch{return null}if(typeof n!="object"||n===null||Array.isArray(n))return null;let r=n;if(r.v!==1)return null;let i={};for(let o of zn){let a=r[o];if(typeof a!="number"||!Number.isFinite(a)||a<=0)return null;i[o]=a}return Zh(i,e)}function ef(t,e){try{return fx(t.getItem(Jh),e)??Vh(e)}catch{return Vh(e)}}function tf(t,e){try{return t.setItem(Jh,hx(e)),!0}catch{return!1}}var px={notes:0,repo:null,nodes:0},gx=["note"];function nf(t){if(t===null)return px;let e=t.model.nodes;return{notes:e.filter(n=>gx.includes(n.kind)).length,repo:t.model.staleness?.state??null,nodes:e.length}}function mx(t){return t===null||t==="missing"?"unindexed":t}function rf(t){return[`vault:${t.notes}`,`repo:${mx(t.repo)}`,`${t.nodes} nodes`]}var vx={tree:{title:"Tree"},note:{title:"Note"},graph:{title:"Graph"}};function of(t){return vx[t]}var Sa={title:"Context"},af="—";function sf(t,e,n){return{cwd:t===""?af:t,selection:e??"nothing selected",stamp:n}}function lf(t){return t===null?af:/T(\d{2}:\d{2}:\d{2})/.exec(t)?.[1]??t}var uf=["M21 12a9 9 0 1 1-2.64-6.36","M21 3v6h-6"],cf=6e4,df="Search…";function Ta(t){return t?"⌘K":"Ctrl K"}function hf(t){return`Search notes and repository (${t})`}function Aa(t){return/mac|iphone|ipad/i.test(t)}var yx={k:{type:"openSearch"}},ff={1:"tree",2:"note",3:"graph"},wx=new Set(["tree","graph"]);function bx(t){return t.ctrl!==t.meta&&!t.alt&&!t.shift}function xx(t){return!t.ctrl&&!t.meta&&!t.alt}var _x={"/":{type:"filterTree"},g:{type:"fitGraph"},"?":{type:"openHelp"},t:{type:"cycleTheme"}};function pf(t,e){if(e.overlay!==null)return t.key==="Escape"?{type:"closeOverlay"}:null;if(bx(t)){let n=yx[t.key.toLowerCase()];if(n!==void 0)return n;let r=ff[t.key];return r===void 0?null:{type:"focusColumn",column:r}}return t.key==="Escape"?e.hasSelection?{type:"clearSelection"}:null:!xx(t)||t.typing?null:_x[t.key]??null}var kx=["INPUT","TEXTAREA","SELECT"];function Ra(t,e){return e?!0:t!==null&&kx.includes(t.toUpperCase())}function gf(t){return{key:t.key,ctrl:t.ctrlKey,meta:t.metaKey,shift:t.shiftKey,alt:t.altKey,typing:Ra(t.target?.tagName??null,t.target?.isContentEditable===!0)}}var Ex={tree:".weave-col-tree .weave-rows",note:".weave-col-note .weave-note-body",graph:".weave-col-graph .weave-graph-canvas"},Sx=".weave-col-tree .weave-filter";function Tx(t){let e=t;return typeof e?.focus=="function"?e:null}function mf(t,e){let n=Tx(t.querySelector(e));return n===null?!1:(n.focus(),!0)}function vf(t,e){switch(t.type){case"openSearch":return e.setOverlay("search");case"openHelp":return e.setOverlay("help");case"closeOverlay":return e.setOverlay(null);case"focusColumn":return void e.focusSelector(Ex[t.column]);case"filterTree":return void e.focusSelector(Sx);case"fitGraph":return e.fitGraph();case"clearSelection":return e.clearSelection();case"cycleTheme":return e.cycleTheme()}}function yf(t){return[{title:"Global",entries:[{combo:`${t}K`,what:"Search notes and the repository"},...Object.entries(ff).map(([e,n])=>({combo:`${t}${e}`,what:`Focus the ${n} column${wx.has(n)?" (when on screen)":""}`})),{combo:"?",what:"This help"},{combo:"t",what:"Cycle the colour theme (system / light / dark)"},{combo:"Esc",what:"Clear the selection, or close an overlay"}]},{title:"Tree",entries:[{combo:"/",what:"Filter the tree"},{combo:"j / ↓",what:"Next row"},{combo:"k / ↑",what:"Previous row"},{combo:"→",what:"Expand, or step into"},{combo:"←",what:"Collapse, or step out"},{combo:"Home / End",what:"First / last row"}]},{title:"Graph",entries:[{combo:"g",what:"Fit the whole graph"}]},{title:"Search",entries:[{combo:"↑ / ↓",what:"Move through results"},{combo:"↵",what:"Open the highlighted result"},{combo:"Esc",what:"Close the palette"}]}]}var Ca="Keyboard shortcuts",wf="esc close";var bf={chevron:{d:["M5.75 4.25 9.5 8l-3.75 3.75"],filled:!1},vault:{d:["M8 2.6 13.4 8 8 13.4 2.6 8Z"],filled:!0},note:{d:["M4.5 2.75h4.75l2.25 2.25v8.25h-7Z","M9.25 2.75V5h2.25"],filled:!1},repository:{d:["M2.75 4.25h10.5v7.5H2.75Z","M2.75 6.75h10.5"],filled:!1},module:{d:["M2.75 4.25h4l1.5 1.75h5v5.75h-10.5Z"],filled:!1},package:{d:["M8 2.5 13.25 5v6L8 13.5 2.75 11V5Z","M2.75 5 8 7.5 13.25 5","M8 7.5v6"],filled:!1},entryPoint:{d:["M5.75 3.75v8.5L12.75 8Z"],filled:!0},gitState:{d:["M8 2.85 13.15 8 8 13.15 2.85 8Z"],filled:!1},external:{d:["M4.5 11.5l7-7","M6.75 4.5h4.75v4.75"],filled:!1},file:{d:["M4.5 2.75h7v10.5h-7Z"],filled:!1}};function $n({name:t,class:e}){let n=bf[t];return b("svg",{class:e,width:16,height:16,viewBox:`0 0 ${16} ${16}`,fill:n.filled?"currentColor":"none",stroke:n.filled?void 0:"currentColor","stroke-width":n.filled?void 0:n.width??1.5,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:n.d.map(r=>b("path",{d:r}))})}function Rx({view:t,recentIds:e,edit:n,onEdit:r,onRename:i,onSelect:o,onToggle:a,onMenu:s,onDrop:l}){let u=Lo(t.id);return b("li",{id:t.domId,"data-row-id":t.id,class:`weave-row weave-row-${t.kind}${t.selected?" weave-row-on":""}${e.has(t.id)?" weave-row-new":""}`,role:"treeitem","aria-level":t.level,"aria-posinset":t.posinset,"aria-setsize":t.setsize,"aria-selected":t.selected,"aria-expanded":t.hasKids?t.expanded:void 0,style:yu(t.depth),onClick:o,draggable:t.id.startsWith("note:"),"aria-label":t.id===jt?"New folder":void 0,onDragStart:c=>c.dataTransfer?.setData("text/plain",t.id),onDragOver:u===void 0?void 0:c=>c.preventDefault(),onDrop:u===void 0?void 0:c=>{c.preventDefault(),l(c.dataTransfer?.getData("text/plain")??"")},onContextMenu:c=>{c.preventDefault(),c.stopPropagation(),s(c.clientX,c.clientY)},children:[b("span",{class:"weave-twisty","aria-hidden":"true",onClick:c=>{c.stopPropagation(),a()},children:t.hasKids?b($n,{name:"chevron",class:t.expanded?"weave-icon weave-icon-open":"weave-icon"}):null}),b("span",{class:"weave-kind","aria-hidden":"true",children:b($n,{name:t.kindIcon,class:"weave-icon"})}),b("span",{class:`weave-prov weave-prov-${t.provenance??"none"}`,title:t.provenanceTitle,children:t.provenanceGlyph}),n===null?b("span",{class:"weave-label",children:t.label}):b(Cx,{value:n,draft:t.id===jt,onEdit:r,onCommit:i}),b("span",{class:"weave-meta",children:t.meta})]})}function Cx({value:t,draft:e,onEdit:n,onCommit:r}){let i=V(null);return Et(()=>{let o=i.current;o!==null&&(o.focus(),o.select())},[]),b("input",{ref:i,class:"weave-tree-rename",value:t,placeholder:e?"New folder name…":void 0,onClick:o=>o.stopPropagation(),onInput:o=>n(o.currentTarget.value),onBlur:o=>r(o.currentTarget.value),onKeyDown:o=>{o.stopPropagation(),o.key==="Enter"?o.currentTarget.blur():o.key==="Escape"&&r(null)}})}function xf(t){let[e,n]=K(ou),[r,i]=K(null),[o,a]=K(null),[s,l]=K(null),u=uu(au(t.graph,e),s),c=Tu(t.graph,u,e),h=async(m,g)=>{let w=await m;if(!w.ok)window.alert(w.message);else{let y=w.data.id??g;y!==void 0&&t.onSelect(y),t.onRefresh()}},d=async m=>{if(r===null)return;let g=Sn(r.id);if(i(null),g!==null){if(m==="newFolder"){let w=su(g);w!==""&&n(y=>Co(y,`vfolder:${w}`)),l(w),a({id:jt,label:"",value:""})}else if(m==="rename")a({id:r.id,label:r.label,value:r.label});else if(g.type!=="vault"){if(Nr(t.selectedId,g)&&!t.onMutate())return;await h(g.type==="note"?Ml(Ge,g.path):Ol(Ge,g.path),Nr(t.selectedId,g)?"vault":void 0)}}},f=m=>{if(r!==null){if(No(m)&&r.armed!==!0){i({...r,armed:!0});return}d("delete")}},v=m=>{let g=o,w=s;if(a(null),l(null),g===null)return;let y=m?.trim();if(g.id===jt){let k=w===null||!y?null:lu(w,y);k!==null&&h(Gl(Ge,k));return}let _=Sn(g.id);if(_!==null&&y&&y!==g.label){if(Nr(t.selectedId,_)&&!t.onMutate())return;h(_.type==="note"?Il(Ge,_.path,y):Fl(Ge,_.path,y))}};return b("div",{class:"weave-tree",onKeyDown:m=>{let g=m.target,w=pu(u,e,t.selectedId,m.key,Ra(g?.tagName??null,g?.isContentEditable===!0));w.handled&&(m.preventDefault(),n(w.state),w.selectedId!==null&&t.onSelect(w.selectedId))},children:[b("div",{class:"weave-tree-controls",children:[b("input",{type:"search",class:"weave-filter",value:e.query,placeholder:_u,"aria-label":Eu,title:Su,onInput:m=>n(du(e,m.currentTarget.value))}),b("button",{type:"button",class:"weave-chip",title:wu(e.provFilter),onClick:()=>n(hu(e)),children:["◧ ",Lr(e.provFilter)]}),b("button",{type:"button",class:"weave-chip",title:xu(e.showInternals),onClick:()=>n(fu(e)),children:["◧ ",bu(e.showInternals)]})]}),c===null?b("ul",{class:"weave-rows",role:"tree",tabIndex:0,"aria-label":ku,"aria-activedescendant":vu(u,t.selectedId)??void 0,onContextMenu:m=>{m.preventDefault(),i({id:"vault",label:"Vault",x:m.clientX,y:m.clientY})},children:mu(u,t.selectedId,t.now).map(m=>b(Rx,{view:m,recentIds:t.recentIds,edit:o?.id===m.id?o.value:null,onEdit:g=>a(w=>w===null?null:{...w,value:g}),onRename:v,onSelect:()=>{t.onSelect(m.id),m.hasKids&&n(g=>Ro(g,m.id))},onToggle:()=>n(Ro(e,m.id)),onMenu:(g,w)=>i({id:m.id,label:m.label,x:g,y:w}),onDrop:g=>{let w=Lo(m.id);if(g.startsWith("note:")&&w!==void 0){if(g===t.selectedId&&!t.onMutate())return;h(Pl(Ge,g.slice(5),w))}}},m.id))}):b("p",{class:"weave-tree-empty",children:c}),b("p",{class:"weave-tree-count",children:Au(u)}),r!==null&&Sn(r.id)!==null?(()=>{let m=Sn(r.id);return b(Le,{children:[b("button",{type:"button",class:"weave-menu-backdrop","aria-label":"Close context menu",onClick:()=>i(null)}),b("div",{class:"weave-menu",role:"menu",style:{left:`${r.x}px`,top:`${r.y}px`},children:[b("button",{type:"button",role:"menuitem",onClick:()=>{d("newFolder")},children:"New folder…"}),m.type!=="vault"?b(Le,{children:[b("button",{type:"button",role:"menuitem",onClick:()=>{d("rename")},children:"Rename…"}),b("button",{type:"button",role:"menuitem",class:"weave-menu-danger",onClick:()=>f(m),children:cu(m,r.label,r.armed===!0)})]}):null]})]})})():null]})}var Un={links:"LINKS",backlinks:"BACKLINKS",tags:"TAGS",mentions:"MENTIONS"};function pi(t,e,n){return{id:t,target:e.id,label:Ne(e),kind:e.kind,kindIcon:Do(e.kind),provenance:e.provenance,provenanceGlyph:Lt(e.provenance),provenanceTitle:qt(e.provenance),selected:e.id===n}}function Lx(t,e,n){let r=t.target;if(r===void 0)return null;let i=e.get(r);return i===void 0?null:pi(t.id,i,n)}function Nx(t){let e=new Map;for(let n of t.nodes)e.set(n.id,n);return e}var Dx=["link:links-to:"];function Ix(t){return Dx.some(e=>t.id.startsWith(e))}function Px(t){return t.id.startsWith("link:mentions:")}function Mx(t,e,n,r){let i=[];for(let[o,a]of Object.entries(t.tags)){if(!a.includes(e))continue;let s=[];for(let l of a){if(l===e)continue;let u=n.get(`note:${l}`);u!==void 0&&s.push(pi(`tag:${o}:${l}`,u,r))}i.push({tag:o,count:a.length,siblings:s})}return i}function Gx(t,e,n,r){let i=[];for(let o of t.edges){if(o.kind!=="mentions"||o.target!==e)continue;let a=n.get(o.source);a!==void 0&&i.push(pi(`mentioned-by:${o.source}`,a,r))}return i}function Fx(t){if(!t.startsWith("note:"))return null;let e=t.slice(5);return e===""?null:e}var fi={loading:"Loading…",noSelection:"Select anything to see what it connects to.",unknown:"This node is not in the current graph.",isolated:"Nothing links to or from this yet."};function La(t){return{subject:null,groups:[],tags:[],tagsCount:0,empty:t}}function _f(t,e){if(t===null)return La(fi.loading);if(e===null)return La(fi.noSelection);let n=Ct(t),r=Eo(n,e);if(r===null)return La(fi.unknown);let i=Nx(n),o=[],a=(h,d)=>{d.length>0&&o.push({heading:h,count:d.length,rows:d})},s=h=>h.map(d=>Lx(d,i,e)).filter(d=>d!==null);a(Un.links,s(r.links.filter(Ix)));let l=So(n.edges).get(e)??[];a(Un.backlinks,l.map(h=>i.get(h)).filter(h=>h!==void 0).map(h=>pi(`backlink:${h.id}`,h,e))),a(Un.mentions,[...s(r.links.filter(Px)),...Gx(n,e,i,e)]);let u=Fx(e),c=u===null?[]:Mx(t,u,i,e);return o.length===0&&c.length===0?{subject:r.label,groups:[],tags:[],tagsCount:0,empty:fi.isolated}:{subject:r.label,groups:o,tags:c,tagsCount:c.length,empty:null}}function kf(){return{open:new Set,closed:new Set}}var Ox=8;function Ef(t,e,n,r){return r?!1:t.closed.has(e)?!0:t.open.has(e)?!1:n>Ox}function zx(t){return t.some(e=>e.selected)}function Sf(t,e){let n=Ef(e,t.heading,t.count,zx(t.rows));return{heading:t.heading,count:t.count,collapsed:n,rows:n?[]:t.rows}}function Tf(t,e){let n=Ef(e,Un.tags,t.length,t.some(r=>r.siblings.some(i=>i.selected)));return{heading:Un.tags,count:t.length,collapsed:n,rows:[]}}function Af(t,e,n){let r=new Set(t.open),i=new Set(t.closed);return n?(r.add(e),i.delete(e)):(i.add(e),r.delete(e)),{open:r,closed:i}}function gi(t){return`weave-ctx-panel-${t.toLowerCase()}`}function Rf({row:t,onSelect:e}){return b("li",{class:`weave-ctx-row${t.selected?" weave-row-on":""}`,children:b("button",{type:"button",class:"weave-ctx-link",onClick:e,children:[b("span",{class:"weave-kind","aria-hidden":"true",children:b($n,{name:t.kindIcon,class:"weave-icon"})}),b("span",{class:`weave-prov weave-prov-${t.provenance??"none"}`,title:t.provenanceTitle,children:t.provenanceGlyph}),b("span",{class:"weave-label",children:t.label})]})})}function Cf({view:t,onToggle:e}){return b("h4",{class:"weave-ctx-head",children:b("button",{type:"button",class:"weave-ctx-heading","aria-expanded":!t.collapsed,"aria-controls":gi(t.heading),onClick:e,children:[b("span",{class:"weave-ctx-chevron","aria-hidden":"true",children:b($n,{name:"chevron",class:t.collapsed?"weave-icon":"weave-icon weave-icon-open"})}),t.heading,b("span",{class:"weave-ctx-count",children:t.count})]})})}function $x({view:t,onSelect:e,onToggle:n}){return b("section",{class:"weave-ctx-group",children:[b(Cf,{view:t,onToggle:n}),b("ul",{class:"weave-ctx-rows",id:gi(t.heading),hidden:t.collapsed,children:t.rows.map(r=>b(Rf,{row:r,onSelect:()=>e(r.target)},r.id))})]})}function Ux({tag:t,onSelect:e}){return b("li",{class:"weave-ctx-tag",children:[b("span",{class:"weave-tag",children:["#",t.tag]}),b("ul",{class:"weave-ctx-rows",children:t.siblings.map(n=>b(Rf,{row:n,onSelect:()=>e(n.target)},n.id))})]})}function Lf(t){let e=_f(t.graph,t.selectedId),[n,r]=K(kf),i=a=>()=>r(Af(n,a.heading,a.collapsed)),o=Tf(e.tags,n);return b("div",{class:"weave-rail","aria-label":Sa.title,children:[b("h2",{class:"weave-col-title",children:Sa.title}),e.empty===null?null:b("p",{class:"weave-ctx-empty",children:e.empty}),e.groups.map(a=>{let s=Sf(a,n);return b($x,{view:s,onSelect:t.onSelect,onToggle:i(s)},a.heading)}),e.tags.length===0?null:b("section",{class:"weave-ctx-group",children:[b(Cf,{view:o,onToggle:i(o)}),b("ul",{class:"weave-ctx-tags",id:gi(o.heading),hidden:o.collapsed,children:e.tags.map(a=>b(Ux,{tag:a,onSelect:t.onSelect},a.tag))})]})]})}function Nf(t){return b("div",{class:"weave-divider",role:"separator","aria-orientation":"vertical","aria-label":t.label,tabIndex:0,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),t.onDown(e.clientX)},onPointerMove:e=>t.onMove(e.clientX),onPointerUp:e=>{e.currentTarget.releasePointerCapture(e.pointerId),t.onUp()},onKeyDown:e=>t.onKey(e.key)})}function Hx({id:t,props:e}){let n=of(t);return b("section",{class:`weave-col weave-col-${t}`,"aria-label":n.title,children:[b("h2",{class:"weave-col-title",children:n.title}),t==="tree"?b(xf,{graph:e.graph,selectedId:e.selectedId,recentIds:e.recentIds,onSelect:e.onSelect,onMutate:e.onMutate,onRefresh:e.onRefresh,now:e.now}):null,t==="note"?b(Wh,{note:e.note,loadFailed:e.noteFailed,graph:e.graph,selectedId:e.selectedId,onSelect:e.onSelect,now:e.now,onOpen:e.onOpen,onSave:e.onSave,editor:e.editor}):null,t==="graph"?b(kh,{graph:e.graph,selectedId:e.selectedId,onSelect:e.onSelect,renderer:e.renderer,storage:e.storage,host:e.host,scheme:e.scheme,bootFailed:e.bootFailed,fit:e.fit,tuner:e.tuner}):null,t==="graph"?b(Lf,{graph:e.graph,selectedId:e.selectedId,onSelect:e.onSelect}):null]})}function Df(t){let e=V(null);return Et(()=>{let n=e.current;if(n!==null)for(let{id:r,width:i}of t.resolved)n.style.setProperty(`--weave-col-${r}`,`${Math.round(i)}px`)},[t.resolved]),b("div",{class:"weave-grid",ref:e,"data-columns":t.resolved.length,children:t.resolved.map((n,r)=>{let i=r<t.resolved.length-1&&n.id!=="graph"?n.id:null;return[b(Hx,{id:n.id,props:t},`${n.id}-column`),i===null?null:b(Nf,{label:`Resize ${n.id} column`,onDown:o=>t.onDown(i,o),onMove:t.onMove,onUp:t.onUp,onKey:o=>t.onKey(i,o)},`${n.id}-divider`)]})})}function Bx(t){if(t===""||t==="#")return null;let e=t.slice(1),n=/^note[/:](.+)$/.exec(e);return n===null?null:`note:${n[1]}`}function If(t,e){let n=Bx(t);return n===null||e===null?null:e.model.nodes.some(r=>r.id===n)?n:null}function Pf(t){let e=t===null?null:t.startsWith("note:")?t.slice(5):null;return e===null||e===""?"":`#note/${e}`}function Wx(t,e,n){return{divider:t,origin:e,base:n}}function Kx(t,e,n){return Ea(t.base,t.divider,e-t.origin,n)}function Vx(t,e){return zn.some(n=>t.base.fractions[n]!==e.fractions[n])}var Mf=24;function jx(t){return t==="ArrowLeft"?-Mf:t==="ArrowRight"?Mf:0}function Gf(t){let e=null;return{onDown(n,r){e=Wx(n,r,t.layout())},onMove(n){e!==null&&t.setLayout(Kx(e,n,t.width()))},onUp(){let n=e;e=null,n!==null&&Vx(n,t.layout())&&t.persist(t.layout())},onKey(n,r){let i=Ea(t.layout(),n,jx(r),t.width());i!==t.layout()&&(t.setLayout(i),t.persist(i))}}}var Ff="image/png",Of="iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAALxElEQVRoBe1ZCXCU1R3/f+d+u5s9sleyOUlICBAMkQQQgpqBKqAoFQZFEYwWUAShjsco7dg4njRtPQcoXhSxWMGCimIYj1QqeICAcoQrd0iy2c1+u/vdZ9+m0xnFVCKw0+kMb+fb7/vevnnv//v/f//jvQVIYWtsbCn47uTJ3BQuAXgqJzdRM9CVyjVSCkACCUBIpfgAZCqnl5D8GJ5aBCm1ACALiGIqVZRqC7AIAGApRZBSCiUUBVN14/8YAJfAdN1MKU1TagEuwWEgp1T+1EYhRVUMhdNSmgdSagFeEHVJU/RUOkFKAThIWknLZNRUAkhFjKPSg2Muszocl/i8/mLT1M1IpO/rCBvaK/cePXGhwVxAANacYEHlkmEjymeguFNKUhShaToYhgG6rgJuAifL4oHjpxo3xdu/fAkBuSCWuSAAPNljLsvPH/lCusdfSVlIkFUFVCS0CQYkazkMuTGJEUAQJMrMEkTD3TvaWg/dJUab2s7XIsT5TkA6Cifl5434sCCvqEAS4sBzMdAVFdxYOjgxF6ShD6VTkBCjoEkiEKYBAX9WsaGT0yKh8DsAYvx8ZDhPADnW4SXlr+XnDh0WY3tBlgQwDQ10UQe/NQgOygkexoe4E4WE0AdgIkohWskiD440t9/EKX+cbd36PwNgd+ffMyR/2GJZjoOmySAryfITAxNHQkoyiLLYT6U2thHRB0djNPSuAY4lnyVQVLlMEMm9utp3zs59XmnSmeaelmZzgq7KkIjHgY3FQFOUfs4HHYUgawLQuAVspgdZRgcFAWRZFlRFRmMMtJvCMIKiZpyPBX5WHnA4hvkom/N6VVc+T4S/bXU4XCUCokZSaJokUd3JIDBqP4CuWDMIegRaIhIQyIFV1A+GCXbG2n/XVR2NN4AkiYokAE+g4mqapsrZRHSzFDvWPFhQPweAy+HxfZQdLBgtSVxPs8I/gdji1ZA2RVEAl98D106fAjzPw57P9gAb7QQLZQHVjIOAAKYHAjCheiLgyOY7360HmZdQiNWSlilM95c9npeT9yBJMxS0Q013DMYiAPxgQAzaiTOyxt/rcqXPa2tvApLA0zCcmsrQFIVhBmaxW+DJVQ/BroZdEOrugoUL58LB/Y0gCRLKAQZk5GTA0uXz4Z2t28Fuo+GeZTWwc+enIAhC8nerlbFeoagScbqrA3wejx8j3L0C3/XFYAAMygfs9pIyl9O1MhYNQzzGrgj1hrZKsoYbhorzXByurL4Mwt2nYcNL68DvcUKWzwlFQ7OQU8ugagoMLciEHL8Lcd6Etc+sAcxQYEzFJSAl95zID+KcBD294Q2JRGI5G2fB5fI8YnGUlAwGwGAohNMMU4cWc/Sx7KuG2vI8x8Jawjpso81mmZNmRTRBcV9B/PbmFcNL6zfD9voGmFRZDiamIfEwiERZmHbDIojHBQgOLQBJ1UBE1jGQdRTN0AVBXGfIJ+9FAstRlqqgKOttDEU/JQPMRn0/Wc2elUIMkzGEsTlXJXi+XUzEb3K48m7Jy7/0EcOQFUXRhtusNN7dE4aJl08EX4YXWFGFkqJC6Go/jaKO0p+JNeSweYUFkOb3wby5M5AlLPD2W+8ix1ZAkuWEw2FrzM4tu0/RGUaMs8+aOH4NTuIVkkmvBzWe+ClLDFhK+EpmVyL1lbsN/vWOrhM3khbrBo7nZjot+JFA5tBGTdcJUeIhnuDAjixgtzKQGcyCEWWjkBNz0Hz8GIR6QuByu4GiCYhGYuAPeKFg2HCw0BQc2PsN9PR0I+2bIKJ84XQ60BwOFJFIs635cLEO5FCLzb5D4rnZdXJz/ZHPDyxDfNz38pTxn5wJ5kcWmANziGYf9iFGuhbqBN7Js20WXZY/MOSWjZnZZS/abday1o6WQ5KsHHc60rOCmQGcZaMgoeza2dIKXW0toMgyijYYTKwaC5mZGdDe2g4CL0BHczN0oOcYyhcySmrZwWyQUaWXiLEf83w84fP6gjhppWN9B59XJThlc1C23KorJkEw94+KwE+4IT+4tqGh4Qeb7IEsgPmLZ69EaX4egSmfUTR2imacR+OhZi7T5XqPZXvtPT1dNarUvKmoZFqb00ZmtnR2ogJOA4eVAgrlA5Ig+rmvo7LBRB+CJPqppOs6SMixeVRqoAgGOUE/RFi+tbNt9xAgcmbl5Q3ZYrenR4pmVNxUfvVUXzwSzVVwwq243NNNTd/46rSJz53pEwNFIbP3xNtP2OhEFYqRR2UdX6OqYjdtd47ri/bSmirL/iFF3ZfPucfNxkInBIEDK00jpcu7E6KcYHmUlUUZBFlFOcAE3cRAkDTgBBlinAhokxZFkekf6e505AIqJBJsY119faD6uqmGpkiapPE2f0awCJXeB8W+wPOuuNzl23tgChL+2TOFT9JpIADJfmj77v0oup2wEDCpff+bewvGD98IFBWxEDiDwsf9hM8/05WT2xxLJEyaJmm7le7ho9FxkswvS/Dc/dFY/LlonNvSF49vY+Pc6hifWIpC8Dw+dqrS7XIj7zaocJQ1Kqdc0YZJ9PRwT2QJCrOU2+8Jjysd/envp08+FtBbr8RVaF710J2xfqEG+PqRD3x/THG+rUU0PLPtROE39uyMcWxXVycKLZM5Nmoc++dbS1csvnnrRx/vxVE9M8GTkV3qyw6Ee1u/qtOVyB50fajJvZs1Ofw3XQl/sF2OfDtz6W29TYfaF1hp+0IBhdFYLPrI8f31D+x88y+H4qz2G4vV6qXtrqdLKyrJ2b+YcJITbTNDVGjTvu3bf8D778s4kA98/3fIKps1BjOpsa5AuuXIod2vOBStHsXpqr6+SHX1pJrPWaqlINTW8QeU1aZnlZdR+eUlvyU0vY1kLCRptZiMg0F1EkHjBBgUQVQ27W+8dt+2nXYbSW5cNOf2Y8hDTr++7a9MU1vTG2Coh2PRo1WPPrZ1kSpKhkbInz39WM2+Hwh0xstZE5nOmx2YlamPhGWtIOeSxlioqV6K81W+YPbdLN1ZihEWLm/kqId0XT7sLyzo0riEDyfpRlRRNxk4jRJcQiEMtLtXyOt0IHYXlA45Xgiz4tmZubvwU60tkjdQ6khzLZIVExsz8tK9117+6Aw9xDxoIWweTQmNOEPeH72eFYCVIXHJNATAqBzd0Ce7fJmbuGhjKaIRf2Bn9lqAWqNi8WIqXUhvf3/VijXXPFCbyTC2+QppYSinN6wIHI2Z2DTM1Hc4KAPFePygE7PLoUhk7JMvLD+GJPoGyLxWmmb+XpI36kFRkGehAtxiqFo3SgtnPZL5r078H6gthzd345g6iTbk0ThmNuMYE1S4ozWSzNYlhU+Oo7stowRePJ18/qCutnvT75bVaR5fjeTyf6va019WJellKsxyAqcH/jR/7sHTEaVN541MtF/+N4UJc7MiHJ8f8GVUaqZqSlhstAnRisdfXHDWsvqsFkgKdfrQm+3olrwOF1feOLdk4q23B4cVvdawvhZ1AaBN1nBTV79MPpfOqaXdQmQ838OC1euTUbncjHP4nSoeWGF09d2VHLNu3Z3C8kWruTvueMqHXntfe3hD56HOYzWKIsefeWUJOrFIHgMMrp3ViQeapqRqbiVOWyfjJLlTZZwdjMrfAgb/itXmrqJJy0gMx47rUmSXf/pV3m1Lbm655f4X51oY5zgqLh7Red5u8PoXhElngsnkY5i4h6TwaswkGla/sfTrgdb7qb5zApCcsKTqDlTAkLertPNhAsMkq5pYzxDYJ1+9v2bX9xe8fuHKDJr2/nLL6vv+nOxfsOBJryli1zFGcKWN8hbzemiLyLX/6o0dted0OnHOAJLClFy1LEvBiMMYQSgMSHUUgUcoEpOApFmaolkGw3UrYbuR0I3dhKoLlEGmo2LDhTb4HGV4J1Fgv17RYr9+ddvit5LznUs7LwDJBUurby1C1aPW2LC+pbT67jTKTfssFOFFB1lOdJSF6lSKoHCStSgGj0qkMNrDhN97r7b/j7M5U2s9m+tr0XnLxXZRAxc1cFEDFzVwUQPnpoF/AbqLsVZFbswxAAAAAElFTkSuQmCC";function qx({onRefresh:t}){let[e,n]=K(!1);return b("button",{type:"button",class:"weave-refresh",onClick:()=>{t(),n(!0)},onAnimationEnd:()=>n(!1),title:"Refetch everything","aria-busy":e?"true":void 0,children:b("svg",{class:e?"weave-refresh-glyph weave-refresh-spinning":"weave-refresh-glyph",viewBox:"0 0 24 24",width:14,height:14,fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:uf.map(r=>b("path",{d:r},r))})})}function zf(t){return b("header",{class:"weave-header",children:[b("span",{class:"weave-brand",children:[b("img",{class:"weave-brand-mark",src:`data:${Ff};base64,${Of}`,alt:"",width:18,height:18}),"pi-weave"]}),b("button",{type:"button",class:"weave-search",title:hf(t.shortcut),onClick:t.onSearch,children:[b("span",{class:"weave-search-text",children:df}),b("kbd",{children:t.shortcut})]}),b("span",{class:"weave-summary",children:rf(t.summary).map(e=>b("span",{class:"weave-summary-part",children:e},e))}),b("button",{type:"button",class:"weave-theme",onClick:t.onTheme,title:t.theme.hint,"aria-label":t.theme.hint,children:t.theme.glyph}),b(qx,{onRefresh:t.onRefresh})]})}function Yx({group:t}){return b("div",{children:[b("p",{class:"weave-key-group",children:t.title}),t.entries.map(e=>b("div",{class:"weave-key-row",children:[b("kbd",{class:"weave-key-combo",children:e.combo}),b("span",{class:"weave-key-what",children:e.what})]},e.combo))]})}function $f(t){let e=si(),n=t.shortcut.slice(0,-1);return b("div",{class:"weave-scrim",onClick:t.onClose,children:b("div",{class:"weave-help",role:"dialog","aria-modal":"true","aria-label":Ca,tabIndex:-1,ref:e.ref,onClick:r=>r.stopPropagation(),onKeyDown:r=>{e.onKeyDown(r)},children:[b("h2",{class:"weave-help-title",children:Ca}),b("div",{class:"weave-keys",children:yf(n).map(r=>b(Yx,{group:r},r.title))}),b("p",{class:"weave-help-foot",children:[b("button",{type:"button",class:"weave-chip",onClick:t.onClose,children:"close"}),b("span",{class:"weave-help-hint",children:wf})]})]})})}function Uf(t,e){let n=r=>{let i=pf(gf(r),e.context());i!==null&&(r.preventDefault(),e.run(i))};return t.addEventListener("keydown",n),()=>t.removeEventListener("keydown",n)}function Hf({model:t}){return b("footer",{class:"weave-status",children:[b("span",{class:"weave-status-cwd",title:t.cwd,children:t.cwd}),b("span",{class:"weave-status-sel",title:"the §1.3 context bus — one signal, every column",children:t.selection}),b("span",{class:"weave-status-stamp",title:"data as of",children:lf(t.stamp)})]})}var Na=["system","light","dark"],Bf="pi-weave.theme.v1";function Xx(t){return t==="system"||t==="light"||t==="dark"}function mi(t){try{let e=t.getItem(Bf);return Xx(e)?e:null}catch{return null}}function Wf(t,e){try{return t.setItem(Bf,e),!0}catch{return!1}}function vi(t){let e=Na.indexOf(t);return Na[(e+1)%Na.length]??"system"}function Kf(t,e){return t==="system"?e:t}function yi(t){return t==="system"?null:t}var Zx={dark:"●",system:"◐",light:"○"};function Vf(t){return{glyph:Zx[t],hint:`Colour theme: ${t} — click for ${vi(t)}`}}function Qx(t){t===null?delete document.documentElement.dataset.weaveTheme:document.documentElement.dataset.weaveTheme=t}function jf(t){let[e,n]=K(th),[r,i]=K(null),[o,a]=K(t.initialWidth),[s,l]=K(()=>ef(localStorage,t.initialWidth)),[u,c]=K(()=>mi(localStorage)??"system"),[h,d]=K(()=>Or(window)),f=V(null),v=V(null),m=V(null),g=()=>{let R=m.current;return R===null||!R.dirty()?!0:window.confirm(Fr)?(R.discard(),!0):!1},w=R=>{g()&&f.current?.select(R)},y=V({overlay:r,selectedId:e.selectedId,layout:s,width:o});y.current={overlay:r,selectedId:e.selectedId,layout:s,width:o},re(()=>{let R=ih({fetch:Ge,state:e,setState:n});return f.current=R,()=>R.stop()},[]),re(()=>{let R=()=>a(window.innerWidth);return window.addEventListener("resize",R),()=>window.removeEventListener("resize",R)},[]);let _=V(!1),k=V(location.hash);re(()=>{_.current&&(Jd(localStorage,e.selectedId),history.replaceState(null,"",Pf(e.selectedId)))},[e.selectedId]),re(()=>{if(_.current||e.graph===null||(_.current=!0,e.selectedId!==null))return;let R=If(k.current,e.graph);if(R!==null)f.current?.select(R);else{let D=eh(e.graph,localStorage);D!==null&&f.current?.select(D)}},[e.graph]);let[T,C]=K(()=>Date.now());re(()=>{let R=setInterval(()=>C(Date.now()),cf);return()=>clearInterval(R)},[]),re(()=>Qx(yi(u)),[u]),re(()=>{Wf(localStorage,u)},[u]),re(()=>oc(window,d),[]),re(()=>{let R=D=>{m.current?.dirty()===!0&&(D.preventDefault(),D.returnValue="")};return window.addEventListener("beforeunload",R),()=>window.removeEventListener("beforeunload",R)},[]),re(()=>Uf(document,{context:()=>({overlay:y.current.overlay,hasSelection:y.current.selectedId!==null}),run:R=>vf(R,{setOverlay:i,focusSelector:D=>mf(document,D),fitGraph:()=>v.current?.(),clearSelection:()=>w(null),cycleTheme:()=>c(D=>vi(D))})}),[]);let M=Ze(()=>Qh(s,o,qh(o)),[s,o]),z=Ze(()=>Gf({layout:()=>y.current.layout,width:()=>y.current.width,setLayout:l,persist:R=>{tf(localStorage,R)}}),[]);return b(Le,{children:[b(zf,{summary:nf(e.graph),shortcut:Ta(Aa(t.platform)),onRefresh:()=>f.current?.refresh(),onSearch:()=>i("search"),theme:Vf(u),onTheme:()=>c(R=>vi(R))}),b(Df,{resolved:M,onDown:z.onDown,onMove:z.onMove,onUp:z.onUp,onKey:z.onKey,scheme:Kf(u,h),bootFailed:e.graphFailed,graph:e.graph,note:e.note,noteFailed:e.noteFailed,selectedId:e.selectedId,recentIds:e.recentIds,onSelect:w,onMutate:g,onRefresh:()=>f.current?.refresh(),onOpen:R=>{(async()=>{let D=await Nl(Ge,R);D.ok?D.data.opened||window.alert("could not open the note in an editor"):window.alert(D.message)})()},onSave:async(R,D)=>{let N=await Dl(Ge,R,D);return N.ok?(f.current?.refresh(),!0):(window.alert(N.message),!1)},editor:m,now:T,renderer:Fd,storage:localStorage,host:window,fit:v,tuner:t.tuner===!0}),b(Hf,{model:sf(t.cwd,e.selectedId,e.graph?.model.generatedAt??null)}),r==="search"?b(Zd,{graph:e.graph,onSelect:w,onClose:()=>i(null),ports:{fetch:Ge}}):null,r==="help"?b($f,{shortcut:Ta(Aa(t.platform)),onClose:()=>i(null)}):null]})}var qf=`
|
|
332
|
+
`,Tv=Sv,fd=WebGLRenderingContext,ed=fd.UNSIGNED_BYTE,er=fd.FLOAT,Rv=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness"],gd=(function(e){function t(){return me(this,t),Ge(this,t,arguments)}return Oe(t,e),ve(t,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Tv,FRAGMENT_SHADER_SOURCE:cd,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Rv,ATTRIBUTES:[{name:"a_positionStart",size:2,type:er},{name:"a_positionEnd",size:2,type:er},{name:"a_normal",size:2,type:er},{name:"a_color",size:4,type:ed,normalized:!0},{name:"a_id",size:4,type:ed,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:er},{name:"a_normalCoef",size:1,type:er}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[1,1],[0,-1],[1,-1]]}}},{key:"processVisibleItem",value:function(r,i,o,a,s){var l=s.size||1,u=o.x,c=o.y,h=a.x,d=a.y,p=kn(s.color),m=h-u,w=d-c,v=m*m+w*w,b=0,y=0;v&&(v=1/Math.sqrt(v),b=-w*v*l,y=m*v*l);var x=this.array;x[i++]=u,x[i++]=c,x[i++]=h,x[i++]=d,x[i++]=b,x[i++]=y,x[i++]=p,x[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,a=i.uniformLocations,s=a.u_matrix,l=a.u_zoomRatio,u=a.u_feather,c=a.u_pixelRatio,h=a.u_correctionRatio,d=a.u_sizeRatio,p=a.u_minEdgeThickness;o.uniformMatrix3fv(s,!1,r.matrix),o.uniform1f(l,r.zoomRatio),o.uniform1f(d,r.sizeRatio),o.uniform1f(h,r.correctionRatio),o.uniform1f(c,r.pixelRatio),o.uniform1f(u,r.antiAliasingFeather),o.uniform1f(p,r.minEdgeThickness)}}])})(Aa);var Td=$n(di()),hi=(function(e){function t(){var n;return me(this,t),n=Ge(this,t),n.rawEmitter=n,n}return Oe(t,e),ve(t)})(Td.EventEmitter);var Ld=$n(Na());var Iv=function(t){return t},Mv=function(t){return t*t},Gv=function(t){return t*(2-t)},Ov=function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},Fv=function(t){return t*t*t},$v=function(t){return--t*t*t+1},zv=function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},Nd={linear:Iv,quadraticIn:Mv,quadraticOut:Gv,quadraticInOut:Ov,cubicIn:Fv,cubicOut:$v,cubicInOut:zv},Pd={easing:"quadraticInOut",duration:150};function Je(){return Float32Array.of(1,0,0,0,1,0,0,0,1)}function pi(e,t,n){return e[0]=t,e[4]=typeof n=="number"?n:t,e}function Ad(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[3]=-n,e[4]=r,e}function Cd(e,t,n){return e[6]=t,e[7]=n,e}function Mt(e,t){var n=e[0],r=e[1],i=e[2],o=e[3],a=e[4],s=e[5],l=e[6],u=e[7],c=e[8],h=t[0],d=t[1],p=t[2],m=t[3],w=t[4],v=t[5],b=t[6],y=t[7],x=t[8];return e[0]=h*n+d*o+p*l,e[1]=h*r+d*a+p*u,e[2]=h*i+d*s+p*c,e[3]=m*n+w*o+v*l,e[4]=m*r+w*a+v*u,e[5]=m*i+w*s+v*c,e[6]=b*n+y*o+x*l,e[7]=b*r+y*a+x*u,e[8]=b*i+y*s+x*c,e}function fi(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=e[0],i=e[1],o=e[3],a=e[4],s=e[6],l=e[7],u=t.x,c=t.y;return{x:u*r+c*o+s*n,y:u*i+c*a+l*n}}function Wv(e,t){var n=e.height/e.width,r=t.height/t.width;return n<1&&r>1||n>1&&r<1?1:Math.min(Math.max(r,1/r),Math.max(1/n,n))}function En(e,t,n,r,i){var o=e.angle,a=e.ratio,s=e.x,l=e.y,u=t.width,c=t.height,h=Je(),d=Math.min(u,c)-2*r,p=Wv(t,n);return i?(Mt(h,Cd(Je(),s,l)),Mt(h,pi(Je(),a)),Mt(h,Ad(Je(),o)),Mt(h,pi(Je(),u/d/2/p,c/d/2/p))):(Mt(h,pi(Je(),2*(d/u)*p,2*(d/c)*p)),Mt(h,Ad(Je(),-o)),Mt(h,pi(Je(),1/a)),Mt(h,Cd(Je(),-s,-l))),h}function Dd(e,t,n){var r=fi(e,{x:Math.cos(t.angle),y:Math.sin(t.angle)},0),i=r.x,o=r.y;return 1/Math.sqrt(Math.pow(i,2)+Math.pow(o,2))/n.width}function Id(e){if(!e.order)return{x:[0,1],y:[0,1]};var t=1/0,n=-1/0,r=1/0,i=-1/0;return e.forEachNode(function(o,a){var s=a.x,l=a.y;s<t&&(t=s),s>n&&(n=s),l<r&&(r=l),l>i&&(i=l)}),{x:[t,n],y:[r,i]}}function Md(e){if(!(0,Ld.default)(e))throw new Error("Sigma: invalid graph instance.");e.forEachNode(function(t,n){if(!Number.isFinite(n.x)||!Number.isFinite(n.y))throw new Error("Sigma: Coordinates of node ".concat(t," are invalid. A node must have a numeric 'x' and 'y' attribute."))})}function Gd(e,t,n){var r=document.createElement(e);if(t)for(var i in t)r.style[i]=t[i];if(n)for(var o in n)r.setAttribute(o,n[o]);return r}function Pa(){return typeof window.devicePixelRatio<"u"?window.devicePixelRatio:1}function Da(e,t,n){return n.sort(function(r,i){var o=t(r)||0,a=t(i)||0;return o<a?-1:o>a?1:0})}function Ia(e){var t=It(e.x,2),n=t[0],r=t[1],i=It(e.y,2),o=i[0],a=i[1],s=Math.max(r-n,a-o),l=(r+n)/2,u=(a+o)/2;(s===0||Math.abs(s)===1/0||isNaN(s))&&(s=1),isNaN(l)&&(l=0),isNaN(u)&&(u=0);var c=function(d){return{x:.5+(d.x-l)/s,y:.5+(d.y-u)/s}};return c.applyTo=function(h){h.x=.5+(h.x-l)/s,h.y=.5+(h.y-u)/s},c.inverse=function(h){return{x:l+s*(h.x-.5),y:u+s*(h.y-.5)}},c.ratio=s,c}function gi(e){"@babel/helpers - typeof";return gi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gi(e)}function Ma(e,t){var n=t.size;if(n!==0){var r=e.length;e.length+=n;var i=0;t.forEach(function(o){e[r+i]=o,i++})}}function mi(e){e=e||{};for(var t=0,n=arguments.length<=1?0:arguments.length-1;t<n;t++){var r=t+1<1||arguments.length<=t+1?void 0:arguments[t+1];r&&Object.assign(e,r)}return e}var vi={hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!1,enableEdgeEvents:!1,defaultNodeColor:"#999",defaultNodeType:"circle",defaultEdgeColor:"#ccc",defaultEdgeType:"line",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,defaultDrawEdgeLabel:id,defaultDrawNodeLabel:Ca,defaultDrawNodeHover:od,minEdgeThickness:1.7,antiAliasingFeather:1,dragTimeout:100,draggedEventsTolerance:3,inertiaDuration:200,inertiaRatio:3,zoomDuration:250,zoomingRatio:1.7,doubleClickTimeout:300,doubleClickZoomingRatio:2.2,doubleClickZoomingDuration:200,tapMoveTolerance:10,zoomToSizeRatioFunction:Math.sqrt,itemSizesReference:"screen",autoRescale:!0,autoCenter:!0,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,nodeReducer:null,edgeReducer:null,zIndex:!1,minCameraRatio:null,maxCameraRatio:null,enableCameraZooming:!0,enableCameraPanning:!0,enableCameraRotation:!0,cameraPanBoundaries:null,allowInvalidContainer:!1,nodeProgramClasses:{},nodeHoverProgramClasses:{},edgeProgramClasses:{}},Hv={circle:tr},Uv={arrow:pd,line:gd};function yi(e){if(typeof e.labelDensity!="number"||e.labelDensity<0)throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");var t=e.minCameraRatio,n=e.maxCameraRatio;if(typeof t=="number"&&typeof n=="number"&&n<t)throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.")}function Od(e){var t=mi({},vi,e);return t.nodeProgramClasses=mi({},Hv,t.nodeProgramClasses),t.edgeProgramClasses=mi({},Uv,t.edgeProgramClasses),t}var rE=$n(di()),iE=$n(Na()),wi=1.5,Fd=(function(e){function t(){var n;return me(this,t),n=Ge(this,t),R(n,"x",.5),R(n,"y",.5),R(n,"angle",0),R(n,"ratio",1),R(n,"minRatio",null),R(n,"maxRatio",null),R(n,"enabledZooming",!0),R(n,"enabledPanning",!0),R(n,"enabledRotation",!0),R(n,"clean",null),R(n,"nextFrame",null),R(n,"previousState",null),R(n,"enabled",!0),n.previousState=n.getState(),n}return Oe(t,e),ve(t,[{key:"enable",value:function(){return this.enabled=!0,this}},{key:"disable",value:function(){return this.enabled=!1,this}},{key:"getState",value:function(){return{x:this.x,y:this.y,angle:this.angle,ratio:this.ratio}}},{key:"hasState",value:function(r){return this.x===r.x&&this.y===r.y&&this.ratio===r.ratio&&this.angle===r.angle}},{key:"getPreviousState",value:function(){var r=this.previousState;return r?{x:r.x,y:r.y,angle:r.angle,ratio:r.ratio}:null}},{key:"getBoundedRatio",value:function(r){var i=r;return typeof this.minRatio=="number"&&(i=Math.max(i,this.minRatio)),typeof this.maxRatio=="number"&&(i=Math.min(i,this.maxRatio)),i}},{key:"validateState",value:function(r){var i={};return this.enabledPanning&&typeof r.x=="number"&&(i.x=r.x),this.enabledPanning&&typeof r.y=="number"&&(i.y=r.y),this.enabledZooming&&typeof r.ratio=="number"&&(i.ratio=this.getBoundedRatio(r.ratio)),this.enabledRotation&&typeof r.angle=="number"&&(i.angle=r.angle),this.clean?this.clean($($({},this.getState()),i)):i}},{key:"isAnimated",value:function(){return!!this.nextFrame}},{key:"setState",value:function(r){if(!this.enabled)return this;this.previousState=this.getState();var i=this.validateState(r);return typeof i.x=="number"&&(this.x=i.x),typeof i.y=="number"&&(this.y=i.y),typeof i.ratio=="number"&&(this.ratio=i.ratio),typeof i.angle=="number"&&(this.angle=i.angle),this.hasState(this.previousState)||this.emit("updated",this.getState()),this}},{key:"updateState",value:function(r){return this.setState(r(this.getState())),this}},{key:"animate",value:function(r){var i=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;if(!a)return new Promise(function(p){return i.animate(r,o,p)});if(this.enabled){var s=$($({},Pd),o),l=this.validateState(r),u=typeof s.easing=="function"?s.easing:Nd[s.easing],c=Date.now(),h=this.getState(),d=function(){var m=(Date.now()-c)/s.duration;if(m>=1){i.nextFrame=null,i.setState(l),i.animationCallback&&(i.animationCallback.call(null),i.animationCallback=void 0);return}var w=u(m),v={};typeof l.x=="number"&&(v.x=h.x+(l.x-h.x)*w),typeof l.y=="number"&&(v.y=h.y+(l.y-h.y)*w),i.enabledRotation&&typeof l.angle=="number"&&(v.angle=h.angle+(l.angle-h.angle)*w),typeof l.ratio=="number"&&(v.ratio=h.ratio+(l.ratio-h.ratio)*w),i.setState(v),i.nextFrame=requestAnimationFrame(d)};this.nextFrame?(cancelAnimationFrame(this.nextFrame),this.animationCallback&&this.animationCallback.call(null),this.nextFrame=requestAnimationFrame(d)):d(),this.animationCallback=a}}},{key:"animatedZoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio/r}):this.animate({ratio:this.ratio/(r.factor||wi)},r):this.animate({ratio:this.ratio/wi})}},{key:"animatedUnzoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio*r}):this.animate({ratio:this.ratio*(r.factor||wi)},r):this.animate({ratio:this.ratio*wi})}},{key:"animatedReset",value:function(r){return this.animate({x:.5,y:.5,ratio:1,angle:0},r)}},{key:"copy",value:function(){return t.from(this.getState())}}],[{key:"from",value:function(r){var i=new t;return i.setState(r)}}])})(hi);function ot(e,t){var n=t.getBoundingClientRect();return{x:e.clientX-n.left,y:e.clientY-n.top}}function kt(e,t){var n=$($({},ot(e,t)),{},{sigmaDefaultPrevented:!1,preventSigmaDefault:function(){n.sigmaDefaultPrevented=!0},original:e});return n}function nr(e){var t="x"in e?e:$($({},e.touches[0]||e.previousTouches[0]),{},{original:e.original,sigmaDefaultPrevented:e.sigmaDefaultPrevented,preventSigmaDefault:function(){e.sigmaDefaultPrevented=!0,t.sigmaDefaultPrevented=!0}});return t}function Bv(e,t){return $($({},kt(e,t)),{},{delta:Bd(e)})}var Kv=2;function bi(e){for(var t=[],n=0,r=Math.min(e.length,Kv);n<r;n++)t.push(e[n]);return t}function rr(e,t,n){var r={touches:bi(e.touches).map(function(i){return ot(i,n)}),previousTouches:t.map(function(i){return ot(i,n)}),sigmaDefaultPrevented:!1,preventSigmaDefault:function(){r.sigmaDefaultPrevented=!0},original:e};return r}function Bd(e){if(typeof e.deltaY<"u")return e.deltaY*-3/360;if(typeof e.detail<"u")return e.detail/-9;throw new Error("Captor: could not extract delta from event.")}var Kd=(function(e){function t(n,r){var i;return me(this,t),i=Ge(this,t),i.container=n,i.renderer=r,i}return Oe(t,e),ve(t)})(hi),Vv=["doubleClickTimeout","doubleClickZoomingDuration","doubleClickZoomingRatio","dragTimeout","draggedEventsTolerance","inertiaDuration","inertiaRatio","zoomDuration","zoomingRatio"],jv=Vv.reduce(function(e,t){return $($({},e),{},R({},t,vi[t]))},{}),qv=(function(e){function t(n,r){var i;return me(this,t),i=Ge(this,t,[n,r]),R(i,"enabled",!0),R(i,"draggedEvents",0),R(i,"downStartTime",null),R(i,"lastMouseX",null),R(i,"lastMouseY",null),R(i,"isMouseDown",!1),R(i,"isMoving",!1),R(i,"movingTimeout",null),R(i,"startCameraState",null),R(i,"clicks",0),R(i,"doubleClickTimeout",null),R(i,"currentWheelDirection",0),R(i,"settings",jv),i.handleClick=i.handleClick.bind(i),i.handleRightClick=i.handleRightClick.bind(i),i.handleDown=i.handleDown.bind(i),i.handleUp=i.handleUp.bind(i),i.handleMove=i.handleMove.bind(i),i.handleWheel=i.handleWheel.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleEnter=i.handleEnter.bind(i),n.addEventListener("click",i.handleClick,{capture:!1}),n.addEventListener("contextmenu",i.handleRightClick,{capture:!1}),n.addEventListener("mousedown",i.handleDown,{capture:!1}),n.addEventListener("wheel",i.handleWheel,{capture:!1}),n.addEventListener("mouseleave",i.handleLeave,{capture:!1}),n.addEventListener("mouseenter",i.handleEnter,{capture:!1}),document.addEventListener("mousemove",i.handleMove,{capture:!1}),document.addEventListener("mouseup",i.handleUp,{capture:!1}),i}return Oe(t,e),ve(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("click",this.handleClick),r.removeEventListener("contextmenu",this.handleRightClick),r.removeEventListener("mousedown",this.handleDown),r.removeEventListener("wheel",this.handleWheel),r.removeEventListener("mouseleave",this.handleLeave),r.removeEventListener("mouseenter",this.handleEnter),document.removeEventListener("mousemove",this.handleMove),document.removeEventListener("mouseup",this.handleUp)}},{key:"handleClick",value:function(r){var i=this;if(this.enabled){if(this.clicks++,this.clicks===2)return this.clicks=0,typeof this.doubleClickTimeout=="number"&&(clearTimeout(this.doubleClickTimeout),this.doubleClickTimeout=null),this.handleDoubleClick(r);setTimeout(function(){i.clicks=0,i.doubleClickTimeout=null},this.settings.doubleClickTimeout),this.draggedEvents<this.settings.draggedEventsTolerance&&this.emit("click",kt(r,this.container))}}},{key:"handleRightClick",value:function(r){this.enabled&&this.emit("rightClick",kt(r,this.container))}},{key:"handleDoubleClick",value:function(r){if(this.enabled){r.preventDefault(),r.stopPropagation();var i=kt(r,this.container);if(this.emit("doubleClick",i),!i.sigmaDefaultPrevented){var o=this.renderer.getCamera(),a=o.getBoundedRatio(o.getState().ratio/this.settings.doubleClickZoomingRatio);o.animate(this.renderer.getViewportZoomedState(ot(r,this.container),a),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}}},{key:"handleDown",value:function(r){if(this.enabled){if(r.button===0){this.startCameraState=this.renderer.getCamera().getState();var i=ot(r,this.container),o=i.x,a=i.y;this.lastMouseX=o,this.lastMouseY=a,this.draggedEvents=0,this.downStartTime=Date.now(),this.isMouseDown=!0}this.emit("mousedown",kt(r,this.container))}}},{key:"handleUp",value:function(r){var i=this;if(!(!this.enabled||!this.isMouseDown)){var o=this.renderer.getCamera();this.isMouseDown=!1,typeof this.movingTimeout=="number"&&(clearTimeout(this.movingTimeout),this.movingTimeout=null);var a=ot(r,this.container),s=a.x,l=a.y,u=o.getState(),c=o.getPreviousState()||{x:0,y:0};this.isMoving?o.animate({x:u.x+this.settings.inertiaRatio*(u.x-c.x),y:u.y+this.settings.inertiaRatio*(u.y-c.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"}):(this.lastMouseX!==s||this.lastMouseY!==l)&&o.setState({x:u.x,y:u.y}),this.isMoving=!1,setTimeout(function(){var h=i.draggedEvents>0;i.draggedEvents=0,h&&i.renderer.getSetting("hideEdgesOnMove")&&i.renderer.refresh()},0),this.emit("mouseup",kt(r,this.container))}}},{key:"handleMove",value:function(r){var i=this;if(this.enabled){var o=kt(r,this.container);if(this.emit("mousemovebody",o),(r.target===this.container||r.composedPath()[0]===this.container)&&this.emit("mousemove",o),!o.sigmaDefaultPrevented&&this.isMouseDown){this.isMoving=!0,this.draggedEvents++,typeof this.movingTimeout=="number"&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.movingTimeout=null,i.isMoving=!1},this.settings.dragTimeout);var a=this.renderer.getCamera(),s=ot(r,this.container),l=s.x,u=s.y,c=this.renderer.viewportToFramedGraph({x:this.lastMouseX,y:this.lastMouseY}),h=this.renderer.viewportToFramedGraph({x:l,y:u}),d=c.x-h.x,p=c.y-h.y,m=a.getState(),w=m.x+d,v=m.y+p;a.setState({x:w,y:v}),this.lastMouseX=l,this.lastMouseY=u,r.preventDefault(),r.stopPropagation()}}}},{key:"handleLeave",value:function(r){this.emit("mouseleave",kt(r,this.container))}},{key:"handleEnter",value:function(r){this.emit("mouseenter",kt(r,this.container))}},{key:"handleWheel",value:function(r){var i=this,o=this.renderer.getCamera();if(!(!this.enabled||!o.enabledZooming)){var a=Bd(r);if(a){var s=Bv(r,this.container);if(this.emit("wheel",s),s.sigmaDefaultPrevented){r.preventDefault(),r.stopPropagation();return}var l=o.getState().ratio,u=a>0?1/this.settings.zoomingRatio:this.settings.zoomingRatio,c=o.getBoundedRatio(l*u),h=a>0?1:-1,d=Date.now();l!==c&&(r.preventDefault(),r.stopPropagation(),!(this.currentWheelDirection===h&&this.lastWheelTriggerTime&&d-this.lastWheelTriggerTime<this.settings.zoomDuration/5)&&(o.animate(this.renderer.getViewportZoomedState(ot(r,this.container),c),{easing:"quadraticOut",duration:this.settings.zoomDuration},function(){i.currentWheelDirection=0}),this.currentWheelDirection=h,this.lastWheelTriggerTime=d))}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(Kd),Yv=["dragTimeout","inertiaDuration","inertiaRatio","doubleClickTimeout","doubleClickZoomingRatio","doubleClickZoomingDuration","tapMoveTolerance"],Xv=Yv.reduce(function(e,t){return $($({},e),{},R({},t,vi[t]))},{}),Zv=(function(e){function t(n,r){var i;return me(this,t),i=Ge(this,t,[n,r]),R(i,"enabled",!0),R(i,"isMoving",!1),R(i,"hasMoved",!1),R(i,"touchMode",0),R(i,"startTouchesPositions",[]),R(i,"lastTouches",[]),R(i,"lastTap",null),R(i,"settings",Xv),i.handleStart=i.handleStart.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleMove=i.handleMove.bind(i),n.addEventListener("touchstart",i.handleStart,{capture:!1}),n.addEventListener("touchcancel",i.handleLeave,{capture:!1}),document.addEventListener("touchend",i.handleLeave,{capture:!1,passive:!1}),document.addEventListener("touchmove",i.handleMove,{capture:!1,passive:!1}),i}return Oe(t,e),ve(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("touchstart",this.handleStart),r.removeEventListener("touchcancel",this.handleLeave),document.removeEventListener("touchend",this.handleLeave),document.removeEventListener("touchmove",this.handleMove)}},{key:"getDimensions",value:function(){return{width:this.container.offsetWidth,height:this.container.offsetHeight}}},{key:"handleStart",value:function(r){var i=this;if(this.enabled){r.preventDefault();var o=bi(r.touches);if(this.touchMode=o.length,this.startCameraState=this.renderer.getCamera().getState(),this.startTouchesPositions=o.map(function(p){return ot(p,i.container)}),this.touchMode===2){var a=It(this.startTouchesPositions,2),s=a[0],l=s.x,u=s.y,c=a[1],h=c.x,d=c.y;this.startTouchesAngle=Math.atan2(d-u,h-l),this.startTouchesDistance=Math.sqrt(Math.pow(h-l,2)+Math.pow(d-u,2))}this.emit("touchdown",rr(r,this.lastTouches,this.container)),this.lastTouches=o,this.lastTouchesPositions=this.startTouchesPositions}}},{key:"handleLeave",value:function(r){if(!(!this.enabled||!this.startTouchesPositions.length)){switch(r.cancelable&&r.preventDefault(),this.movingTimeout&&(this.isMoving=!1,clearTimeout(this.movingTimeout)),this.touchMode){case 2:if(r.touches.length===1){this.handleStart(r),r.preventDefault();break}case 1:if(this.isMoving){var i=this.renderer.getCamera(),o=i.getState(),a=i.getPreviousState()||{x:0,y:0};i.animate({x:o.x+this.settings.inertiaRatio*(o.x-a.x),y:o.y+this.settings.inertiaRatio*(o.y-a.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"})}this.hasMoved=!1,this.isMoving=!1,this.touchMode=0;break}if(this.emit("touchup",rr(r,this.lastTouches,this.container)),!r.touches.length){var s=ot(this.lastTouches[0],this.container),l=this.startTouchesPositions[0],u=Math.pow(s.x-l.x,2)+Math.pow(s.y-l.y,2);if(!r.touches.length&&u<Math.pow(this.settings.tapMoveTolerance,2))if(this.lastTap&&Date.now()-this.lastTap.time<this.settings.doubleClickTimeout){var c=rr(r,this.lastTouches,this.container);if(this.emit("doubletap",c),this.lastTap=null,!c.sigmaDefaultPrevented){var h=this.renderer.getCamera(),d=h.getBoundedRatio(h.getState().ratio/this.settings.doubleClickZoomingRatio);h.animate(this.renderer.getViewportZoomedState(s,d),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}else{var p=rr(r,this.lastTouches,this.container);this.emit("tap",p),this.lastTap={time:Date.now(),position:p.touches[0]||p.previousTouches[0]}}}this.lastTouches=bi(r.touches),this.startTouchesPositions=[]}}},{key:"handleMove",value:function(r){var i=this;if(!(!this.enabled||!this.startTouchesPositions.length)){r.preventDefault();var o=bi(r.touches),a=o.map(function(Ke){return ot(Ke,i.container)}),s=this.lastTouches;this.lastTouches=o,this.lastTouchesPositions=a;var l=rr(r,s,this.container);if(this.emit("touchmove",l),!l.sigmaDefaultPrevented&&(this.hasMoved||(this.hasMoved=a.some(function(Ke,Ze){var Le=i.startTouchesPositions[Ze];return Le&&(Ke.x!==Le.x||Ke.y!==Le.y)})),!!this.hasMoved)){this.isMoving=!0,this.movingTimeout&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.isMoving=!1},this.settings.dragTimeout);var u=this.renderer.getCamera(),c=this.startCameraState,h=this.renderer.getSetting("stagePadding");switch(this.touchMode){case 1:{var d=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0]),p=d.x,m=d.y,w=this.renderer.viewportToFramedGraph(a[0]),v=w.x,b=w.y;u.setState({x:c.x+p-v,y:c.y+m-b});break}case 2:{var y={x:.5,y:.5,angle:0,ratio:1},x=a[0],k=x.x,N=x.y,A=a[1],P=A.x,F=A.y,T=Math.atan2(F-N,P-k)-this.startTouchesAngle,C=Math.hypot(F-N,P-k)/this.startTouchesDistance,W=u.getBoundedRatio(c.ratio/C);y.ratio=W,y.angle=c.angle+T;var j=this.getDimensions(),Y=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0],{cameraState:c}),ie=Math.min(j.width,j.height)-2*h,ce=ie/j.width,Fe=ie/j.height,Te=W/ie,_e=k-ie/2/ce,Ee=N-ie/2/Fe,Be=[_e*Math.cos(-y.angle)-Ee*Math.sin(-y.angle),Ee*Math.cos(-y.angle)+_e*Math.sin(-y.angle)];_e=Be[0],Ee=Be[1],y.x=Y.x-_e*Te,y.y=Y.y+Ee*Te,u.setState(y);break}}}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(Kd);function Qv(e){if(Array.isArray(e))return si(e)}function Jv(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ey(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
333
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $d(e){return Qv(e)||Jv(e)||xa(e)||ey()}function ty(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Ga(e,t){if(e==null)return{};var n,r,i=ty(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var zd=(function(){function e(t,n){me(this,e),this.key=t,this.size=n}return ve(e,null,[{key:"compare",value:function(n,r){return n.size>r.size?-1:n.size<r.size||n.key>r.key?1:-1}}])})(),Wd=(function(){function e(){me(this,e),R(this,"width",0),R(this,"height",0),R(this,"cellSize",0),R(this,"columns",0),R(this,"rows",0),R(this,"cells",{})}return ve(e,[{key:"resizeAndClear",value:function(n,r){this.width=n.width,this.height=n.height,this.cellSize=r,this.columns=Math.ceil(n.width/r),this.rows=Math.ceil(n.height/r),this.cells={}}},{key:"getIndex",value:function(n){var r=Math.floor(n.x/this.cellSize),i=Math.floor(n.y/this.cellSize);return i*this.columns+r}},{key:"add",value:function(n,r,i){var o=new zd(n,r),a=this.getIndex(i),s=this.cells[a];s||(s=[],this.cells[a]=s),s.push(o)}},{key:"organize",value:function(){for(var n in this.cells){var r=this.cells[n];r.sort(zd.compare)}}},{key:"getLabelsToDisplay",value:function(n,r){var i=this.cellSize*this.cellSize,o=i/n/n,a=o*r/i,s=Math.ceil(a),l=[];for(var u in this.cells)for(var c=this.cells[u],h=0;h<Math.min(s,c.length);h++)l.push(c[h].key);return l}}])})();function ny(e){var t=e.graph,n=e.hoveredNode,r=e.highlightedNodes,i=e.displayedNodeLabels,o=[];return t.forEachEdge(function(a,s,l,u){(l===n||u===n||r.has(l)||r.has(u)||i.has(l)&&i.has(u))&&o.push(a)}),o}var Hd=150,Ud=50,_t=Object.prototype.hasOwnProperty;function ry(e,t,n){if(!_t.call(n,"x")||!_t.call(n,"y"))throw new Error('Sigma: could not find a valid position (x, y) for node "'.concat(t,'". All your nodes must have a number "x" and "y". Maybe your forgot to apply a layout or your "nodeReducer" is not returning the correct data?'));return n.color||(n.color=e.defaultNodeColor),!n.label&&n.label!==""&&(n.label=null),n.label!==void 0&&n.label!==null?n.label=""+n.label:n.label=null,n.size||(n.size=2),_t.call(n,"hidden")||(n.hidden=!1),_t.call(n,"highlighted")||(n.highlighted=!1),_t.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultNodeType),n.zIndex||(n.zIndex=0),n}function iy(e,t,n){return n.color||(n.color=e.defaultEdgeColor),n.label||(n.label=""),n.size||(n.size=.5),_t.call(n,"hidden")||(n.hidden=!1),_t.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultEdgeType),n.zIndex||(n.zIndex=0),n}var oy=(function(e){function t(n,r){var i,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(me(this,t),i=Ge(this,t),R(i,"elements",{}),R(i,"canvasContexts",{}),R(i,"webGLContexts",{}),R(i,"pickingLayers",new Set),R(i,"textures",{}),R(i,"frameBuffers",{}),R(i,"activeListeners",{}),R(i,"labelGrid",new Wd),R(i,"nodeDataCache",{}),R(i,"edgeDataCache",{}),R(i,"nodeProgramIndex",{}),R(i,"edgeProgramIndex",{}),R(i,"nodesWithForcedLabels",new Set),R(i,"edgesWithForcedLabels",new Set),R(i,"nodeExtent",{x:[0,1],y:[0,1]}),R(i,"nodeZExtent",[1/0,-1/0]),R(i,"edgeZExtent",[1/0,-1/0]),R(i,"matrix",Je()),R(i,"invMatrix",Je()),R(i,"correctionRatio",1),R(i,"customBBox",null),R(i,"normalizationFunction",Ia({x:[0,1],y:[0,1]})),R(i,"graphToViewportRatio",1),R(i,"itemIDsIndex",{}),R(i,"nodeIndices",{}),R(i,"edgeIndices",{}),R(i,"width",0),R(i,"height",0),R(i,"pixelRatio",Pa()),R(i,"pickingDownSizingRatio",2*i.pixelRatio),R(i,"displayedNodeLabels",new Set),R(i,"displayedEdgeLabels",new Set),R(i,"highlightedNodes",new Set),R(i,"hoveredNode",null),R(i,"hoveredEdge",null),R(i,"renderFrame",null),R(i,"renderHighlightedNodesFrame",null),R(i,"needToProcess",!1),R(i,"checkEdgesEventsFrame",null),R(i,"nodePrograms",{}),R(i,"nodeHoverPrograms",{}),R(i,"edgePrograms",{}),i.settings=Od(o),yi(i.settings),Md(n),!(r instanceof HTMLElement))throw new Error("Sigma: container should be an html element.");i.graph=n,i.container=r,i.createWebGLContext("edges",{picking:o.enableEdgeEvents}),i.createCanvasContext("edgeLabels"),i.createWebGLContext("nodes",{picking:!0}),i.createCanvasContext("labels"),i.createCanvasContext("hovers"),i.createWebGLContext("hoverNodes"),i.createCanvasContext("mouse",{style:{touchAction:"none",userSelect:"none"}}),i.resize();for(var a in i.settings.nodeProgramClasses)i.registerNodeProgram(a,i.settings.nodeProgramClasses[a],i.settings.nodeHoverProgramClasses[a]);for(var s in i.settings.edgeProgramClasses)i.registerEdgeProgram(s,i.settings.edgeProgramClasses[s]);return i.camera=new Fd,i.bindCameraHandlers(),i.mouseCaptor=new qv(i.elements.mouse,i),i.mouseCaptor.setSettings(i.settings),i.touchCaptor=new Zv(i.elements.mouse,i),i.touchCaptor.setSettings(i.settings),i.bindEventHandlers(),i.bindGraphHandlers(),i.handleSettingsUpdate(),i.refresh(),i}return Oe(t,e),ve(t,[{key:"registerNodeProgram",value:function(r,i,o){return this.nodePrograms[r]&&this.nodePrograms[r].kill(),this.nodeHoverPrograms[r]&&this.nodeHoverPrograms[r].kill(),this.nodePrograms[r]=new i(this.webGLContexts.nodes,this.frameBuffers.nodes,this),this.nodeHoverPrograms[r]=new(o||i)(this.webGLContexts.hoverNodes,null,this),this}},{key:"registerEdgeProgram",value:function(r,i){return this.edgePrograms[r]&&this.edgePrograms[r].kill(),this.edgePrograms[r]=new i(this.webGLContexts.edges,this.frameBuffers.edges,this),this}},{key:"unregisterNodeProgram",value:function(r){if(this.nodePrograms[r]){var i=this.nodePrograms,o=i[r],a=Ga(i,[r].map(Jt));o.kill(),this.nodePrograms=a}if(this.nodeHoverPrograms[r]){var s=this.nodeHoverPrograms,l=s[r],u=Ga(s,[r].map(Jt));l.kill(),this.nodePrograms=u}return this}},{key:"unregisterEdgeProgram",value:function(r){if(this.edgePrograms[r]){var i=this.edgePrograms,o=i[r],a=Ga(i,[r].map(Jt));o.kill(),this.edgePrograms=a}return this}},{key:"resetWebGLTexture",value:function(r){var i=this.webGLContexts[r],o=this.frameBuffers[r],a=this.textures[r];a&&i.deleteTexture(a);var s=i.createTexture();return i.bindFramebuffer(i.FRAMEBUFFER,o),i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,s,0),this.textures[r]=s,this}},{key:"bindCameraHandlers",value:function(){var r=this;return this.activeListeners.camera=function(){r.scheduleRender()},this.camera.on("updated",this.activeListeners.camera),this}},{key:"unbindCameraHandlers",value:function(){return this.camera.removeListener("updated",this.activeListeners.camera),this}},{key:"getNodeAtPosition",value:function(r){var i=r.x,o=r.y,a=Ea(this.webGLContexts.nodes,this.frameBuffers.nodes,i,o,this.pixelRatio,this.pickingDownSizingRatio),s=_a.apply(void 0,$d(a)),l=this.itemIDsIndex[s];return l&&l.type==="node"?l.id:null}},{key:"bindEventHandlers",value:function(){var r=this;this.activeListeners.handleResize=function(){r.scheduleRefresh()},window.addEventListener("resize",this.activeListeners.handleResize),this.activeListeners.handleMove=function(o){var a=nr(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}},l=r.getNodeAtPosition(a);if(l&&r.hoveredNode!==l&&!r.nodeDataCache[l].hidden){r.hoveredNode&&r.emit("leaveNode",$($({},s),{},{node:r.hoveredNode})),r.hoveredNode=l,r.emit("enterNode",$($({},s),{},{node:l})),r.scheduleHighlightedNodesRender();return}if(r.hoveredNode&&r.getNodeAtPosition(a)!==r.hoveredNode){var u=r.hoveredNode;r.hoveredNode=null,r.emit("leaveNode",$($({},s),{},{node:u})),r.scheduleHighlightedNodesRender();return}if(r.settings.enableEdgeEvents){var c=r.hoveredNode?null:r.getEdgeAtPoint(s.event.x,s.event.y);c!==r.hoveredEdge&&(r.hoveredEdge&&r.emit("leaveEdge",$($({},s),{},{edge:r.hoveredEdge})),c&&r.emit("enterEdge",$($({},s),{},{edge:c})),r.hoveredEdge=c)}},this.activeListeners.handleMoveBody=function(o){var a=nr(o);r.emit("moveBody",{event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}})},this.activeListeners.handleLeave=function(o){var a=nr(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.hoveredNode&&(r.emit("leaveNode",$($({},s),{},{node:r.hoveredNode})),r.scheduleHighlightedNodesRender()),r.settings.enableEdgeEvents&&r.hoveredEdge&&(r.emit("leaveEdge",$($({},s),{},{edge:r.hoveredEdge})),r.scheduleHighlightedNodesRender()),r.emit("leaveStage",$({},s))},this.activeListeners.handleEnter=function(o){var a=nr(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.emit("enterStage",$({},s))};var i=function(a){return function(s){var l=nr(s),u={event:l,preventSigmaDefault:function(){l.preventSigmaDefault()}},c=r.getNodeAtPosition(l);if(c)return r.emit("".concat(a,"Node"),$($({},u),{},{node:c}));if(r.settings.enableEdgeEvents){var h=r.getEdgeAtPoint(l.x,l.y);if(h)return r.emit("".concat(a,"Edge"),$($({},u),{},{edge:h}))}return r.emit("".concat(a,"Stage"),u)}};return this.activeListeners.handleClick=i("click"),this.activeListeners.handleRightClick=i("rightClick"),this.activeListeners.handleDoubleClick=i("doubleClick"),this.activeListeners.handleWheel=i("wheel"),this.activeListeners.handleDown=i("down"),this.activeListeners.handleUp=i("up"),this.mouseCaptor.on("mousemove",this.activeListeners.handleMove),this.mouseCaptor.on("mousemovebody",this.activeListeners.handleMoveBody),this.mouseCaptor.on("click",this.activeListeners.handleClick),this.mouseCaptor.on("rightClick",this.activeListeners.handleRightClick),this.mouseCaptor.on("doubleClick",this.activeListeners.handleDoubleClick),this.mouseCaptor.on("wheel",this.activeListeners.handleWheel),this.mouseCaptor.on("mousedown",this.activeListeners.handleDown),this.mouseCaptor.on("mouseup",this.activeListeners.handleUp),this.mouseCaptor.on("mouseleave",this.activeListeners.handleLeave),this.mouseCaptor.on("mouseenter",this.activeListeners.handleEnter),this.touchCaptor.on("touchdown",this.activeListeners.handleDown),this.touchCaptor.on("touchdown",this.activeListeners.handleMove),this.touchCaptor.on("touchup",this.activeListeners.handleUp),this.touchCaptor.on("touchmove",this.activeListeners.handleMove),this.touchCaptor.on("tap",this.activeListeners.handleClick),this.touchCaptor.on("doubletap",this.activeListeners.handleDoubleClick),this.touchCaptor.on("touchmove",this.activeListeners.handleMoveBody),this}},{key:"bindGraphHandlers",value:function(){var r=this,i=this.graph,o=new Set(["x","y","zIndex","type"]);return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachNode(function(c){return r.updateNode(c)});var u=!l||l.some(function(c){return o.has(c)});r.refresh({partialGraph:{nodes:i.nodes()},skipIndexation:!u,schedule:!0})},this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachEdge(function(c){return r.updateEdge(c)});var u=l&&["zIndex","type"].some(function(c){return l?.includes(c)});r.refresh({partialGraph:{edges:i.edges()},skipIndexation:!u,schedule:!0})},this.activeListeners.addNodeGraphUpdate=function(a){var s=a.key;r.addNode(s),r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.updateNodeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropNodeGraphUpdate=function(a){var s=a.key;r.removeNode(s),r.refresh({schedule:!0})},this.activeListeners.addEdgeGraphUpdate=function(a){var s=a.key;r.addEdge(s),r.refresh({partialGraph:{edges:[s]},schedule:!0})},this.activeListeners.updateEdgeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{edges:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropEdgeGraphUpdate=function(a){var s=a.key;r.removeEdge(s),r.refresh({schedule:!0})},this.activeListeners.clearEdgesGraphUpdate=function(){r.clearEdgeState(),r.clearEdgeIndices(),r.refresh({schedule:!0})},this.activeListeners.clearGraphUpdate=function(){r.clearEdgeState(),r.clearNodeState(),r.clearEdgeIndices(),r.clearNodeIndices(),r.refresh({schedule:!0})},i.on("nodeAdded",this.activeListeners.addNodeGraphUpdate),i.on("nodeDropped",this.activeListeners.dropNodeGraphUpdate),i.on("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),i.on("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),i.on("edgeAdded",this.activeListeners.addEdgeGraphUpdate),i.on("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),i.on("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),i.on("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),i.on("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),i.on("cleared",this.activeListeners.clearGraphUpdate),this}},{key:"unbindGraphHandlers",value:function(){var r=this.graph;r.removeListener("nodeAdded",this.activeListeners.addNodeGraphUpdate),r.removeListener("nodeDropped",this.activeListeners.dropNodeGraphUpdate),r.removeListener("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),r.removeListener("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),r.removeListener("edgeAdded",this.activeListeners.addEdgeGraphUpdate),r.removeListener("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),r.removeListener("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),r.removeListener("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),r.removeListener("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),r.removeListener("cleared",this.activeListeners.clearGraphUpdate)}},{key:"getEdgeAtPoint",value:function(r,i){var o=Ea(this.webGLContexts.edges,this.frameBuffers.edges,r,i,this.pixelRatio,this.pickingDownSizingRatio),a=_a.apply(void 0,$d(o)),s=this.itemIDsIndex[a];return s&&s.type==="edge"?s.id:null}},{key:"process",value:function(){var r=this;this.emit("beforeProcess");var i=this.graph,o=this.settings,a=this.getDimensions();if(this.nodeExtent=Id(this.graph),!this.settings.autoRescale){var s=a.width,l=a.height,u=this.nodeExtent,c=u.x,h=u.y;this.nodeExtent={x:[(c[0]+c[1])/2-s/2,(c[0]+c[1])/2+s/2],y:[(h[0]+h[1])/2-l/2,(h[0]+h[1])/2+l/2]}}this.normalizationFunction=Ia(this.customBBox||this.nodeExtent);var d=new Fd,p=En(d.getState(),a,this.getGraphDimensions(),this.getStagePadding());this.labelGrid.resizeAndClear(a,o.labelGridCellSize);for(var m={},w={},v={},b={},y=1,x=i.nodes(),k=0,N=x.length;k<N;k++){var A=x[k],P=this.nodeDataCache[A],F=i.getNodeAttributes(A);P.x=F.x,P.y=F.y,this.normalizationFunction.applyTo(P),typeof P.label=="string"&&!P.hidden&&this.labelGrid.add(A,P.size,this.framedGraphToViewport(P,{matrix:p})),m[P.type]=(m[P.type]||0)+1}this.labelGrid.organize();for(var T in this.nodePrograms){if(!_t.call(this.nodePrograms,T))throw new Error('Sigma: could not find a suitable program for node type "'.concat(T,'"!'));this.nodePrograms[T].reallocate(m[T]||0),m[T]=0}this.settings.zIndex&&this.nodeZExtent[0]!==this.nodeZExtent[1]&&(x=Da(this.nodeZExtent,function(Ft){return r.nodeDataCache[Ft].zIndex},x));for(var C=0,W=x.length;C<W;C++){var j=x[C];w[j]=y,b[w[j]]={type:"node",id:j},y++;var Y=this.nodeDataCache[j];this.addNodeToProgram(j,w[j],m[Y.type]++)}for(var ie={},ce=i.edges(),Fe=0,Te=ce.length;Fe<Te;Fe++){var _e=ce[Fe],Ee=this.edgeDataCache[_e];ie[Ee.type]=(ie[Ee.type]||0)+1}this.settings.zIndex&&this.edgeZExtent[0]!==this.edgeZExtent[1]&&(ce=Da(this.edgeZExtent,function(Ft){return r.edgeDataCache[Ft].zIndex},ce));for(var Be in this.edgePrograms){if(!_t.call(this.edgePrograms,Be))throw new Error('Sigma: could not find a suitable program for edge type "'.concat(Be,'"!'));this.edgePrograms[Be].reallocate(ie[Be]||0),ie[Be]=0}for(var Ke=0,Ze=ce.length;Ke<Ze;Ke++){var Le=ce[Ke];v[Le]=y,b[v[Le]]={type:"edge",id:Le},y++;var Q=this.edgeDataCache[Le];this.addEdgeToProgram(Le,v[Le],ie[Q.type]++)}return this.itemIDsIndex=b,this.nodeIndices=w,this.edgeIndices=v,this.emit("afterProcess"),this}},{key:"handleSettingsUpdate",value:function(r){var i=this,o=this.settings;if(this.camera.minRatio=o.minCameraRatio,this.camera.maxRatio=o.maxCameraRatio,this.camera.enabledZooming=o.enableCameraZooming,this.camera.enabledPanning=o.enableCameraPanning,this.camera.enabledRotation=o.enableCameraRotation,o.cameraPanBoundaries?this.camera.clean=function(c){return i.cleanCameraState(c,o.cameraPanBoundaries&&gi(o.cameraPanBoundaries)==="object"?o.cameraPanBoundaries:{})}:this.camera.clean=null,this.camera.setState(this.camera.validateState(this.camera.getState())),r){if(r.edgeProgramClasses!==o.edgeProgramClasses){for(var a in o.edgeProgramClasses)o.edgeProgramClasses[a]!==r.edgeProgramClasses[a]&&this.registerEdgeProgram(a,o.edgeProgramClasses[a]);for(var s in r.edgeProgramClasses)o.edgeProgramClasses[s]||this.unregisterEdgeProgram(s)}if(r.nodeProgramClasses!==o.nodeProgramClasses||r.nodeHoverProgramClasses!==o.nodeHoverProgramClasses){for(var l in o.nodeProgramClasses)(o.nodeProgramClasses[l]!==r.nodeProgramClasses[l]||o.nodeHoverProgramClasses[l]!==r.nodeHoverProgramClasses[l])&&this.registerNodeProgram(l,o.nodeProgramClasses[l],o.nodeHoverProgramClasses[l]);for(var u in r.nodeProgramClasses)o.nodeProgramClasses[u]||this.unregisterNodeProgram(u)}}return this.mouseCaptor.setSettings(this.settings),this.touchCaptor.setSettings(this.settings),this}},{key:"cleanCameraState",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.tolerance,a=o===void 0?0:o,s=i.boundaries,l=$({},r),u=s||this.nodeExtent,c=It(u.x,2),h=c[0],d=c[1],p=It(u.y,2),m=p[0],w=p[1],v=[this.graphToViewport({x:h,y:m},{cameraState:r}),this.graphToViewport({x:d,y:m},{cameraState:r}),this.graphToViewport({x:h,y:w},{cameraState:r}),this.graphToViewport({x:d,y:w},{cameraState:r})],b=1/0,y=-1/0,x=1/0,k=-1/0;v.forEach(function(ie){var ce=ie.x,Fe=ie.y;b=Math.min(b,ce),y=Math.max(y,ce),x=Math.min(x,Fe),k=Math.max(k,Fe)});var N=y-b,A=k-x,P=this.getDimensions(),F=P.width,T=P.height,C=0,W=0;if(N>=F?y<F-a?C=y-(F-a):b>a&&(C=b-a):y>F+a?C=y-(F+a):b<-a&&(C=b+a),A>=T?k<T-a?W=k-(T-a):x>a&&(W=x-a):k>T+a?W=k-(T+a):x<-a&&(W=x+a),C||W){var j=this.viewportToFramedGraph({x:0,y:0},{cameraState:r}),Y=this.viewportToFramedGraph({x:C,y:W},{cameraState:r});C=Y.x-j.x,W=Y.y-j.y,l.x+=C,l.y+=W}return l}},{key:"renderLabels",value:function(){if(!this.settings.renderLabels)return this;var r=this.camera.getState(),i=this.labelGrid.getLabelsToDisplay(r.ratio,this.settings.labelDensity);Ma(i,this.nodesWithForcedLabels),this.displayedNodeLabels=new Set;for(var o=this.canvasContexts.labels,a=0,s=i.length;a<s;a++){var l=i[a],u=this.nodeDataCache[l];if(!this.displayedNodeLabels.has(l)&&!u.hidden){var c=this.framedGraphToViewport(u),h=c.x,d=c.y,p=this.scaleSize(u.size);if(!(!u.forceLabel&&p<this.settings.labelRenderedSizeThreshold)&&!(h<-Hd||h>this.width+Hd||d<-Ud||d>this.height+Ud)){this.displayedNodeLabels.add(l);var m=this.settings.defaultDrawNodeLabel,w=this.nodePrograms[u.type],v=w?.drawLabel||m;v(o,$($({key:l},u),{},{size:p,x:h,y:d}),this.settings)}}}return this}},{key:"renderEdgeLabels",value:function(){if(!this.settings.renderEdgeLabels)return this;var r=this.canvasContexts.edgeLabels;r.clearRect(0,0,this.width,this.height);var i=ny({graph:this.graph,hoveredNode:this.hoveredNode,displayedNodeLabels:this.displayedNodeLabels,highlightedNodes:this.highlightedNodes});Ma(i,this.edgesWithForcedLabels);for(var o=new Set,a=0,s=i.length;a<s;a++){var l=i[a],u=this.graph.extremities(l),c=this.nodeDataCache[u[0]],h=this.nodeDataCache[u[1]],d=this.edgeDataCache[l];if(!o.has(l)&&!(d.hidden||c.hidden||h.hidden)){var p=this.settings.defaultDrawEdgeLabel,m=this.edgePrograms[d.type],w=m?.drawLabel||p;w(r,$($({key:l},d),{},{size:this.scaleSize(d.size)}),$($($({key:u[0]},c),this.framedGraphToViewport(c)),{},{size:this.scaleSize(c.size)}),$($($({key:u[1]},h),this.framedGraphToViewport(h)),{},{size:this.scaleSize(h.size)}),this.settings),o.add(l)}}return this.displayedEdgeLabels=o,this}},{key:"renderHighlightedNodes",value:function(){var r=this,i=this.canvasContexts.hovers;i.clearRect(0,0,this.width,this.height);var o=function(p){var m=r.nodeDataCache[p],w=r.framedGraphToViewport(m),v=w.x,b=w.y,y=r.scaleSize(m.size),x=r.settings.defaultDrawNodeHover,k=r.nodePrograms[m.type],N=k?.drawHover||x;N(i,$($({key:p},m),{},{size:y,x:v,y:b}),r.settings)},a=[];this.hoveredNode&&!this.nodeDataCache[this.hoveredNode].hidden&&a.push(this.hoveredNode),this.highlightedNodes.forEach(function(d){d!==r.hoveredNode&&a.push(d)}),a.forEach(function(d){return o(d)});var s={};a.forEach(function(d){var p=r.nodeDataCache[d].type;s[p]=(s[p]||0)+1});for(var l in this.nodeHoverPrograms)this.nodeHoverPrograms[l].reallocate(s[l]||0),s[l]=0;a.forEach(function(d){var p=r.nodeDataCache[d];r.nodeHoverPrograms[p.type].process(0,s[p.type]++,p)}),this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);var u=this.getRenderParams();for(var c in this.nodeHoverPrograms){var h=this.nodeHoverPrograms[c];h.render(u)}}},{key:"scheduleHighlightedNodesRender",value:function(){var r=this;this.renderHighlightedNodesFrame||this.renderFrame||(this.renderHighlightedNodesFrame=requestAnimationFrame(function(){r.renderHighlightedNodesFrame=null,r.renderHighlightedNodes(),r.renderEdgeLabels()}))}},{key:"render",value:function(){var r=this;this.emit("beforeRender");var i=function(){return r.emit("afterRender"),r};if(this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.resize(),this.needToProcess&&this.process(),this.needToProcess=!1,this.clear(),this.pickingLayers.forEach(function(v){return r.resetWebGLTexture(v)}),!this.graph.order)return i();var o=this.mouseCaptor,a=this.camera.isAnimated()||o.isMoving||o.draggedEvents||o.currentWheelDirection,s=this.camera.getState(),l=this.getDimensions(),u=this.getGraphDimensions(),c=this.getStagePadding();this.matrix=En(s,l,u,c),this.invMatrix=En(s,l,u,c,!0),this.correctionRatio=Dd(this.matrix,s,l),this.graphToViewportRatio=this.getGraphToViewportRatio();var h=this.getRenderParams();for(var d in this.nodePrograms){var p=this.nodePrograms[d];p.render(h)}if(!this.settings.hideEdgesOnMove||!a)for(var m in this.edgePrograms){var w=this.edgePrograms[m];w.render(h)}return this.settings.hideLabelsOnMove&&a||(this.renderLabels(),this.renderEdgeLabels(),this.renderHighlightedNodes()),i()}},{key:"addNode",value:function(r){var i=Object.assign({},this.graph.getNodeAttributes(r));this.settings.nodeReducer&&(i=this.settings.nodeReducer(r,i));var o=ry(this.settings,r,i);this.nodeDataCache[r]=o,this.nodesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.nodesWithForcedLabels.add(r),this.highlightedNodes.delete(r),o.highlighted&&!o.hidden&&this.highlightedNodes.add(r),this.settings.zIndex&&(o.zIndex<this.nodeZExtent[0]&&(this.nodeZExtent[0]=o.zIndex),o.zIndex>this.nodeZExtent[1]&&(this.nodeZExtent[1]=o.zIndex))}},{key:"updateNode",value:function(r){this.addNode(r);var i=this.nodeDataCache[r];this.normalizationFunction.applyTo(i)}},{key:"removeNode",value:function(r){delete this.nodeDataCache[r],delete this.nodeProgramIndex[r],this.highlightedNodes.delete(r),this.hoveredNode===r&&(this.hoveredNode=null),this.nodesWithForcedLabels.delete(r)}},{key:"addEdge",value:function(r){var i=Object.assign({},this.graph.getEdgeAttributes(r));this.settings.edgeReducer&&(i=this.settings.edgeReducer(r,i));var o=iy(this.settings,r,i);this.edgeDataCache[r]=o,this.edgesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.edgesWithForcedLabels.add(r),this.settings.zIndex&&(o.zIndex<this.edgeZExtent[0]&&(this.edgeZExtent[0]=o.zIndex),o.zIndex>this.edgeZExtent[1]&&(this.edgeZExtent[1]=o.zIndex))}},{key:"updateEdge",value:function(r){this.addEdge(r)}},{key:"removeEdge",value:function(r){delete this.edgeDataCache[r],delete this.edgeProgramIndex[r],this.hoveredEdge===r&&(this.hoveredEdge=null),this.edgesWithForcedLabels.delete(r)}},{key:"clearNodeIndices",value:function(){this.labelGrid=new Wd,this.nodeExtent={x:[0,1],y:[0,1]},this.nodeDataCache={},this.edgeProgramIndex={},this.nodesWithForcedLabels=new Set,this.nodeZExtent=[1/0,-1/0],this.highlightedNodes=new Set}},{key:"clearEdgeIndices",value:function(){this.edgeDataCache={},this.edgeProgramIndex={},this.edgesWithForcedLabels=new Set,this.edgeZExtent=[1/0,-1/0]}},{key:"clearIndices",value:function(){this.clearEdgeIndices(),this.clearNodeIndices()}},{key:"clearNodeState",value:function(){this.displayedNodeLabels=new Set,this.highlightedNodes=new Set,this.hoveredNode=null}},{key:"clearEdgeState",value:function(){this.displayedEdgeLabels=new Set,this.highlightedNodes=new Set,this.hoveredEdge=null}},{key:"clearState",value:function(){this.clearEdgeState(),this.clearNodeState()}},{key:"addNodeToProgram",value:function(r,i,o){var a=this.nodeDataCache[r],s=this.nodePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for node type "'.concat(a.type,'"!'));s.process(i,o,a),this.nodeProgramIndex[r]=o}},{key:"addEdgeToProgram",value:function(r,i,o){var a=this.edgeDataCache[r],s=this.edgePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for edge type "'.concat(a.type,'"!'));var l=this.graph.extremities(r),u=this.nodeDataCache[l[0]],c=this.nodeDataCache[l[1]];s.process(i,o,u,c,a),this.edgeProgramIndex[r]=o}},{key:"getRenderParams",value:function(){return{matrix:this.matrix,invMatrix:this.invMatrix,width:this.width,height:this.height,pixelRatio:this.pixelRatio,zoomRatio:this.camera.ratio,cameraAngle:this.camera.angle,sizeRatio:1/this.scaleSize(),correctionRatio:this.correctionRatio,downSizingRatio:this.pickingDownSizingRatio,minEdgeThickness:this.settings.minEdgeThickness,antiAliasingFeather:this.settings.antiAliasingFeather}}},{key:"getStagePadding",value:function(){var r=this.settings,i=r.stagePadding,o=r.autoRescale;return o&&i||0}},{key:"createLayer",value:function(r,i){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.elements[r])throw new Error('Sigma: a layer named "'.concat(r,'" already exists'));var a=Gd(i,{position:"absolute"},{class:"sigma-".concat(r)});return o.style&&Object.assign(a.style,o.style),this.elements[r]=a,"beforeLayer"in o&&o.beforeLayer?this.elements[o.beforeLayer].before(a):"afterLayer"in o&&o.afterLayer?this.elements[o.afterLayer].after(a):this.container.appendChild(a),a}},{key:"createCanvas",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.createLayer(r,"canvas",i)}},{key:"createCanvasContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.createCanvas(r,i),a={preserveDrawingBuffer:!1,antialias:!1};return this.canvasContexts[r]=o.getContext("2d",a),this}},{key:"createWebGLContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i?.canvas||this.createCanvas(r,i);i.hidden&&o.remove();var a=$({preserveDrawingBuffer:!1,antialias:!1},i),s;s=o.getContext("webgl2",a),s||(s=o.getContext("webgl",a)),s||(s=o.getContext("experimental-webgl",a));var l=s;if(this.webGLContexts[r]=l,l.blendFunc(l.ONE,l.ONE_MINUS_SRC_ALPHA),i.picking){this.pickingLayers.add(r);var u=l.createFramebuffer();if(!u)throw new Error("Sigma: cannot create a new frame buffer for layer ".concat(r));this.frameBuffers[r]=u}return l}},{key:"killLayer",value:function(r){var i=this.elements[r];if(!i)throw new Error("Sigma: cannot kill layer ".concat(r,", which does not exist"));if(this.webGLContexts[r]){var o,a=this.webGLContexts[r];(o=a.getExtension("WEBGL_lose_context"))===null||o===void 0||o.loseContext(),delete this.webGLContexts[r]}else this.canvasContexts[r]&&delete this.canvasContexts[r];return i.remove(),delete this.elements[r],this}},{key:"getCamera",value:function(){return this.camera}},{key:"setCamera",value:function(r){this.unbindCameraHandlers(),this.camera=r,this.bindCameraHandlers()}},{key:"getContainer",value:function(){return this.container}},{key:"getGraph",value:function(){return this.graph}},{key:"setGraph",value:function(r){r!==this.graph&&(this.hoveredNode&&!r.hasNode(this.hoveredNode)&&(this.hoveredNode=null),this.hoveredEdge&&!r.hasEdge(this.hoveredEdge)&&(this.hoveredEdge=null),this.unbindGraphHandlers(),this.checkEdgesEventsFrame!==null&&(cancelAnimationFrame(this.checkEdgesEventsFrame),this.checkEdgesEventsFrame=null),this.graph=r,this.bindGraphHandlers(),this.refresh())}},{key:"getMouseCaptor",value:function(){return this.mouseCaptor}},{key:"getTouchCaptor",value:function(){return this.touchCaptor}},{key:"getDimensions",value:function(){return{width:this.width,height:this.height}}},{key:"getGraphDimensions",value:function(){var r=this.customBBox||this.nodeExtent;return{width:r.x[1]-r.x[0]||1,height:r.y[1]-r.y[0]||1}}},{key:"getNodeDisplayData",value:function(r){var i=this.nodeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getEdgeDisplayData",value:function(r){var i=this.edgeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getNodeDisplayedLabels",value:function(){return new Set(this.displayedNodeLabels)}},{key:"getEdgeDisplayedLabels",value:function(){return new Set(this.displayedEdgeLabels)}},{key:"getSettings",value:function(){return $({},this.settings)}},{key:"getSetting",value:function(r){return this.settings[r]}},{key:"setSetting",value:function(r,i){var o=$({},this.settings);return this.settings[r]=i,yi(this.settings),this.handleSettingsUpdate(o),this.scheduleRefresh(),this}},{key:"updateSetting",value:function(r,i){return this.setSetting(r,i(this.settings[r])),this}},{key:"setSettings",value:function(r){var i=$({},this.settings);return this.settings=$($({},this.settings),r),yi(this.settings),this.handleSettingsUpdate(i),this.scheduleRefresh(),this}},{key:"resize",value:function(r){var i=this.width,o=this.height;if(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.pixelRatio=Pa(),this.width===0)if(this.settings.allowInvalidContainer)this.width=1;else throw new Error("Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(this.height===0)if(this.settings.allowInvalidContainer)this.height=1;else throw new Error("Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(!r&&i===this.width&&o===this.height)return this;for(var a in this.elements){var s=this.elements[a];s.style.width=this.width+"px",s.style.height=this.height+"px"}for(var l in this.canvasContexts)this.elements[l].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[l].setAttribute("height",this.height*this.pixelRatio+"px"),this.pixelRatio!==1&&this.canvasContexts[l].scale(this.pixelRatio,this.pixelRatio);for(var u in this.webGLContexts){this.elements[u].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[u].setAttribute("height",this.height*this.pixelRatio+"px");var c=this.webGLContexts[u];if(c.viewport(0,0,this.width*this.pixelRatio,this.height*this.pixelRatio),this.pickingLayers.has(u)){var h=this.textures[u];h&&c.deleteTexture(h)}}return this.emit("resize"),this}},{key:"clear",value:function(){return this.emit("beforeClear"),this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.canvasContexts.labels.clearRect(0,0,this.width,this.height),this.canvasContexts.hovers.clearRect(0,0,this.width,this.height),this.canvasContexts.edgeLabels.clearRect(0,0,this.width,this.height),this.emit("afterClear"),this}},{key:"refresh",value:function(r){var i=this,o=r?.skipIndexation!==void 0?r?.skipIndexation:!1,a=r?.schedule!==void 0?r.schedule:!1,s=!r||!r.partialGraph;if(s)this.clearEdgeIndices(),this.clearNodeIndices(),this.graph.forEachNode(function(k){return i.addNode(k)}),this.graph.forEachEdge(function(k){return i.addEdge(k)});else{for(var l,u,c=((l=r.partialGraph)===null||l===void 0?void 0:l.nodes)||[],h=0,d=c?.length||0;h<d;h++){var p=c[h];if(this.updateNode(p),o){var m=this.nodeProgramIndex[p];if(m===void 0)throw new Error('Sigma: node "'.concat(p,`" can't be repaint`));this.addNodeToProgram(p,this.nodeIndices[p],m)}}for(var w=(r==null||(u=r.partialGraph)===null||u===void 0?void 0:u.edges)||[],v=0,b=w.length;v<b;v++){var y=w[v];if(this.updateEdge(y),o){var x=this.edgeProgramIndex[y];if(x===void 0)throw new Error('Sigma: edge "'.concat(y,`" can't be repaint`));this.addEdgeToProgram(y,this.edgeIndices[y],x)}}}return(s||!o)&&(this.needToProcess=!0),a?this.scheduleRender():this.render(),this}},{key:"scheduleRender",value:function(){var r=this;return this.renderFrame||(this.renderFrame=requestAnimationFrame(function(){r.render()})),this}},{key:"scheduleRefresh",value:function(r){return this.refresh($($({},r),{},{schedule:!0}))}},{key:"getViewportZoomedState",value:function(r,i){var o=this.camera.getState(),a=o.ratio,s=o.angle,l=o.x,u=o.y,c=this.settings,h=c.minCameraRatio,d=c.maxCameraRatio;typeof d=="number"&&(i=Math.min(i,d)),typeof h=="number"&&(i=Math.max(i,h));var p=i/a,m={x:this.width/2,y:this.height/2},w=this.viewportToFramedGraph(r),v=this.viewportToFramedGraph(m);return{angle:s,x:(w.x-v.x)*(1-p)+l,y:(w.y-v.y)*(1-p)+u,ratio:i}}},{key:"viewRectangle",value:function(){var r=this.viewportToFramedGraph({x:0,y:0}),i=this.viewportToFramedGraph({x:this.width,y:0}),o=this.viewportToFramedGraph({x:0,y:this.height});return{x1:r.x,y1:r.y,x2:i.x,y2:i.y,height:i.y-o.y}}},{key:"framedGraphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!!i.graphDimensions,a=i.matrix?i.matrix:o?En(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding()):this.matrix,s=fi(a,r);return{x:(1+s.x)*this.width/2,y:(1-s.y)*this.height/2}}},{key:"viewportToFramedGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!i.graphDimensions,a=i.matrix?i.matrix:o?En(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding(),!0):this.invMatrix,s=fi(a,{x:r.x/this.width*2-1,y:1-r.y/this.height*2});return isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),s}},{key:"viewportToGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.normalizationFunction.inverse(this.viewportToFramedGraph(r,i))}},{key:"graphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.framedGraphToViewport(this.normalizationFunction(r),i)}},{key:"getGraphToViewportRatio",value:function(){var r={x:0,y:0},i={x:1,y:1},o=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),a=this.graphToViewport(r),s=this.graphToViewport(i),l=Math.sqrt(Math.pow(a.x-s.x,2)+Math.pow(a.y-s.y,2));return l/o}},{key:"getBBox",value:function(){return this.nodeExtent}},{key:"getCustomBBox",value:function(){return this.customBBox}},{key:"setCustomBBox",value:function(r){return this.customBBox=r,this.scheduleRender(),this}},{key:"kill",value:function(){this.emit("kill"),this.removeAllListeners(),this.unbindCameraHandlers(),window.removeEventListener("resize",this.activeListeners.handleResize),this.mouseCaptor.kill(),this.touchCaptor.kill(),this.unbindGraphHandlers(),this.clearIndices(),this.clearState(),this.nodeDataCache={},this.edgeDataCache={},this.highlightedNodes.clear(),this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.renderHighlightedNodesFrame&&(cancelAnimationFrame(this.renderHighlightedNodesFrame),this.renderHighlightedNodesFrame=null);for(var r=this.container;r.firstChild;)r.removeChild(r.firstChild);for(var i in this.nodePrograms)this.nodePrograms[i].kill();for(var o in this.nodeHoverPrograms)this.nodeHoverPrograms[o].kill();for(var a in this.edgePrograms)this.edgePrograms[a].kill();this.nodePrograms={},this.nodeHoverPrograms={},this.edgePrograms={};for(var s in this.elements)this.killLayer(s);this.canvasContexts={},this.webGLContexts={},this.elements={}}},{key:"scaleSize",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.camera.ratio;return r/this.settings.zoomToSizeRatioFunction(i)*(this.getSetting("itemSizesReference")==="positions"?i*this.graphToViewportRatio:1)}},{key:"getCanvases",value:function(){var r={};for(var i in this.elements)this.elements[i]instanceof HTMLCanvasElement&&(r[i]=this.elements[i]);return r}}])})(hi),Vd=oy;var Xd=$n(di(),1);function ay(){let e=arguments[0];for(let t=1,n=arguments.length;t<n;t++)if(arguments[t])for(let r in arguments[t])e[r]=arguments[t][r];return e}var ye=ay;typeof Object.assign=="function"&&(ye=Object.assign);function tt(e,t,n,r){let i=e._nodes.get(t),o=null;return i&&(r==="mixed"?o=i.out&&i.out[n]||i.undirected&&i.undirected[n]:r==="directed"?o=i.out&&i.out[n]:o=i.undirected&&i.undirected[n]),o}function Se(e){return typeof e=="object"&&e!==null}function Zd(e){let t;for(t in e)return!1;return!0}function et(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!1,writable:!0,value:n})}function at(e,t,n){let r={enumerable:!0,configurable:!0};typeof n=="function"?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(e,t,r)}function jd(e){return!(!Se(e)||e.attributes&&!Array.isArray(e.attributes))}function sy(){let e=Math.floor(Math.random()*256)&255;return()=>e++}function Et(){let e=arguments,t=null,n=-1;return{[Symbol.iterator](){return this},next(){let r=null;do{if(t===null){if(n++,n>=e.length)return{done:!0};t=e[n][Symbol.iterator]()}if(r=t.next(),r.done){t=null;continue}break}while(!0);return r}}}function Tn(){return{[Symbol.iterator](){return this},next(){return{done:!0}}}}var ar=class extends Error{constructor(t){super(),this.name="GraphError",this.message=t}},G=class e extends ar{constructor(t){super(t),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},D=class e extends ar{constructor(t){super(t),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},H=class e extends ar{constructor(t){super(t),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}};function Qd(e,t){this.key=e,this.attributes=t,this.clear()}Qd.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function Jd(e,t){this.key=e,this.attributes=t,this.clear()}Jd.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function eh(e,t){this.key=e,this.attributes=t,this.clear()}eh.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function Rn(e,t,n,r,i){this.key=t,this.attributes=i,this.undirected=e,this.source=n,this.target=r}Rn.prototype.attach=function(){let e="out",t="in";this.undirected&&(e=t="undirected");let n=this.source.key,r=this.target.key;this.source[e][r]=this,!(this.undirected&&n===r)&&(this.target[t][n]=this)};Rn.prototype.attachMulti=function(){let e="out",t="in",n=this.source.key,r=this.target.key;this.undirected&&(e=t="undirected");let i=this.source[e],o=i[r];if(typeof o>"u"){i[r]=this,this.undirected&&n===r||(this.target[t][n]=this);return}o.previous=this,this.next=o,i[r]=this,this.target[t][n]=this};Rn.prototype.detach=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][t],delete this.target[r][e]};Rn.prototype.detachMulti=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][t],delete this.target[r][e]):(this.next.previous=void 0,this.source[n][t]=this.next,this.target[r][e]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};var th=0,nh=1,ly=2,rh=3;function St(e,t,n,r,i,o,a){let s,l,u,c;if(r=""+r,n===th){if(s=e._nodes.get(r),!s)throw new D(`Graph.${t}: could not find the "${r}" node in the graph.`);u=i,c=o}else if(n===rh){if(i=""+i,l=e._edges.get(i),!l)throw new D(`Graph.${t}: could not find the "${i}" edge in the graph.`);let h=l.source.key,d=l.target.key;if(r===h)s=l.target;else if(r===d)s=l.source;else throw new D(`Graph.${t}: the "${r}" node is not attached to the "${i}" edge (${h}, ${d}).`);u=o,c=a}else{if(l=e._edges.get(r),!l)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`);n===nh?s=l.source:s=l.target,u=i,c=o}return[s,u,c]}function uy(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);return a.attributes[s]}}function cy(e,t,n){e.prototype[t]=function(r,i){let[o]=St(this,t,n,r,i);return o.attributes}}function dy(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);return a.attributes.hasOwnProperty(s)}}function hy(e,t,n){e.prototype[t]=function(r,i,o,a){let[s,l,u]=St(this,t,n,r,i,o,a);return s.attributes[l]=u,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function py(e,t,n){e.prototype[t]=function(r,i,o,a){let[s,l,u]=St(this,t,n,r,i,o,a);if(typeof u!="function")throw new G(`Graph.${t}: updater should be a function.`);let c=s.attributes,h=u(c[l]);return c[l]=h,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function fy(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);return delete a.attributes[s],this.emit("nodeAttributesUpdated",{key:a.key,type:"remove",attributes:a.attributes,name:s}),this}}function gy(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);if(!Se(s))throw new G(`Graph.${t}: provided attributes are not a plain object.`);return a.attributes=s,this.emit("nodeAttributesUpdated",{key:a.key,type:"replace",attributes:a.attributes}),this}}function my(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);if(!Se(s))throw new G(`Graph.${t}: provided attributes are not a plain object.`);return ye(a.attributes,s),this.emit("nodeAttributesUpdated",{key:a.key,type:"merge",attributes:a.attributes,data:s}),this}}function vy(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=St(this,t,n,r,i,o);if(typeof s!="function")throw new G(`Graph.${t}: provided updater is not a function.`);return a.attributes=s(a.attributes),this.emit("nodeAttributesUpdated",{key:a.key,type:"update",attributes:a.attributes}),this}}var yy=[{name:e=>`get${e}Attribute`,attacher:uy},{name:e=>`get${e}Attributes`,attacher:cy},{name:e=>`has${e}Attribute`,attacher:dy},{name:e=>`set${e}Attribute`,attacher:hy},{name:e=>`update${e}Attribute`,attacher:py},{name:e=>`remove${e}Attribute`,attacher:fy},{name:e=>`replace${e}Attributes`,attacher:gy},{name:e=>`merge${e}Attributes`,attacher:my},{name:e=>`update${e}Attributes`,attacher:vy}];function wy(e){yy.forEach(function({name:t,attacher:n}){n(e,t("Node"),th),n(e,t("Source"),nh),n(e,t("Target"),ly),n(e,t("Opposite"),rh)})}function by(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]}}function xy(e,t,n){e.prototype[t]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,a=""+arguments[1];if(i=tt(this,o,a,n),!i)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${a}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function ky(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes.hasOwnProperty(i)}}function _y(e,t,n){e.prototype[t]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=tt(this,s,l,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return a.attributes[i]=o,this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Ey(e,t,n){e.prototype[t]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=tt(this,s,l,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof o!="function")throw new G(`Graph.${t}: updater should be a function.`);return a.attributes[i]=o(a.attributes[i]),this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Sy(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return delete o.attributes[i],this.emit("edgeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:i}),this}}function Ty(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Se(i))throw new G(`Graph.${t}: provided attributes are not a plain object.`);return o.attributes=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function Ry(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Se(i))throw new G(`Graph.${t}: provided attributes are not a plain object.`);return ye(o.attributes,i),this.emit("edgeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:i}),this}}function Ay(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new H(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new H(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=tt(this,a,s,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new H(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new G(`Graph.${t}: provided updater is not a function.`);return o.attributes=i(o.attributes),this.emit("edgeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}var Cy=[{name:e=>`get${e}Attribute`,attacher:by},{name:e=>`get${e}Attributes`,attacher:xy},{name:e=>`has${e}Attribute`,attacher:ky},{name:e=>`set${e}Attribute`,attacher:_y},{name:e=>`update${e}Attribute`,attacher:Ey},{name:e=>`remove${e}Attribute`,attacher:Sy},{name:e=>`replace${e}Attributes`,attacher:Ty},{name:e=>`merge${e}Attributes`,attacher:Ry},{name:e=>`update${e}Attributes`,attacher:Ay}];function Ly(e){Cy.forEach(function({name:t,attacher:n}){n(e,t("Edge"),"mixed"),n(e,t("DirectedEdge"),"directed"),n(e,t("UndirectedEdge"),"undirected")})}var Ny=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function Py(e,t,n,r){let i=!1;for(let o in t){if(o===r)continue;let a=t[o];if(i=n(a.key,a.attributes,a.source.key,a.target.key,a.source.attributes,a.target.attributes,a.undirected),e&&i)return a.key}}function Dy(e,t,n,r){let i,o,a,s=!1;for(let l in t)if(l!==r){i=t[l];do{if(o=i.source,a=i.target,s=n(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected),e&&s)return i.key;i=i.next}while(i!==void 0)}}function Oa(e,t){let n=Object.keys(e),r=n.length,i,o=0;return{[Symbol.iterator](){return this},next(){do if(i)i=i.next;else{if(o>=r)return{done:!0};let a=n[o++];if(a===t){i=void 0;continue}i=e[a]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}}}}function Iy(e,t,n,r){let i=t[n];if(!i)return;let o=i.source,a=i.target;if(r(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected)&&e)return i.key}function My(e,t,n,r){let i=t[n];if(!i)return;let o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),e&&o)return i.key;i=i.next}while(i!==void 0)}function Fa(e,t){let n=e[t];if(n.next!==void 0)return{[Symbol.iterator](){return this},next(){if(!n)return{done:!0};let i={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:i}}};let r=!1;return{[Symbol.iterator](){return this},next(){return r===!0?{done:!0}:(r=!0,{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}})}}}function Gy(e,t){if(e.size===0)return[];if(t==="mixed"||t===e.type)return Array.from(e._edges.keys());let n=t==="undirected"?e.undirectedSize:e.directedSize,r=new Array(n),i=t==="undirected",o=e._edges.values(),a=0,s,l;for(;s=o.next(),s.done!==!0;)l=s.value,l.undirected===i&&(r[a++]=l.key);return r}function ih(e,t,n,r){if(t.size===0)return;let i=n!=="mixed"&&n!==t.type,o=n==="undirected",a,s,l=!1,u=t._edges.values();for(;a=u.next(),a.done!==!0;){if(s=a.value,i&&s.undirected!==o)continue;let{key:c,attributes:h,source:d,target:p}=s;if(l=r(c,h,d.key,p.key,d.attributes,p.attributes,s.undirected),e&&l)return c}}function Oy(e,t){if(e.size===0)return Tn();let n=t!=="mixed"&&t!==e.type,r=t==="undirected",i=e._edges.values();return{[Symbol.iterator](){return this},next(){let o,a;for(;;){if(o=i.next(),o.done)return o;if(a=o.value,!(n&&a.undirected!==r))break}return{value:{edge:a.key,attributes:a.attributes,source:a.source.key,target:a.target.key,sourceAttributes:a.source.attributes,targetAttributes:a.target.attributes,undirected:a.undirected},done:!1}}}}function $a(e,t,n,r,i,o){let a=t?Dy:Py,s;if(n!=="undirected"&&(r!=="out"&&(s=a(e,i.in,o),e&&s)||r!=="in"&&(s=a(e,i.out,o,r?void 0:i.key),e&&s))||n!=="directed"&&(s=a(e,i.undirected,o),e&&s))return s}function Fy(e,t,n,r){let i=[];return $a(!1,e,t,n,r,function(o){i.push(o)}),i}function $y(e,t,n){let r=Tn();return e!=="undirected"&&(t!=="out"&&typeof n.in<"u"&&(r=Et(r,Oa(n.in))),t!=="in"&&typeof n.out<"u"&&(r=Et(r,Oa(n.out,t?void 0:n.key)))),e!=="directed"&&typeof n.undirected<"u"&&(r=Et(r,Oa(n.undirected))),r}function za(e,t,n,r,i,o,a){let s=n?My:Iy,l;if(t!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(l=s(e,i.in,o,a),e&&l)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==o)&&(l=s(e,i.out,o,a),e&&l))||t!=="directed"&&typeof i.undirected<"u"&&(l=s(e,i.undirected,o,a),e&&l))return l}function zy(e,t,n,r,i){let o=[];return za(!1,e,t,n,r,i,function(a){o.push(a)}),o}function Wy(e,t,n,r){let i=Tn();return e!=="undirected"&&(typeof n.in<"u"&&t!=="out"&&r in n.in&&(i=Et(i,Fa(n.in,r))),typeof n.out<"u"&&t!=="in"&&r in n.out&&(t||n.key!==r)&&(i=Et(i,Fa(n.out,r)))),e!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=Et(i,Fa(n.undirected,r))),i}function Hy(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(o,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return Gy(this,r);if(arguments.length===1){o=""+o;let s=this._nodes.get(o);if(typeof s>"u")throw new D(`Graph.${n}: could not find the "${o}" node in the graph.`);return Fy(this.multi,r==="mixed"?this.type:r,i,s)}if(arguments.length===2){o=""+o,a=""+a;let s=this._nodes.get(o);if(!s)throw new D(`Graph.${n}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(a))throw new D(`Graph.${n}: could not find the "${a}" target node in the graph.`);return zy(r,this.multi,i,s,a)}throw new G(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function Uy(e,t){let{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(u,c,h){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return h=u,ih(!1,this,r,h);if(arguments.length===2){u=""+u,h=c;let d=this._nodes.get(u);if(typeof d>"u")throw new D(`Graph.${o}: could not find the "${u}" node in the graph.`);return $a(!1,this.multi,r==="mixed"?this.type:r,i,d,h)}if(arguments.length===3){u=""+u,c=""+c;let d=this._nodes.get(u);if(!d)throw new D(`Graph.${o}: could not find the "${u}" source node in the graph.`);if(!this._nodes.has(c))throw new D(`Graph.${o}: could not find the "${c}" target node in the graph.`);return za(!1,r,this.multi,i,d,c,h)}throw new G(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};let a="map"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(){let u=Array.prototype.slice.call(arguments),c=u.pop(),h;if(u.length===0){let d=0;r!=="directed"&&(d+=this.undirectedSize),r!=="undirected"&&(d+=this.directedSize),h=new Array(d);let p=0;u.push((m,w,v,b,y,x,k)=>{h[p++]=c(m,w,v,b,y,x,k)})}else h=[],u.push((d,p,m,w,v,b,y)=>{h.push(c(d,p,m,w,v,b,y))});return this[o].apply(this,u),h};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(){let u=Array.prototype.slice.call(arguments),c=u.pop(),h=[];return u.push((d,p,m,w,v,b,y)=>{c(d,p,m,w,v,b,y)&&h.push(d)}),this[o].apply(this,u),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(){let u=Array.prototype.slice.call(arguments);if(u.length<2||u.length>4)throw new G(`Graph.${l}: invalid number of arguments (expecting 2, 3 or 4 and got ${u.length}).`);if(typeof u[u.length-1]=="function"&&typeof u[u.length-2]!="function")throw new G(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let c,h;u.length===2?(c=u[0],h=u[1],u=[]):u.length===3?(c=u[1],h=u[2],u=[u[0]]):u.length===4&&(c=u[2],h=u[3],u=[u[0],u[1]]);let d=h;return u.push((p,m,w,v,b,y,x)=>{d=c(d,p,m,w,v,b,y,x)}),this[o].apply(this,u),d}}function By(e,t){let{name:n,type:r,direction:i}=t,o="find"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(l,u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return c=l,ih(!0,this,r,c);if(arguments.length===2){l=""+l,c=u;let h=this._nodes.get(l);if(typeof h>"u")throw new D(`Graph.${o}: could not find the "${l}" node in the graph.`);return $a(!0,this.multi,r==="mixed"?this.type:r,i,h,c)}if(arguments.length===3){l=""+l,u=""+u;let h=this._nodes.get(l);if(!h)throw new D(`Graph.${o}: could not find the "${l}" source node in the graph.`);if(!this._nodes.has(u))throw new D(`Graph.${o}: could not find the "${u}" target node in the graph.`);return za(!0,r,this.multi,i,h,u,c)}throw new G(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};let a="some"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(){let l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((h,d,p,m,w,v,b)=>u(h,d,p,m,w,v,b)),!!this[o].apply(this,l)};let s="every"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[s]=function(){let l=Array.prototype.slice.call(arguments),u=l.pop();return l.push((h,d,p,m,w,v,b)=>!u(h,d,p,m,w,v,b)),!this[o].apply(this,l)}}function Ky(e,t){let{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(a,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Tn();if(!arguments.length)return Oy(this,r);if(arguments.length===1){a=""+a;let l=this._nodes.get(a);if(!l)throw new D(`Graph.${o}: could not find the "${a}" node in the graph.`);return $y(r,i,l)}if(arguments.length===2){a=""+a,s=""+s;let l=this._nodes.get(a);if(!l)throw new D(`Graph.${o}: could not find the "${a}" source node in the graph.`);if(!this._nodes.has(s))throw new D(`Graph.${o}: could not find the "${s}" target node in the graph.`);return Wy(r,i,l,s)}throw new G(`Graph.${o}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function Vy(e){Ny.forEach(t=>{Hy(e,t),Uy(e,t),By(e,t),Ky(e,t)})}var jy=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function Ri(){this.A=null,this.B=null}Ri.prototype.wrap=function(e){this.A===null?this.A=e:this.B===null&&(this.B=e)};Ri.prototype.has=function(e){return this.A!==null&&e in this.A||this.B!==null&&e in this.B};function ir(e,t,n,r,i){for(let o in r){let a=r[o],s=a.source,l=a.target,u=s===n?l:s;if(t&&t.has(u.key))continue;let c=i(u.key,u.attributes);if(e&&c)return u.key}}function Wa(e,t,n,r,i){if(t!=="mixed"){if(t==="undirected")return ir(e,null,r,r.undirected,i);if(typeof n=="string")return ir(e,null,r,r[n],i)}let o=new Ri,a;if(t!=="undirected"){if(n!=="out"){if(a=ir(e,null,r,r.in,i),e&&a)return a;o.wrap(r.in)}if(n!=="in"){if(a=ir(e,o,r,r.out,i),e&&a)return a;o.wrap(r.out)}}if(t!=="directed"&&(a=ir(e,o,r,r.undirected,i),e&&a))return a}function qy(e,t,n){if(e!=="mixed"){if(e==="undirected")return Object.keys(n.undirected);if(typeof t=="string")return Object.keys(n[t])}let r=[];return Wa(!1,e,t,n,function(i){r.push(i)}),r}function or(e,t,n){let r=Object.keys(n),i=r.length,o=0;return{[Symbol.iterator](){return this},next(){let a=null;do{if(o>=i)return e&&e.wrap(n),{done:!0};let s=n[r[o++]],l=s.source,u=s.target;if(a=l===t?u:l,e&&e.has(a.key)){a=null;continue}}while(a===null);return{done:!1,value:{neighbor:a.key,attributes:a.attributes}}}}}function Yy(e,t,n){if(e!=="mixed"){if(e==="undirected")return or(null,n,n.undirected);if(typeof t=="string")return or(null,n,n[t])}let r=Tn(),i=new Ri;return e!=="undirected"&&(t!=="out"&&(r=Et(r,or(i,n,n.in))),t!=="in"&&(r=Et(r,or(i,n,n.out)))),e!=="directed"&&(r=Et(r,or(i,n,n.undirected))),r}function Xy(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];o=""+o;let a=this._nodes.get(o);if(typeof a>"u")throw new D(`Graph.${n}: could not find the "${o}" node in the graph.`);return qy(r==="mixed"?this.type:r,i,a)}}function Zy(e,t){let{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;let h=this._nodes.get(u);if(typeof h>"u")throw new D(`Graph.${o}: could not find the "${u}" node in the graph.`);Wa(!1,r==="mixed"?this.type:r,i,h,c)};let a="map"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(u,c){let h=[];return this[o](u,(d,p)=>{h.push(c(d,p))}),h};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(u,c){let h=[];return this[o](u,(d,p)=>{c(d,p)&&h.push(d)}),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(u,c,h){if(arguments.length<3)throw new G(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let d=h;return this[o](u,(p,m)=>{d=c(d,p,m)}),d}}function Qy(e,t){let{name:n,type:r,direction:i}=t,o=n[0].toUpperCase()+n.slice(1,-1),a="find"+o;e.prototype[a]=function(u,c){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;u=""+u;let h=this._nodes.get(u);if(typeof h>"u")throw new D(`Graph.${a}: could not find the "${u}" node in the graph.`);return Wa(!0,r==="mixed"?this.type:r,i,h,c)};let s="some"+o;e.prototype[s]=function(u,c){return!!this[a](u,c)};let l="every"+o;e.prototype[l]=function(u,c){return!this[a](u,(d,p)=>!c(d,p))}}function Jy(e,t){let{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Tn();a=""+a;let s=this._nodes.get(a);if(typeof s>"u")throw new D(`Graph.${o}: could not find the "${a}" node in the graph.`);return Yy(r==="mixed"?this.type:r,i,s)}}function ew(e){jy.forEach(t=>{Xy(e,t),Zy(e,t),Qy(e,t),Jy(e,t)})}function xi(e,t,n,r,i){let o=r._nodes.values(),a=r.type,s,l,u,c,h,d,p;for(;s=o.next(),s.done!==!0;){let m=!1;if(l=s.value,a!=="undirected"){c=l.out;for(u in c){h=c[u];do{if(d=h.target,m=!0,p=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),e&&p)return h;h=h.next}while(h)}}if(a!=="directed"){c=l.undirected;for(u in c)if(!(t&&l.key>u)){h=c[u];do{if(d=h.target,d.key!==u&&(d=h.source),m=!0,p=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),e&&p)return h;h=h.next}while(h)}}if(n&&!m&&(p=i(l.key,null,l.attributes,null,null,null,null),e&&p))return null}}function tw(e,t){let n={key:e};return Zd(t.attributes)||(n.attributes=ye({},t.attributes)),n}function nw(e,t,n){let r={key:t,source:n.source.key,target:n.target.key};return Zd(n.attributes)||(r.attributes=ye({},n.attributes)),e==="mixed"&&n.undirected&&(r.undirected=!0),r}function rw(e){if(!Se(e))throw new G('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in e))throw new G("Graph.import: serialized node is missing its key.");if("attributes"in e&&(!Se(e.attributes)||e.attributes===null))throw new G("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function iw(e){if(!Se(e))throw new G('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in e))throw new G("Graph.import: serialized edge is missing its source.");if(!("target"in e))throw new G("Graph.import: serialized edge is missing its target.");if("attributes"in e&&(!Se(e.attributes)||e.attributes===null))throw new G("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in e&&typeof e.undirected!="boolean")throw new G("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}var ow=sy(),aw=new Set(["directed","undirected","mixed"]),qd=new Set(["domain","_events","_eventsCount","_maxListeners"]),sw=[{name:e=>`${e}Edge`,generateKey:!0},{name:e=>`${e}DirectedEdge`,generateKey:!0,type:"directed"},{name:e=>`${e}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:e=>`${e}EdgeWithKey`},{name:e=>`${e}DirectedEdgeWithKey`,type:"directed"},{name:e=>`${e}UndirectedEdgeWithKey`,type:"undirected"}],lw={allowSelfLoops:!0,multi:!1,type:"mixed"};function uw(e,t,n){if(n&&!Se(n))throw new G(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(t=""+t,n=n||{},e._nodes.has(t))throw new H(`Graph.addNode: the "${t}" node already exist in the graph.`);let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function Yd(e,t,n){let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function oh(e,t,n,r,i,o,a,s){if(!r&&e.type==="undirected")throw new H(`Graph.${t}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new H(`Graph.${t}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(s&&!Se(s))throw new G(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`);if(o=""+o,a=""+a,s=s||{},!e.allowSelfLoops&&o===a)throw new H(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let l=e._nodes.get(o),u=e._nodes.get(a);if(!l)throw new D(`Graph.${t}: source node "${o}" not found.`);if(!u)throw new D(`Graph.${t}: target node "${a}" not found.`);let c={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new H(`Graph.${t}: the "${i}" edge already exists in the graph.`);if(!e.multi&&(r?typeof l.undirected[a]<"u":typeof l.out[a]<"u"))throw new H(`Graph.${t}: an edge linking "${o}" to "${a}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);let h=new Rn(r,i,l,u,s);e._edges.set(i,h);let d=o===a;return r?(l.undirectedDegree++,u.undirectedDegree++,d&&(l.undirectedLoops++,e._undirectedSelfLoopCount++)):(l.outDegree++,u.inDegree++,d&&(l.directedLoops++,e._directedSelfLoopCount++)),e.multi?h.attachMulti():h.attach(),r?e._undirectedSize++:e._directedSize++,c.key=i,e.emit("edgeAdded",c),i}function cw(e,t,n,r,i,o,a,s,l){if(!r&&e.type==="undirected")throw new H(`Graph.${t}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new H(`Graph.${t}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(s){if(l){if(typeof s!="function")throw new G(`Graph.${t}: invalid updater function. Expecting a function but got "${s}"`)}else if(!Se(s))throw new G(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`)}o=""+o,a=""+a;let u;if(l&&(u=s,s=void 0),!e.allowSelfLoops&&o===a)throw new H(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let c=e._nodes.get(o),h=e._nodes.get(a),d,p;if(!n&&(d=e._edges.get(i),d)){if((d.source.key!==o||d.target.key!==a)&&(!r||d.source.key!==a||d.target.key!==o))throw new H(`Graph.${t}: inconsistency detected when attempting to merge the "${i}" edge with "${o}" source & "${a}" target vs. ("${d.source.key}", "${d.target.key}").`);p=d}if(!p&&!e.multi&&c&&(p=r?c.undirected[a]:c.out[a]),p){let y=[p.key,!1,!1,!1];if(l?!u:!s)return y;if(l){let x=p.attributes;p.attributes=u(x),e.emit("edgeAttributesUpdated",{type:"replace",key:p.key,attributes:p.attributes})}else ye(p.attributes,s),e.emit("edgeAttributesUpdated",{type:"merge",key:p.key,attributes:p.attributes,data:s});return y}s=s||{},l&&u&&(s=u(s));let m={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new H(`Graph.${t}: the "${i}" edge already exists in the graph.`);let w=!1,v=!1;c||(c=Yd(e,o,{}),w=!0,o===a&&(h=c,v=!0)),h||(h=Yd(e,a,{}),v=!0),d=new Rn(r,i,c,h,s),e._edges.set(i,d);let b=o===a;return r?(c.undirectedDegree++,h.undirectedDegree++,b&&(c.undirectedLoops++,e._undirectedSelfLoopCount++)):(c.outDegree++,h.inDegree++,b&&(c.directedLoops++,e._directedSelfLoopCount++)),e.multi?d.attachMulti():d.attach(),r?e._undirectedSize++:e._directedSize++,m.key=i,e.emit("edgeAdded",m),[i,!0,w,v]}function Sn(e,t){e._edges.delete(t.key);let{source:n,target:r,attributes:i}=t,o=t.undirected,a=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,a&&(n.undirectedLoops--,e._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,a&&(n.directedLoops--,e._directedSelfLoopCount--)),e.multi?t.detachMulti():t.detach(),o?e._undirectedSize--:e._directedSize--,e.emit("edgeDropped",{key:t.key,attributes:i,source:n.key,target:r.key,undirected:o})}var ne=class e extends Xd.EventEmitter{constructor(t){if(super(),t=ye({},lw,t),typeof t.multi!="boolean")throw new G(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${t.multi}".`);if(!aw.has(t.type))throw new G(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${t.type}".`);if(typeof t.allowSelfLoops!="boolean")throw new G(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${t.allowSelfLoops}".`);let n=t.type==="mixed"?Qd:t.type==="directed"?Jd:eh;et(this,"NodeDataClass",n);let r="geid_"+ow()+"_",i=0,o=()=>{let a;do a=r+i++;while(this._edges.has(a));return a};et(this,"_attributes",{}),et(this,"_nodes",new Map),et(this,"_edges",new Map),et(this,"_directedSize",0),et(this,"_undirectedSize",0),et(this,"_directedSelfLoopCount",0),et(this,"_undirectedSelfLoopCount",0),et(this,"_edgeKeyGenerator",o),et(this,"_options",t),qd.forEach(a=>et(this,a,this[a])),at(this,"order",()=>this._nodes.size),at(this,"size",()=>this._edges.size),at(this,"directedSize",()=>this._directedSize),at(this,"undirectedSize",()=>this._undirectedSize),at(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),at(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),at(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),at(this,"multi",this._options.multi),at(this,"type",this._options.type),at(this,"allowSelfLoops",this._options.allowSelfLoops),at(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(t){return this._nodes.has(""+t)}hasDirectedEdge(t,n){if(this.type==="undirected")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.out.hasOwnProperty(n):!1}throw new G(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(t,n){if(this.type==="directed")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.undirected.hasOwnProperty(n):!1}throw new G(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(t,n){if(arguments.length===1){let r=""+t;return this._edges.has(r)}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new G(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(t,n){if(this.type==="undirected")return;if(t=""+t,n=""+n,this.multi)throw new H("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");let r=this._nodes.get(t);if(!r)throw new D(`Graph.directedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(t,n){if(this.type==="directed")return;if(t=""+t,n=""+n,this.multi)throw new H("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");let r=this._nodes.get(t);if(!r)throw new D(`Graph.undirectedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);let i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(t,n){if(this.multi)throw new H("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.edge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.edge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areDirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areOutNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areInNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areUndirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areInboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areOutboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.directedDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.undirectedDegree: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.degree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.directedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.degreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.source: could not find the "${t}" edge in the graph.`);return n.source.key}target(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.target: could not find the "${t}" edge in the graph.`);return n.target.key}extremities(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.extremities: could not find the "${t}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(t,n){t=""+t,n=""+n;let r=this._edges.get(n);if(!r)throw new D(`Graph.opposite: could not find the "${n}" edge in the graph.`);let i=r.source.key,o=r.target.key;if(t===i)return o;if(t===o)return i;throw new D(`Graph.opposite: the "${t}" node is not attached to the "${n}" edge (${i}, ${o}).`)}hasExtremity(t,n){t=""+t,n=""+n;let r=this._edges.get(t);if(!r)throw new D(`Graph.hasExtremity: could not find the "${t}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isUndirected: could not find the "${t}" edge in the graph.`);return n.undirected}isDirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isDirected: could not find the "${t}" edge in the graph.`);return!n.undirected}isSelfLoop(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isSelfLoop: could not find the "${t}" edge in the graph.`);return n.source===n.target}addNode(t,n){return uw(this,t,n).key}mergeNode(t,n){if(n&&!Se(n))throw new G(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);t=""+t,n=n||{};let r=this._nodes.get(t);return r?(n&&(ye(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:r.attributes,data:n})),[t,!1]):(r=new this.NodeDataClass(t,n),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:n}),[t,!0])}updateNode(t,n){if(n&&typeof n!="function")throw new G(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);t=""+t;let r=this._nodes.get(t);if(r){if(n){let o=r.attributes;r.attributes=n(o),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:r.attributes})}return[t,!1]}let i=n?n({}):{};return r=new this.NodeDataClass(t,i),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]}dropNode(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.dropNode: could not find the "${t}" node in the graph.`);let r;if(this.type!=="undirected"){for(let i in n.out){r=n.out[i];do Sn(this,r),r=r.next;while(r)}for(let i in n.in){r=n.in[i];do Sn(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(let i in n.undirected){r=n.undirected[i];do Sn(this,r),r=r.next;while(r)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})}dropEdge(t){let n;if(arguments.length>1){let r=""+arguments[0],i=""+arguments[1];if(n=tt(this,r,i,this.type),!n)throw new D(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(t=""+t,n=this._edges.get(t),!n)throw new D(`Graph.dropEdge: could not find the "${t}" edge in the graph.`);return Sn(this,n),this}dropDirectedEdge(t,n){if(arguments.length<2)throw new H("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new H("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");t=""+t,n=""+n;let r=tt(this,t,n,"directed");if(!r)throw new D(`Graph.dropDirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Sn(this,r),this}dropUndirectedEdge(t,n){if(arguments.length<2)throw new H("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new H("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");let r=tt(this,t,n,"undirected");if(!r)throw new D(`Graph.dropUndirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Sn(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){let t=this._nodes.values(),n;for(;n=t.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(t){return this._attributes[t]}getAttributes(){return this._attributes}hasAttribute(t){return this._attributes.hasOwnProperty(t)}setAttribute(t,n){return this._attributes[t]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}updateAttribute(t,n){if(typeof n!="function")throw new G("Graph.updateAttribute: updater should be a function.");let r=this._attributes[t];return this._attributes[t]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}removeAttribute(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this}replaceAttributes(t){if(!Se(t))throw new G("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(t){if(!Se(t))throw new G("Graph.mergeAttributes: provided attributes are not a plain object.");return ye(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this}updateAttributes(t){if(typeof t!="function")throw new G("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(t,n){if(typeof t!="function")throw new G("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!jd(n))throw new G("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._nodes.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,o.attributes=t(o.key,o.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(t,n){if(typeof t!="function")throw new G("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!jd(n))throw new G("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._edges.values(),i,o,a,s;for(;i=r.next(),i.done!==!0;)o=i.value,a=o.source,s=o.target,o.attributes=t(o.key,o.attributes,a.key,s.key,a.attributes,s.attributes,o.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(t){if(typeof t!="function")throw new G("Graph.forEachAdjacencyEntry: expecting a callback.");xi(!1,!1,!1,this,t)}forEachAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new G("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");xi(!1,!1,!0,this,t)}forEachAssymetricAdjacencyEntry(t){if(typeof t!="function")throw new G("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");xi(!1,!0,!1,this,t)}forEachAssymetricAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new G("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");xi(!1,!0,!0,this,t)}nodes(){return Array.from(this._nodes.keys())}forEachNode(t){if(typeof t!="function")throw new G("Graph.forEachNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)}findNode(t){if(typeof t!="function")throw new G("Graph.findNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return i.key}mapNodes(t){if(typeof t!="function")throw new G("Graph.mapNode: expecting a callback.");let n=this._nodes.values(),r,i,o=new Array(this.order),a=0;for(;r=n.next(),r.done!==!0;)i=r.value,o[a++]=t(i.key,i.attributes);return o}someNode(t){if(typeof t!="function")throw new G("Graph.someNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return!0;return!1}everyNode(t){if(typeof t!="function")throw new G("Graph.everyNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!t(i.key,i.attributes))return!1;return!0}filterNodes(t){if(typeof t!="function")throw new G("Graph.filterNodes: expecting a callback.");let n=this._nodes.values(),r,i,o=[];for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)&&o.push(i.key);return o}reduceNodes(t,n){if(typeof t!="function")throw new G("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new G("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n,i=this._nodes.values(),o,a;for(;o=i.next(),o.done!==!0;)a=o.value,r=t(r,a.key,a.attributes);return r}nodeEntries(){let t=this._nodes.values();return{[Symbol.iterator](){return this},next(){let n=t.next();if(n.done)return n;let r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}}}}export(){let t=new Array(this._nodes.size),n=0;this._nodes.forEach((i,o)=>{t[n++]=tw(o,i)});let r=new Array(this._edges.size);return n=0,this._edges.forEach((i,o)=>{r[n++]=nw(this.type,o,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:t,edges:r}}import(t,n=!1){if(t instanceof e)return t.forEachNode((l,u)=>{n?this.mergeNode(l,u):this.addNode(l,u)}),t.forEachEdge((l,u,c,h,d,p,m)=>{n?m?this.mergeUndirectedEdgeWithKey(l,c,h,u):this.mergeDirectedEdgeWithKey(l,c,h,u):m?this.addUndirectedEdgeWithKey(l,c,h,u):this.addDirectedEdgeWithKey(l,c,h,u)}),this;if(!Se(t))throw new G("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!Se(t.attributes))throw new G("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}let r,i,o,a,s;if(t.nodes){if(o=t.nodes,!Array.isArray(o))throw new G("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=o.length;r<i;r++){a=o[r],rw(a);let{key:l,attributes:u}=a;n?this.mergeNode(l,u):this.addNode(l,u)}}if(t.edges){let l=!1;if(this.type==="undirected"&&(l=!0),o=t.edges,!Array.isArray(o))throw new G("Graph.import: invalid edges. Expecting an array.");for(r=0,i=o.length;r<i;r++){s=o[r],iw(s);let{source:u,target:c,attributes:h,undirected:d=l}=s,p;"key"in s?(p=n?d?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:d?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey,p.call(this,s.key,u,c,h)):(p=n?d?this.mergeUndirectedEdge:this.mergeDirectedEdge:d?this.addUndirectedEdge:this.addDirectedEdge,p.call(this,u,c,h))}}return this}nullCopy(t){let n=new e(ye({},this._options,t));return n.replaceAttributes(ye({},this.getAttributes())),n}emptyCopy(t){let n=this.nullCopy(t);return this._nodes.forEach((r,i)=>{let o=ye({},r.attributes);r=new n.NodeDataClass(i,o),n._nodes.set(i,r)}),n}copy(t){if(t=t||{},typeof t.type=="string"&&t.type!==this.type&&t.type!=="mixed")throw new H(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${t.type}" because this would mean losing information about the current graph.`);if(typeof t.multi=="boolean"&&t.multi!==this.multi&&t.multi!==!0)throw new H("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof t.allowSelfLoops=="boolean"&&t.allowSelfLoops!==this.allowSelfLoops&&t.allowSelfLoops!==!0)throw new H("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");let n=this.emptyCopy(t),r=this._edges.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,oh(n,"copy",!1,o.undirected,o.key,o.source.key,o.target.key,ye({},o.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){let t={};this._nodes.forEach((o,a)=>{t[a]=o.attributes});let n={},r={};this._edges.forEach((o,a)=>{let s=o.undirected?"--":"->",l="",u=o.source.key,c=o.target.key,h;o.undirected&&u>c&&(h=u,u=c,c=h);let d=`(${u})${s}(${c})`;a.startsWith("geid_")?this.multi&&(typeof r[d]>"u"?r[d]=0:r[d]++,l+=`${r[d]}. `):l+=`[${a}]: `,l+=d,n[l]=o.attributes});let i={};for(let o in this)this.hasOwnProperty(o)&&!qd.has(o)&&typeof this[o]!="function"&&typeof o!="symbol"&&(i[o]=this[o]);return i.attributes=this._attributes,i.nodes=t,i.edges=n,et(i,"constructor",this.constructor),i}};typeof Symbol<"u"&&(ne.prototype[Symbol.for("nodejs.util.inspect.custom")]=ne.prototype.inspect);sw.forEach(e=>{["add","merge","update"].forEach(t=>{let n=e.name(t),r=t==="add"?oh:cw;e.generateKey?ne.prototype[n]=function(i,o,a){return r(this,n,!0,(e.type||this.type)==="undirected",null,i,o,a,t==="update")}:ne.prototype[n]=function(i,o,a,s){return r(this,n,!1,(e.type||this.type)==="undirected",i,o,a,s,t==="update")}})});wy(ne);Ly(ne);Vy(ne);ew(ne);var ki=class extends ne{constructor(t){let n=ye({type:"directed"},t);if("multi"in n&&n.multi!==!1)throw new G("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new G('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},_i=class extends ne{constructor(t){let n=ye({type:"undirected"},t);if("multi"in n&&n.multi!==!1)throw new G("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new G('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Ei=class extends ne{constructor(t){let n=ye({multi:!0},t);if("multi"in n&&n.multi!==!0)throw new G("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}},Si=class extends ne{constructor(t){let n=ye({type:"directed",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new G("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new G('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Ti=class extends ne{constructor(t){let n=ye({type:"undirected",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new G("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new G('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}};function An(e){e.from=function(t,n){let r=ye({},t.options,n),i=new e(r);return i.import(t),i}}An(ne);An(ki);An(_i);An(Ei);An(Si);An(Ti);ne.Graph=ne;ne.DirectedGraph=ki;ne.UndirectedGraph=_i;ne.MultiGraph=Ei;ne.MultiDirectedGraph=Si;ne.MultiUndirectedGraph=Ti;ne.InvalidArgumentsGraphError=G;ne.NotFoundGraphError=D;ne.UsageGraphError=H;function dw(){return new ne({multi:!0,type:"directed"})}function Ha(e){let t=dw();for(let n of e.nodes){let{id:r,...i}=n;t.addNode(r,i)}for(let n of e.edges){let{key:r,source:i,target:o,...a}=n;t.addDirectedEdgeWithKey(r,i,o,{source:i,target:o,...a})}return t}function ah(e,t){let n=0;for(let[r,i]of t)e.hasNode(r)&&(!Number.isFinite(i.x)||!Number.isFinite(i.y)||(e.mergeNodeAttributes(r,{x:i.x,y:i.y}),n++));return n}function Ua(e){let t=new Map;return e.forEachNode((n,r)=>{t.set(n,{x:r.x,y:r.y})}),t}var sh=e=>({now:()=>e.performance.now(),request:t=>e.requestAnimationFrame(()=>t()),cancel:t=>e.cancelAnimationFrame(t)});function lh(e,t,n){let r=null,i=Ha({nodes:[],edges:[]}),o=null,a=null,s=0,l=0,u=null,c=0,h=()=>{},d=()=>{},p=()=>{},m=()=>{},w=()=>{},v=null,b=!1,y=A=>{if(v===null)return;let P=v;v=null,r?.setSetting("enableCameraPanning",!0),(A===null||A===P)&&w(P)},x=()=>Zu([...Ua(i).values()]),k=A=>{let P=tc(o,a,s),F=rc(o,a,s);A.setSetting("nodeReducer",(T,C)=>({...C,...P(T,C,t)})),A.setSetting("edgeReducer",(T,C)=>({...C,...F(T,C,t)}))},N=()=>{if(n===void 0||u!==null)return;c=n.now();let A=()=>{u=null;let P=n.now();if(s=nc(s,l,P-c),c=P,r!==null&&k(r),s===l){s===0&&(o=null);return}u=n.request(A)};u=n.request(A)};return{mount(A){if(r!==null)return;let P=e(i,A,ic(t));P.on("clickNode",({node:F})=>{b||h(F)}),P.on("doubleClickNode",({node:F,preventSigmaDefault:T})=>{T(),b||h(F)}),P.on("clickStage",()=>h(null)),P.on("downNode",({node:F})=>{v=F,b=!1,r?.setSetting("enableCameraPanning",!1),p(F)}),P.on("moveBody",F=>{v!==null&&(b=!0,F.preventSigmaDefault(),m(v,P.viewportToGraph({x:F.event.x,y:F.event.y})))}),P.on("enterNode",({node:F})=>d(F)),P.on("leaveNode",()=>d(null)),P.on("upNode",()=>y(v)),P.on("upStage",()=>y(null)),k(P),P.setCustomBBox(x()),r=P},setGraph(A){i=Ha(A),r?.setGraph(i),r?.setCustomBBox(x())},setPositions(A){ah(i,A),r?.refresh()},setHighlight(A,P=null){if(n===void 0){o=A,a=P,s=A===null?0:1,l=s,r!==null&&k(r);return}if(A===null){if(l=0,o===null)return}else o=A,a=P,l=1;r!==null&&k(r),s!==l&&N()},onSelect(A){h=A},onHover(A){d=A},onDragStart(A){p=A},onDragMove(A){m=A},onDragEnd(A){w=A},fit(){r?.setCustomBBox(x()),r?.getCamera().animatedReset()},positions(){return Ua(i)},destroy(){u!==null&&(n?.cancel(u),u=null),r?.kill(),r=null}}}var uh=e=>lh((t,n,r)=>new Vd(t,n,r),e,sh(window));function ch(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function hw(e){if(Array.isArray(e))return e}function pw(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}function fw(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
334
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gw(e,t){return hw(e)||pw(e,t)||mw(e,t)||fw()}function mw(e,t){if(e){if(typeof e=="string")return ch(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ch(e,t):void 0}}var Sh=Object.entries,dh=Object.setPrototypeOf,vw=Object.isFrozen,yw=Object.getPrototypeOf,ww=Object.getOwnPropertyDescriptor,we=Object.freeze,ke=Object.seal,Cn=Object.create,Th=typeof Reflect<"u"&&Reflect,Xa=Th.apply,Za=Th.construct;we||(we=function(t){return t});ke||(ke=function(t){return t});Xa||(Xa=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return t.apply(n,i)});Za||(Za=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new t(...r)});var nn=ge(Array.prototype.forEach),bw=ge(Array.prototype.lastIndexOf),hh=ge(Array.prototype.pop),sr=ge(Array.prototype.push),xw=ge(Array.prototype.splice),Ln=Array.isArray,cr=ge(String.prototype.toLowerCase),Ba=ge(String.prototype.toString),ph=ge(String.prototype.match),lr=ge(String.prototype.replace),fh=ge(String.prototype.indexOf),kw=ge(String.prototype.trim),_w=ge(Number.prototype.toString),Ew=ge(Boolean.prototype.toString),gh=typeof BigInt>"u"?null:ge(BigInt.prototype.toString),mh=typeof Symbol>"u"?null:ge(Symbol.prototype.toString),He=ge(Object.prototype.hasOwnProperty),ur=ge(Object.prototype.toString),Ae=ge(RegExp.prototype.test),tn=Sw(TypeError);function ge(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return Xa(e,t,r)}}function Sw(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return Za(e,n)}}function Z(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:cr;if(dh&&dh(e,null),!Ln(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){let o=n(i);o!==i&&(vw(t)||(t[r]=o),i=o)}e[i]=!0}return e}function Tw(e){for(let t=0;t<e.length;t++)He(e,t)||(e[t]=null);return e}function Ye(e){let t=Cn(null);for(let r of Sh(e)){var n=gw(r,2);let i=n[0],o=n[1];He(e,i)&&(Ln(o)?t[i]=Tw(o):o&&typeof o=="object"&&o.constructor===Object?t[i]=Ye(o):t[i]=o)}return t}function Rw(e){switch(typeof e){case"string":return e;case"number":return _w(e);case"boolean":return Ew(e);case"bigint":return gh?gh(e):"0";case"symbol":return mh?mh(e):"Symbol()";case"undefined":return ur(e);case"function":case"object":{if(e===null)return ur(e);let t=e,n=st(t,"toString");if(typeof n=="function"){let r=n(t);return typeof r=="string"?r:ur(r)}return ur(e)}default:return ur(e)}}function st(e,t){for(;e!==null;){let r=ww(e,t);if(r){if(r.get)return ge(r.get);if(typeof r.value=="function")return ge(r.value)}e=yw(e)}function n(){return null}return n}function Aw(e){try{return Ae(e,""),!0}catch{return!1}}var vh=we(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Ka=we(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Va=we(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Cw=we(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ja=we(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Lw=we(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),yh=we(["#text"]),wh=we(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),qa=we(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),bh=we(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ai=we(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Nw=ke(/{{[\w\W]*|^[\w\W]*}}/g),Pw=ke(/<%[\w\W]*|^[\w\W]*%>/g),Dw=ke(/\${[\w\W]*/g),Iw=ke(/^data-[\-\w.\u00B7-\uFFFF]+$/),Mw=ke(/^aria-[\-\w]+$/),xh=ke(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Gw=ke(/^(?:\w+script|data):/i),Ow=ke(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fw=ke(/^html$/i),$w=ke(/^[a-z][.\w]*(-[.\w]+)+$/i),kh=ke(/<[/\w!]/g),_h=ke(/<[/\w]/g),zw=ke(/<\/no(script|embed|frames)/i),Ww=ke(/\/>/i),qe={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Rh=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],Hw=we(Z({},Rh)),Uw=(function(){let e={};return nn(Rh,t=>{e[t]=ke(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),we(e)})(),Bw=function(){return typeof window>"u"?null:window},Kw=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let o="dompurify"+(r?"#"+r:"");try{return t.createPolicy(o,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Eh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Gt=function(t,n,r,i){return He(t,n)&&Ln(t[n])?Z(i.base?Ye(i.base):{},t[n],i.transform):r},Ya=function(t,n,r){let i=He(t,n)?t[n]:void 0;return i&&typeof i=="object"?Ye(i):r()};function Ah(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Bw(),t=L=>Ah(L);if(t.version="3.4.14",t.removed=[],!e||!e.document||e.document.nodeType!==qe.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let o=e.HTMLTemplateElement,a=e.Node,s=e.Element,l=e.NodeFilter,u=e.NamedNodeMap;u===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let c=e.DOMParser,h=e.trustedTypes,d=s.prototype,p=st(d,"cloneNode"),m=st(d,"remove"),w=st(d,"nextSibling"),v=st(d,"childNodes"),b=st(d,"parentNode"),y=st(d,"shadowRoot"),x=st(d,"attributes"),k=a&&a.prototype?st(a.prototype,"nodeType"):null,N=a&&a.prototype?st(a.prototype,"nodeName"):null,A=a&&a.prototype?st(a.prototype,"ownerDocument"):null,P=function(f){return k?k(f):f.nodeType},F=function(f){return N?N(f):f.nodeName};if(typeof o=="function"){let L=n.createElement("template");L.content&&L.content.ownerDocument&&(n=L.content.ownerDocument)}let T,C="",W,j=!1,Y=0,ie=function(){if(Y>0)throw tn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},ce=function(f){ie(),Y++;try{return T.createHTML(f)}finally{Y--}},Fe=function(f){ie(),Y++;try{return T.createScriptURL(f)}finally{Y--}},Te=function(){return j||(W=Kw(h,i),j=!0),W},_e=n,Ee=_e.implementation,Be=_e.createNodeIterator,Ke=_e.createDocumentFragment,Ze=_e.getElementsByTagName,Le=r.importNode,Q=Eh();t.isSupported=typeof Sh=="function"&&typeof b=="function"&&Ee&&Ee.createHTMLDocument!==void 0;let Ft=Nw,Xi=Pw,Zi=Dw,mr=Iw,Dn=Mw,Ve=Gw,Ne=Ow,ft=$w,$t=xh,oe=null,$e=Z({},[...vh,...Ka,...Va,...ja,...yh]),J=null,gt=Z({},[...wh,...qa,...bh,...Ai]),pe=Object.seal(Cn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),At=null,In=null,ut=Object.seal(Cn(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),vr=!0,Mn=!0,Gn=!1,yr=!0,nt=!1,ct=!0,mt=!1,E=!1,I=null,K=null,O=!1,B=!1,be=!1,rt=!1,Ct=!0,ms=!1,vs="user-content-",Qi=!0,Ji=!1,ln={},un=null,ys=Z({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),ws=null,bs=Z({},["audio","video","img","source","image","track"]),xs=null,ks=Z({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),wr="http://www.w3.org/1998/Math/MathML",br="http://www.w3.org/2000/svg",dt="http://www.w3.org/1999/xhtml",cn=dt,eo=!1,to=null,hf=Z({},[wr,br,dt],Ba),_s=we(["mi","mo","mn","ms","mtext"]),no=Z({},_s),Es=we(["annotation-xml"]),ro=Z({},Es),pf=Z({},["title","style","font","a","script"]),On=null,ff=["application/xhtml+xml","text/html"],gf="text/html",de=null,dn=null,mf=n.createElement("form"),Ss=function(f){return f instanceof RegExp||f instanceof Function},io=function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(dn&&dn===f)return;(!f||typeof f!="object")&&(f={}),f=Ye(f),On=ff.indexOf(f.PARSER_MEDIA_TYPE)===-1?gf:f.PARSER_MEDIA_TYPE,de=On==="application/xhtml+xml"?Ba:cr,oe=Gt(f,"ALLOWED_TAGS",$e,{transform:de}),J=Gt(f,"ALLOWED_ATTR",gt,{transform:de}),to=Gt(f,"ALLOWED_NAMESPACES",hf,{transform:Ba}),xs=Gt(f,"ADD_URI_SAFE_ATTR",ks,{transform:de,base:ks}),ws=Gt(f,"ADD_DATA_URI_TAGS",bs,{transform:de,base:bs}),un=Gt(f,"FORBID_CONTENTS",ys,{transform:de}),At=Gt(f,"FORBID_TAGS",Ye({}),{transform:de}),In=Gt(f,"FORBID_ATTR",Ye({}),{transform:de}),ln=He(f,"USE_PROFILES")?f.USE_PROFILES&&typeof f.USE_PROFILES=="object"?Ye(f.USE_PROFILES):f.USE_PROFILES:!1,vr=f.ALLOW_ARIA_ATTR!==!1,Mn=f.ALLOW_DATA_ATTR!==!1,Gn=f.ALLOW_UNKNOWN_PROTOCOLS||!1,yr=f.ALLOW_SELF_CLOSE_IN_ATTR!==!1,nt=f.SAFE_FOR_TEMPLATES||!1,ct=f.SAFE_FOR_XML!==!1,mt=f.WHOLE_DOCUMENT||!1,B=f.RETURN_DOM||!1,be=f.RETURN_DOM_FRAGMENT||!1,rt=f.RETURN_TRUSTED_TYPE||!1,O=f.FORCE_BODY||!1,Ct=f.SANITIZE_DOM!==!1,ms=f.SANITIZE_NAMED_PROPS||!1,Qi=f.KEEP_CONTENT!==!1,Ji=f.IN_PLACE||!1,$t=Aw(f.ALLOWED_URI_REGEXP)?f.ALLOWED_URI_REGEXP:xh,cn=typeof f.NAMESPACE=="string"?f.NAMESPACE:dt,no=Ya(f,"MATHML_TEXT_INTEGRATION_POINTS",()=>Z({},_s)),ro=Ya(f,"HTML_INTEGRATION_POINTS",()=>Z({},Es));let _=Ya(f,"CUSTOM_ELEMENT_HANDLING",()=>Cn(null));if(pe=Cn(null),He(_,"tagNameCheck")&&Ss(_.tagNameCheck)&&(pe.tagNameCheck=_.tagNameCheck),He(_,"attributeNameCheck")&&Ss(_.attributeNameCheck)&&(pe.attributeNameCheck=_.attributeNameCheck),He(_,"allowCustomizedBuiltInElements")&&typeof _.allowCustomizedBuiltInElements=="boolean"&&(pe.allowCustomizedBuiltInElements=_.allowCustomizedBuiltInElements),ke(pe),nt&&(Mn=!1),be&&(B=!0),ln&&(oe=Z({},yh),J=Cn(null),ln.html===!0&&(Z(oe,vh),Z(J,wh)),ln.svg===!0&&(Z(oe,Ka),Z(J,qa),Z(J,Ai)),ln.svgFilters===!0&&(Z(oe,Va),Z(J,qa),Z(J,Ai)),ln.mathMl===!0&&(Z(oe,ja),Z(J,bh),Z(J,Ai))),ut.tagCheck=null,ut.attributeCheck=null,He(f,"ADD_TAGS")&&(typeof f.ADD_TAGS=="function"?ut.tagCheck=f.ADD_TAGS:Ln(f.ADD_TAGS)&&(oe===$e&&(oe=Ye(oe)),Z(oe,f.ADD_TAGS,de))),He(f,"ADD_ATTR")&&(typeof f.ADD_ATTR=="function"?ut.attributeCheck=f.ADD_ATTR:Ln(f.ADD_ATTR)&&(J===gt&&(J=Ye(J)),Z(J,f.ADD_ATTR,de))),He(f,"ADD_FORBID_CONTENTS")&&Ln(f.ADD_FORBID_CONTENTS)&&(un===ys&&(un=Ye(un)),Z(un,f.ADD_FORBID_CONTENTS,de)),Qi&&(oe["#text"]=!0),mt&&Z(oe,["html","head","body"]),oe.table&&(Z(oe,["tbody"]),delete At.tbody),f.TRUSTED_TYPES_POLICY){if(typeof f.TRUSTED_TYPES_POLICY.createHTML!="function")throw tn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof f.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw tn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let S=T;T=f.TRUSTED_TYPES_POLICY;try{C=ce("")}catch(M){throw T=S,M}}else f.TRUSTED_TYPES_POLICY===null?(T=void 0,C=""):(T===void 0&&(T=Te()),T&&typeof C=="string"&&(C=ce("")));we&&we(f),dn=f},Ts=Z({},[...Ka,...Va,...Cw]),Rs=Z({},[...ja,...Lw]),vf=function(f,_,S){return _.namespaceURI===dt?f==="svg":_.namespaceURI===wr?f==="svg"&&(S==="annotation-xml"||no[S]):!!Ts[f]},yf=function(f,_,S){return _.namespaceURI===dt?f==="math":_.namespaceURI===br?f==="math"&&ro[S]:!!Rs[f]},wf=function(f,_,S){return _.namespaceURI===br&&!ro[S]||_.namespaceURI===wr&&!no[S]?!1:!Rs[f]&&(pf[f]||!Ts[f])},bf=function(f){let _=b(f);(!_||!_.tagName)&&(_={namespaceURI:cn,tagName:"template"});let S=cr(f.tagName),M=cr(_.tagName);return to[f.namespaceURI]?f.namespaceURI===br?vf(S,_,M):f.namespaceURI===wr?yf(S,_,M):f.namespaceURI===dt?wf(S,_,M):!!(On==="application/xhtml+xml"&&to[f.namespaceURI]):!1},Lt=function(f){sr(t.removed,{element:f});try{b(f).removeChild(f)}catch{if(m(f),!b(f))throw tn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},As=function(f,_,S){try{f.removeAttributeNode(_)}catch{try{f.removeAttribute(S)}catch{}}},xr=function(f){kr(f);let _=v(f);if(_){let M=[];nn(_,z=>{sr(M,z)}),nn(M,z=>{try{m(z)}catch{}})}let S=x(f);if(S)for(let M=S.length-1;M>=0;--M){let z=S[M],U=z&&z.name;typeof U=="string"&&As(f,z,U)}},zt=function(f,_,S){if(!S)try{S=_.getAttributeNode(f)}catch{S=null}sr(t.removed,{attribute:S||null,from:_});try{S?_.removeAttributeNode(S):_.removeAttribute(f)}catch{try{_.removeAttribute(f)}catch{}}if(f==="is")if(B||be)try{Lt(_)}catch{}else try{_.setAttribute(f,"")}catch{}},xf=function(f){let _=x(f);if(_)for(let S=_.length-1;S>=0;--S){let M=_[S],z=M&&M.name;typeof z!="string"||J[de(z)]||As(f,M,z)}},kr=function(f){let _=[f];for(;_.length>0;){let S=_.pop();P(S)===qe.element&&xf(S);let z=v(S);if(z)for(let U=z.length-1;U>=0;--U)_.push(z[U])}},Cs=function(f,_){return ct?f==="patchsrc"?!0:f==="for"&&_!=="label"&&_!=="output":!1},kf=function(f){if(!ct)return;let _=[f];for(;_.length>0;){let S=_.pop(),M=P(S);if(M===qe.processingInstruction||M===qe.comment&&Ae(_h,S.data)){try{m(S)}catch{}continue}if(M===qe.element){let U=S,ae=de(F(S));try{U.hasAttribute&&U.hasAttribute("patchsrc")&&U.removeAttribute("patchsrc"),U.hasAttribute&&U.hasAttribute("for")&&Cs("for",ae)&&U.removeAttribute("for")}catch{}}let z=v(S);if(z)for(let U=z.length-1;U>=0;--U)_.push(z[U])}},Ls=function(f){let _=null,S=null;if(O)f="<remove></remove>"+f;else{let U=ph(f,/^[\r\n\t ]+/);S=U&&U[0]}On==="application/xhtml+xml"&&cn===dt&&(f='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+f+"</body></html>");let M=T?ce(f):f;if(cn===dt)try{_=new c().parseFromString(M,On)}catch{}if(!_||!_.documentElement){_=Ee.createDocument(cn,"template",null);try{_.documentElement.innerHTML=eo?C:M}catch{}}let z=_.body||_.documentElement;return f&&S&&z.insertBefore(n.createTextNode(S),z.childNodes[0]||null),cn===dt?Ze.call(_,mt?"html":"body")[0]:mt?_.documentElement:z},Ns=function(f){let _=A?A(f):f.ownerDocument;return Be.call(_||f,f,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},_r=function(f){return f=lr(f,Ft," "),f=lr(f,Xi," "),f=lr(f,Zi," "),f},oo=function(f){var _;f.normalize();let S=A?A(f):f.ownerDocument,M=Be.call(S||f,f,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),z=M.nextNode();for(;z;)z.data=_r(z.data),z=M.nextNode();let U=(_=f.querySelectorAll)===null||_===void 0?void 0:_.call(f,"template");U&&nn(U,ae=>{hn(ae.content)&&oo(ae.content)})},Er=function(f){let _=N?N(f):null;return typeof _!="string"||de(_)!=="form"?!1:typeof f.nodeName!="string"||typeof f.textContent!="string"||typeof f.removeChild!="function"||f.attributes!==x(f)||typeof f.removeAttribute!="function"||typeof f.setAttribute!="function"||typeof f.namespaceURI!="string"||typeof f.insertBefore!="function"||typeof f.hasChildNodes!="function"||f.nodeType!==k(f)||f.childNodes!==v(f)},hn=function(f){if(!k||typeof f!="object"||f===null)return!1;try{return k(f)===qe.documentFragment}catch{return!1}},Fn=function(f){if(!k||typeof f!="object"||f===null)return!1;try{return typeof k(f)=="number"}catch{return!1}};function ht(L,f,_){L.length!==0&&nn(L,S=>{S.call(t,f,_,dn)})}let _f=function(f,_){return!!(ct&&f.hasChildNodes()&&!Fn(f.firstElementChild)&&Ae(kh,f.textContent)&&Ae(kh,f.innerHTML)||ct&&f.namespaceURI===dt&&Hw[_]&&(Fn(f.firstElementChild)||typeof f.textContent=="string"&&Ae(Uw[_],f.textContent))||f.nodeType===qe.processingInstruction||ct&&f.nodeType===qe.comment&&Ae(_h,f.data))},Sr=function(f,_){if(f instanceof RegExp)return Ae(f,_);if(f instanceof Function){for(var S=arguments.length,M=new Array(S>2?S-2:0),z=2;z<S;z++)M[z-2]=arguments[z];return!!f(_,...M)}return!1},Ef=function(f,_,S){if(!At[_]&&Gs(_)&&Sr(pe.tagNameCheck,_))return!1;if(Qi&&!un[_]){let M=b(f),z=v(f);if(z&&M){let U=z.length;for(let ae=U-1;ae>=0;--ae){let le=f===S?p(z[ae],!0):z[ae];M.insertBefore(le,w(f))}}}return Lt(f),!0},Ps=function(f,_,S,M){return f.length===0?_:_===S||_===M?Ye(_):_},Ds=function(f,_){return f===_||b(f)!==null?!1:(Ji&&kr(f),!0)},Is=function(f,_){if(ht(Q.beforeSanitizeElements,f,null),Ds(f,_))return!0;if(Er(f))return Lt(f),!0;let S=de(F(f));if(oe=Ps(Q.uponSanitizeElement,oe,$e,I),ht(Q.uponSanitizeElement,f,{tagName:S,allowedTags:oe}),Ds(f,_))return!0;if(_f(f,S))return Lt(f),!0;if(At[S]||!(ut.tagCheck instanceof Function&&ut.tagCheck(S))&&!oe[S]){let z=Ef(f,S,_);return z===!1&&ht(Q.afterSanitizeElements,f,null),z}if(P(f)===qe.element&&!bf(f)||(S==="noscript"||S==="noembed"||S==="noframes")&&Ae(zw,f.innerHTML))return Lt(f),!0;if(nt&&f.nodeType===qe.text){let z=_r(f.textContent);f.textContent!==z&&(sr(t.removed,{element:f.cloneNode()}),f.textContent=z)}return ht(Q.afterSanitizeElements,f,null),!1},Ms=function(f,_,S){if(In[_]||Cs(_,f)||Ct&&(_==="id"||_==="name")&&(S in n||S in mf))return!1;let M=J[_]||ut.attributeCheck instanceof Function&&ut.attributeCheck(_,f);return Mn&&Ae(mr,_)||vr&&Ae(Dn,_)?!0:M?xs[_]||Ae($t,lr(S,Ne,""))||(_==="src"||_==="xlink:href"||_==="href")&&f!=="script"&&fh(S,"data:")===0&&ws[f]||Gn&&!Ae(Ve,lr(S,Ne,""))?!0:!S:Gs(f)&&Sr(pe.tagNameCheck,f)&&Sr(pe.attributeNameCheck,_,f)||_==="is"&&pe.allowCustomizedBuiltInElements&&Sr(pe.tagNameCheck,S)},Sf=Z({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Gs=function(f){return!Sf[cr(f)]&&Ae(ft,f)},Tf=function(f,_,S,M){if(T&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!S)switch(h.getAttributeType(f,_)){case"TrustedHTML":return ce(M);case"TrustedScriptURL":return Fe(M)}return M},Rf=function(f,_,S,M){try{S?f.setAttributeNS(S,_,M):f.setAttribute(_,M),Er(f)?Lt(f):hh(t.removed)}catch{zt(_,f)}},Os=function(f){ht(Q.beforeSanitizeAttributes,f,null);let _=f.attributes;if(!_||Er(f))return;J=Ps(Q.uponSanitizeAttribute,J,gt,K);let S={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:J,forceKeepAttr:void 0},M=_.length,z=de(f.nodeName);for(;M--;){let U=_[M],ae=U.name,le=U.namespaceURI,ze=U.value,We=de(ae),so=ze,Pe=ae==="value"?so:kw(so);if(S.attrName=We,S.attrValue=Pe,S.keepAttr=!0,S.forceKeepAttr=void 0,ht(Q.uponSanitizeAttribute,f,S),Pe=S.attrValue,ms&&(We==="id"||We==="name")&&fh(Pe,vs)!==0&&(zt(ae,f,U),Pe=vs+Pe),ct&&Ae(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Pe)){zt(ae,f,U);continue}if(We==="attributename"&&ph(Pe,"href")){zt(ae,f,U);continue}if(!S.forceKeepAttr){if(!S.keepAttr){zt(ae,f,U);continue}if(!yr&&Ae(Ww,Pe)){zt(ae,f,U);continue}if(nt&&(Pe=_r(Pe)),!Ms(z,We,Pe)){zt(ae,f,U);continue}Pe=Tf(z,We,le,Pe),Pe!==so&&Rf(f,ae,le,Pe)}}ht(Q.afterSanitizeAttributes,f,null)},Tr=function(f){let _=null,S=Ns(f);for(ht(Q.beforeSanitizeShadowDOM,f,null);_=S.nextNode();)if(ht(Q.uponSanitizeShadowNode,_,null),Is(_,f),Os(_),hn(_.content)&&Tr(_.content),P(_)===qe.element){let M=y(_);hn(M)&&(ao(M),Tr(M))}ht(Q.afterSanitizeShadowDOM,f,null)},ao=function(f){let _=[{node:f,shadow:null}];for(;_.length>0;){let S=_.pop();if(S.shadow){Tr(S.shadow);continue}let M=S.node,U=P(M)===qe.element,ae=v(M);if(ae)for(let le=ae.length-1;le>=0;--le)_.push({node:ae[le],shadow:null});if(U){let le=N?N(M):null;if(typeof le=="string"&&de(le)==="template"){let ze=M.content;hn(ze)&&_.push({node:ze,shadow:null})}}if(U){let le=y(M);hn(le)&&_.push({node:null,shadow:le},{node:le,shadow:null})}}};return t.sanitize=function(L){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=null,S=null,M=null,z=null;if(eo=!L,eo&&(L="<!-->"),typeof L!="string"&&!Fn(L)&&(L=Rw(L),typeof L!="string"))throw tn("dirty is not a string, aborting");if(!t.isSupported)return L;E?(oe=I,J=K):io(f),(Q.uponSanitizeElement.length>0||Q.uponSanitizeAttribute.length>0)&&(oe=Ye(oe)),Q.uponSanitizeAttribute.length>0&&(J=Ye(J)),t.removed=[];let U=Ji&&typeof L!="string"&&Fn(L);if(U){kf(L);let ze=F(L);if(typeof ze=="string"){let We=de(ze);if(!oe[We]||At[We])throw xr(L),tn("root node is forbidden and cannot be sanitized in-place")}if(Er(L))throw xr(L),tn("root node is clobbered and cannot be sanitized in-place");try{ao(L)}catch(We){throw xr(L),We}}else if(Fn(L))_=Ls("<!---->"),S=_.ownerDocument.importNode(L,!0),S.nodeType===qe.element&&S.nodeName==="BODY"||S.nodeName==="HTML"?_=S:_.appendChild(S),ao(S);else{if(!B&&!nt&&!mt&&L.indexOf("<")===-1)return T&&rt?ce(L):L;if(_=Ls(L),!_)return B?null:rt?C:""}_&&O&&Lt(_.firstChild);let ae=U?L:_;try{let ze=Ns(ae);for(;M=ze.nextNode();)Is(M,ae),Os(M),hn(M.content)&&Tr(M.content)}catch(ze){throw U&&(xr(L),nn(t.removed,We=>{We.element&&kr(We.element)})),ze}if(U)return nn(t.removed,ze=>{ze.element&&kr(ze.element)}),nt&&oo(L),L;if(B){if(nt&&oo(_),be)for(z=Ke.call(_.ownerDocument);_.firstChild;)z.appendChild(_.firstChild);else z=_;return(J.shadowroot||J.shadowrootmode)&&(z=Le.call(r,z,!0)),z}let le=mt?_.outerHTML:_.innerHTML;return mt&&oe["!doctype"]&&_.ownerDocument&&_.ownerDocument.doctype&&_.ownerDocument.doctype.name&&Ae(Fw,_.ownerDocument.doctype.name)&&(le="<!DOCTYPE "+_.ownerDocument.doctype.name+`>
|
|
335
|
+
`+le),nt&&(le=_r(le)),T&&rt?ce(le):le},t.setConfig=function(){let L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};io(L),E=!0,I=oe,K=J},t.clearConfig=function(){dn=null,E=!1,I=null,K=null,T=W,C=""},t.isValidAttribute=function(L,f,_){dn||io({});let S=de(L),M=de(f);return Ms(S,M,_)},t.addHook=function(L,f){typeof f=="function"&&He(Q,L)&&sr(Q[L],f)},t.removeHook=function(L,f){if(He(Q,L)){if(f!==void 0){let _=bw(Q[L],f);return _===-1?void 0:xw(Q[L],_,1)[0]}return hh(Q[L])}},t.removeHooks=function(L){He(Q,L)&&(Q[L]=[])},t.removeAllHooks=function(){Q=Eh()},t}var Ch=Ah();function ts(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var an=ts();function Oh(e){an=e}var rn={exec:()=>null};function Nn(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function q(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,o)=>{let a=typeof o=="string"?o:o.source;return a=a.replace(Ce.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,t)};return r}var Vw=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),Ce={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Nn(e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Nn(e=>new RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Nn(e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Nn(e=>new RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Nn(e=>new RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Nn(e=>new RegExp(`^ {0,${e}}>`))},jw=/^(?:[ \t]*(?:\n|$))+/,qw=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Yw=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Xw=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ns=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Fh=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,$h=q(Fh).replace(/bull/g,ns).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Zw=q(Fh).replace(/bull/g,ns).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),rs=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Qw=/^[^\n]+/,is=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Jw=q(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",is).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),eb=q(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,ns).getRegex(),Di="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",os=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,tb=q("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",os).replace("tag",Di).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),zh=e=>q(rs).replace("hr",pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Di).getRegex(),nb=zh(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),rb=zh(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),ib=q(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",rb).getRegex(),as={blockquote:ib,code:qw,def:Jw,fences:Yw,heading:Xw,hr:pr,html:tb,lheading:$h,list:eb,newline:jw,paragraph:nb,table:rn,text:Qw},Lh=q("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Di).getRegex(),ob={...as,lheading:Zw,table:Lh,paragraph:q(rs).replace("hr",pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Lh).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Di).getRegex()},ab={...as,html:q(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",os).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:rn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:q(rs).replace("hr",pr).replace("heading",` *#{1,6} *[^
|
|
336
|
+
]`).replace("lheading",$h).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},sb=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,lb=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Wh=/^( {2,}|\\)\n(?!\s*$)/,ub=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Tt=/[\p{P}\p{S}]/u,Pn=/[\s\p{P}\p{S}]/u,fr=/[^\s\p{P}\p{S}]/u,cb=q(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Pn).getRegex(),db=/[\p{Pi}\p{Ps}"']/u,Hh=/(?!~)[\p{P}\p{S}]/u,hb=/(?!~)[\s\p{P}\p{S}]/u,pb=/(?:[^\s\p{P}\p{S}]|~)/u,fb=q(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Vw?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Uh=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,gb=q(Uh,"u").replace(/punct/g,Tt).getRegex(),mb=q(Uh,"u").replace(/punct/g,Hh).getRegex(),vb=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,yb=q(vb,"u").replace(/openQuote/g,db).replace(/punct/g,Tt).getRegex(),Bh="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",wb=q(Bh,"gu").replace(/notPunctSpace/g,fr).replace(/punctSpace/g,Pn).replace(/punct/g,Tt).getRegex(),bb=q(Bh,"gu").replace(/notPunctSpace/g,pb).replace(/punctSpace/g,hb).replace(/punct/g,Hh).getRegex(),xb="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",kb=q(xb,"gu").replace(/notPunctSpace/g,fr).replace(/punctSpace/g,Pn).replace(/punct/g,Tt).getRegex(),_b=q("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,fr).replace(/punctSpace/g,Pn).replace(/punct/g,Tt).getRegex(),Eb="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",Sb=q(Eb,"gu").replace(/notPunctSpace/g,fr).replace(/punctSpace/g,Pn).replace(/punct/g,Tt).getRegex(),Tb=q(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Tt).getRegex(),Rb="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",Ab=q(Rb,"gu").replace(/notPunctSpace/g,fr).replace(/punctSpace/g,Pn).replace(/punct/g,Tt).getRegex(),Cb=q(/\\(punct)/,"gu").replace(/punct/g,Tt).getRegex(),Lb=q(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Nb=q(os).replace("(?:-->|$)","-->").getRegex(),Pb=q("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Nb).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Li=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Db=q(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Li).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kh=q(/^!?\[(label)\]\[(ref)\]/).replace("label",Li).replace("ref",is).getRegex(),Vh=q(/^!?\[(ref)\](?:\[\])?/).replace("ref",is).getRegex(),Ib=q("reflink|nolink(?!\\()","g").replace("reflink",Kh).replace("nolink",Vh).getRegex(),Nh=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ss={_backpedal:rn,anyPunctuation:Cb,autolink:Lb,blockSkip:fb,br:Wh,code:lb,del:rn,delLDelim:rn,delRDelim:rn,emStrongLDelim:gb,emStrongRDelimAst:wb,emStrongRDelimUnd:_b,escape:sb,link:Db,nolink:Vh,punctuation:cb,reflink:Kh,reflinkSearch:Ib,tag:Pb,text:ub,url:rn},Mb={...ss,emStrongLDelim:yb,emStrongRDelimAst:kb,emStrongRDelimUnd:Sb,link:q(/^!?\[(label)\]\((.*?)\)/).replace("label",Li).getRegex(),reflink:q(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Li).getRegex()},Qa={...ss,emStrongRDelimAst:bb,emStrongLDelim:mb,delLDelim:Tb,delRDelim:Ab,url:q(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Nh).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:q(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Nh).getRegex()},Gb={...Qa,br:q(Wh).replace("{2,}","*").getRegex(),text:q(Qa.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ci={normal:as,gfm:ob,pedantic:ab},dr={normal:ss,gfm:Qa,breaks:Gb,pedantic:Mb},Ob={"&":"&","<":"<",">":">",'"':""","'":"'"},Ph=e=>Ob[e];function pt(e,t){if(t){if(Ce.escapeTest.test(e))return e.replace(Ce.escapeReplace,Ph)}else if(Ce.escapeTestNoEncode.test(e))return e.replace(Ce.escapeReplaceNoEncode,Ph);return e}function Dh(e){try{e=encodeURI(e).replace(Ce.percentDecode,"%")}catch{return null}return e}function Ih(e,t){let n=e.replace(Ce.findPipe,(o,a,s)=>{let l=!1,u=a;for(;--u>=0&&s[u]==="\\";)l=!l;return l?"|":" |"}),r=n.split(Ce.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(Ce.slashPipe,"|");return r}function Ot(e,t,n){let r=e.length;if(r===0)return"";let i=0;for(;i<r;){let o=e.charAt(r-i-1);if(o===t&&!n)i++;else if(o!==t&&n)i++;else break}return e.slice(0,r-i)}function Mh(e){let t=e.split(`
|
|
337
|
+
`),n=t.length-1;for(;n>=0&&Ce.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
|
|
338
|
+
`)}function Fb(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function $b(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let o=4-n%4;r+=" ".repeat(o),n+=o}else r+=i,n++;return r}function Gh(e,t,n,r,i){let o=t.href,a=t.title||null,s=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:a,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,l}function zb(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
339
|
+
`).map(o=>{let a=o.match(n.other.beginningSpace);if(a===null)return o;let[s]=a;return s.length>=i.length?o.slice(i.length):o}).join(`
|
|
340
|
+
`)}var Ni=class{options;rules;lexer;constructor(e){this.options=e||an}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Mh(t[0]),r=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=zb(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=Ot(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:Ot(t[0],`
|
|
341
|
+
`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Ot(t[0],`
|
|
342
|
+
`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=Ot(t[0],`
|
|
343
|
+
`).split(`
|
|
344
|
+
`),r="",i="",o=[];for(;n.length>0;){let a=!1,s=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))s.push(n[l]),a=!0;else if(!a)s.push(n[l]);else break;n=n.slice(l);let u=s.join(`
|
|
345
|
+
`),c=u.replace(this.rules.other.blockquoteSetextReplace,`
|
|
346
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
|
|
347
|
+
${u}`:u,i=i?`${i}
|
|
348
|
+
${c}`:c;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,o,!0),this.lexer.state.top=h,n.length===0)break;let d=o.at(-1);if(d?.type==="code")break;if(d?.type==="blockquote"){let p=d,m=n.join(`
|
|
349
|
+
`),w=p.raw+`
|
|
350
|
+
`+m.replace(this.rules.other.blockquoteSetextReplace2,""),v=this.blockquote(w);o[o.length-1]=v,r=`${r}
|
|
351
|
+
${m}`,i=i.substring(0,i.length-p.text.length)+v.text;break}else if(d?.type==="list"){let p=d,m=p.raw+`
|
|
352
|
+
`+n.join(`
|
|
353
|
+
`),w=this.list(m);o[o.length-1]=w,r=r.substring(0,r.length-d.raw.length)+w.raw,i=i.substring(0,i.length-p.raw.length)+w.raw,n=m.substring(o.at(-1).raw.length).split(`
|
|
354
|
+
`);continue}}return{type:"blockquote",raw:r,tokens:o,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,u="",c="";if(!(t=o.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let h=$b(t[2].split(`
|
|
355
|
+
`,1)[0],t[1].length),d=e.split(`
|
|
356
|
+
`,1)[0],p=!h.trim(),m=0;if(this.options.pedantic?(m=2,c=h.trimStart()):p?m=t[1].length+1:(m=h.search(this.rules.other.nonSpaceChar),m=m>4?1:m,c=h.slice(m),m+=t[1].length),p&&this.rules.other.blankLine.test(d)&&(u+=d+`
|
|
357
|
+
`,e=e.substring(d.length+1),l=!0),!l){let w=this.rules.other.nextBulletRegex(m),v=this.rules.other.hrRegex(m),b=this.rules.other.fencesBeginRegex(m),y=this.rules.other.headingBeginRegex(m),x=this.rules.other.htmlBeginRegex(m),k=this.rules.other.blockquoteBeginRegex(m);for(;e;){let N=e.split(`
|
|
358
|
+
`,1)[0],A;if(d=N,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),A=d):A=d.replace(this.rules.other.tabCharGlobal," "),b.test(d)||y.test(d)||x.test(d)||k.test(d)||w.test(d)||v.test(d))break;if(A.search(this.rules.other.nonSpaceChar)>=m||!d.trim())c+=`
|
|
359
|
+
`+A.slice(m);else{if(p||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||b.test(h)||y.test(h)||v.test(h))break;c+=`
|
|
360
|
+
`+d}p=!d.trim(),u+=N+`
|
|
361
|
+
`,e=e.substring(N.length+1),h=A.slice(m)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(a=!0)),i.items.push({type:"list_item",raw:u,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=u}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items)if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),!i.loose){let u=l.tokens.filter(h=>h.type==="space"),c=u.length>0&&u.some(h=>this.rules.other.anyLine.test(h.raw));i.loose=c}for(let l of i.items){let u=l.tokens[0];if(l.task&&(u?.type==="text"||u?.type==="paragraph")){l.text=l.text.replace(this.rules.other.listReplaceTask,""),u.raw=u.raw.replace(this.rules.other.listReplaceTask,""),u.text=u.text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}let c=this.rules.other.listTaskCheckbox.exec(l.raw);if(c){let h={type:"checkbox",raw:c[0]+" ",checked:c[0]!=="[ ]"};l.checked=h.checked,i.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=h.raw+l.tokens[0].raw,l.tokens[0].text=h.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(h)):l.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):l.tokens.unshift(h)}}else l.task&&(l.task=!1)}if(i.loose)for(let l of i.items){l.loose=!0;for(let u of l.tokens)u.type==="text"&&(u.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Mh(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:Ot(t[0],`
|
|
362
|
+
`),href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Ih(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
363
|
+
`):[],o={type:"table",raw:Ot(t[0],`
|
|
364
|
+
`),header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?o.align.push("right"):this.rules.other.tableAlignCenter.test(a)?o.align.push("center"):this.rules.other.tableAlignLeft.test(a)?o.align.push("left"):o.align.push(null);for(let a=0;a<n.length;a++)o.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:o.align[a]});for(let a of i)o.rows.push(Ih(a,o.header.length).map((s,l)=>({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[l]})));return o}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:Ot(t[0],`
|
|
365
|
+
`),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`
|
|
366
|
+
`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=Ot(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=Fb(t[2],"()");if(o===-2)return;if(o>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],i=o[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Gh(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return Gh(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=0,u=r[0][0],c=n===u,h=u==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,t=t.slice(-1*e.length+i);(r=h.exec(t))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){s+=a;continue}else if(r[5]||r[6]){if(i%3&&!((i+a)%3)){l+=a;continue}if(c)break}if(s-=a,s>0)continue;a=Math.min(a,a+s+l);let d=[...r[0]][0].length,p=e.slice(0,i+r.index+d+a);if(Math.min(i,a)%2){let w=p.slice(1,-1);return{type:"em",raw:p,text:w,tokens:this.lexer.inlineTokens(w)}}let m=p.slice(2,-2);return{type:"strong",raw:p,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+i);(r=l.exec(t))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(a=[...o].length,a!==i))continue;if(r[3]||r[4]){s+=a;continue}if(s-=a,s>0)continue;a=Math.min(a,a+s);let u=[...r[0]][0].length,c=e.slice(0,i+r.index+u+a),h=c.slice(i,-i);return{type:"del",raw:c,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},Ue=class Ja{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||an,this.options.tokenizer=this.options.tokenizer||new Ni,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:Ce,block:Ci.normal,inline:dr.normal};this.options.pedantic?(n.block=Ci.pedantic,n.inline=dr.pedantic):this.options.gfm&&(n.block=Ci.gfm,this.options.breaks?n.inline=dr.breaks:n.inline=dr.gfm),this.tokenizer.rules=n}static get rules(){return{block:Ci,inline:dr}}static lex(t,n){return new Ja(n).lex(t)}static lexInline(t,n){return new Ja(n).inlineTokens(t)}lex(t){t=t.replace(Ce.carriageReturn,`
|
|
367
|
+
`),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(Ce.tabCharGlobal," ").replace(Ce.spaceLine,""));let i=1/0;for(;t;){if(t.length<i)i=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let o;if(this.options.extensions?.block?.some(s=>(o=s.call({lexer:this},t,n))?(t=t.substring(o.raw.length),n.push(o),!0):!1))continue;if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length);let s=n.at(-1);o.raw.length===1&&s!==void 0?s.raw+=`
|
|
368
|
+
`:n.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
369
|
+
`)?"":`
|
|
370
|
+
`)+o.raw,s.text+=`
|
|
371
|
+
`+o.text,this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
372
|
+
`)?"":`
|
|
373
|
+
`)+o.raw,s.text+=`
|
|
374
|
+
`+o.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},n.push(o));continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),n.push(o);continue}let a=t;if(this.options.extensions?.startBlock){let s=1/0,l=t.slice(1),u;this.options.extensions.startBlock.forEach(c=>{u=c.call({lexer:this},l),typeof u=="number"&&u>=0&&(s=Math.min(s,u))}),s<1/0&&s>=0&&(a=t.substring(0,s+1))}if(this.state.top&&(o=this.tokenizer.paragraph(a))){let s=n.at(-1);r&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(`
|
|
375
|
+
`)?"":`
|
|
376
|
+
`)+o.raw,s.text+=`
|
|
377
|
+
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o),r=a.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(`
|
|
378
|
+
`)?"":`
|
|
379
|
+
`)+o.raw,s.text+=`
|
|
380
|
+
`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t;if(this.tokens.links){let s=Object.keys(this.tokens.links);s.length>0&&(r=r.replace(this.tokenizer.rules.inline.reflinkSearch,l=>s.includes(l.slice(l.lastIndexOf("[")+1,-1))?"["+"a".repeat(l.length-2)+"]":l))}r=r.replace(this.tokenizer.rules.inline.anyPunctuation,s=>"+".repeat(s.length)),r=r.replace(this.tokenizer.rules.inline.blockSkip,(s,l,u)=>{let c=u?u.length:0;return s.slice(0,c)+"["+"a".repeat(s.length-c-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let i=!1,o="",a=1/0;for(;t;){if(t.length<a)a=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}i||(o=""),i=!1;let s;if(this.options.extensions?.inline?.some(u=>(s=u.call({lexer:this},t,n))?(t=t.substring(s.raw.length),n.push(s),!0):!1))continue;if(s=this.tokenizer.escape(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.tag(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.link(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(s.raw.length);let u=n.at(-1);s.type==="text"&&u?.type==="text"?(u.raw+=s.raw,u.text+=s.text):n.push(s);continue}if(s=this.tokenizer.emStrong(t,r,o)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.codespan(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.br(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.del(t,r,o)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.autolink(t)){t=t.substring(s.raw.length),n.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(t))){t=t.substring(s.raw.length),n.push(s);continue}let l=t;if(this.options.extensions?.startInline){let u=1/0,c=t.slice(1),h;this.options.extensions.startInline.forEach(d=>{h=d.call({lexer:this},c),typeof h=="number"&&h>=0&&(u=Math.min(u,h))}),u<1/0&&u>=0&&(l=t.substring(0,u+1))}if(s=this.tokenizer.inlineText(l)){t=t.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(o=s.raw.slice(-1)),i=!0;let u=n.at(-1);u?.type==="text"?(u.raw+=s.raw,u.text+=s.text):n.push(s);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},Pi=class{options;parser;constructor(e){this.options=e||an}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(Ce.notSpaceStart)?.[0],i=e.replace(Ce.endingNewline,"")+`
|
|
381
|
+
`;return r?'<pre><code class="language-'+pt(r)+'">'+(n?i:pt(i,!0))+`</code></pre>
|
|
382
|
+
`:"<pre><code>"+(n?i:pt(i,!0))+`</code></pre>
|
|
383
|
+
`}blockquote({tokens:e}){return`<blockquote>
|
|
384
|
+
${this.parser.parse(e)}</blockquote>
|
|
385
|
+
`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
|
|
386
|
+
`}hr(e){return`<hr>
|
|
387
|
+
`}list(e){let t=e.ordered,n=e.start,r="";for(let a=0;a<e.items.length;a++){let s=e.items[a];r+=this.listitem(s)}let i=t?"ol":"ul",o=t&&n!==1?' start="'+n+'"':"";return"<"+i+o+`>
|
|
388
|
+
`+r+"</"+i+`>
|
|
389
|
+
`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
|
|
390
|
+
`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
|
|
391
|
+
`}table(e){let t="",n="";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r="";for(let i=0;i<e.rows.length;i++){let o=e.rows[i];n="";for(let a=0;a<o.length;a++)n+=this.tablecell(o[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
|
|
392
|
+
<thead>
|
|
393
|
+
`+t+`</thead>
|
|
394
|
+
`+r+`</table>
|
|
395
|
+
`}tablerow({text:e}){return`<tr>
|
|
396
|
+
${e}</tr>
|
|
397
|
+
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
398
|
+
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${pt(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=Dh(e);if(i===null)return r;e=i;let o='<a href="'+e+'"';return t&&(o+=' title="'+pt(t)+'"'),o+=">"+r+"</a>",o}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Dh(e);if(i===null)return pt(n);e=i;let o=`<img src="${e}" alt="${pt(n)}"`;return t&&(o+=` title="${pt(t)}"`),o+=">",o}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:pt(e.text)}},ls=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},lt=class es{options;renderer;textRenderer;constructor(t){this.options=t||an,this.options.renderer=this.options.renderer||new Pi,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ls}static parse(t,n){return new es(n).parse(t)}static parseInline(t,n){return new es(n).parseInline(t)}parse(t){this.renderer.parser=this;let n="";for(let r=0;r<t.length;r++){let i=t[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,s=this.options.extensions.renderers[a.type].call({parser:this},a);if(s!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(a.type)){n+=s||"";continue}}let o=i;switch(o.type){case"space":{n+=this.renderer.space(o);break}case"hr":{n+=this.renderer.hr(o);break}case"heading":{n+=this.renderer.heading(o);break}case"code":{n+=this.renderer.code(o);break}case"table":{n+=this.renderer.table(o);break}case"blockquote":{n+=this.renderer.blockquote(o);break}case"list":{n+=this.renderer.list(o);break}case"checkbox":{n+=this.renderer.checkbox(o);break}case"html":{n+=this.renderer.html(o);break}case"def":{n+=this.renderer.def(o);break}case"paragraph":{n+=this.renderer.paragraph(o);break}case"text":{n+=this.renderer.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(t,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<t.length;i++){let o=t[i];if(this.options.extensions?.renderers?.[o.type]){let s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(o.type)){r+=s||"";continue}}let a=o;switch(a.type){case"escape":{r+=n.text(a);break}case"html":{r+=n.html(a);break}case"link":{r+=n.link(a);break}case"image":{r+=n.image(a);break}case"checkbox":{r+=n.checkbox(a);break}case"strong":{r+=n.strong(a);break}case"em":{r+=n.em(a);break}case"codespan":{r+=n.codespan(a);break}case"br":{r+=n.br(a);break}case"del":{r+=n.del(a);break}case"text":{r+=n.text(a);break}default:{let s='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}},hr=class{options;block;constructor(e){this.options=e||an}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?Ue.lex:Ue.lexInline}provideParser(e=this.block){return e?lt.parse:lt.parseInline}},Ii=class{defaults=ts();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=lt;Renderer=Pi;TextRenderer=ls;Lexer=Ue;Tokenizer=Ni;Hooks=hr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let i=r;for(let o of i.header)n=n.concat(this.walkTokens(o.tokens,t));for(let o of i.rows)for(let a of o)n=n.concat(this.walkTokens(a.tokens,t));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(o=>{let a=i[o].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let o=t.renderers[i.name];o?t.renderers[i.name]=function(...a){let s=i.renderer.apply(this,a);return s===!1&&(s=o.apply(this,a)),s}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=t[i.level];o?o.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new Pi(this.defaults);for(let o in n.renderer){if(!(o in i))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let a=o,s=n.renderer[a],l=i[a];i[a]=(...u)=>{let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new Ni(this.defaults);for(let o in n.tokenizer){if(!(o in i))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let a=o,s=n.tokenizer[a],l=i[a];i[a]=(...u)=>{let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new hr;for(let o in n.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let a=o,s=n.hooks[a],l=i[a];hr.passThroughHooks.has(o)?i[a]=u=>{if(this.defaults.async&&hr.passThroughHooksRespectAsync.has(o))return(async()=>{let h=await s.call(i,u);return l.call(i,h)})();let c=s.call(i,u);return l.call(i,c)}:i[a]=(...u)=>{if(this.defaults.async)return(async()=>{let h=await s.apply(i,u);return h===!1&&(h=await l.apply(i,u)),h})();let c=s.apply(i,u);return c===!1&&(c=l.apply(i,u)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(a){let s=[];return s.push(o.call(this,a)),i&&(s=s.concat(i.call(this,a))),s}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Ue.lex(e,t??this.defaults)}parser(e,t){return lt.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(t):t,s=await(i.hooks?await i.hooks.provideLexer(e):e?Ue.lex:Ue.lexInline)(a,i),l=i.hooks?await i.hooks.processAllTokens(s):s;i.walkTokens&&await Promise.all(this.walkTokens(l,i.walkTokens));let u=await(i.hooks?await i.hooks.provideParser(e):e?lt.parse:lt.parseInline)(l,i);return i.hooks?await i.hooks.postprocess(u):u})().catch(o);try{i.hooks&&(t=i.hooks.preprocess(t));let a=(i.hooks?i.hooks.provideLexer(e):e?Ue.lex:Ue.lexInline)(t,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let s=(i.hooks?i.hooks.provideParser(e):e?lt.parse:lt.parseInline)(a,i);return i.hooks&&(s=i.hooks.postprocess(s)),s}catch(a){return o(a)}}}onError(e,t){return n=>{if(n.message+=`
|
|
399
|
+
Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+pt(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},on=new Ii;function re(e,t){return on.parse(e,t)}re.options=re.setOptions=function(e){return on.setOptions(e),re.defaults=on.defaults,Oh(re.defaults),re};re.getDefaults=ts;re.defaults=an;function Wb(...e){return on.use(...e),re.defaults=on.defaults,Oh(re.defaults),re}re.use=Wb;re.walkTokens=function(e,t){return on.walkTokens(e,t)};re.parseInline=on.parseInline;re.Parser=lt;re.parser=lt.parse;re.Renderer=Pi;re.TextRenderer=ls;re.Lexer=Ue;re.lexer=Ue.lex;re.Tokenizer=Ni;re.Hooks=hr;re.parse=re;var mE=re.options,vE=re.setOptions,yE=re.walkTokens,wE=re.parseInline;var bE=lt.parse,xE=Ue.lex;var qh={"&":"&","<":"<",">":">",'"':""","'":"'"},Hb=new RegExp(`[${Object.keys(qh).join("")}]`,"g");function Xe(e){return e.replace(Hb,t=>qh[t])}var Ub=["http:","https:","mailto:"],Yh=/^[a-z][a-z0-9+.-]*:/i,Xh=/[\u0000-\u0020\u00a0\u1680\u180e\u2000-\u2029\u205f\u3000]/g;function jh(e){let t=e.replace(Xh,""),n=Yh.exec(t);return n===null?t===""?null:e:Ub.includes(n[0].toLowerCase())?e:null}var Rt="data-weave-target",sn="data-weave-task";function Fi(e){return e?"Mark task incomplete":"Mark task complete"}var Gi="note:",Bb={bySpelling:new Map,hasGhosts:!1,currentSlug:null};function Kb(e){if(e.kind!=="note"||!e.id.startsWith(Gi))return null;let t=e.id.slice(Gi.length);return t===""?null:t}function Zh(e){if(e.kind!=="file"||!e.id.startsWith("artifact:"))return null;let t=e.detail.path;return t!==void 0&&/\.html?$/i.test(t)?t:null}function Qh(e){let t=Zh(e);return t===null?null:`${t}:${e.detail.updated??""}`}function Jh(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(r=>r.id===t);return n===void 0?null:Zh(n)}function ep(e,t){if(e===null)return Bb;let n=new Map;for(let i of e.model.nodes){let o=Kb(i);if(o!==null)for(let a of[o,i.label])n.set(a,o),n.set(a.toLowerCase(),o)}let r=t!==null&&(e.dangling[t]?.length??0)>0;return{bySpelling:n,hasGhosts:r,currentSlug:t}}function tp(e,t){let n=t.trim();return e.bySpelling.get(n)??e.bySpelling.get(n.toLowerCase())??null}function Vb(e,t){if(e.currentSlug===null||Yh.test(t.replace(Xh,"")))return null;try{let n=new URL(t,`https://weave.invalid/${e.currentSlug}.md`);return n.origin!=="https://weave.invalid"||!n.pathname.toLowerCase().endsWith(".md")?null:tp(e,decodeURIComponent(n.pathname.slice(1,-3)))}catch{return null}}function jb(e){return e.hasGhosts}var qb=/^\[\[([^\][|]+)(?:\|([^\]]*))?\]\]/;function Yb(e){let t=e.indexOf("[[");return t===-1?void 0:t}function Xb(e){return{name:"wikilink",level:"inline",start:Yb,tokenizer(t){return Qb(t)},renderer(t){return Zb(e,t)}}}function Zb(e,t){let n=typeof t.target=="string"?t.target:"",r=typeof t.alias=="string"?t.alias:"";return Jb(e,n,r)}function Qb(e){let t=qb.exec(e);if(t!==null)return{type:"wikilink",raw:t[0],target:t[1],alias:t[2]??""}}function Jb(e,t,n){let r=Xe((n===""?t:n).trim());if(r==="")return"";let i=tp(e,t);return i!==null?`<a class="weave-wiki" ${Rt}="${Xe(i)}" role="link" tabindex="0" title="${Xe(t.trim())}">${r}</a>`:jb(e)?`<span class="weave-wiki weave-wiki-ghost" title="no note named ${Xe(t.trim())}">${r}</span>`:r}function ex(e){let t=0;return new Ii({gfm:!0,async:!1,extensions:[Xb(e)],renderer:{checkbox({checked:n}){return`<input type="checkbox"${n?' checked=""':""} ${sn}="${t++}" aria-label="${Fi(n)}"> `},html({text:n}){return/^\s*<!--[\s\S]*?-->\s*$/.test(n)?"":Xe(n)},link({href:n,title:r,tokens:i}){let o=jh(n),a=this.parser.parseInline(i),s=o===null?null:Vb(e,o);if(s!==null){let u=r==null||r===""?"":` title="${Xe(r)}"`;return`<a class="weave-wiki" ${Rt}="${Xe(s)}" role="link" tabindex="0"${u}>${a}</a>`}return`<a${[o===null?"":` href="${Xe(o)}"`,r==null||r===""?"":` title="${Xe(r)}"`,o===null?"":' rel="noreferrer noopener" target="_blank"'].join("")}>${a}</a>`},image({href:n,title:r,text:i}){let o=jh(n);if(o===null)return Xe(i);let a=r==null||r===""?"":` title="${Xe(r)}"`;return`<img src="${Xe(o)}" alt="${Xe(i)}"${a}>`}}})}function tx(e,t){return ex(t).parse(e,{async:!1})}function Mi(e){return Object.freeze(e)}var nx=Mi({ALLOWED_TAGS:Mi(["p","br","hr","h1","h2","h3","h4","h5","h6","em","strong","del","code","pre","blockquote","ul","ol","li","a","span","img","table","thead","tbody","tr","th","td","input"]),ALLOWED_ATTR:Mi(["href","src","alt","title","class","role","tabindex","colspan","rowspan","align","type","checked","aria-label","start",Rt,sn]),ADD_URI_SAFE_ATTR:Mi([Rt,sn]),ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1});function np(e,t,n){return e.sanitize(tx(t,n),nx)}var rx=/^((?: {0,3}>[ \t]?)*[ \t]*(?:[*+-]|\d{1,9}[.)])[ \t]+\[)([ xX])(\] +\S)/;function ix(e){let t=[],n=e.replace(/\r\n?/g,`
|
|
400
|
+
`),r=0;for(let l of Ue.lex(n,{gfm:!0})){let u=n.indexOf(l.raw,r);if(u===-1||(r=u+l.raw.length,l.type!=="list"&&l.type!=="blockquote"))continue;let c=0;for(;c<l.raw.length;){let h=l.raw.indexOf(`
|
|
401
|
+
`,c),d=h===-1?l.raw.length:h,p=l.raw.slice(c,d).replace(/\r$/,""),m=rx.exec(p);m!==null&&t.push(u+c+m[1].length),c=h===-1?l.raw.length:h+1}}let i=new Ii,o=l=>{let u=[];return i.walkTokens(Ue.lex(l,{gfm:!0}),c=>{c.type==="checkbox"&&u.push(c.checked)}),u},a=o(n),s=a.map(()=>null);for(let l of t){let u=`${n.slice(0,l)}${n[l]===" "?"x":" "}${n.slice(l+1)}`,c=o(u);if(c.length!==a.length)continue;let h=-1;for(let d=0;d<a.length;d+=1)if(c[d]!==a[d]){if(h!==-1){h=-1;break}h=d}h!==-1&&(s[h]=l)}return s.map(l=>{if(l===null)return null;let u=0,c=0;for(;c<l;)u+=e[u]==="\r"&&e[u+1]===`
|
|
402
|
+
`?2:1,c+=1;return u})}function rp(e,t){if(!Number.isSafeInteger(t)||t<0)return null;let n=ix(e)[t];return n==null?null:`${e.slice(0,n)}${e[n]===" "?"x":" "}${e.slice(n+1)}`}function ip(e){let t=e?.getAttribute(sn);return t==null||!/^(?:0|[1-9]\d*)$/.test(t)?null:Number(t)}var op=32;function us(e){let t=e;for(let n=0;t!==null&&n<op;n++){let r=t.getAttribute(Rt);if(r!==null&&r!=="")return`${Gi}${r}`;t=t.parentElement}return null}function ap(e){if(!e||e.isCollapsed===!0)return!1;let t=e.toString;return(typeof t=="function"&&t!==Object.prototype.toString?t.call(e):"").length>0}var sp="edited",lp="created",up="Edit",cp="Done",dp="Save",hp="Saving…",pp="Note body",$i="Discard unsaved changes to this note?";function fp(e,t){return{title:e.title,slug:e.slug,provenance:e.source,provenanceGlyph:Zt(e.source),provenanceTitle:wn(e.source),updated:Xn(e.updated,t),updatedIso:e.updated,created:Xn(e.created,t),createdIso:e.created,tags:e.tags}}function gp(e){return`#${e}`}var ox=200,ax=8,sx="no note";function cs(e){let t=e;for(let n=0;t!==null&&n<op;n++){let r=t.getAttribute(Rt);if(r!==null&&r!=="")return{slug:r,text:(t.textContent??"").trim()};if((t.className??"").split(/\s+/).includes("weave-wiki-ghost"))return{slug:null,text:(t.textContent??"").trim()};t=t.parentElement}return null}function lx(e){return e.replace(/```[\s\S]*?(?:```|$)/g," ").replace(/~~~[\s\S]*?(?:~~~|$)/g," ").replace(/`([^`]*)`/g,"$1").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]*)(?:\|([^\]]*))?\]\]/g,(t,n,r)=>r??n).replace(/<[^>]*>/g," ").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}([-*_][ \t]?){3,}$/gm," ").replace(/^\s{0,3}[-*+]\s+/gm,"").replace(/^\s{0,3}\d+[.)]\s+/gm,"").replace(/[*_~]{1,3}([^*_~]*)[*_~]{1,3}/g,"$1").replace(/\s+/g," ").trim()}function ux(e,t=ox){let n=lx(e);if(n.length<=t)return n;let r=n.lastIndexOf(" ",t);return`${r>0?n.slice(0,r):n.slice(0,t)}…`}function mp(e,t){if(t.slug===null){let i=t.text===""?"this link":t.text;return{ghost:!0,title:i,kind:sx,text:`no note named “${i}” yet`}}let n=e?.model.nodes.find(i=>i.id===`note:${t.slug}`&&i.kind==="note");if(n===void 0)return null;let r=n.provenance===null?n.kind:`${n.kind} · ${wn(n.provenance)}`;return{ghost:!1,title:n.label,kind:r,text:ux(n.detail.preview??"")}}function vp(e,t,n,r,i,o,a=ax){let s=e+a,l=t+a;return s+n>i-a&&(s=e-a-n),l+r>o-a&&(l=t-a-r),s=Math.min(Math.max(s,a),Math.max(a,i-a-n)),l=Math.min(Math.max(l,a),Math.max(a,o-a-r)),{x:s,y:l}}var Oi={anchor:null,pointerX:0,pointerY:0};function yp(e,t){switch(t.type){case"show":return t.anchor.slug===null&&t.anchor.text===""?e:{anchor:t.anchor,pointerX:t.x,pointerY:t.y};case"hide":return e.anchor===null?e:Oi;case"dismiss":return Oi}}function wp(e,t,n=!1){return t!==null?null:e===null?"Nothing open — search with ⌘K, or walk the tree with j and k.":n?"Couldn’t load this note — retrying…":e.startsWith(Gi)?"Loading…":"This node has no note body — see the context rail for what it connects to."}function zi(){let e=new Map,t=new Map,n=new Set,r=0,i=()=>n.forEach(o=>o());return{get:o=>e.get(o)??null,subscribe(o){return n.add(o),()=>n.delete(o)},open(o,a){e.has(o)||(e.set(o,{body:a,baseline:a,saving:!1}),i())},edit(o,a){let s=e.get(o);s===void 0||s.body===a||(s.body=a,i())},discard(o){e.delete(o)&&i()},isDirty(o){let a=e.get(o);return a!==void 0&&a.body!==a.baseline},dirtySlugs(){return[...e].filter(([,o])=>o.body!==o.baseline).map(([o])=>o)},async save(o,a){let s=e.get(o);if(s===void 0||s.saving||t.get(o)?.saving)return;let l=s.body;s.saving=!0,i();let u=!1;try{u=await a(o,l)}finally{if(e.get(o)===s){let c=t.get(o);u&&c!==void 0&&(c.body=l,c.version=++r,delete c.pending),u&&s.body===l?e.delete(o):(u&&(s.baseline=l),s.saving=!1),i()}}},nextLoadVersion(){return++r},getTaskBody(o,a){return t.get(o)?.body??a},taskBody(o,a,s){let l=t.get(o),u=!1;return l===void 0?(l={body:a,version:s,saving:!1},t.set(o,l)):s>l.version&&(l.saving?(l.pending===void 0||s>l.pending.version)&&(l.pending={body:a,version:s}):(u=l.body!==a,l.body=a,l.version=s)),u&&i(),l.body},isTaskSaving:o=>t.get(o)?.saving??!1,async saveTask(o,a,s){let l=t.get(o);if(l===void 0||l.saving||e.get(o)?.saving)return!1;l.saving=!0,i();let u=!1;try{return u=await s(o,a),u}finally{t.get(o)===l&&(u?(l.body=a,l.version=++r):l.pending!==void 0&&l.pending.version>l.version&&(l.body=l.pending.body,l.version=l.pending.version),delete l.pending,l.saving=!1,i())}},clearTaskSources(o){let a=!1;for(let s of o)a=t.delete(s)||a;a&&i()}}}function bp(e,t,n,r){let i=new Set(t.panes.flatMap(s=>s.tabs.map(yt))),o=new Set(n.panes.flatMap(s=>s.tabs.map(yt))),a=[...i].filter(s=>s!==null&&s.startsWith("note:")&&!o.has(s)).map(s=>s.slice(5));return a.some(s=>e.isDirty(s))&&!r()?!1:(a.forEach(s=>e.discard(s)),e.clearTaskSources(a),!0)}function xp(e,t,n){let r=new Set(t);return e.dirtySlugs().filter(o=>r.has(o)).length>0&&!n()?!1:(r.forEach(o=>e.discard(o)),e.clearTaskSources([...r]),!0)}var cx="weave-preview-x",dx="weave-preview-y";function hx({view:e,open:t,editing:n,saving:r,taskSaving:i,onToggle:o,onSave:a}){return g("header",{class:"weave-note-head",children:[g("h3",{class:"weave-note-title",children:e.title}),g("p",{class:"weave-note-meta",children:[n?g(De,{children:[g("button",{type:"button",class:"weave-note-save",disabled:r||i,onClick:a,children:r?hp:dp}),g("button",{type:"button",class:"weave-note-edit",disabled:i,onClick:o,children:cp})]}):g("button",{type:"button",class:"weave-note-edit",disabled:i,onClick:o,children:up}),g("button",{type:"button",class:"weave-note-open",title:"Open in $EDITOR","aria-label":"Open in $EDITOR",onClick:t,children:g("span",{class:"weave-note-open-mark","aria-hidden":"true",children:"↗"})}),g("span",{class:`weave-prov weave-prov-${e.provenance}`,title:e.provenanceTitle,children:[e.provenanceGlyph," ",e.provenance]}),g("span",{class:"weave-note-time",title:e.updatedIso,children:[sp," ",e.updated]}),g("span",{class:"weave-note-time",title:e.createdIso,children:[lp," ",e.created]})]}),g("p",{class:"weave-note-tags",children:e.tags.map(s=>g("span",{class:"weave-tag",children:gp(s)},s))})]})}function kp(e){let t=X(zi()),n=e.drafts??t.current,r=nu(),i=`${e.idPrefix??r}-weave-preview`,[o,a]=V(0);se(()=>n.subscribe(()=>a(T=>T+1)),[n]);let s=e.note?.note??null,l=s===null?"":n.getTaskBody(s.slug,s.body),u=Jh(e.graph,e.selectedId),c=wp(e.selectedId,s,e.loadFailed),h=Kt(()=>s===null?null:ep(e.graph,s.slug),[s,e.graph]),d=Kt(()=>s===null||h===null?"":np(Ch,l,h),[s,l,h]),[p,m]=V(Oi),w=T=>{m(C=>yp(C,T))},v=X(null),b=X(null),y=s===null?null:n.get(s.slug),x=s!==null&&n.isTaskSaving(s.slug),k=async()=>{s!==null&&!n.isTaskSaving(s.slug)&&await n.save(s.slug,e.onSave)},N=async(T,C)=>{let W=()=>{T.checked=!T.checked,T.setAttribute("aria-label",Fi(T.checked))};if(s===null||n.isTaskSaving(s.slug)){W();return}let j=rp(n.getTaskBody(s.slug,s.body),C);if(j===null){W();return}let Y=[...v.current?.querySelectorAll(`input[${sn}]`)??[]];T.setAttribute("aria-label",Fi(T.checked));for(let ie of Y)ie.disabled=!0;try{await n.saveTask(s.slug,j,e.onSave)||W()}catch(ie){throw W(),ie}finally{for(let ie of Y)ie.disabled=n.isTaskSaving(s.slug)}},A=()=>{s===null||n.isTaskSaving(s.slug)||(n.get(s.slug)===null?n.open(s.slug,l):(!n.isDirty(s.slug)||window.confirm($i))&&n.discard(s.slug))},P=p.anchor===null?null:mp(e.graph,p.anchor);if(Qe(()=>{s!==null&&n.taskBody(s.slug,s.body,e.loadVersion)},[n,s===null?null:s.slug,s?.body,e.loadVersion]),Qe(()=>{w({type:"hide"})},[s===null?null:s.slug]),Qe(()=>{if(s===null)return;let T=n.isTaskSaving(s.slug);for(let C of v.current?.querySelectorAll(`input[${sn}]`)??[])C.disabled=T},[s===null?null:s.slug,o,d]),Qe(()=>{let T=v.current;if(T!==null){let j=p.anchor?.slug??null;for(let Y of T.querySelectorAll(`a[${Rt}]`))j!==null&&Y.getAttribute(Rt)===j?Y.setAttribute("aria-describedby",i):Y.removeAttribute("aria-describedby")}let C=b.current;if(C===null||P===null)return;let W=vp(p.pointerX,p.pointerY,C.offsetWidth,C.offsetHeight,window.innerWidth,window.innerHeight);C.style.setProperty(`--${cx}`,`${W.x}px`),C.style.setProperty(`--${dx}`,`${W.y}px`)},[p,P,i]),u!==null){let T=e.graph?.model.nodes.find(j=>j.id===e.selectedId),C=T?.label??u,W=T===void 0?u:Qh(T)??u;return g("article",{class:"weave-note weave-note-artifact",children:[g("header",{class:"weave-note-head",children:[g("h3",{class:"weave-note-title",children:C}),g("p",{class:"weave-note-meta",children:g("span",{class:"weave-note-time",children:u})})]}),g("iframe",{class:"weave-artifact-frame",title:C,sandbox:"allow-scripts",src:`/api/artifact/${encodeURIComponent(u)}`},W)]},W)}if(s===null||h===null)return g("p",{class:"weave-note-empty",children:c});let F=fp(s,e.now);return g("article",{class:`weave-note weave-note-${F.provenance}`,children:[g(hx,{view:F,open:()=>e.onOpen(s.slug),editing:y!==null,saving:y?.saving??!1,taskSaving:x,onToggle:A,onSave:()=>{k()}}),y!==null?g("textarea",{class:"weave-note-editor","aria-label":pp,spellcheck:!0,value:y.body,onInput:T=>n.edit(s.slug,T.target.value),onKeyDown:T=>{if(T.key==="Escape"){T.stopPropagation(),A();return}T.key.toLowerCase()!=="s"||!(T.metaKey||T.ctrlKey)||(T.preventDefault(),k())}}):g("div",{ref:v,class:"weave-note-body",tabIndex:-1,onMouseOver:T=>{let C=cs(T.target);w(C!==null?{type:"show",anchor:C,x:T.clientX,y:T.clientY}:{type:"hide"})},onMouseLeave:()=>w({type:"hide"}),onFocus:T=>{let C=cs(T.target);if(C===null)return;let W=T.target.getBoundingClientRect?.();w({type:"show",anchor:C,x:W?.left??0,y:W?.bottom??0})},onBlur:()=>w({type:"hide"}),onClick:T=>{let C=T.target,W=ip(C);if(W!==null){N(C,W);return}let j=typeof window<"u"&&typeof window.getSelection=="function"?window.getSelection():null;if(ap(j))return;let Y=us(T.target);Y!==null&&e.onSelect(Y,T.metaKey||T.ctrlKey||T.shiftKey)},onKeyDown:T=>{if(T.key==="Escape"&&p.anchor!==null){T.stopPropagation(),w({type:"dismiss"});return}if(T.key!=="Enter"&&T.key!==" ")return;let C=us(T.target);C!==null&&(T.preventDefault(),e.onSelect(C,T.metaKey||T.ctrlKey||T.shiftKey))},dangerouslySetInnerHTML:{__html:d}}),P===null?null:g("div",{ref:b,id:i,role:"tooltip",class:`weave-preview${P.ghost?" weave-preview-ghost":""}`,children:[g("span",{class:"weave-preview-kind",children:P.kind}),g("span",{class:"weave-preview-title",children:P.title}),P.text===""?null:g("p",{class:"weave-preview-text",children:P.text})]})]},s.slug)}var _p=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Ep(e,t,n){return e===0?null:e===1?0:t<0?n?e-1:0:n?t===0?e-1:t-1:t===e-1?0:t+1}function Sp(e,t,n,r){return e==="Tab"&&!t&&!n&&!r}function Tp(e){return e===null?!1:(e.focus(),!0)}function Wi(){let e=X(null);return se(()=>{let t=document.activeElement;return e.current?.focus(),()=>{Tp(t instanceof HTMLElement?t:null)}},[]),{ref:e,onKeyDown(t){if(!Sp(t.key,t.ctrlKey,t.metaKey,t.altKey))return!1;let n=[...e.current?.querySelectorAll(_p)??[]],r=Ep(n.length,n.indexOf(document.activeElement),t.shiftKey);return r===null?!1:(t.preventDefault(),n[r]?.focus(),!0)}}}function Cp(e,t){let n=t.trim().toLowerCase();if(!n)return 0;let r=e.toLowerCase(),i=r.indexOf(n);return i<0?0:r===n?100:i===0?70:/[a-z0-9]/.test(r.charAt(i-1))?30:50}function px(e){return Math.min(Math.max(e,0),10)*2}function fx(e){return`note:${e}`}function gx(e,t){return Cp(e.summary.title,t)+px(e.score)}function mx(e,t){return Cp(e.label,t)}var vx=["path","manifest","url","slug"];function yx(e){for(let t of vx){let n=e.detail[t];if(typeof n=="string"&&n)return n}return""}function wx(e,t){return e.score!==t.score?t.score-e.score:e.kind!==t.kind?e.kind==="note"?-1:1:e.label.localeCompare(t.label)||e.id.localeCompare(t.id)}function bx(e,t,n,r){let i=new Map;for(let o of e){let a=fx(o.summary.slug);i.set(a,{id:a,kind:"note",label:o.summary.title,detail:o.snippet,badge:"note",score:gx(o,t)})}for(let o of n){if(i.has(o.id))continue;let a=mx(o,r);a&&i.set(o.id,{id:o.id,kind:"node",label:o.label,detail:yx(o),badge:o.kind,score:a})}return[...i.values()].sort(wx).slice(0,20)}function Lp(){return{query:"",answered:"",hits:[],cursor:0,loading:!1,failed:!1}}function ds(e,t){return t<=0?0:Math.min(Math.max(e,0),t-1)}function Rp(e,t,n){return n<=0?0:((e+t)%n+n)%n}function Np(e,t){return t===null?null:e[t]?.id??null}function Pp(e,t,n){let r={cursor:e,activate:null,dismiss:!1,handled:!1},i=ds(e,n);return t==="ArrowDown"?{...r,cursor:Rp(i,1,n),handled:!0}:t==="ArrowUp"?{...r,cursor:Rp(i,-1,n),handled:!0}:t==="Home"?{...r,cursor:0,handled:!0}:t==="End"?{...r,cursor:ds(n-1,n),handled:!0}:t==="Escape"?{...r,dismiss:!0,handled:!0}:t!=="Enter"||n===0?r:{...r,cursor:i,activate:i,dismiss:!0,handled:!0}}var Hi="Search the workspace",Dp="Search notes and repository…",Ip="↑↓ move · ↵ open · esc close";function xx(e,t){return e.query.trim()?t>0?null:e.failed?"search failed — the workspace server may be gone":e.loading?"searching…":`no matches for “${e.query.trim()}”`:"Type to search notes, modules, files and entry points."}function kx(e){return e===1?"1 result":`${e} results`}function Ap(e){return`weave-search-row-${e}`}function Mp(e,t){let n=bx(e.hits,e.answered,t?.model.nodes??[],e.query),r=ds(e.cursor,n.length);return{rows:n.map((o,a)=>({...o,active:a===r,domId:Ap(a)})),status:xx(e,n.length),count:n.length,countLabel:kx(n.length),cursor:r,activeDomId:n.length?Ap(r):null}}function Ex({row:e,onPick:t,onHover:n}){return g("li",{id:e.domId,role:"option","aria-selected":e.active,class:`weave-hit weave-hit-${e.kind}${e.active?" weave-hit-on":""}`,onMouseMove:n,onClick:r=>t(r.metaKey||r.ctrlKey),children:[g("span",{class:"weave-hit-badge",children:e.badge}),g("span",{class:"weave-hit-label",children:e.label}),g("span",{class:"weave-hit-detail",children:e.detail})]})}function Gp(e){let[t,n]=V(Lp),r=X(0),i=X(null),o=Wi(),a=X(null);se(()=>{a.current?.focus()},[]),se(()=>{let u=t.query.trim(),c=!0;if(!u)return i.current?.abort(),n(d=>({...d,hits:[],answered:"",loading:!1,failed:!1})),()=>{c=!1};let h=window.setTimeout(async()=>{let d=++r.current;i.current?.abort();let p=new AbortController;i.current=p,n(w=>({...w,loading:!0,failed:!1}));let m=await du(e.ports.fetch,u,p.signal);!c||p.signal.aborted||d!==r.current||n(w=>m.ok?{...w,hits:m.data.hits,answered:u,loading:!1,failed:!1,cursor:0}:{...w,loading:!1,failed:!0})},140);return()=>{c=!1,window.clearTimeout(h),i.current?.abort()}},[t.query,e.ports.fetch]);let s=Mp(t,e.graph),l=(u,c=!1)=>{let h=Np(s.rows,u);h!==null&&e.onSelect(h,c),e.onClose()};return g("div",{class:"weave-scrim",onClick:()=>l(null),children:g("div",{class:"weave-palette",role:"dialog","aria-modal":"true","aria-label":Hi,tabIndex:-1,ref:o.ref,onClick:u=>u.stopPropagation(),onKeyDown:u=>{if(o.onKeyDown(u))return;let c=Pp(t.cursor,u.key,s.count);c.handled&&(u.preventDefault(),n(h=>({...h,cursor:c.cursor})),c.dismiss&&l(c.activate,u.metaKey||u.ctrlKey))},children:[g("input",{type:"search",class:"weave-palette-input",ref:a,value:t.query,placeholder:Dp,"aria-label":Hi,"aria-controls":"weave-search-results","aria-activedescendant":s.activeDomId??void 0,onInput:u=>n(c=>({...c,query:u.currentTarget.value,cursor:0}))}),s.status===null?g("ul",{id:"weave-search-results",class:"weave-hits",role:"listbox","aria-label":Hi,children:s.rows.map((u,c)=>g(Ex,{row:u,onPick:h=>l(c,h),onHover:()=>n(h=>({...h,cursor:c}))},u.id))}):g("p",{class:"weave-palette-status",role:"status",children:s.status}),g("p",{class:"weave-palette-foot",children:[g("span",{children:s.countLabel}),g("button",{type:"button",class:"weave-chip",disabled:s.count===0,onClick:()=>l(t.cursor,!0),children:"Open in new tab"}),g("span",{class:"weave-palette-hint",children:[Ip," · ⌘/Ctrl ↵ new tab"]})]})]})})}function hs(){return{graph:null,graphFailed:!1,note:null,noteFailed:!1,recentIds:new Set,selectedId:null}}var Fp=2e3,Sx=3e3,$p=new Set;function Tx(e,t){if(e===null)return $p;let n=new Set(e.model.nodes.map(r=>r.id));return new Set(t.model.nodes.filter(r=>!n.has(r.id)).map(r=>r.id))}function Op(e){if(e===null||!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}function zp(e){let t=e.state,n=!1,r=!1,i=null,o=d=>{Object.entries(d).every(([p,m])=>t[p]===m)||(t={...t,...d},e.setState(t))},a=e.defer??((d,p)=>{let m=setTimeout(d,p);return()=>clearTimeout(m)}),s=async()=>{let d=Op(t.selectedId);if(d===null){o({note:null,noteFailed:!1});return}let p=await Yo(e.fetch,d);p.ok?o({note:p.data,noteFailed:!1}):o({note:null,noteFailed:!0})},l=async()=>{let d=t.graph,p=await cu(e.fetch,t.graph);if(!p.ok)return t.graph===null&&o({graphFailed:!0}),p;if(!p.cached){let m=Tx(d,p.data);o({graph:p.data,graphFailed:!1,recentIds:m}),i?.(),i=null,m.size>0&&(i=a(()=>{i=null,o({recentIds:$p})},Sx))}return p},u=async()=>{if(!(n||r)){r=!0;try{let d=await l();Op(t.selectedId)!==null&&(t.note===null||d.ok&&!d.cached)&&await s()}finally{r=!1}}},h=(e.repeat??((d,p)=>{let m=setInterval(d,p);return()=>clearInterval(m)}))(()=>{u()},Fp);return u(),{refresh:()=>{u()},select:async d=>{o({selectedId:d}),await s()},syncNote:s,stop:()=>{n||(n=!0,h(),i?.(),i=null)}}}function Wp(e,t,n,r=(i,o)=>{let a=setTimeout(i,o);return()=>clearTimeout(a)}){let i=!1,o=null,a=async()=>{if(i)return;let s=await Yo(e,t);i||(n(s),s.ok||(o=r(()=>{a()},Fp)))};return a(),()=>{i=!0,o?.()}}var gr={links:"LINKS",backlinks:"BACKLINKS",tags:"TAGS",mentions:"MENTIONS"};function Bi(e,t,n){return{id:e,target:t.id,label:je(t),kind:t.kind,kindIcon:Xt(t.kind),provenance:t.provenance,provenanceGlyph:Zt(t.provenance),provenanceTitle:wn(t.provenance),selected:t.id===n}}function Rx(e,t,n){let r=e.target;if(r===void 0)return null;let i=t.get(r);return i===void 0?null:Bi(e.id,i,n)}function Ax(e){let t=new Map;for(let n of e.nodes)t.set(n.id,n);return t}var Cx=["link:links-to:"];function Lx(e){return Cx.some(t=>e.id.startsWith(t))}function Nx(e){return e.id.startsWith("link:mentions:")}function Px(e,t,n,r){let i=[];for(let[o,a]of Object.entries(e.tags)){if(!a.includes(t))continue;let s=[];for(let l of a){if(l===t)continue;let u=n.get(`note:${l}`);u!==void 0&&s.push(Bi(`tag:${o}:${l}`,u,r))}i.push({tag:o,count:a.length,siblings:s})}return i}function Dx(e,t,n,r){let i=[];for(let o of e.edges){if(o.kind!=="mentions"||o.target!==t)continue;let a=n.get(o.source);a!==void 0&&i.push(Bi(`mentioned-by:${o.source}`,a,r))}return i}function Ix(e){if(!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}var Ui={loading:"Loading…",noSelection:"Select anything to see what it connects to.",unknown:"This node is not in the current graph.",isolated:"Nothing links to or from this yet."};function ps(e){return{subject:null,groups:[],tags:[],tagsCount:0,empty:e}}function Hp(e,t){if(e===null)return ps(Ui.loading);if(t===null)return ps(Ui.noSelection);let n=qt(e),r=ea(n,t);if(r===null)return ps(Ui.unknown);let i=Ax(n),o=[],a=(h,d)=>{d.length>0&&o.push({heading:h,count:d.length,rows:d})},s=h=>h.map(d=>Rx(d,i,t)).filter(d=>d!==null);a(gr.links,s(r.links.filter(Lx)));let l=ta(n.edges).get(t)??[];a(gr.backlinks,l.map(h=>i.get(h)).filter(h=>h!==void 0).map(h=>Bi(`backlink:${h.id}`,h,t))),a(gr.mentions,[...s(r.links.filter(Nx)),...Dx(n,t,i,t)]);let u=Ix(t),c=u===null?[]:Px(e,u,i,t);return o.length===0&&c.length===0?{subject:r.label,groups:[],tags:[],tagsCount:0,empty:Ui.isolated}:{subject:r.label,groups:o,tags:c,tagsCount:c.length,empty:null}}function Up(){return{open:new Set,closed:new Set}}var Mx=8;function Bp(e,t,n,r){return r?!1:e.closed.has(t)?!0:e.open.has(t)?!1:n>Mx}function Gx(e){return e.some(t=>t.selected)}function Kp(e,t){let n=Bp(t,e.heading,e.count,Gx(e.rows));return{heading:e.heading,count:e.count,collapsed:n,rows:n?[]:e.rows}}function Vp(e,t){let n=Bp(t,gr.tags,e.length,e.some(r=>r.siblings.some(i=>i.selected)));return{heading:gr.tags,count:e.length,collapsed:n,rows:[]}}function jp(e,t,n){let r=new Set(e.open),i=new Set(e.closed);return n?(r.add(t),i.delete(t)):(i.add(t),r.delete(t)),{open:r,closed:i}}function Ki(e){return`weave-ctx-panel-${e.toLowerCase()}`}function qp({row:e,onSelect:t}){return g("li",{class:`weave-ctx-row${e.selected?" weave-row-on":""}`,children:g("button",{type:"button",class:"weave-ctx-link",onClick:n=>t(n.metaKey||n.ctrlKey),children:[g("span",{class:"weave-kind","aria-hidden":"true",children:g(xt,{name:e.kindIcon,class:"weave-icon"})}),g("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),g("span",{class:"weave-label",children:e.label})]})})}function Yp({view:e,onToggle:t}){return g("h4",{class:"weave-ctx-head",children:g("button",{type:"button",class:"weave-ctx-heading","aria-expanded":!e.collapsed,"aria-controls":Ki(e.heading),onClick:t,children:[g("span",{class:"weave-ctx-chevron","aria-hidden":"true",children:g(xt,{name:"chevron",class:e.collapsed?"weave-icon":"weave-icon weave-icon-open"})}),e.heading,g("span",{class:"weave-ctx-count",children:e.count})]})})}function Ox({view:e,onSelect:t,onToggle:n}){return g("section",{class:"weave-ctx-group",children:[g(Yp,{view:e,onToggle:n}),g("ul",{class:"weave-ctx-rows",id:Ki(e.heading),hidden:e.collapsed,children:e.rows.map(r=>g(qp,{row:r,onSelect:i=>t(r.target,i)},r.id))})]})}function Fx({tag:e,onSelect:t}){return g("li",{class:"weave-ctx-tag",children:[g("span",{class:"weave-tag",children:["#",e.tag]}),g("ul",{class:"weave-ctx-rows",children:e.siblings.map(n=>g(qp,{row:n,onSelect:r=>t(n.target,r)},n.id))})]})}function Xp(e){let t=Hp(e.graph,e.selectedId),[n,r]=V(Up),i=a=>()=>r(jp(n,a.heading,a.collapsed)),o=Vp(t.tags,n);return g("div",{class:"weave-rail","aria-label":Cc.title,children:[t.empty===null?null:g("p",{class:"weave-ctx-empty",children:t.empty}),t.groups.map(a=>{let s=Kp(a,n);return g(Ox,{view:s,onSelect:e.onSelect,onToggle:i(s)},a.heading)}),t.tags.length===0?null:g("section",{class:"weave-ctx-group",children:[g(Yp,{view:o,onToggle:i(o)}),g("ul",{class:"weave-ctx-tags",id:Ki(o.heading),hidden:o.collapsed,children:t.tags.map(a=>g(Fx,{tag:a,onSelect:e.onSelect},a.tag))})]})]})}function $x(e){if(e===""||e==="#")return null;let t=e.slice(1),n=/^note[/:](.+)$/.exec(t);return n===null?null:`note:${n[1]}`}function Zp(e,t){let n=$x(e);return n===null||t===null?null:t.model.nodes.some(r=>r.id===n)?n:null}function Qp(e){let t=e===null?null:e.startsWith("note:")?e.slice(5):null;return t===null||t===""?"":`#note/${t}`}function zx({group:e}){return g("div",{children:[g("p",{class:"weave-key-group",children:e.title}),e.entries.map(t=>g("div",{class:"weave-key-row",children:[g("kbd",{class:"weave-key-combo",children:t.combo}),g("span",{class:"weave-key-what",children:t.what})]},t.combo))]})}function Jp(e){let t=Wi(),n=e.shortcut.slice(0,-1);return g("div",{class:"weave-scrim",onClick:e.onClose,children:g("div",{class:"weave-help",role:"dialog","aria-modal":"true","aria-label":ma,tabIndex:-1,ref:t.ref,onClick:r=>r.stopPropagation(),onKeyDown:r=>{t.onKeyDown(r)},children:[g("h2",{class:"weave-help-title",children:ma}),g("div",{class:"weave-keys",children:$c(n).map(r=>g(zx,{group:r},r.title))}),g("p",{class:"weave-help-foot",children:[g("button",{type:"button",class:"weave-chip",onClick:e.onClose,children:"close"}),g("span",{class:"weave-help-hint",children:zc})]})]})})}function ef(e,t){let n=r=>{if(r.defaultPrevented)return;let i=Gc(Oc(r),t.context());i!==null&&(r.preventDefault(),t.run(i))};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)}function tf({model:e}){return g("footer",{class:"weave-status",children:[g("span",{class:"weave-status-cwd",title:e.cwd,children:e.cwd}),g("span",{class:"weave-status-sel",title:"Current item",children:e.selection}),g("span",{class:"weave-status-stamp",title:"data as of",children:Pc(e.stamp)})]})}var fs=["system","light","dark"],nf="pi-weave.theme.v1";function Wx(e){return e==="system"||e==="light"||e==="dark"}function Vi(e){try{let t=e.getItem(nf);return Wx(t)?t:null}catch{return null}}function rf(e,t){try{return e.setItem(nf,t),!0}catch{return!1}}function ji(e){let t=fs.indexOf(e);return fs[(t+1)%fs.length]??"system"}function of(e,t){return e==="system"?t:e}function qi(e){return e==="system"?null:e}var Hx={dark:"●",system:"◐",light:"○"};function af(e){return{glyph:Hx[e],hint:`Colour theme: ${e} — click for ${ji(e)}`}}function Yi(e,t){if(e.kind==="graph")return"Graph view";let n=yt(e);return n===null?"New tab":t?.model.nodes.find(r=>r.id===n)?.label??n.replace(/^[^:]+:/,"")}function Ux(e){let[t]=V(e.visits);return g("div",{class:"weave-recents",children:Ac(t,e.graph,e.selectedId).map(n=>g("button",{type:"button","aria-current":n.selected?"page":void 0,title:n.label,onClick:r=>e.onSelect(n.id,r.metaKey||r.ctrlKey),children:[g("span",{class:"weave-kind",children:g(xt,{name:n.icon,class:"weave-icon"})}),g("span",{class:"weave-recent-label",children:n.label})]},n.id))})}function Bx(e){let t=yt(e.tab),n=t?.startsWith("note:")?t.slice(5):null,[r,i]=V(null),o=X(null),a=X(e.tab.scroll);se(()=>{if(n===null)return;let u=e.drafts.nextLoadVersion();return Wp(Me,n,c=>{i({slug:n,note:c.ok?c.data:null,failed:!c.ok,version:u})})},[n,e.graph?.stamp,e.revision]);let s=r?.slug===n?r:null;if(Qe(()=>{let u=o.current?.querySelector(".weave-note");u!=null&&(u.scrollTop=a.current)},[t,s?.note?.note.slug]),t===null)return g("div",{class:"weave-welcome",children:[g("span",{class:"weave-welcome-mark","aria-hidden":"true",children:"✳"}),g("h1",{children:"Your knowledge, connected."}),g("p",{children:"Open a note from the sidebar, find something you remember, or follow a connection."}),g("div",{children:[g("button",{type:"button",onClick:e.onSearch,children:["Search workspace ",g("kbd",{children:"⌘K"})]}),g("button",{type:"button",onClick:e.onGraph,children:"Explore graph"})]})]});let l=e.graph!==null&&!e.graph.model.nodes.some(u=>u.id===t);if(l||s?.failed&&e.drafts.isDirty(n??"")){let u=n===null?null:e.drafts.get(n);return u!==null&&n!==null&&e.drafts.isDirty(n)?g("div",{class:"weave-welcome",children:[g("h2",{children:l?"This item is no longer here":"This note could not be loaded"}),g("p",{children:["Your unsaved draft is preserved below. Select and copy it before closing this workspace. ",l?"Saving cannot restore or recreate the missing note.":"Reopen this tab to retry loading the note."]}),g("label",{class:"weave-note-meta",for:`missing-draft-${e.tab.id}`,children:"Unsaved draft (read-only)"}),g("textarea",{id:`missing-draft-${e.tab.id}`,class:"weave-note-editor","aria-label":"Unsaved draft for missing note",rows:16,readOnly:!0,value:u.body}),g("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]}):g("div",{class:"weave-welcome",children:[g("h2",{children:"This item is no longer here"}),g("p",{children:"It may have been moved or deleted. Your other tabs are still available."}),g("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]})}return g("div",{class:"weave-document",ref:o,onScrollCapture:u=>{let c=u.target;c.classList.contains("weave-note")&&(a.current=c.scrollTop,e.onScroll(c.scrollTop))},children:g(kp,{note:s?.note??null,loadFailed:s?.failed??!1,loadVersion:s?.version??0,graph:e.graph,selectedId:t,onSelect:e.onSelect,onOpen:u=>{hu(Me,u).then(c=>{c.ok?c.data.opened||window.alert("Could not open the note in an editor."):window.alert(c.message)})},onSave:e.onSave,drafts:e.drafts,idPrefix:e.tab.id,now:e.now})})}function gs(e){let t=X(null);return g("div",{class:"weave-workspace-divider",role:"separator",tabIndex:0,"aria-label":e.label,"aria-orientation":e.horizontal?"horizontal":"vertical","aria-valuenow":Math.round(e.value),"aria-valuemin":e.min,"aria-valuemax":e.max,onPointerDown:n=>{t.current=e.horizontal?n.clientY:n.clientX,n.currentTarget.setPointerCapture(n.pointerId)},onPointerMove:n=>{if(t.current===null)return;let r=e.horizontal?n.clientY:n.clientX;e.onChange(r-t.current),t.current=r},onPointerUp:n=>{t.current=null,n.currentTarget.releasePointerCapture(n.pointerId)},onPointerCancel:()=>{t.current=null},onKeyDown:n=>{["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(n.key)&&(n.preventDefault(),e.onChange(n.key==="ArrowLeft"||n.key==="ArrowUp"?-20:20))}})}function sf(e){let[t,n]=V(hs),[r,i]=V(()=>({...iu(),theme:Vi(localStorage)??"system"})),[o,a]=V(null),[s,l]=V(Date.now),[u,c]=V(e.initialWidth),[h,d]=V(()=>ii(window)),[p,m]=V(!1),[w,v]=V(!1),[b,y]=V(0),[,x]=V(0),[k,N]=V(null),[A,P]=V(null),F=X(null),[T,C]=V(null),[W,j]=V(!1),[Y,ie]=V([]),[ce,Fe]=V(!1),[Te]=V(zi),_e=X(null),Ee=X(null),Be=X(location.hash),Ke=X(!1),Ze=X(null),Le=X(null),Q=X(null),[Ft,Xi]=V({left:0,top:0,width:600,height:500}),Zi=Yn(r),mr=mn(r),Dn=af(r.theme),Ve=mr.kind==="graph"?k:yt(mr),Ne=r.panes.find(E=>E.tabs.some(I=>I.id===E.activeTab&&I.kind==="graph")),ft=Ne!==void 0&&(u>=850||Ne.id===r.activePane),$t=u<1050?ce:r.contextVisible,oe=r.panes.some(E=>E.tabs.some(I=>I.kind==="graph")),$e=X({layout:r,overlay:o,selectedId:Ve,graphPreviewId:A,select:E=>{}}),J=E=>{$e.current.graphPreviewId=E,P(E)};se(()=>{ft||J(null)},[ft]);let gt=E=>{bp(Te,$e.current.layout,E,()=>window.confirm($i))&&i(E)},pe=(E,I=!1,K=r.activePane,O=!1)=>{let B=Vr(r,E,{newTab:I,paneId:K});gt(u<850&&!O?{...B,treeVisible:!1}:B),Fe(!1)},At=()=>i(E=>({...Ho(E),...u<850?{treeVisible:!1}:{}})),In=E=>{J(null);let I=r.panes.find(K=>K.id!==Ne?.id);pe(E,!0,I?.id??Ne?.id??r.activePane)},ut=E=>{N(E),Rc($e.current.graphPreviewId,E)?In(E):J(E)};$e.current={layout:r,overlay:o,selectedId:Ve,graphPreviewId:A,select:pe};let vr=E=>xp(Te,E,()=>window.confirm("Discard unsaved changes to the affected notes before changing files?")),Mn=async(E,I)=>{let K=await pu(Me,E,I);return K.ok?(y(O=>O+1),_e.current?.refresh(),!0):(window.alert(K.message),!1)};se(()=>Te.subscribe(()=>x(E=>E+1)),[Te]),se(()=>(_e.current=zp({fetch:Me,state:hs(),setState:n}),()=>_e.current?.stop()),[]),se(()=>{let E=!0;return(async()=>{try{let I=await Me("/api/workspace-state"),K=await I.json();if(!E)return;if(I.ok&&typeof K.viewId=="string"){Ee.current=K.viewId;let O=su(K.layout);O&&(i(O),ie(O.panes.flatMap(B=>B.tabs.flatMap(be=>be.history)).reduce(da,[])))}else v(!0)}catch{E&&v(!0)}finally{E&&m(!0)}})(),()=>{E=!1}},[]),se(()=>{if(!p||t.graph===null||Ke.current)return;Ke.current=!0;let E=Zp(Be.current,t.graph);E!==null&&i(I=>Vr(I,E))},[p,t.graph]),se(()=>{p&&ie(E=>da(E,Ve))},[p,Ve]),se(()=>{if(!p)return;history.replaceState(null,"",Qp(Ve));let E=qi(r.theme);E===null?delete document.documentElement.dataset.weaveTheme:document.documentElement.dataset.weaveTheme=E,rf(localStorage,r.theme)},[p,Ve,r.theme]);let Gn=X(Promise.resolve());se(()=>{if(!p||!Ee.current)return;let E=Ee.current,I=window.setTimeout(()=>{Gn.current=Gn.current.then(async()=>{try{let K=await Me("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:E,layout:r})});v(!K.ok)}catch{v(!0)}})},350);return()=>window.clearTimeout(I)},[r,p]),se(()=>{let E=window.setInterval(()=>l(Date.now()),Dc),I=()=>c(window.innerWidth);window.addEventListener("resize",I);let K=kc(window,d),O=rt=>{for(let Ct of document.querySelectorAll(".weave-pane-menu[open]"))Ct.contains(rt.target)||(Ct.open=!1)};document.addEventListener("pointerdown",O);let B=rt=>{Te.dirtySlugs().length&&(rt.preventDefault(),rt.returnValue="")},be=()=>{Ee.current&&fetch("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:Ee.current,layout:$e.current.layout}),credentials:"same-origin",keepalive:!0}).catch(()=>{})};return window.addEventListener("pagehide",be),window.addEventListener("beforeunload",B),()=>{window.clearInterval(E),window.removeEventListener("resize",I),window.removeEventListener("beforeunload",B),window.removeEventListener("pagehide",be),document.removeEventListener("pointerdown",O),K()}},[]),se(()=>ef(document,{context:()=>({overlay:$e.current.overlay,hasSelection:$e.current.selectedId!==null}),run:E=>Fc(E,{setOverlay:a,fitGraph:()=>Q.current?.(),clearSelection:()=>{mn($e.current.layout).kind==="graph"?(N(null),J(null)):$e.current.select(null)},closeTab:()=>{let I=$e.current.layout;gt(Bo(I,I.activePane,mn(I).id))},cycleTheme:()=>i(I=>({...I,theme:ji(I.theme)})),focusSelector:I=>(I===bn.graph?i(K=>({...Ho(K),...window.innerWidth<850?{treeVisible:!1}:{}})):I===bn.tree||I===ga?i(K=>({...K,treeVisible:!0})):i(ou),requestAnimationFrame(()=>{I===bn.note&&oi(document,".weave-pane-active .weave-note-editor")||!oi(document,I)&&I===bn.note&&oi(document,".weave-pane-active .weave-pane-content")}),!0)})}),[]),Qe(()=>{for(let E of r.panes)document.getElementById(`tab-${E.activeTab}`)?.scrollIntoView({block:"nearest",inline:"nearest"})},[r.panes.map(E=>E.activeTab).join(","),r.activePane,u,p,t.graph?.stamp,r.treeVisible,r.treeWidth,r.contextVisible,r.contextWidth,r.ratio,r.split]),Qe(()=>{let E=Le.current,I=Ze.current;if(!ft||!E||!I)return;let K=()=>{let B=E.getBoundingClientRect(),be=I.getBoundingClientRect();Xi({left:B.left-be.left,top:B.top-be.top,width:B.width,height:B.height})};K();let O=new ResizeObserver(K);return O.observe(E),O.observe(I),()=>O.disconnect()},[ft,r,u]);let yr=(E,I)=>i(K=>({...K,panes:K.panes.map(O=>({...O,tabs:O.tabs.map(B=>B.id===E?{...B,scroll:I}:B)}))})),nt=(E,I)=>{jr(r,E,F.current)===null&&!I.dataTransfer?.types.includes(Qn)||(I.preventDefault(),I.dataTransfer&&(I.dataTransfer.dropEffect=F.current===null?"copy":"move"),C(E))},ct=(E,I)=>{let K=Tc(t.graph,I.dataTransfer?.getData(Qn)??"");if(K!==null){I.preventDefault(),pe(K,!0,E),C(null);return}let O=F.current;jr(r,E,O)!==null&&(I.preventDefault(),i(B=>{let be=jr(B,E,O);return be===null?B:jo(B,be,O)}),F.current=null,C(null))},mt=E=>{let I=E.tabs.find(O=>O.id===E.activeTab),K=E.id===r.activePane;return g("section",{class:`weave-pane${K?" weave-pane-active":""}${T===E.id?" weave-pane-drop":""}`,"data-drop-label":F.current===null?"Open note here":"Move tab here","aria-label":`Workspace pane ${r.panes.indexOf(E)+1}`,onDragOver:O=>nt(E.id,O),onDrop:O=>ct(E.id,O),onDragLeave:O=>{O.currentTarget.contains(O.relatedTarget)||C(null)},hidden:u<850&&!K,onFocusCapture:()=>{K||i(O=>({...O,activePane:E.id}))},onPointerDown:()=>{K||i(O=>({...O,activePane:E.id}))},children:[g("div",{class:"weave-tabs",role:"tablist","aria-label":"Open documents",children:[E.tabs.map(O=>g("div",{class:`weave-tab${O.id===I.id?" weave-tab-active":""}`,children:[g("button",{type:"button",role:"tab",title:Yi(O,t.graph),id:`tab-${O.id}`,"aria-selected":O.id===I.id,"aria-controls":`panel-${E.id}`,tabIndex:O.id===I.id?0:-1,draggable:r.panes.length===2,onDragStart:B=>{F.current=O.id,B.dataTransfer.effectAllowed="move",B.dataTransfer.setData("application/x-weave-tab",O.id)},onClick:()=>i(Uo(r,E.id,O.id)),onKeyDown:B=>{let be=B.key==="ArrowRight"?1:B.key==="ArrowLeft"?-1:0;if(!be&&B.key!=="Home"&&B.key!=="End")return;B.preventDefault();let rt=B.key==="Home"?0:B.key==="End"?E.tabs.length-1:(E.tabs.indexOf(O)+be+E.tabs.length)%E.tabs.length,Ct=E.tabs[rt];i(Uo(r,E.id,Ct.id)),requestAnimationFrame(()=>document.getElementById(`tab-${Ct.id}`)?.focus())},children:[g("span",{"aria-hidden":"true",children:O.kind==="graph"?"◌":"▤"}),g("span",{children:Yi(O,t.graph)}),Te.isDirty((yt(O)??"").slice(5))?g("span",{class:"weave-dirty","aria-label":"Unsaved changes",children:"●"}):null]}),g("button",{type:"button",class:"weave-tab-close","aria-label":`Close ${Yi(O,t.graph)}`,onClick:()=>gt(Bo(r,E.id,O.id)),children:"×"})]},O.id)),g("button",{type:"button",class:"weave-new-tab","aria-label":"New tab",onClick:()=>pe(null,!0,E.id),children:"+"})]}),g("div",{class:"weave-pane-toolbar",children:[g("button",{type:"button","aria-label":"Navigate back",disabled:I.kind==="graph"||I.cursor===0,onClick:()=>gt(Ko({...r,activePane:E.id},E.id,-1)),children:"←"}),g("button",{type:"button","aria-label":"Navigate forward",disabled:I.kind==="graph"||I.cursor>=I.history.length-1,onClick:()=>gt(Ko({...r,activePane:E.id},E.id,1)),children:"→"}),g("span",{class:"weave-breadcrumb",children:Yi(I,t.graph)}),g("details",{class:"weave-pane-menu",onKeyDown:O=>{O.key==="Escape"&&(O.preventDefault(),O.stopPropagation(),O.currentTarget.open=!1,O.currentTarget.querySelector("summary")?.focus())},children:[g("summary",{"aria-label":"Pane options",title:"Pane options",children:"···"}),g("div",{onClick:O=>{let B=O.currentTarget.closest("details");B&&(B.open=!1)},children:[g("button",{type:"button",onClick:()=>i(Vo({...r,activePane:E.id},"right")),children:r.panes.length>1?"Arrange side by side":"Split right"}),g("button",{type:"button",onClick:()=>i(Vo({...r,activePane:E.id},"down")),children:r.panes.length>1?"Stack panes":"Split down"}),r.panes.length>1?g(De,{children:[g("button",{type:"button",onClick:()=>i(jo(r,E.id,I.id)),children:"Move tab to other pane"}),g("button",{type:"button",title:"Move all tabs to the other pane and close this pane",onClick:()=>i(au(r,E.id)),children:"Close pane"})]}):null]})]})]}),g("div",{class:"weave-pane-content",role:"tabpanel",tabIndex:-1,id:`panel-${E.id}`,"aria-labelledby":`tab-${I.id}`,...I.kind==="graph"?{ref:Le}:{},children:I.kind==="document"?g(Bx,{tab:I,graph:t.graph,drafts:Te,revision:b,now:s,onSelect:(O,B)=>pe(O,B,E.id),onSave:Mn,onScroll:O=>yr(I.id,O),onSearch:()=>a("search"),onGraph:At},`${I.id}:${I.cursor}:${yt(I)}`):null})]},E.id)};return g(De,{children:[g("div",{class:"weave-workbench",ref:Ze,onDragEnd:()=>{F.current=null,C(null)},children:[g("nav",{class:"weave-ribbon","aria-label":"Workspace tools",children:[g("button",{type:"button","aria-label":"Toggle notes sidebar","aria-pressed":r.treeVisible,title:"Notes",onClick:()=>i({...r,treeVisible:!r.treeVisible}),children:"▤"}),g("button",{type:"button","aria-label":"Open graph view",title:"Graph view",onClick:At,children:"◌"}),g("button",{type:"button","aria-label":"Search notes and repository",title:Ic(ha(pa(e.platform))),onClick:()=>a("search"),children:g("svg",{viewBox:"0 0 20 20",width:16,height:16,fill:"none",stroke:"currentColor","stroke-width":1.7,"aria-hidden":"true",children:[g("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),g("path",{d:"m13 13 4 4"})]})}),g("span",{class:"weave-ribbon-space"}),g("button",{type:"button","aria-label":"Toggle context sidebar","aria-pressed":$t,title:"Context",onClick:()=>u<1050?Fe(!ce):i({...r,contextVisible:!r.contextVisible}),children:"☷"}),g("button",{type:"button","aria-label":"Refresh workspace",title:"Refresh workspace",onClick:()=>{_e.current?.refresh(),y(E=>E+1)},children:"↻"}),g("button",{type:"button","aria-label":Dn.hint,title:Dn.hint,onClick:()=>i({...r,theme:ji(r.theme)}),children:Dn.glyph}),g("button",{type:"button","aria-label":"Keyboard shortcuts",onClick:()=>a("help"),children:"?"})]}),g("div",{class:"weave-sidebar-dock weave-notes-dock","data-open":r.treeVisible,inert:!r.treeVisible,"aria-hidden":!r.treeVisible,style:{"--weave-sidebar-width":`${Math.min(r.treeWidth,u-90)}px`},children:[g("aside",{class:"weave-sidebar weave-sidebar-notes","aria-label":"Notes sidebar",children:[g("div",{class:"weave-sidebar-heading",children:[g("button",{type:"button","aria-pressed":!W,onClick:()=>j(!1),children:"Files"}),g("button",{type:"button","aria-pressed":W,onClick:()=>j(!0),children:"Recent"}),g("button",{type:"button","aria-label":"Hide notes sidebar",onClick:()=>{Ze.current?.querySelector('[aria-label="Toggle notes sidebar"]')?.focus(),i({...r,treeVisible:!1})},children:"«"})]}),W?g(Ux,{visits:Y,graph:t.graph,selectedId:Ve,onSelect:pe}):g(Hc,{graph:t.graph,selectedId:Ve,recentIds:t.recentIds,onSelect:(E,I,K)=>pe(E,I,r.activePane,K),onMutate:vr,onRefresh:()=>_e.current?.refresh(),now:s}),g("div",{class:"weave-vault-label",children:[g("span",{children:"Workspace"}),g("strong",{title:e.cwd,children:e.cwd.split(/[\\/]/).filter(Boolean).pop()??"Weave"})]})]}),g(gs,{label:"Resize notes sidebar",min:180,max:420,value:r.treeWidth,onChange:E=>i(I=>({...I,treeWidth:Math.max(180,Math.min(420,I.treeWidth+E))}))})]}),g("main",{class:`weave-panes weave-split-${r.split}`,style:r.panes.length===2&&u>=850?{[r.split==="right"?"gridTemplateColumns":"gridTemplateRows"]:`minmax(0, ${r.ratio}fr) 4px minmax(0, ${1-r.ratio}fr)`}:{},children:p?r.panes.map((E,I)=>g(De,{children:[I>0&&u>=850?g(gs,{label:"Resize split panes",min:20,max:80,horizontal:r.split==="down",value:r.ratio*100,onChange:K=>{let O=r.split==="right"?Ze.current?.querySelector("main")?.clientWidth:Ze.current?.querySelector("main")?.clientHeight;i(B=>({...B,ratio:Math.max(.2,Math.min(.8,B.ratio+K/(O??800)))}))}}):null,mt(E)]})):g("div",{class:"weave-welcome",role:"status",children:"Opening workspace…"})}),g("div",{class:"weave-sidebar-dock weave-context-dock","data-open":$t,inert:!$t,"aria-hidden":!$t,style:{"--weave-sidebar-width":`${r.contextWidth}px`},children:[g(gs,{label:"Resize context sidebar",min:180,max:400,value:r.contextWidth,onChange:E=>i(I=>({...I,contextWidth:Math.max(180,Math.min(400,I.contextWidth-E))}))}),g("aside",{class:"weave-sidebar weave-sidebar-context","aria-label":"Context sidebar",children:[g("div",{class:"weave-sidebar-heading",children:[g("strong",{children:"Context"}),g("button",{type:"button","aria-label":"Hide context sidebar",onClick:()=>{Ze.current?.querySelector('[aria-label="Toggle context sidebar"]')?.focus(),Fe(!1),i({...r,contextVisible:!1})},children:"»"})]}),g(Xp,{graph:t.graph,selectedId:Ve,onSelect:pe})]})]}),oe?g("div",{class:"weave-graph-host",onDragOver:E=>{Ne&&nt(Ne.id,E)},onDrop:E=>{Ne&&ct(Ne.id,E)},onDragLeave:E=>{E.currentTarget.contains(E.relatedTarget)||C(null)},onPointerDown:()=>{Ne&&i(E=>({...E,activePane:Ne.id}))},onFocusCapture:()=>{Ne&&i(E=>({...E,activePane:Ne.id}))},"aria-hidden":!ft,style:{...Ft,visibility:ft?"visible":"hidden",pointerEvents:ft?"auto":"none"},children:g(Uc,{graph:t.graph,selectedId:Ve,previewId:A,onSelect:ut,onOpen:In,renderer:uh,storage:localStorage,host:window,scheme:of(r.theme,h),bootFailed:t.graphFailed,fit:Q,tuner:e.tuner===!0})}):null]}),g("div",{class:"weave-footer",children:[g(tf,{model:Nc(e.cwd,Ve,t.graph?.model.generatedAt??null)}),w?g("span",{role:"status",children:"Workspace restoration unavailable"}):null,Te.dirtySlugs().length?g("span",{children:[Te.dirtySlugs().length," unsaved"]}):null,u<850&&r.panes.length>1?g("button",{type:"button",onClick:()=>i({...r,activePane:r.panes.find(E=>E.id!==Zi.id).id}),children:"Switch pane"}):null]}),o==="search"?g(Gp,{graph:t.graph,onSelect:pe,onClose:()=>a(null),ports:{fetch:Me}}):null,o==="help"?g(Jp,{shortcut:ha(pa(e.platform)),onClose:()=>a(null)}):null]})}var lf=`
|
|
403
|
+
.weave-workbench{position:relative;display:flex;min-height:0;overflow:hidden;background:var(--weave-page)}
|
|
404
|
+
.weave-workbench button{font:inherit;color:inherit;cursor:pointer}
|
|
405
|
+
.weave-workbench button:focus-visible,.weave-workbench summary:focus-visible{outline:2px solid var(--weave-accent);outline-offset:-2px}
|
|
406
|
+
.weave-workbench button:disabled{opacity:.35;cursor:default}
|
|
407
|
+
.weave-ribbon{width:44px;flex:none;display:flex;align-items:center;flex-direction:column;gap:8px;padding:12px 0;background:var(--weave-panel);border-right:1px solid var(--weave-line)}
|
|
408
|
+
.weave-ribbon button{width:32px;height:32px;border:0;border-radius:var(--weave-radius);background:transparent;font-size:var(--weave-px-display);color:var(--weave-dim)}
|
|
409
|
+
.weave-ribbon button:hover,.weave-ribbon button[aria-pressed=true]{color:var(--weave-accent);background:var(--weave-new)}
|
|
410
|
+
.weave-ribbon-space{flex:1}
|
|
411
|
+
.weave-sidebar{flex:none;min-width:0;display:flex;flex-direction:column;background:var(--weave-panel);overflow:hidden}
|
|
412
|
+
.weave-sidebar-dock{display:flex;flex:none;min-width:0;width:calc(var(--weave-sidebar-width) + 4px);overflow:hidden;opacity:1;visibility:visible;transition:width 200ms ease,opacity 160ms ease,visibility 0s}
|
|
413
|
+
.weave-sidebar-dock[data-open=false]{width:0;opacity:0;visibility:hidden;transition:width 200ms ease,opacity 160ms ease,visibility 0s 200ms}
|
|
414
|
+
.weave-sidebar-dock>.weave-sidebar{width:var(--weave-sidebar-width);transition:transform 200ms ease}
|
|
415
|
+
.weave-sidebar-dock[data-open=false]>.weave-sidebar{transform:translateX(-16px)}
|
|
416
|
+
.weave-context-dock[data-open=false]>.weave-sidebar{transform:translateX(16px)}
|
|
417
|
+
.weave-sidebar-heading{display:flex;align-items:center;gap:8px;height:46px;flex:none;padding:0 12px;color:var(--weave-dim);font-size:var(--weave-px-row)}
|
|
418
|
+
.weave-sidebar-heading button{border:0;background:none;padding:7px 6px;border-radius:var(--weave-radius);color:var(--weave-dim)}
|
|
419
|
+
.weave-sidebar-heading button[aria-pressed=true]{color:var(--weave-fg);background:var(--weave-raise)}
|
|
420
|
+
.weave-sidebar-heading button:last-child{margin-left:auto}
|
|
421
|
+
.weave-sidebar .weave-tree-controls{padding:4px 12px 10px;gap:5px;flex-wrap:wrap;border:0}
|
|
422
|
+
.weave-sidebar .weave-filter{height:29px;flex-basis:100%;background:var(--weave-bg);border-radius:var(--weave-radius)}
|
|
423
|
+
.weave-sidebar .weave-row{min-height:32px;border-radius:var(--weave-radius);font-size:var(--weave-px-base)}
|
|
424
|
+
.weave-sidebar [role=tree]{padding:0 8px}
|
|
425
|
+
.weave-sidebar .weave-meta{font-size:var(--weave-px-caption);opacity:.65}
|
|
426
|
+
.weave-sidebar .weave-tree-count{border:0;padding:8px 14px}
|
|
427
|
+
.weave-vault-label{margin-top:auto;padding:14px 16px;border-top:1px solid var(--weave-line);display:flex;flex-direction:column;gap:4px;overflow:hidden}
|
|
428
|
+
.weave-vault-label span{font-size:var(--weave-px-caption);color:var(--weave-faint);text-transform:uppercase;letter-spacing:.08em}
|
|
429
|
+
.weave-vault-label strong{font-size:var(--weave-px-row);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
430
|
+
.weave-recents{display:flex;flex-direction:column;gap:3px;padding:6px 10px;overflow:auto}
|
|
431
|
+
.weave-recents button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;padding:9px;border-radius:var(--weave-radius);overflow:hidden}
|
|
432
|
+
.weave-recents button:hover{background:var(--weave-new)}
|
|
433
|
+
.weave-recents button[aria-current=page]{background:var(--weave-raise);color:var(--weave-fg)}
|
|
434
|
+
.weave-recents .weave-recent-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
435
|
+
.weave-workspace-divider{flex:none;width:4px;background:var(--weave-panel);cursor:col-resize;touch-action:none;z-index:3}
|
|
436
|
+
.weave-workspace-divider:hover,.weave-workspace-divider:focus-visible{background:var(--weave-accent)}
|
|
437
|
+
.weave-workspace-divider[aria-orientation=horizontal]{width:auto;height:4px;cursor:row-resize}
|
|
438
|
+
.weave-panes{display:grid;flex:1;min-width:0;min-height:0;overflow:hidden}
|
|
439
|
+
.weave-pane{min-width:0;min-height:0;display:grid;grid-template-rows:42px 36px minmax(0,1fr);overflow:hidden;background:var(--weave-page)}
|
|
440
|
+
.weave-pane[hidden]{display:none}
|
|
441
|
+
.weave-pane-drop{position:relative}
|
|
442
|
+
.weave-pane-drop::after{content:attr(data-drop-label);position:absolute;inset:4px;z-index:20;display:grid;place-items:center;pointer-events:none;border:2px dashed var(--weave-accent);border-radius:var(--weave-radius);color:var(--weave-accent);background:var(--weave-new)}
|
|
443
|
+
.weave-tabs{display:flex;align-items:stretch;min-width:0;overflow-x:auto;background:var(--weave-panel);gap:3px;padding:5px 6px 0;border-bottom:1px solid var(--weave-line);scrollbar-width:thin}
|
|
444
|
+
.weave-tab{display:flex;align-items:center;min-width:90px;max-width:210px;border-radius:var(--weave-radius) var(--weave-radius) 0 0;color:var(--weave-dim);flex-shrink:0;border-bottom:2px solid transparent}
|
|
445
|
+
.weave-tab-active{background:var(--weave-page);color:var(--weave-fg)}
|
|
446
|
+
.weave-pane-active .weave-tab-active{border-bottom-color:var(--weave-accent)}
|
|
447
|
+
.weave-tab button{border:0;background:none}
|
|
448
|
+
.weave-tab [role=tab]{display:flex;align-items:center;gap:8px;text-align:left;padding:8px 9px;min-width:0;height:100%;font-size:var(--weave-px-row)}
|
|
449
|
+
.weave-tab [role=tab]>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
450
|
+
.weave-tab [role=tab]>span:first-child{color:var(--weave-faint)}
|
|
451
|
+
.weave-tab .weave-tab-close{margin-right:4px;padding:2px 5px;font-size:var(--weave-px-subhead);color:var(--weave-faint)}
|
|
452
|
+
.weave-tab-close:hover{color:var(--weave-fg);background:var(--weave-raise)}
|
|
453
|
+
.weave-dirty{font-size:var(--weave-px-prov);color:var(--weave-accent)}
|
|
454
|
+
.weave-new-tab{border:0;background:none;padding:4px 10px;font-size:var(--weave-px-display)!important;color:var(--weave-dim)!important}
|
|
455
|
+
.weave-pane-toolbar{display:flex;align-items:center;gap:5px;padding:0 10px;border-bottom:1px solid var(--weave-line);color:var(--weave-dim);font-size:var(--weave-px-row)}
|
|
456
|
+
.weave-pane-toolbar>button{width:26px;height:26px;border:0;background:none;border-radius:var(--weave-radius)}
|
|
457
|
+
.weave-pane-toolbar>button:hover{background:var(--weave-new)}
|
|
458
|
+
.weave-breadcrumb{flex:1;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 8px;font-size:var(--weave-px-ui)}
|
|
459
|
+
.weave-pane-menu{position:relative}
|
|
460
|
+
.weave-pane-menu>summary{list-style:none;cursor:pointer;padding:5px 10px;font-size:var(--weave-px-subhead)}
|
|
461
|
+
.weave-pane-menu>summary::-webkit-details-marker{display:none}
|
|
462
|
+
.weave-pane-menu>div{position:absolute;right:0;top:100%;z-index:12;width:185px;padding:5px;display:flex;flex-direction:column;background:var(--weave-panel);border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius)}
|
|
463
|
+
.weave-pane-menu button{text-align:left;border:0;background:none;padding:9px 10px;font-size:var(--weave-px-row)}
|
|
464
|
+
.weave-pane-menu button:hover{background:var(--weave-new)}
|
|
465
|
+
.weave-pane-content{min-width:0;min-height:0;display:flex;overflow:hidden;position:relative}
|
|
466
|
+
.weave-document{display:flex;min-width:0;min-height:0;flex:1}
|
|
467
|
+
.weave-document .weave-note{width:100%;border-left:0}
|
|
468
|
+
.weave-document .weave-note-head{position:static;padding:28px max(24px,calc((100% - 760px)/2)) 18px;border:0}
|
|
469
|
+
.weave-document .weave-note-title{font-size:var(--weave-px-display);letter-spacing:-.03em;margin-bottom:12px}
|
|
470
|
+
.weave-document .weave-note-body{padding:10px max(24px,calc((100% - 760px)/2)) 64px;font-size:var(--weave-px-subhead);line-height:1.8}
|
|
471
|
+
.weave-document .weave-note-body h1{font-size:var(--weave-px-display);line-height:1.4;margin-bottom:18px}
|
|
472
|
+
.weave-document .weave-note-body h2{font-size:var(--weave-px-title);margin-top:28px}
|
|
473
|
+
.weave-document .weave-note-editor{padding:14px 28px;min-height:220px;flex:1}
|
|
474
|
+
.weave-document .weave-note-tags{margin-top:12px}
|
|
475
|
+
.weave-document .weave-note-edit,.weave-document .weave-note-save{padding:5px 10px;border-radius:var(--weave-radius)}
|
|
476
|
+
.weave-welcome{align-self:center;margin:auto;padding:35px;max-width:560px;color:var(--weave-dim);line-height:1.7}
|
|
477
|
+
.weave-welcome-mark{font-size:var(--weave-px-display);color:var(--weave-accent)}
|
|
478
|
+
.weave-welcome h1{font-size:var(--weave-px-display);line-height:1.4;letter-spacing:-.025em;color:var(--weave-fg);font-weight:550}
|
|
479
|
+
.weave-welcome p{font-size:var(--weave-px-base);margin:14px 0 24px}
|
|
480
|
+
.weave-welcome>div{display:flex;gap:12px;flex-wrap:wrap}
|
|
481
|
+
.weave-welcome button{border:1px solid var(--weave-line-strong);background:var(--weave-panel);padding:9px 13px;border-radius:var(--weave-radius);font-size:var(--weave-px-row)}
|
|
482
|
+
.weave-welcome button:hover{border-color:var(--weave-accent)}
|
|
483
|
+
.weave-welcome kbd{color:var(--weave-faint);padding-left:16px}
|
|
484
|
+
.weave-sidebar-context .weave-rail{flex:1;border:0;overflow:auto;padding:6px 12px}
|
|
485
|
+
.weave-sidebar-context .weave-ctx-link{padding-top:7px;padding-bottom:7px}
|
|
486
|
+
.weave-graph-host{position:absolute;z-index:2;display:flex;background:var(--weave-bg)}
|
|
487
|
+
.weave-graph-host>.weave-graph{width:100%;height:100%;flex:1}
|
|
488
|
+
.weave-graph-preview{pointer-events:none;position:absolute;z-index:2;right:8px;bottom:64px;width:min(280px,calc(100% - 16px));box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:10px 34px 10px 10px;background:var(--weave-panel);border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);box-shadow:0 6px 22px #0003}
|
|
489
|
+
.weave-graph-preview-info{display:flex;align-items:center;gap:8px;min-width:0}
|
|
490
|
+
.weave-graph-preview-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
|
|
491
|
+
.weave-graph-preview-kind{font-size:var(--weave-px-caption);color:var(--weave-faint);text-transform:capitalize}
|
|
492
|
+
.weave-graph-preview-title{font-size:var(--weave-px-row);font-weight:550;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}
|
|
493
|
+
.weave-graph-preview-close{pointer-events:auto;position:absolute;right:5px;top:5px;width:24px;height:24px;border:0;border-radius:var(--weave-radius);background:transparent;font-size:18px;color:var(--weave-dim)}
|
|
494
|
+
.weave-graph-preview-close:hover{background:var(--weave-new);color:var(--weave-fg)}
|
|
495
|
+
.weave-graph-preview>.weave-chip{pointer-events:auto;align-self:flex-start;max-width:100%;white-space:normal;text-align:left}
|
|
496
|
+
.weave-footer{display:flex;align-items:center;min-width:0;background:var(--weave-panel);border-top:1px solid var(--weave-line);font-size:var(--weave-px-ui);color:var(--weave-faint)}
|
|
497
|
+
.weave-footer>.weave-status{flex:1;min-width:0;border:0}
|
|
498
|
+
.weave-footer>span{padding:4px 10px;white-space:nowrap}
|
|
499
|
+
.weave-footer>button{font:inherit;color:var(--weave-fg);background:none;border:0;padding:7px 12px;cursor:pointer}
|
|
500
|
+
@media(max-width:1049px){
|
|
501
|
+
.weave-context-dock{position:absolute;right:0;top:0;bottom:0;z-index:10;width:var(--weave-sidebar-width)}
|
|
502
|
+
.weave-sidebar-context{border-left:1px solid var(--weave-line-strong)}
|
|
503
|
+
.weave-context-dock>.weave-workspace-divider{display:none}
|
|
504
|
+
}
|
|
505
|
+
@media(max-width:849px){
|
|
506
|
+
.weave-notes-dock{position:absolute;left:44px;top:0;bottom:0;z-index:10;width:var(--weave-sidebar-width);box-shadow:8px 0 24px #0002}
|
|
507
|
+
.weave-sidebar-notes{border-right:1px solid var(--weave-line-strong)}
|
|
508
|
+
.weave-notes-dock>.weave-workspace-divider{display:none}
|
|
509
|
+
.weave-workbench>.weave-workspace-divider{display:none}
|
|
510
|
+
.weave-panes{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
|
|
511
|
+
.weave-document .weave-note-head{padding:20px}
|
|
512
|
+
.weave-document .weave-note-body{padding:10px 20px 40px}
|
|
513
|
+
}
|
|
514
|
+
@media(prefers-reduced-motion:reduce){
|
|
515
|
+
.weave-sidebar-dock,.weave-sidebar-dock[data-open=false],.weave-sidebar-dock>.weave-sidebar{transition:none}
|
|
516
|
+
}
|
|
517
|
+
`;var uf=`
|
|
403
518
|
--weave-bg:#eff1f5;--weave-panel:#e6e9ef;--weave-raise:#ccd0da;--weave-fg:#4c4f69;--weave-dim:#56586a;
|
|
404
519
|
--weave-faint:#606274;--weave-line:#ccd0da;--weave-line-strong:#bcc0cc;
|
|
405
520
|
--weave-accent:#7113ec;--weave-ok:#28641b;--weave-warn:#7c4f10;--weave-bad:#b20d30;
|
|
406
521
|
--weave-new:rgba(113,19,236,.10);
|
|
407
522
|
--weave-page:#dce0e8;
|
|
408
|
-
`,
|
|
523
|
+
`,Kx=`
|
|
409
524
|
:root{
|
|
410
525
|
--weave-bg:#24273a;--weave-panel:#1e2030;--weave-raise:#363a4f;--weave-fg:#cad3f5;--weave-dim:#a5adcb;
|
|
411
526
|
--weave-faint:#939ab7;--weave-line:#363a4f;--weave-line-strong:#494d64;
|
|
@@ -440,7 +555,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
440
555
|
row 12 list rows, text inputs, inline code
|
|
441
556
|
base 13 body copy, h3-h6, preview-card text
|
|
442
557
|
body 13.5 the note column's prose
|
|
443
|
-
subhead 14 palette input, note-body h2,
|
|
558
|
+
subhead 14 palette input, note-body h2, ribbon icon buttons
|
|
444
559
|
title 15 note-body h1
|
|
445
560
|
display 20 the note's page title
|
|
446
561
|
Two earlier sizes were merged into neighbours: 9px glyphs to prov, and
|
|
@@ -467,93 +582,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
467
582
|
without a manual "dark" being dragged back into light by the OS. */
|
|
468
583
|
@media (prefers-color-scheme: light){
|
|
469
584
|
:root:not([data-weave-theme="dark"]){
|
|
470
|
-
${
|
|
585
|
+
${uf}
|
|
471
586
|
}
|
|
472
587
|
}
|
|
473
588
|
:root[data-weave-theme="light"]{
|
|
474
|
-
${
|
|
589
|
+
${uf}
|
|
475
590
|
}
|
|
476
591
|
body{font-size:var(--weave-px-base)}
|
|
477
|
-
#app{height:100%;display:grid;grid-template-rows:
|
|
478
|
-
|
|
479
|
-
/* header --------------------------------------------------------------- */
|
|
480
|
-
.weave-header{
|
|
481
|
-
display:flex;align-items:center;gap:14px;padding:0 var(--weave-gutter);
|
|
482
|
-
height:34px;border-bottom:1px solid var(--weave-line);background:var(--weave-panel);
|
|
483
|
-
}
|
|
484
|
-
.weave-brand{display:inline-flex;align-items:center;gap:6px;font-size:var(--weave-px-subhead);font-weight:600;letter-spacing:.01em;white-space:nowrap}
|
|
485
|
-
.weave-brand-mark{height:20px;width:20px;border-radius:var(--weave-radius)}
|
|
486
|
-
/* A button styled as a search field: the palette owns the only text input,
|
|
487
|
-
so this opens it rather than pretending to accept a query. */
|
|
488
|
-
.weave-search{
|
|
489
|
-
display:flex;align-items:center;gap:6px;flex:0 1 260px;min-width:0;
|
|
490
|
-
height:22px;padding:0 7px;font:inherit;font-size:var(--weave-px-row);text-align:left;cursor:pointer;
|
|
491
|
-
color:var(--weave-dim);background:var(--weave-bg);
|
|
492
|
-
border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);
|
|
493
|
-
}
|
|
494
|
-
.weave-search:hover{color:var(--weave-fg);border-color:var(--weave-accent)}
|
|
495
|
-
.weave-search-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
496
|
-
.weave-search kbd{
|
|
497
|
-
font-family:var(--weave-mono);font-size:var(--weave-px-caption);color:var(--weave-faint);
|
|
498
|
-
padding:1px 5px;border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);white-space:nowrap;
|
|
499
|
-
}
|
|
500
|
-
.weave-summary{
|
|
501
|
-
margin-left:auto;display:flex;gap:9px;font-family:var(--weave-mono);
|
|
502
|
-
font-size:var(--weave-px-ui);color:var(--weave-dim);white-space:nowrap;
|
|
503
|
-
}
|
|
504
|
-
.weave-summary-part+.weave-summary-part::before{content:"·";margin-right:9px;color:var(--weave-faint)}
|
|
505
|
-
.weave-refresh{
|
|
506
|
-
font:inherit;font-size:var(--weave-px-subhead);line-height:1;color:var(--weave-dim);background:none;
|
|
507
|
-
border:0;padding:3px 5px;border-radius:var(--weave-radius);cursor:pointer;
|
|
508
|
-
display:inline-flex;align-items:center;
|
|
509
|
-
}
|
|
510
|
-
.weave-refresh:hover{color:var(--weave-fg);background:var(--weave-line)}
|
|
511
|
-
/* One full 600 ms turn per click ("the request left"), not a loop: the
|
|
512
|
-
refetch is fire-and-forget and a 304 may never fire a completion signal
|
|
513
|
-
for a spinner to wait on. Reduced-motion restores the static stroke. */
|
|
514
|
-
.weave-refresh-spinning{animation:weave-refresh-turn 600ms ease-out}
|
|
515
|
-
@keyframes weave-refresh-turn{from{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
516
|
-
/* The theme cycle (shell/theme.model.ts). Same shape as the refresh button:
|
|
517
|
-
an icon-size control in a 34 px bar, glyph-only because the filled/half/
|
|
518
|
-
hollow family already means something in this workspace. */
|
|
519
|
-
.weave-theme{
|
|
520
|
-
font:inherit;font-size:var(--weave-px-base);line-height:1;color:var(--weave-dim);background:none;
|
|
521
|
-
border:0;padding:3px 6px;border-radius:var(--weave-radius);cursor:pointer;
|
|
522
|
-
}
|
|
523
|
-
.weave-theme:hover{color:var(--weave-fg);background:var(--weave-line)}
|
|
524
|
-
|
|
525
|
-
/* the grid -------------------------------------------------------------- */
|
|
526
|
-
/* Widths arrive as custom properties from layout.model.ts. Shell/layout.model
|
|
527
|
-
selects the breakpoint; CSS consumes the resulting data-columns shape. */
|
|
528
|
-
.weave-grid{display:grid;min-height:0;overflow:hidden;background:var(--weave-line)}
|
|
529
|
-
.weave-grid[data-columns="3"]{grid-template-columns:var(--weave-col-tree,22%) 1px var(--weave-col-note,46%) 1px var(--weave-col-graph,32%)}
|
|
530
|
-
.weave-grid[data-columns="2"]{grid-template-columns:var(--weave-col-tree,32%) 1px var(--weave-col-note,68%)}
|
|
531
|
-
.weave-grid[data-columns="1"]{grid-template-columns:1fr}
|
|
532
|
-
|
|
533
|
-
/* dividers -------------------------------------------------------------- */
|
|
534
|
-
.weave-divider{
|
|
535
|
-
width:1px;cursor:col-resize;touch-action:none;background:var(--weave-line);position:relative;z-index:2;
|
|
536
|
-
}
|
|
537
|
-
.weave-divider::after{content:"";position:absolute;inset:0 -4px}
|
|
538
|
-
.weave-divider:hover{background:var(--weave-faint)}
|
|
539
|
-
.weave-divider:focus-visible{outline:2px solid var(--weave-accent);outline-offset:-1px}
|
|
540
|
-
|
|
541
|
-
.weave-col{
|
|
542
|
-
display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;
|
|
543
|
-
background:var(--weave-bg);
|
|
544
|
-
}
|
|
545
|
-
.weave-col-title{
|
|
546
|
-
margin:0;padding:5px var(--weave-gutter) 4px;font-size:var(--weave-px-caption);font-weight:600;
|
|
547
|
-
letter-spacing:.09em;text-transform:uppercase;color:var(--weave-faint);
|
|
548
|
-
border-bottom:1px solid var(--weave-line);
|
|
549
|
-
}
|
|
550
|
-
/* Title, then the graph (which takes the slack), then the context rail. The
|
|
551
|
-
1fr is what gives .weave-graph-canvas a definite height to measure, and the
|
|
552
|
-
rail's row is a fixed fraction of the column — not content-sized — so
|
|
553
|
-
moving the selection between a sparsely-connected note and a richly
|
|
554
|
-
connected one never repartitions the right-hand column: the rail scrolls
|
|
555
|
-
inside the same region instead of squeezing the graph. */
|
|
556
|
-
.weave-col-graph{display:grid;grid-template-rows:auto minmax(0,1fr) minmax(96px,40%);background:var(--weave-bg)}
|
|
592
|
+
#app{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;background:var(--weave-bg)}
|
|
557
593
|
|
|
558
594
|
/* tree column ----------------------------------------------------------- */
|
|
559
595
|
/* --weave-depth is written per row by \`depthVar\`, through CSSOM
|
|
@@ -765,8 +801,8 @@ body{font-size:var(--weave-px-base)}
|
|
|
765
801
|
text-decoration-thickness:1px;text-underline-offset:2px;
|
|
766
802
|
}
|
|
767
803
|
.weave-note-body a:hover{text-decoration-color:var(--weave-accent)}
|
|
768
|
-
/* A ghost is a name with no note behind it:
|
|
769
|
-
|
|
804
|
+
/* A ghost is a name with no note behind it: a dashed, dimmed affordance to
|
|
805
|
+
create one. */
|
|
770
806
|
.weave-wiki{cursor:pointer;color:var(--weave-accent);text-decoration:none}
|
|
771
807
|
.weave-wiki:hover{text-decoration:underline}
|
|
772
808
|
.weave-wiki-ghost{
|
|
@@ -911,9 +947,8 @@ body{font-size:var(--weave-px-base)}
|
|
|
911
947
|
text-align:left;background:none;border:0;cursor:pointer;
|
|
912
948
|
}
|
|
913
949
|
.weave-ctx-heading:hover{color:var(--weave-fg)}
|
|
914
|
-
/* The count is a mono voice
|
|
915
|
-
|
|
916
|
-
"BACKLINKS 4" in the text face would be the one thing off-key. */
|
|
950
|
+
/* The count is a mono voice like the other status numbers, so a rail that
|
|
951
|
+
says "BACKLINKS 4" in the text face would be the one thing off-key. */
|
|
917
952
|
.weave-ctx-count{
|
|
918
953
|
margin-left:auto;font-family:var(--weave-mono);font-size:var(--weave-px-caption);
|
|
919
954
|
letter-spacing:0;color:var(--weave-faint);font-weight:400;
|
|
@@ -940,11 +975,8 @@ body{font-size:var(--weave-px-base)}
|
|
|
940
975
|
.weave-ctx-tag{margin:0 0 3px}
|
|
941
976
|
.weave-ctx-tag .weave-ctx-rows{padding-left:12px}
|
|
942
977
|
|
|
943
|
-
/*
|
|
944
|
-
/*
|
|
945
|
-
status items after the first opens with the same mid-dot, in the same
|
|
946
|
-
--weave-faint. cwd · selection · stamp reads as one grammar,
|
|
947
|
-
the same way the header's three-part summary does. */
|
|
978
|
+
/* workspace footer ------------------------------------------------------ */
|
|
979
|
+
/* The status items share one mid-dot separator in --weave-faint. */
|
|
948
980
|
.weave-status{
|
|
949
981
|
display:flex;align-items:center;gap:8px;height:22px;padding:0 var(--weave-gutter);
|
|
950
982
|
font-family:var(--weave-mono);font-size:var(--weave-px-ui);color:var(--weave-dim);
|
|
@@ -1038,7 +1070,7 @@ body{font-size:var(--weave-px-base)}
|
|
|
1038
1070
|
would need delay-unmount plumbing far past polish. Compositor-safe
|
|
1039
1071
|
properties only — colour, border, opacity, transform; height and padding
|
|
1040
1072
|
snap. */
|
|
1041
|
-
.weave-row,.weave-ctx-link,.weave-chip,.weave-
|
|
1073
|
+
.weave-row,.weave-ctx-link,.weave-chip,.weave-ribbon button,
|
|
1042
1074
|
.weave-hit,.weave-note-open{
|
|
1043
1075
|
transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;
|
|
1044
1076
|
}
|
|
@@ -1047,7 +1079,7 @@ body{font-size:var(--weave-px-base)}
|
|
|
1047
1079
|
@keyframes weave-fade-in{from{opacity:0}}
|
|
1048
1080
|
@keyframes weave-overlay-in{from{opacity:0;transform:translateY(4px)}}
|
|
1049
1081
|
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
|
|
1050
|
-
`,
|
|
1082
|
+
`,Vx=["style[nonce]","style","script[nonce]","script[src]"];function jx(e){for(let t of Vx){let n=e.querySelector(t)?.nonce;if(typeof n=="string"&&n!=="")return n}return null}function cf(e,t=Kx+lf){let n=e.createElement("style"),r=jx(e);return r!==null&&(n.nonce=r),n.textContent=t,e.head.appendChild(n),r!==null}var df=document.getElementById("app");if(df!==null){cf(document),qx();let e=rl(document.getElementById(nl)?.textContent??null);tl(g(sf,{cwd:e.cwd,initialWidth:window.innerWidth,platform:navigator.platform,tuner:Ol(window.location.search)}),df)}function qx(){let e=qi(Vi(localStorage)??"system");e!==null&&(document.documentElement.dataset.weaveTheme=e)}})();
|
|
1051
1083
|
/*! Bundled license information:
|
|
1052
1084
|
|
|
1053
1085
|
dompurify/dist/purify.es.mjs:
|