jekyll-obsidian-site 0.2.0
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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +133 -0
- data/website/_config.yml +21 -0
- data/website/_includes/website/archive-timeline.html +8 -0
- data/website/_includes/website/blog-ledger.html +19 -0
- data/website/_includes/website/blog-navigation.html +7 -0
- data/website/_includes/website/comments.html +22 -0
- data/website/_includes/website/contact-icon.html +14 -0
- data/website/_includes/website/context-tags.html +7 -0
- data/website/_includes/website/context.html +3 -0
- data/website/_includes/website/dialogs.html +71 -0
- data/website/_includes/website/docs-navigation.html +7 -0
- data/website/_includes/website/docs-tree.html +8 -0
- data/website/_includes/website/footer.html +14 -0
- data/website/_includes/website/github-icon.html +3 -0
- data/website/_includes/website/head.html +41 -0
- data/website/_includes/website/header.html +35 -0
- data/website/_includes/website/language-switcher.html +16 -0
- data/website/_includes/website/local-graph.html +25 -0
- data/website/_includes/website/note-header.html +35 -0
- data/website/_includes/website/outline.html +9 -0
- data/website/_includes/website/page-actions.html +34 -0
- data/website/_includes/website/portfolio-grid.html +36 -0
- data/website/_includes/website/portfolio-topics.html +4 -0
- data/website/_includes/website/post-cards.html +16 -0
- data/website/_includes/website/related-articles.html +7 -0
- data/website/_includes/website/relations.html +16 -0
- data/website/_includes/website/source-actions.html +28 -0
- data/website/_includes/website/system-page.html +31 -0
- data/website/_includes/website/tab-collection.html +28 -0
- data/website/_includes/website/tag-filter.html +12 -0
- data/website/_layouts/website-docs.html +20 -0
- data/website/_layouts/website-minimal.html +93 -0
- data/website/_layouts/website-redirect.html +17 -0
- data/website/assets/chunks/abnfDiagram-N423BO3Z-TSORAEI2.js +1 -0
- data/website/assets/chunks/architecture-TIHT7OUA-OUC5PEC7.js +1 -0
- data/website/assets/chunks/architectureDiagram-T3A2C74G-6P5MB2DJ.js +36 -0
- data/website/assets/chunks/blockDiagram-VBNYF7ZC-ZWINYROZ.js +132 -0
- data/website/assets/chunks/c4Diagram-5PPSVZJV-R5RMEAOT.js +10 -0
- data/website/assets/chunks/chunk-22DRK7VS.js +1 -0
- data/website/assets/chunks/chunk-25REBZ7M.js +2 -0
- data/website/assets/chunks/chunk-2RQCUDTG.js +1 -0
- data/website/assets/chunks/chunk-34FHPXU4.js +1 -0
- data/website/assets/chunks/chunk-57XXJOQN.js +10 -0
- data/website/assets/chunks/chunk-6DCNDVBX.js +2 -0
- data/website/assets/chunks/chunk-6DHFEWGX.js +1 -0
- data/website/assets/chunks/chunk-6VQ47JJS.js +2 -0
- data/website/assets/chunks/chunk-7CSIRG7W.js +127 -0
- data/website/assets/chunks/chunk-A43YELH5.js +1 -0
- data/website/assets/chunks/chunk-AIX6IH4O.js +1 -0
- data/website/assets/chunks/chunk-B3K7RH5O.js +88 -0
- data/website/assets/chunks/chunk-CBGUD2NP.js +1 -0
- data/website/assets/chunks/chunk-D3WOCELE.js +1 -0
- data/website/assets/chunks/chunk-D6FURU6X.js +1 -0
- data/website/assets/chunks/chunk-DGEGT77F.js +1 -0
- data/website/assets/chunks/chunk-DN52R6U7.js +1 -0
- data/website/assets/chunks/chunk-E3T3IFAC.js +1 -0
- data/website/assets/chunks/chunk-EIBFAW37.js +1 -0
- data/website/assets/chunks/chunk-ERWOH47R.js +1 -0
- data/website/assets/chunks/chunk-ETOVTYWF.js +1 -0
- data/website/assets/chunks/chunk-GHD3PFWA.js +231 -0
- data/website/assets/chunks/chunk-GMBKQ7NZ.js +1 -0
- data/website/assets/chunks/chunk-GQM25EPP.js +156 -0
- data/website/assets/chunks/chunk-GSOU4UTT.js +1 -0
- data/website/assets/chunks/chunk-HEMELP7J.js +1 -0
- data/website/assets/chunks/chunk-HZ5I5NJO.js +1 -0
- data/website/assets/chunks/chunk-IP56FOSI.js +70 -0
- data/website/assets/chunks/chunk-L7BMR7WL.js +1 -0
- data/website/assets/chunks/chunk-LGUG3SQB.js +1 -0
- data/website/assets/chunks/chunk-LOMHZYS2.js +1 -0
- data/website/assets/chunks/chunk-MII4VZEB.js +3 -0
- data/website/assets/chunks/chunk-MYMJLHQL.js +62 -0
- data/website/assets/chunks/chunk-NBH7YOBD.js +15 -0
- data/website/assets/chunks/chunk-NCOVM3YF.js +1 -0
- data/website/assets/chunks/chunk-OAGTSILX.js +1 -0
- data/website/assets/chunks/chunk-OCX5OCIU.js +321 -0
- data/website/assets/chunks/chunk-OE3NOVIH.js +1 -0
- data/website/assets/chunks/chunk-PLP5XUTJ.js +1 -0
- data/website/assets/chunks/chunk-PNOERP6G.js +1 -0
- data/website/assets/chunks/chunk-QBPQ7DPE.js +1 -0
- data/website/assets/chunks/chunk-RWFFDL53.js +1 -0
- data/website/assets/chunks/chunk-SEGIW3MP.js +1 -0
- data/website/assets/chunks/chunk-SZDMZNUS.js +1 -0
- data/website/assets/chunks/chunk-T2QBAPVT.js +1 -0
- data/website/assets/chunks/chunk-UE533OZ7.js +1 -0
- data/website/assets/chunks/chunk-UTWOJE2A.js +1 -0
- data/website/assets/chunks/chunk-VOCDYA3H.js +1 -0
- data/website/assets/chunks/chunk-VYZZPKGK.js +161 -0
- data/website/assets/chunks/chunk-WWLZIRS6.js +1 -0
- data/website/assets/chunks/chunk-XNXYDBKX.js +32 -0
- data/website/assets/chunks/chunk-XQUIO562.js +1 -0
- data/website/assets/chunks/chunk-Y2XVFW7T.js +2 -0
- data/website/assets/chunks/chunk-YORIST7Z.js +1 -0
- data/website/assets/chunks/chunk-Z2WBQPVY.js +206 -0
- data/website/assets/chunks/classDiagram-JCYQIIEL-OFDVDDIM.js +1 -0
- data/website/assets/chunks/classDiagram-v2-OCEON4UE-E36B6BGQ.js +1 -0
- data/website/assets/chunks/cose-bilkent-JH36ORCC-CBAW64AB.js +1 -0
- data/website/assets/chunks/cynefin-VYW2F7L2-CBO6DLNV.js +1 -0
- data/website/assets/chunks/cynefinDiagram-MW4NZA55-DFINLOUY.js +62 -0
- data/website/assets/chunks/dagre-VZM6K2ZE-BZFBSZAH.js +4 -0
- data/website/assets/chunks/diagram-7IWD3JNH-XQHTVOU2.js +30 -0
- data/website/assets/chunks/diagram-B4RE2ZJO-FTSXBZJR.js +3 -0
- data/website/assets/chunks/diagram-LBJQPF4R-ZSZW4OLH.js +24 -0
- data/website/assets/chunks/diagram-Q27KOJAE-2IV5TVCJ.js +24 -0
- data/website/assets/chunks/diagram-UB23O5K3-D6PDUTFL.js +41 -0
- data/website/assets/chunks/ebnfDiagram-BXEA7PRR-C6MAER3M.js +1 -0
- data/website/assets/chunks/erDiagram-JOGREHBK-EDAD2H5M.js +85 -0
- data/website/assets/chunks/eventmodeling-45OFAUF4-4K577DMF.js +1 -0
- data/website/assets/chunks/flowDiagram-UKHOOZJN-545F4YX3.js +1 -0
- data/website/assets/chunks/ganttDiagram-PKOTCBZU-7A7EKMY3.js +292 -0
- data/website/assets/chunks/gitGraph-TEB2WS4Q-3WUB7WYQ.js +1 -0
- data/website/assets/chunks/gitGraphDiagram-DS77QQ5N-A5UWV5FF.js +106 -0
- data/website/assets/chunks/info-DKCQHKI2-EOOHI7XS.js +1 -0
- data/website/assets/chunks/infoDiagram-6WML65LV-CWIOOWJP.js +2 -0
- data/website/assets/chunks/ishikawaDiagram-WSZJBQD7-CEASQVDL.js +70 -0
- data/website/assets/chunks/journeyDiagram-NVQOT4AX-LYG3S2AW.js +139 -0
- data/website/assets/chunks/kanban-definition-27J2QSJJ-HCC6KAYI.js +89 -0
- data/website/assets/chunks/katex-F4MQ6FB3.js +257 -0
- data/website/assets/chunks/mindmap-definition-FAOFIHXS-JMGSM3RE.js +96 -0
- data/website/assets/chunks/packet-7NZHBO7P-W3SJA3MY.js +1 -0
- data/website/assets/chunks/pegDiagram-VL7TDLO6-4JO3Y3Z3.js +1 -0
- data/website/assets/chunks/pie-RZYD4A2V-YOIQBTY7.js +1 -0
- data/website/assets/chunks/pieDiagram-7S7Q4E2Y-VFQ7SE46.js +39 -0
- data/website/assets/chunks/quadrantDiagram-CIZ2JOQS-JISDI2S6.js +7 -0
- data/website/assets/chunks/radar-I7S5WNFK-NMKP5AZO.js +1 -0
- data/website/assets/chunks/railroad-3IZDKUUU-7MOIV7CI.js +1 -0
- data/website/assets/chunks/railroad-abnf-AHOZXSZD-HXNH5SLO.js +1 -0
- data/website/assets/chunks/railroad-ebnf-EBAXGLYW-OWDJEWMK.js +1 -0
- data/website/assets/chunks/railroad-peg-LSFZ7HO6-ASSINGP5.js +1 -0
- data/website/assets/chunks/railroadDiagram-AXF67PYL-AFV5VP5F.js +1 -0
- data/website/assets/chunks/requirementDiagram-LRYGKXZP-RNRPEHHN.js +84 -0
- data/website/assets/chunks/sankeyDiagram-W5VNT64P-O54R2L3E.js +40 -0
- data/website/assets/chunks/sequenceDiagram-SI44F4Z6-42WISKJ7.js +162 -0
- data/website/assets/chunks/sizeCapture-X5ZJPWSS-LRN2Q37T.js +1 -0
- data/website/assets/chunks/stateDiagram-OKZ733FA-BWIBJXIR.js +1 -0
- data/website/assets/chunks/stateDiagram-v2-UEYNNEHI-L73LHL3L.js +1 -0
- data/website/assets/chunks/swimlanes-SLNWSIFB-ECOAE7LQ.js +1 -0
- data/website/assets/chunks/swimlanesDiagram-ULZ7WXOC-3CKKKFZZ.js +8 -0
- data/website/assets/chunks/timeline-definition-Z64GVDOM-HR2OL5G7.js +120 -0
- data/website/assets/chunks/treeView-QDETBFTQ-C6D5WFJA.js +1 -0
- data/website/assets/chunks/treemap-6X3UGDF4-JFCDMSCA.js +1 -0
- data/website/assets/chunks/vennDiagram-T6HMQDX7-62WAAPTF.js +34 -0
- data/website/assets/chunks/wardley-OPB4EBWU-RQIOII7I.js +1 -0
- data/website/assets/chunks/wardleyDiagram-T6FBY63Y-KUXO3NHV.js +78 -0
- data/website/assets/chunks/xychartDiagram-ELKLHX3M-I54W4HJ7.js +7 -0
- data/website/assets/color-scheme-bootstrap-4H4ZR4BW.js +1 -0
- data/website/assets/docs-3WBBQT6K.css +1 -0
- data/website/assets/docs-W3D5DWQF.js +1 -0
- data/website/assets/docs-navigation-75ALFYBA.js +1 -0
- data/website/assets/graph-QWL54LWD.js +1 -0
- data/website/assets/manifest.json +314 -0
- data/website/assets/math-7JTH4OWZ.js +21 -0
- data/website/assets/mermaid-RXC6URG4.js +10 -0
- data/website/assets/minimal-3NPTDWQX.js +1 -0
- data/website/assets/minimal-E2VATXXS.css +1 -0
- data/website/assets/previews-FMHOX7UX.js +1 -0
- data/website/assets/search-BH73JZDU.js +1 -0
- data/website/assets/search-worker-SM4IM4J7.js +1 -0
- data/website/exe/jekyll-obsidian +5 -0
- data/website/lib/jekyll_obsidian/adapter.rb +733 -0
- data/website/lib/jekyll_obsidian/built_in_themes.rb +855 -0
- data/website/lib/jekyll_obsidian/cli.rb +84 -0
- data/website/lib/jekyll_obsidian/content_policy.rb +194 -0
- data/website/lib/jekyll_obsidian/destination_registry.rb +39 -0
- data/website/lib/jekyll_obsidian/directory_indexes.rb +30 -0
- data/website/lib/jekyll_obsidian/external_media.rb +371 -0
- data/website/lib/jekyll_obsidian/front_matter.rb +453 -0
- data/website/lib/jekyll_obsidian/github_markdown.rb +664 -0
- data/website/lib/jekyll_obsidian/html_publication.rb +206 -0
- data/website/lib/jekyll_obsidian/initializer.rb +68 -0
- data/website/lib/jekyll_obsidian/localized_compiler.rb +1044 -0
- data/website/lib/jekyll_obsidian/media_policy.rb +41 -0
- data/website/lib/jekyll_obsidian/ofm_scanner.rb +493 -0
- data/website/lib/jekyll_obsidian/output_text.rb +13 -0
- data/website/lib/jekyll_obsidian/preview.rb +93 -0
- data/website/lib/jekyll_obsidian/published_markdown.rb +32 -0
- data/website/lib/jekyll_obsidian/raw_html_manifest.rb +66 -0
- data/website/lib/jekyll_obsidian/runtime.rb +197 -0
- data/website/lib/jekyll_obsidian/site_compilation.rb +147 -0
- data/website/lib/jekyll_obsidian/site_navigation.rb +517 -0
- data/website/lib/jekyll_obsidian/url_builder.rb +163 -0
- data/website/lib/jekyll_obsidian/value_objects.rb +198 -0
- data/website/lib/jekyll_obsidian/vault_compiler.rb +2771 -0
- data/website/lib/jekyll_obsidian/version.rb +6 -0
- data/website/lib/jekyll_obsidian/workspace_layout.rb +104 -0
- data/website/lib/jekyll_obsidian.rb +22 -0
- data/website/scripts/audit-site.rb +120 -0
- data/website/scripts/templates/pages.yml +55 -0
- data/website/scripts/verify-site-urls.rb +585 -0
- metadata +319 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import{a as Pt}from"./chunk-VOCDYA3H.js";import{a as Bt}from"./chunk-YORIST7Z.js";import{o as Vt}from"./chunk-6DCNDVBX.js";import"./chunk-22DRK7VS.js";import{O as Dt,T as Rt,U as Ct,V as Nt,W as Ot,X as Lt,Y as Ft,Z as jt,c as Et,d as Tt,e as zt,f as lt,k as At,u as ct}from"./chunk-7CSIRG7W.js";import"./chunk-ERWOH47R.js";import{a as w}from"./chunk-EIBFAW37.js";import{e as it}from"./chunk-LGUG3SQB.js";import"./chunk-6DHFEWGX.js";function rt(t,n){let s=fe(t),e=s.filter(l=>ue(l,t)),i=0,r=0,o=[];if(e.length>1){let l=Wt(e);for(let u=0;u<e.length;++u){let a=e[u];a.angle=Math.atan2(a.x-l.x,a.y-l.y)}e.sort((u,a)=>a.angle-u.angle);let f=e[e.length-1];for(let u=0;u<e.length;++u){let a=e[u];r+=(f.x+a.x)*(a.y-f.y);let y={x:(a.x+f.x)/2,y:(a.y+f.y)/2},d=null;for(let b=0;b<a.parentIndex.length;++b)if(f.parentIndex.includes(a.parentIndex[b])){let p=t[a.parentIndex[b]],M=Math.atan2(a.x-p.x,a.y-p.y),T=Math.atan2(f.x-p.x,f.y-p.y),_=T-M;_<0&&(_+=2*Math.PI);let S=T-_/2,g=U(y,{x:p.x+p.radius*Math.sin(S),y:p.y+p.radius*Math.cos(S)});g>p.radius*2&&(g=p.radius*2),(d==null||d.width>g)&&(d={circle:p,width:g,p1:a,p2:f,large:g>p.radius,sweep:!0})}d!=null&&(o.push(d),i+=ht(d.circle.radius,d.width),f=a)}}else{let l=t[0];for(let u=1;u<t.length;++u)t[u].radius<l.radius&&(l=t[u]);let f=!1;for(let u=0;u<t.length;++u)if(U(t[u],l)>Math.abs(l.radius-t[u].radius)){f=!0;break}f?i=r=0:(i=l.radius*l.radius*Math.PI,o.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-1e-10,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return r/=2,n&&(n.area=i+r,n.arcArea=i,n.polygonArea=r,n.arcs=o,n.innerPoints=e,n.intersectionPoints=s),i+r}function ue(t,n){return n.every(s=>U(t,s)<s.radius+1e-10)}function fe(t){let n=[];for(let s=0;s<t.length;++s)for(let e=s+1;e<t.length;++e){let i=Gt(t[s],t[e]);for(let r of i)r.parentIndex=[s,e],n.push(r)}return n}function ht(t,n){return t*t*Math.acos(1-n/t)-(t-n)*Math.sqrt(n*(2*t-n))}function U(t,n){return Math.sqrt((t.x-n.x)*(t.x-n.x)+(t.y-n.y)*(t.y-n.y))}function mt(t,n,s){if(s>=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);let e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return ht(t,e)+ht(n,i)}function Gt(t,n){let s=U(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];let r=(e*e-i*i+s*s)/(2*s),o=Math.sqrt(e*e-r*r),l=t.x+r*(n.x-t.x)/s,f=t.y+r*(n.y-t.y)/s,u=-(n.y-t.y)*(o/s),a=-(n.x-t.x)*(o/s);return[{x:l+u,y:f-a},{x:l-u,y:f+a}]}function Wt(t){let n={x:0,y:0};for(let s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function he(t,n,s,e){e=e||{};let i=e.maxIterations||100,r=e.tolerance||1e-10,o=t(n),l=t(s),f=s-n;if(o*l>0)throw"Initial bisect points must have opposite signs";if(o===0)return n;if(l===0)return s;for(let u=0;u<i;++u){f/=2;let a=n+f,y=t(a);if(y*o>=0&&(n=a),Math.abs(f)<r||y===0)return a}return n+f}function dt(t){let n=new Array(t);for(let s=0;s<t;++s)n[s]=0;return n}function qt(t,n){return dt(t).map(()=>dt(n))}function $(t,n){let s=0;for(let e=0;e<t.length;++e)s+=t[e]*n[e];return s}function gt(t){return Math.sqrt($(t,t))}function xt(t,n,s){for(let e=0;e<n.length;++e)t[e]=n[e]*s}function J(t,n,s,e,i){for(let r=0;r<t.length;++r)t[r]=n*s[r]+e*i[r]}function Kt(t,n,s){s=s||{};let e=s.maxIterations||n.length*200,i=s.nonZeroDelta||1.05,r=s.zeroDelta||.001,o=s.minErrorDelta||1e-6,l=s.minErrorDelta||1e-5,f=s.rho!==void 0?s.rho:1,u=s.chi!==void 0?s.chi:2,a=s.psi!==void 0?s.psi:-.5,y=s.sigma!==void 0?s.sigma:.5,d,b=n.length,p=new Array(b+1);p[0]=n,p[0].fx=t(n),p[0].id=0;for(let v=0;v<b;++v){let c=n.slice();c[v]=c[v]?c[v]*i:r,p[v+1]=c,p[v+1].fx=t(c),p[v+1].id=v+1}function M(v){for(let c=0;c<v.length;c++)p[b][c]=v[c];p[b].fx=v.fx}let T=(v,c)=>v.fx-c.fx,_=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let v=0;v<e;++v){if(p.sort(T),s.history){let x=p.map(h=>{let D=h.slice();return D.fx=h.fx,D.id=h.id,D});x.sort((h,D)=>h.id-D.id),s.history.push({x:p[0].slice(),fx:p[0].fx,simplex:x})}d=0;for(let x=0;x<b;++x)d=Math.max(d,Math.abs(p[0][x]-p[1][x]));if(Math.abs(p[0].fx-p[b].fx)<o&&d<l)break;for(let x=0;x<b;++x){_[x]=0;for(let h=0;h<b;++h)_[x]+=p[h][x];_[x]/=b}let c=p[b];if(J(S,1+f,_,-f,c),S.fx=t(S),S.fx<p[0].fx)J(m,1+u,_,-u,c),m.fx=t(m),m.fx<S.fx?M(m):M(S);else if(S.fx>=p[b-1].fx){let x=!1;if(S.fx>c.fx?(J(g,1+a,_,-a,c),g.fx=t(g),g.fx<c.fx?M(g):x=!0):(J(g,1-a*f,_,a*f,c),g.fx=t(g),g.fx<S.fx?M(g):x=!0),x){if(y>=1)break;for(let h=1;h<p.length;++h)J(p[h],1-y,p[0],y,p[h]),p[h].fx=t(p[h])}}else M(S)}return p.sort(T),{fx:p[0].fx,x:p[0]}}function de(t,n,s,e,i,r,o){let l=s.fx,f=$(s.fxprime,n),u=l,a=l,y=f,d=0;i=i||1,r=r||1e-6,o=o||.1;function b(p,M,T){for(let _=0;_<16;++_)if(i=(p+M)/2,J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>l+r*i*f||u>=T)M=i;else{if(Math.abs(y)<=-o*f)return i;y*(M-p)>=0&&(M=p),p=i,T=u}return 0}for(let p=0;p<10;++p){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>l+r*i*f||p&&u>=a)return b(d,i,a);if(Math.abs(y)<=-o*f)return i;if(y>=0)return b(i,d,u);a=u,d=i,i*=2}return i}function ge(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()},r=n.slice(),o,l,f=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),o=e.fxprime.slice(),xt(o,e.fxprime,-1);for(let a=0;a<u;++a){if(f=de(t,o,e,i,f),s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),!f)xt(o,e.fxprime,-1);else{J(r,1,i.fxprime,-1,e.fxprime);let y=$(e.fxprime,e.fxprime),d=Math.max(0,$(r,i.fxprime)/y);J(o,d,o,-1,i.fxprime),l=e,e=i,i=l}if(gt(e.fxprime)<=1e-5)break}return s.history&&s.history.push({x:e.x.slice(),fx:e.fx,fxprime:e.fxprime.slice(),alpha:f}),e}function Ht(t,n={}){n.maxIterations=n.maxIterations||500;let s=n.initialLayout||me,e=n.lossFunction||tt,i=xe(t,n),r=s(i,n),o=Object.keys(r),l=[];for(let a of o)l.push(r[a].x),l.push(r[a].y);let u=Kt(a=>{let y={};for(let d=0;d<o.length;++d){let b=o[d];y[b]={x:a[2*d],y:a[2*d+1],radius:r[b].radius}}return e(y,i)},l,n).x;for(let a=0;a<o.length;++a){let y=o[a];r[y].x=u[2*a],r[y].y=u[2*a+1]}return r}var Yt=1e-10;function yt(t,n,s){return Math.min(t,n)*Math.min(t,n)*Math.PI<=s+Yt?Math.abs(t-n):he(e=>mt(t,n,e)-s,0,t+n)}function xe(t,n={}){let s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){let l=new Map;for(let f of e)for(let u=0;u<f.sets.length;u++){let a=String(f.sets[u]);l.set(a,f.size+(l.get(a)||0));for(let y=u+1;y<f.sets.length;y++){let d=String(f.sets[y]),b=`${a};${d}`,p=`${d};${a}`;l.set(b,f.size+(l.get(b)||0)),l.set(p,f.size+(l.get(p)||0))}}for(let f of e)f.sets.length<3&&(f.size=l.get(i(f.sets)))}let r=[],o=new Set;for(let l of e)if(l.sets.length===1)r.push(l.sets[0]);else if(l.sets.length===2){let f=l.sets[0],u=l.sets[1];o.add(i(l.sets)),o.add(i([u,f]))}r.sort((l,f)=>l===f?0:l<f?-1:1);for(let l=0;l<r.length;++l){let f=r[l];for(let u=l+1;u<r.length;++u){let a=r[u];o.has(i([f,a]))||e.push({sets:[f,a],size:0})}}return e}function ye(t,n,s){let e=qt(n.length,n.length),i=qt(n.length,n.length);return t.filter(r=>r.sets.length===2).forEach(r=>{let o=s[r.sets[0]],l=s[r.sets[1]],f=Math.sqrt(n[o].size/Math.PI),u=Math.sqrt(n[l].size/Math.PI),a=yt(f,u,r.size);e[o][l]=e[l][o]=a;let y=0;r.size+1e-10>=Math.min(n[o].size,n[l].size)?y=1:r.size<=1e-10&&(y=-1),i[o][l]=i[l][o]=y}),{distances:e,constraints:i}}function pe(t,n,s,e){for(let r=0;r<n.length;++r)n[r]=0;let i=0;for(let r=0;r<s.length;++r){let o=t[2*r],l=t[2*r+1];for(let f=r+1;f<s.length;++f){let u=t[2*f],a=t[2*f+1],y=s[r][f],d=e[r][f],b=(u-o)*(u-o)+(a-l)*(a-l),p=Math.sqrt(b),M=b-y*y;d>0&&p<=y||d<0&&p>=y||(i+=2*M*M,n[2*r]+=4*M*(o-u),n[2*r+1]+=4*M*(l-a),n[2*f]+=4*M*(u-o),n[2*f+1]+=4*M*(a-l))}}return i}function me(t,n={}){let s=ve(t,n),e=n.lossFunction||tt;if(t.length>=8){let i=be(t,n),r=e(i,t),o=e(s,t);r+1e-8<o&&(s=i)}return s}function be(t,n={}){let s=n.restarts||10,e=[],i={};for(let d of t)d.sets.length===1&&(i[d.sets[0]]=e.length,e.push(d));let{distances:r,constraints:o}=ye(t,e,i),l=gt(r.map(gt))/r.length;r=r.map(d=>d.map(b=>b/l));let f=(d,b)=>pe(d,b,r,o),u=null;for(let d=0;d<s;++d){let b=dt(r.length*2).map(Math.random),p=ge(f,b,n);(!u||p.fx<u.fx)&&(u=p)}let a=u.x,y={};for(let d=0;d<e.length;++d){let b=e[d];y[b.sets[0]]={x:a[2*d]*l,y:a[2*d+1]*l,radius:Math.sqrt(b.size/Math.PI)}}if(n.history)for(let d of n.history)xt(d.x,l);return y}function ve(t,n){let s=n&&n.lossFunction?n.lossFunction:tt,e={},i={};for(let y of t)if(y.sets.length===1){let d=y.sets[0];e[d]={x:1e10,y:1e10,rowid:e.length,size:y.size,radius:Math.sqrt(y.size/Math.PI)},i[d]=[]}t=t.filter(y=>y.sets.length===2);for(let y of t){let d=y.weight!=null?y.weight:1,b=y.sets[0],p=y.sets[1];y.size+Yt>=Math.min(e[b].size,e[p].size)&&(d=0),i[b].push({set:p,size:y.size,weight:d}),i[p].push({set:b,size:y.size,weight:d})}let r=[];Object.keys(i).forEach(y=>{let d=0;for(let b=0;b<i[y].length;++b)d+=i[y][b].size*i[y][b].weight;r.push({set:y,size:d})});function o(y,d){return d.size-y.size}r.sort(o);let l={};function f(y){return y.set in l}function u(y,d){e[d].x=y.x,e[d].y=y.y,l[d]=!0}u({x:0,y:0},r[0].set);for(let y=1;y<r.length;++y){let d=r[y].set,b=i[d].filter(f),p=e[d];if(b.sort(o),b.length===0)throw"ERROR: missing pairwise overlap information";let M=[];for(var a=0;a<b.length;++a){let S=e[b[a].set],g=yt(p.radius,S.radius,b[a].size);M.push({x:S.x+g,y:S.y}),M.push({x:S.x-g,y:S.y}),M.push({y:S.y+g,x:S.x}),M.push({y:S.y-g,x:S.x});for(let m=a+1;m<b.length;++m){let v=e[b[m].set],c=yt(p.radius,v.radius,b[m].size),x=Gt({x:S.x,y:S.y,radius:g},{x:v.x,y:v.y,radius:c});M.push(...x)}}let T=1e50,_=M[0];for(let S of M){e[d].x=S.x,e[d].y=S.y;let g=s(e,t);g<T&&(T=g,_=S)}u(_,d)}return e}function tt(t,n){let s=0;for(let e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){let o=t[e.sets[0]],l=t[e.sets[1]];i=mt(o.radius,l.radius,U(o,l))}else i=rt(e.sets.map(o=>t[o]));let r=e.weight!=null?e.weight:1;s+=r*(i-e.size)*(i-e.size)}return s}function Xt(t,n){let s=0;for(let e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){let l=t[e.sets[0]],f=t[e.sets[1]];i=mt(l.radius,f.radius,U(l,f))}else i=rt(e.sets.map(l=>t[l]));let r=e.weight!=null?e.weight:1,o=Math.log((i+1)/(e.size+1));s+=r*o*o}return s}function ke(t,n,s){if(s==null?t.sort((i,r)=>r.radius-i.radius):t.sort(s),t.length>0){let i=t[0].x,r=t[0].y;for(let o of t)o.x-=i,o.y-=r}if(t.length===2&&U(t[0],t[1])<Math.abs(t[1].radius-t[0].radius)&&(t[1].x=t[0].x+t[0].radius-t[1].radius-1e-10,t[1].y=t[0].y),t.length>1){let i=Math.atan2(t[1].x,t[1].y)-n,r=Math.cos(i),o=Math.sin(i);for(let l of t){let f=l.x,u=l.y;l.x=r*f-o*u,l.y=o*f+r*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){let r=t[1].y/(1e-10+t[1].x);for(let o of t){var e=(o.x+r*o.y)/(1+r*r);o.x=2*e-o.x,o.y=2*e*r-o.y}}}}function Ie(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,r){let o=n(i),l=n(r);o.parent=l}for(let i=0;i<t.length;++i)for(let r=i+1;r<t.length;++r){let o=t[i].radius+t[r].radius;U(t[i],t[r])+1e-10<o&&s(t[r],t[i])}let e=new Map;for(let i=0;i<t.length;++i){let r=n(t[i]).parent.setid;e.has(r)||e.set(r,[]),e.get(r).push(t[i])}return t.forEach(i=>{delete i.parent}),Array.from(e.values())}function pt(t){let n=s=>{let e=t.reduce((r,o)=>Math.max(r,o[s]+o.radius),Number.NEGATIVE_INFINITY),i=t.reduce((r,o)=>Math.min(r,o[s]-o.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Zt(t,n,s){n==null&&(n=Math.PI/2);let e=$t(t).map(u=>Object.assign({},u)),i=Ie(e);for(let u of i){ke(u,n,s);let a=pt(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let r=e.bounds,o=(r.xRange.max-r.xRange.min)/50;function l(u,a,y){if(!u)return;let d=u.bounds,b,p;if(a)b=r.xRange.max-d.xRange.min+o;else{b=r.xRange.max-d.xRange.max;let M=(d.xRange.max-d.xRange.min)/2-(r.xRange.max-r.xRange.min)/2;M<0&&(b+=M)}if(y)p=r.yRange.max-d.yRange.min+o;else{p=r.yRange.max-d.yRange.max;let M=(d.yRange.max-d.yRange.min)/2-(r.yRange.max-r.yRange.min)/2;M<0&&(p+=M)}for(let M of u)M.x+=b,M.y+=p,e.push(M)}let f=1;for(;f<i.length;)l(i[f],!0,!1),l(i[f+1],!1,!0),l(i[f+2],!0,!0),f+=3,r=pt(e);return Qt(e)}function Jt(t,n,s,e,i){let r=$t(t);n-=2*e,s-=2*e;let{xRange:o,yRange:l}=pt(r);if(o.max===o.min||l.max===l.min)return console.log("not scaling solution: zero size detected"),t;let f,u;if(i){let b=Math.sqrt(i/Math.PI)*2;f=n/b,u=s/b}else f=n/(o.max-o.min),u=s/(l.max-l.min);let a=Math.min(u,f),y=(n-(o.max-o.min)*a)/2,d=(s-(l.max-l.min)*a)/2;return Qt(r.map(b=>({radius:a*b.radius,x:e+y+(b.x-o.min)*a,y:e+d+(b.y-l.min)*a,setid:b.setid})))}function Qt(t){let n={};for(let s of t)n[s.setid]=s;return n}function $t(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function te(t={}){let n=!1,s=600,e=350,i=15,r=1e3,o=Math.PI/2,l=!0,f=null,u=!0,a=!0,y=null,d=null,b=!1,p=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,T={},_=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(x){if(x in T)return T[x];var h=T[x]=_[S];return S+=1,S>=_.length&&(S=0),h},m=Ht,v=tt;function c(x){let h=x.datum(),D=new Set;h.forEach(k=>{k.size==0&&k.sets.length==1&&D.add(k.sets[0])}),h=h.filter(k=>!k.sets.some(P=>D.has(P)));let I={},R={};if(h.length>0){let k=m(h,{lossFunction:v,distinct:b});l&&(k=Zt(k,o,d)),I=Jt(k,s,e,i,f),R=ne(I,h,M)}let G={};h.forEach(k=>{k.label&&(G[k.sets]=k.label)});function V(k){if(k.sets in G)return G[k.sets];if(k.sets.length==1)return""+k.sets[0]}x.selectAll("svg").data([I]).enter().append("svg");let N=x.select("svg");n?N.attr("viewBox",`0 0 ${s} ${e}`):N.attr("width",s).attr("height",e);let A={},C=!1;N.selectAll(".venn-area path").each(function(k){let P=this.getAttribute("d");k.sets.length==1&&P&&!b&&(C=!0,A[k.sets[0]]=we(P))});function E(k){return P=>{let et=k.sets.map(Z=>{let Y=A[Z],q=I[Z];return Y||(Y={x:s/2,y:e/2,radius:1}),q||(q={x:s/2,y:e/2,radius:1}),{x:Y.x*(1-P)+q.x*P,y:Y.y*(1-P)+q.y*P,radius:Y.radius*(1-P)+q.radius*P}});return Ut(et,p)}}let O=N.selectAll(".venn-area").data(h,k=>k.sets),B=O.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),L=B.append("path"),F=B.append("text").attr("class","label").text(k=>V(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(L.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),F.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function H(k){return typeof k.transition=="function"?k.transition("venn").duration(r):k}let j=x;C&&typeof j.transition=="function"?(j=H(x),j.selectAll("path").attrTween("d",E)):j.selectAll("path").attr("d",k=>Ut(k.sets.map(P=>I[P])),p);let z=j.selectAll("text").filter(k=>k.sets in R).text(k=>V(k)).attr("x",k=>Math.floor(R[k.sets].x)).attr("y",k=>Math.floor(R[k.sets].y));u&&(C?"on"in z?z.on("end",ut(I,V)):z.each("end",ut(I,V)):z.each(ut(I,V)));let X=H(O.exit()).remove();typeof O.transition=="function"&&X.selectAll("path").attrTween("d",E);let W=X.selectAll("text").attr("x",s/2).attr("y",e/2);return y!==null&&(F.style("font-size","0px"),z.style("font-size",y),W.style("font-size","0px")),{circles:I,textCentres:R,nodes:O,enter:B,update:j,exit:X}}return c.wrap=function(x){return arguments.length?(u=x,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(x){return arguments.length?(s=x,c):s},c.height=function(x){return arguments.length?(e=x,c):e},c.padding=function(x){return arguments.length?(i=x,c):i},c.distinct=function(x){return arguments.length?(b=x,c):b},c.colours=function(x){return arguments.length?(g=x,c):g},c.colors=function(x){return arguments.length?(g=x,c):g},c.fontSize=function(x){return arguments.length?(y=x,c):y},c.round=function(x){return arguments.length?(p=x,c):p},c.duration=function(x){return arguments.length?(r=x,c):r},c.layoutFunction=function(x){return arguments.length?(m=x,c):m},c.normalize=function(x){return arguments.length?(l=x,c):l},c.scaleToFit=function(x){return arguments.length?(f=x,c):f},c.styled=function(x){return arguments.length?(a=x,c):a},c.orientation=function(x){return arguments.length?(o=x,c):o},c.orientationOrder=function(x){return arguments.length?(d=x,c):d},c.lossFunction=function(x){return arguments.length?(v=x==="default"?tt:x==="logRatio"?Xt:x,c):v},c}function ut(t,n){return function(s){let e=this,i=t[s.sets[0]].radius||50,r=n(s)||"",o=r.split(/\s+/).reverse(),f=(r.length+o.length)/3,u=o.pop(),a=[u],y=0,d=1.1;e.textContent=null;let b=[];function p(g){let m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=p(u);for(;u=o.pop(),!!u;){a.push(u);let g=a.join(" ");M.textContent=g,g.length>f&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=p(u),y++)}let T=.35-y*d/2,_=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",_),g.setAttribute("y",S),g.setAttribute("dy",`${T+m*d}em`)})}}function ft(t,n,s){let e=n[0].radius-U(n[0],t);for(let i=1;i<n.length;++i){let r=n[i].radius-U(n[i],t);r<=e&&(e=r)}for(let i=0;i<s.length;++i){let r=U(s[i],t)-s[i].radius;r<=e&&(e=r)}return e}function ee(t,n,s){let e=[];for(let a of t)e.push({x:a.x,y:a.y}),e.push({x:a.x+a.radius/2,y:a.y}),e.push({x:a.x-a.radius/2,y:a.y}),e.push({x:a.x,y:a.y+a.radius/2}),e.push({x:a.x,y:a.y-a.radius/2});let i=e[0],r=ft(e[0],t,n);for(let a=1;a<e.length;++a){let y=ft(e[a],t,n);y>=r&&(i=e[a],r=y)}let o=Kt(a=>-1*ft({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:o[0],y:o[1]},f=!0;for(let a of t)if(U(l,a)>a.radius){f=!1;break}for(let a of n)if(U(l,a)<a.radius){f=!1;break}if(f)return l;if(t.length==1)return{x:t[0].x,y:t[0].y};let u={};return rt(t,u),u.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:u.arcs.length==1?{x:u.arcs[0].circle.x,y:u.arcs[0].circle.y}:n.length?ee(t,[]):Wt(u.arcs.map(a=>a.p1))}function Me(t){let n={},s=Object.keys(t);for(let e of s)n[e]=[];for(let e=0;e<s.length;e++){let i=s[e],r=t[i];for(let o=e+1;o<s.length;++o){let l=s[o],f=t[l],u=U(r,f);u+f.radius<=r.radius+1e-10?n[l].push(i):u+r.radius<=f.radius+1e-10&&n[i].push(l)}}return n}function ne(t,n,s){let e={},i=Me(t);for(let r=0;r<n.length;++r){let o=n[r].sets,l={},f={};for(let d=0;d<o.length;++d){l[o[d]]=!0;let b=i[o[d]];for(let p=0;p<b.length;++p)f[b[p]]=!0}let u=[],a=[];for(let d in t)d in l?u.push(t[d]):d in f||a.push(t[d]);let y=ee(u,a,s);e[o]=y,y.disjoint&&n[r].size>0&&console.log("WARNING: area "+o+" not represented on screen")}return e}function Se(t,n,s){let e=[];return e.push(`
|
|
2
|
+
M`,t,n),e.push(`
|
|
3
|
+
m`,-s,0),e.push(`
|
|
4
|
+
a`,s,s,0,1,0,s*2,0),e.push(`
|
|
5
|
+
a`,s,s,0,1,0,-s*2,0),e.join(" ")}function we(t){let n=t.split(" ");return{x:Number.parseFloat(n[1]),y:Number.parseFloat(n[2]),radius:-Number.parseFloat(n[4])}}function se(t){if(t.length===0)return[];let n={};return rt(t,n),n.arcs}function ie(t,n){if(t.length===0)return"M 0 0";let s=Math.pow(10,n||0),e=n!=null?r=>Math.round(r*s)/s:r=>r;if(t.length==1){let r=t[0].circle;return Se(e(r.x),e(r.y),e(r.radius))}let i=[`
|
|
6
|
+
M`,e(t[0].p2.x),e(t[0].p2.y)];for(let r of t){let o=e(r.circle.radius);i.push(`
|
|
7
|
+
A`,o,o,0,r.large?1:0,r.sweep?1:0,e(r.p1.x),e(r.p1.y))}return i.join(" ")}function Ut(t,n){return ie(se(t),n)}function re(t,n={}){let{lossFunction:s,layoutFunction:e=Ht,normalize:i=!0,orientation:r=Math.PI/2,orientationOrder:o,width:l=600,height:f=350,padding:u=15,scaleToFit:a=!1,symmetricalTextCentre:y=!1,distinct:d,round:b=2}=n,p=e(t,{lossFunction:s==="default"||!s?tt:s==="logRatio"?Xt:s,distinct:d});i&&(p=Zt(p,r,o));let M=Jt(p,l,f,u,a),T=ne(M,t,y),_=new Map(Object.keys(M).map(m=>[m,{set:m,x:M[m].x,y:M[m].y,radius:M[m].radius}])),S=t.map(m=>{let v=m.sets.map(h=>_.get(h)),c=se(v),x=ie(c,b);return{circles:v,arcs:c,path:x,area:m,has:new Set(m.sets)}});function g(m){let v="";for(let c of S)c.has.size>m.length&&m.every(x=>c.has.has(x))&&(v+=" "+c.path);return v}return S.map(({circles:m,arcs:v,path:c,area:x})=>({data:x,text:T[x.sets],circles:m,arcs:v,path:c,distinctPath:c+g(x.sets)}))}var bt=(function(){var t=w(function(S,g,m,v){for(m=m||{},v=S.length;v--;m[S[v]]=g);return m},"o"),n=[5,8],s=[7,8,11,12,17,19,22,24],e=[1,17],i=[1,18],r=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],o=[1,31],l=[1,39],f=[7,8,11,12,17,19,22,24,27],u=[1,57],a=[1,56],y=[1,58],d=[1,59],b=[1,60],p=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],M={trace:w(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:w(function(g,m,v,c,x,h,D){var I=h.length-1;switch(x){case 1:return h[I-1];case 2:case 3:case 4:this.$=[];break;case 5:h[I-1].push(h[I]),this.$=h[I-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=h[I];break;case 8:c.setDiagramTitle(h[I].substr(6)),this.$=h[I].substr(6);break;case 9:c.addSubsetData([h[I]],void 0,void 0),c.setIndentMode&&c.setIndentMode(!0);break;case 10:c.addSubsetData([h[I-1]],h[I],void 0),c.setIndentMode&&c.setIndentMode(!0);break;case 11:c.addSubsetData([h[I-2]],void 0,parseFloat(h[I])),c.setIndentMode&&c.setIndentMode(!0);break;case 12:c.addSubsetData([h[I-3]],h[I-2],parseFloat(h[I])),c.setIndentMode&&c.setIndentMode(!0);break;case 13:if(h[I].length<2)throw new Error("union requires multiple identifiers");c.validateUnionIdentifiers&&c.validateUnionIdentifiers(h[I]),c.addSubsetData(h[I],void 0,void 0),c.setIndentMode&&c.setIndentMode(!0);break;case 14:if(h[I-1].length<2)throw new Error("union requires multiple identifiers");c.validateUnionIdentifiers&&c.validateUnionIdentifiers(h[I-1]),c.addSubsetData(h[I-1],h[I],void 0),c.setIndentMode&&c.setIndentMode(!0);break;case 15:if(h[I-2].length<2)throw new Error("union requires multiple identifiers");c.validateUnionIdentifiers&&c.validateUnionIdentifiers(h[I-2]),c.addSubsetData(h[I-2],void 0,parseFloat(h[I])),c.setIndentMode&&c.setIndentMode(!0);break;case 16:if(h[I-3].length<2)throw new Error("union requires multiple identifiers");c.validateUnionIdentifiers&&c.validateUnionIdentifiers(h[I-3]),c.addSubsetData(h[I-3],h[I-2],parseFloat(h[I])),c.setIndentMode&&c.setIndentMode(!0);break;case 17:case 18:case 19:c.addTextData(h[I-1],h[I],void 0);break;case 20:case 21:c.addTextData(h[I-2],h[I-1],h[I]);break;case 23:c.addStyleData(h[I-1],h[I]);break;case 24:case 25:case 26:var R=c.getCurrentSets();if(!R)throw new Error("text requires set");c.addTextData(R,h[I],void 0);break;case 27:case 28:var R=c.getCurrentSets();if(!R)throw new Error("text requires set");c.addTextData(R,h[I-1],h[I]);break;case 29:case 41:this.$=[h[I]];break;case 30:case 42:this.$=[...h[I-2],h[I]];break;case 31:this.$=[h[I-2],h[I]];break;case 33:this.$=h[I].join(" ");break;case 34:this.$=[h[I]];break;case 35:h[I-1].push(h[I]),this.$=h[I-1];break;case 43:case 44:this.$=h[I];break}},"anonymous"),table:[t(n,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},t(s,[2,4],{6:5}),t(n,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},t(s,[2,5]),t(s,[2,6]),t(s,[2,7]),t(s,[2,8]),{13:16,20:e,21:i},{13:20,18:19,20:e,21:i},{13:20,18:21,20:e,21:i},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:e,21:i},t(s,[2,9],{14:[1,27],15:[1,28]}),t(r,[2,43]),t(r,[2,44]),t(s,[2,13],{14:[1,29],15:[1,30],27:o}),t(r,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:o},t(s,[2,22]),t(s,[2,24],{14:[1,35]}),t(s,[2,25],{14:[1,36]}),t(s,[2,26]),{20:l,25:37,26:38,27:o},t(s,[2,10],{15:[1,40]}),{16:[1,41]},t(s,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:e,21:i},t(s,[2,17],{14:[1,45]}),t(s,[2,18],{14:[1,46]}),t(s,[2,19]),t(s,[2,27]),t(s,[2,28]),t(s,[2,23],{27:[1,47]}),t(f,[2,29]),{15:[1,48]},{16:[1,49]},t(s,[2,11]),{16:[1,50]},t(s,[2,15]),t(r,[2,42]),t(s,[2,20]),t(s,[2,21]),{20:l,26:51},{16:u,20:a,21:[1,53],28:52,29:54,30:55,31:y,32:d,33:b},t(s,[2,12]),t(s,[2,16]),t(f,[2,30]),t(f,[2,31]),t(f,[2,32]),t(f,[2,33],{30:61,16:u,20:a,31:y,32:d,33:b}),t(p,[2,34]),t(p,[2,36]),t(p,[2,37]),t(p,[2,38]),t(p,[2,39]),t(p,[2,40]),t(p,[2,35])],defaultActions:{6:[2,1]},parseError:w(function(g,m){if(m.recoverable)this.trace(g);else{var v=new Error(g);throw v.hash=m,v}},"parseError"),parse:w(function(g){var m=this,v=[0],c=[],x=[null],h=[],D=this.table,I="",R=0,G=0,V=0,N=2,A=1,C=h.slice.call(arguments,1),E=Object.create(this.lexer),O={yy:{}};for(var B in this.yy)Object.prototype.hasOwnProperty.call(this.yy,B)&&(O.yy[B]=this.yy[B]);E.setInput(g,O.yy),O.yy.lexer=E,O.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var L=E.yylloc;h.push(L);var F=E.options&&E.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function H(K){v.length=v.length-2*K,x.length=x.length-K,h.length=h.length-K}w(H,"popStack");function j(){var K;return K=c.pop()||E.lex()||A,typeof K!="number"&&(K instanceof Array&&(c=K,K=c.pop()),K=m.symbols_[K]||K),K}w(j,"lex");for(var z,X,W,k,P,et,Z={},Y,q,_t,st;;){if(W=v[v.length-1],this.defaultActions[W]?k=this.defaultActions[W]:((z===null||typeof z>"u")&&(z=j()),k=D[W]&&D[W][z]),typeof k>"u"||!k.length||!k[0]){var at="";st=[];for(Y in D[W])this.terminals_[Y]&&Y>N&&st.push("'"+this.terminals_[Y]+"'");E.showPosition?at="Parse error on line "+(R+1)+`:
|
|
8
|
+
`+E.showPosition()+`
|
|
9
|
+
Expecting `+st.join(", ")+", got '"+(this.terminals_[z]||z)+"'":at="Parse error on line "+(R+1)+": Unexpected "+(z==A?"end of input":"'"+(this.terminals_[z]||z)+"'"),this.parseError(at,{text:E.match,token:this.terminals_[z]||z,line:E.yylineno,loc:L,expected:st})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+z);switch(k[0]){case 1:v.push(z),x.push(E.yytext),h.push(E.yylloc),v.push(k[1]),z=null,X?(z=X,X=null):(G=E.yyleng,I=E.yytext,R=E.yylineno,L=E.yylloc,V>0&&V--);break;case 2:if(q=this.productions_[k[1]][1],Z.$=x[x.length-q],Z._$={first_line:h[h.length-(q||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(q||1)].first_column,last_column:h[h.length-1].last_column},F&&(Z._$.range=[h[h.length-(q||1)].range[0],h[h.length-1].range[1]]),et=this.performAction.apply(Z,[I,G,R,O.yy,k[1],x,h].concat(C)),typeof et<"u")return et;q&&(v=v.slice(0,-1*q*2),x=x.slice(0,-1*q),h=h.slice(0,-1*q)),v.push(this.productions_[k[1]][0]),x.push(Z.$),h.push(Z._$),_t=D[v[v.length-2]][v[v.length-1]],v.push(_t);break;case 3:return!0}}return!0},"parse")},T=(function(){var S={EOF:1,parseError:w(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:w(function(g,m){return this.yy=m||this.yy||{},this._input=g,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:w(function(){var g=this._input[0];this.yytext+=g,this.yyleng++,this.offset++,this.match+=g,this.matched+=g;var m=g.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),g},"input"),unput:w(function(g){var m=g.length,v=g.split(/(?:\r\n?|\n)/g);this._input=g+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var c=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===c.length?this.yylloc.first_column:0)+c[c.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:w(function(){return this._more=!0,this},"more"),reject:w(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
10
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:w(function(g){this.unput(this.match.slice(g))},"less"),pastInput:w(function(){var g=this.matched.substr(0,this.matched.length-this.match.length);return(g.length>20?"...":"")+g.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:w(function(){var g=this.match;return g.length<20&&(g+=this._input.substr(0,20-g.length)),(g.substr(0,20)+(g.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:w(function(){var g=this.pastInput(),m=new Array(g.length+1).join("-");return g+this.upcomingInput()+`
|
|
11
|
+
`+m+"^"},"showPosition"),test_match:w(function(g,m){var v,c,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),c=g[0].match(/(?:\r\n?|\n).*/g),c&&(this.yylineno+=c.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:c?c[c.length-1].length-c[c.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+g[0].length},this.yytext+=g[0],this.match+=g[0],this.matches=g,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(g[0].length),this.matched+=g[0],v=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var h in x)this[h]=x[h];return!1}return!1},"test_match"),next:w(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var g,m,v,c;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),h=0;h<x.length;h++)if(v=this._input.match(this.rules[x[h]]),v&&(!m||v[0].length>m[0].length)){if(m=v,c=h,this.options.backtrack_lexer){if(g=this.test_match(v,x[h]),g!==!1)return g;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(g=this.test_match(m,x[c]),g!==!1?g:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
12
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:w(function(){var m=this.next();return m||this.lex()},"lex"),begin:w(function(m){this.conditionStack.push(m)},"begin"),popState:w(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:w(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:w(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:w(function(m){this.begin(m)},"pushState"),stateStackSize:w(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:w(function(m,v,c,x){var h=x;switch(c){case 0:break;case 1:break;case 2:break;case 3:if(m.getIndentMode&&m.getIndentMode())return m.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 4:break;case 5:m.setIndentMode&&m.setIndentMode(!1),this.begin("INITIAL"),this.unput(v.yytext);break;case 6:return this.begin("bol"),8;break;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(m.consumeIndentText)m.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return v.yytext=v.yytext.slice(2,-2),14;break;case 17:return v.yytext=v.yytext.slice(1,-1).trim(),14;break;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return S})();M.lexer=T;function _(){this.yy={}}return w(_,"Parser"),_.prototype=M,M.Parser=_,new _})();bt.parser=bt;var Ee=bt,vt=[],kt=[],It=[],Mt=new Set,St,wt=!1,Te=w((t,n,s)=>{let e=ot(t).sort(),i=s??10/Math.pow(t.length,2);St=e,e.length===1&&Mt.add(e[0]),vt.push({sets:e,size:i,label:n?nt(n):void 0})},"addSubsetData"),ze=w(()=>vt,"getSubsetData"),nt=w(t=>{let n=t.trim();return n.length>=2&&n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1):n},"normalizeText"),Ae=w(t=>t&&nt(t),"normalizeStyleValue"),De=w((t,n,s)=>{let e=nt(n);kt.push({sets:ot(t).sort(),id:e,label:s?nt(s):void 0})},"addTextData"),Re=w((t,n)=>{let s=ot(t).sort(),e={};for(let[i,r]of n)e[i]=Ae(r)??r;It.push({targets:s,styles:e})},"addStyleData"),Ce=w(()=>It,"getStyleData"),ot=w(t=>t.map(n=>nt(n)),"normalizeIdentifierList"),Ne=w(t=>{let s=ot(t).filter(e=>!Mt.has(e));if(s.length>0)throw new Error(`unknown set identifier: ${s.join(", ")}`)},"validateUnionIdentifiers"),Oe=w(()=>kt,"getTextData"),Le=w(()=>St,"getCurrentSets"),Fe=w(()=>wt,"getIndentMode"),je=w(t=>{wt=t},"setIndentMode"),Pe=At.venn;function oe(){return Vt(Pe,ct().venn)}w(oe,"getConfig");var Ve=w(()=>{Rt(),vt.length=0,kt.length=0,It.length=0,Mt.clear(),St=void 0,wt=!1},"customClear"),Be={getConfig:oe,clear:Ve,setAccTitle:Ct,getAccTitle:Nt,setDiagramTitle:Ft,getDiagramTitle:jt,getAccDescription:Lt,setAccDescription:Ot,addSubsetData:Te,getSubsetData:ze,addTextData:De,addStyleData:Re,validateUnionIdentifiers:Ne,getTextData:Oe,getStyleData:Ce,getCurrentSets:Le,getIndentMode:Fe,setIndentMode:je},qe=w(t=>`
|
|
13
|
+
.venn-title {
|
|
14
|
+
font-size: 32px;
|
|
15
|
+
fill: ${t.vennTitleTextColor};
|
|
16
|
+
font-family: ${t.fontFamily};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.venn-circle text {
|
|
20
|
+
font-size: 48px;
|
|
21
|
+
font-family: ${t.fontFamily};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.venn-intersection text {
|
|
25
|
+
font-size: 48px;
|
|
26
|
+
fill: ${t.vennSetTextColor};
|
|
27
|
+
font-family: ${t.fontFamily};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.venn-text-node {
|
|
31
|
+
font-family: ${t.fontFamily};
|
|
32
|
+
color: ${t.vennSetTextColor};
|
|
33
|
+
}
|
|
34
|
+
`,"getStyles"),Ue=qe;function ae(t){let n=new Map;for(let s of t){let e=s.targets.join("|"),i=n.get(e);i?Object.assign(i,s.styles):n.set(e,{...s.styles})}return n}w(ae,"buildStyleByKey");var Ge=w((t,n,s,e)=>{let i=e.db,r=i.getConfig?.(),{themeVariables:o,look:l,handDrawnSeed:f}=ct(),u=l==="handDrawn",a=[o.venn1,o.venn2,o.venn3,o.venn4,o.venn5,o.venn6,o.venn7,o.venn8].filter(Boolean),y=i.getDiagramTitle?.(),d=i.getSubsetData(),b=i.getTextData(),p=ae(i.getStyleData()),M=ce(d),T=r?.width??800,_=r?.height??450,g=T/1600,m=y?48*g:0,v=o.primaryTextColor??o.textColor,c=Pt(n);c.attr("viewBox",`0 0 ${T} ${_}`),y&&c.append("text").text(y).attr("class","venn-title").attr("font-size",`${32*g}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*g).style("fill",o.vennTitleTextColor||o.titleColor);let x=it(document.createElement("div")),h=te().width(T).height(_-m);x.datum(M).call(h);let D=u?Bt.svg(x.select("svg").node()):void 0,I=re(M,{width:T,height:_-m,padding:r?.padding??15}),R=new Map;for(let A of I){let C=Q([...A.data.sets].sort());R.set(C,A)}b.length>0&&le(r,R,x,b,g,p);let G=Et(o.background||"#f4f4f4");x.selectAll(".venn-circle").each(function(A,C){let E=it(this),B=Q([...A.sets].sort()),L=p.get(B),F=L?.fill||a[C%a.length]||o.primaryColor;E.classed(`venn-set-${C%8}`,!0);let H=L?.["fill-opacity"]??.1,j=L?.stroke||F,z=L?.["stroke-width"]||`${5*g}`;if(u&&D){let W=R.get(B);if(W&&W.circles.length>0){let k=W.circles[0],P=D.circle(k.x,k.y,k.radius*2,{roughness:.7,seed:f,fill:lt(F,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+C*60,stroke:j,strokeWidth:parseFloat(String(z))});E.select("path").remove(),E.node()?.insertBefore(P,E.select("text").node())}}else E.select("path").style("fill",F).style("fill-opacity",H).style("stroke",j).style("stroke-width",z).style("stroke-opacity",.95);let X=L?.color||(G?Tt(F,30):zt(F,30));E.select("text").style("font-size",`${48*g}px`).style("fill",X)}),u&&D?x.selectAll(".venn-intersection").each(function(A){let C=it(this),O=Q([...A.sets].sort()),B=p.get(O),L=B?.fill;if(L){let F=C.select("path"),H=F.attr("d");if(H){let j=D.path(H,{roughness:.7,seed:f,fill:lt(L,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),z=F.node();z?.parentNode?.insertBefore(j,z),F.remove()}}else C.select("path").style("fill-opacity",0);C.select("text").style("font-size",`${48*g}px`).style("fill",B?.color??o.vennSetTextColor??v)}):(x.selectAll(".venn-intersection text").style("font-size",`${48*g}px`).style("fill",A=>{let E=Q([...A.sets].sort());return p.get(E)?.color??o.vennSetTextColor??v}),x.selectAll(".venn-intersection path").style("fill-opacity",A=>{let E=Q([...A.sets].sort());return p.get(E)?.fill?1:0}).style("fill",A=>{let E=Q([...A.sets].sort());return p.get(E)?.fill??"transparent"}));let V=c.append("g").attr("transform",`translate(0, ${m})`),N=x.select("svg").node();if(N&&"childNodes"in N)for(let A of[...N.childNodes])V.node()?.appendChild(A);Dt(c,_,T,r?.useMaxWidth??!0)},"draw");function Q(t){return t.join("|")}w(Q,"stableSetsKey");function le(t,n,s,e,i,r){let o=t?.useDebugLayout??!1,f=s.select("svg").append("g").attr("class","venn-text-nodes"),u=new Map;for(let a of e){let y=Q(a.sets),d=u.get(y);d?d.push(a):u.set(y,[a])}for(let[a,y]of u.entries()){let d=n.get(a);if(!d?.text)continue;let b=d.text.x,p=d.text.y,M=Math.min(...d.circles.map(N=>N.radius)),T=Math.min(...d.circles.map(N=>N.radius-Math.hypot(b-N.x,p-N.y))),_=Number.isFinite(T)?Math.max(0,T):0;_===0&&Number.isFinite(M)&&(_=M*.6);let S=f.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);o&&S.append("circle").attr("class","venn-text-debug-circle").attr("cx",b).attr("cy",p).attr("r",_).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);let g=Math.max(80*i,_*2*.95),m=Math.max(60*i,_*2*.95),x=(d.data.label&&d.data.label.length>0?Math.min(32*i,_*.25):0)+(y.length<=2?30*i:0),h=b-g/2,D=p-m/2+x,I=Math.max(1,Math.ceil(Math.sqrt(y.length))),R=Math.max(1,Math.ceil(y.length/I)),G=g/I,V=m/R;for(let[N,A]of y.entries()){let C=N%I,E=Math.floor(N/I),O=h+G*(C+.5),B=D+V*(E+.5);o&&S.append("rect").attr("class","venn-text-debug-cell").attr("x",h+G*C).attr("y",D+V*E).attr("width",G).attr("height",V).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);let L=G*.9,F=V*.9,H=S.append("foreignObject").attr("class","venn-text-node-fo").attr("width",L).attr("height",F).attr("x",O-L/2).attr("y",B-F/2).attr("overflow","visible"),j=r.get(A.id)?.color,z=H.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(A.label??A.id);j&&z.style("color",j)}}}w(le,"renderTextNodes");function ce(t){let n=new Set(t.map(i=>[...i.sets].sort().join("|"))),s=new Map(t.filter(i=>i.sets.length===1&&i.size!==void 0).map(i=>[i.sets[0],i.size])),e=[];for(let i of t){if(i.sets.length<3)continue;let r=[...i.sets].sort();for(let o=0;o<r.length-1;o++)for(let l=o+1;l<r.length;l++){let f=[r[o],r[l]],u=f.join("|");if(!n.has(u)){n.add(u);let a=s.get(f[0]),y=s.get(f[1]),d=a!==void 0&&y!==void 0?Math.min(a,y)/4:2.5;e.push({sets:f,size:d,label:""})}}}return e.length>0?[...t,...e]:t}w(ce,"ensurePairwiseSubsets");var We={draw:Ge},tn={parser:Ee,db:Be,renderer:We,styles:Ue};export{tn as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,b as r}from"./chunk-HEMELP7J.js";import"./chunk-VYZZPKGK.js";import"./chunk-6DHFEWGX.js";export{e as WardleyModule,r as createWardleyServices};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import{a as lt}from"./chunk-NCOVM3YF.js";import{a as ct}from"./chunk-MII4VZEB.js";import"./chunk-HEMELP7J.js";import"./chunk-AIX6IH4O.js";import"./chunk-HZ5I5NJO.js";import"./chunk-ETOVTYWF.js";import"./chunk-SEGIW3MP.js";import"./chunk-Y2XVFW7T.js";import"./chunk-25REBZ7M.js";import"./chunk-UTWOJE2A.js";import"./chunk-6VQ47JJS.js";import"./chunk-OE3NOVIH.js";import"./chunk-LOMHZYS2.js";import"./chunk-OAGTSILX.js";import"./chunk-DN52R6U7.js";import"./chunk-RWFFDL53.js";import"./chunk-A43YELH5.js";import"./chunk-VYZZPKGK.js";import{a as dt}from"./chunk-VOCDYA3H.js";import{o as _}from"./chunk-6DCNDVBX.js";import"./chunk-22DRK7VS.js";import{O as tt,T as et,U as at,V as rt,W as ot,X as nt,Y as st,Z as it,_ as D,i as K,u as Q}from"./chunk-7CSIRG7W.js";import{b as V}from"./chunk-ERWOH47R.js";import{a as u}from"./chunk-EIBFAW37.js";import"./chunk-LGUG3SQB.js";import"./chunk-6DHFEWGX.js";var G=u((e,n)=>{let r=e<=1?e*100:e;if(r<0||r>100)throw new Error(`${n} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return r},"toPercent"),A=u((e,n,r)=>({x:G(n,`${r} evolution`),y:G(e,`${r} visibility`)}),"toCoordinates"),pt=u(e=>{if(e){if(e==="+<>")return"bidirectional";if(e==="+<")return"backward";if(e==="+>")return"forward"}},"getFlowFromPort"),Rt=u(e=>{if(!e?.startsWith("+"))return{};let r=/^\+'([^']*)'/.exec(e)?.[1];return e.includes("<>")?{flow:"bidirectional",label:r}:e.includes("<")?{flow:"backward",label:r}:e.includes(">")?{flow:"forward",label:r}:{label:r}},"extractFlowFromArrow"),Ot=u((e,n)=>{if(lt(e,n),e.size&&n.setSize(e.size.width,e.size.height),e.evolution){let r=e.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),x=e.evolution.stages.filter(a=>a.boundary!==void 0).map(a=>a.boundary);n.updateAxes({stages:r,stageBoundaries:x})}if(e.anchors.forEach(r=>{let x=A(r.visibility,r.evolution,`Anchor "${r.name}"`);n.addNode(r.name,r.name,x.x,x.y,"anchor")}),e.components.forEach(r=>{let x=A(r.visibility,r.evolution,`Component "${r.name}"`),a=r.label?(r.label.negX?-1:1)*r.label.offsetX:void 0,d=r.label?(r.label.negY?-1:1)*r.label.offsetY:void 0,m=r.decorator?.strategy;n.addNode(r.name,r.name,x.x,x.y,"component",a,d,r.inertia,m)}),e.notes.forEach(r=>{let x=A(r.visibility,r.evolution,`Note "${r.text}"`);n.addNote(r.text,x.x,x.y)}),e.pipelines.forEach(r=>{let x=n.getNode(r.parent);if(!x||typeof x.y!="number")throw new Error(`Pipeline "${r.parent}" must reference an existing component with coordinates.`);let a=x.y;n.startPipeline(r.parent),r.components.forEach(d=>{let m=`${r.parent}_${d.name}`,C=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,F=G(d.evolution,`Pipeline component "${d.name}" evolution`);n.addNode(m,d.name,F,a,"pipeline-component",C,g),n.addPipelineComponent(r.parent,m)})}),e.links.forEach(r=>{let x=!!r.arrow&&(r.arrow.includes("-.->")||r.arrow.includes(".-.")),a=pt(r.fromPort)??pt(r.toPort),{flow:d,label:m}=Rt(r.arrow);!a&&d&&(a=d);let C=r.linkLabel,g=m??C;n.addLink(n.resolveNodeId(r.from),n.resolveNodeId(r.to),x,g,a)}),e.evolves.forEach(r=>{let x=n.getNode(r.component);if(x?.y!==void 0){let a=G(r.target,`Evolve target for "${r.component}"`);n.addTrend(r.component,a,x.y)}}),e.annotations.length>0){let r=e.annotations[0],x=A(r.x,r.y,"Annotations box");n.setAnnotationsBox(x.x,x.y)}e.annotation.forEach(r=>{let x=A(r.x,r.y,`Annotation ${r.number}`);n.addAnnotation(r.number,[{x:x.x,y:x.y}],r.text)}),e.accelerators.forEach(r=>{let x=A(r.x,r.y,`Accelerator "${r.name}"`);n.addAccelerator(r.name,x.x,x.y)}),e.deaccelerators.forEach(r=>{let x=A(r.x,r.y,`Deaccelerator "${r.name}"`);n.addDeaccelerator(r.name,x.x,x.y)})},"populateDb"),ft={parser:{yy:void 0},parse:u(async e=>{let n=await ct("wardley",e);V.debug(n);let r=ft.parser?.yy;if(!r||typeof r.addNode!="function")throw new Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Ot(n,r)},"parse")},Wt=class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{u(this,"WardleyBuilder")}addNode(e){let n=this.nodes.get(e.id)??{id:e.id,label:e.label},r={...n,...e,className:e.className??n.className,labelOffsetX:e.labelOffsetX??n.labelOffsetX,labelOffsetY:e.labelOffsetY??n.labelOffsetY};this.nodes.set(e.id,r)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});let n=this.nodes.get(e);n&&(n.isPipelineParent=!0)}addPipelineComponent(e,n){let r=this.pipelines.get(e);r&&r.componentIds.push(n);let x=this.nodes.get(n);x&&(x.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,n){this.annotationsBox={x:e,y:n}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,n){this.size={width:e,height:n}}getNode(e){return this.nodes.get(e)}resolveNodeId(e){if(this.nodes.has(e))return e;for(let[n,r]of this.nodes)if(r.label===e)return n;return e}build(){let e=[];for(let n of this.nodes.values()){if(typeof n.x!="number"||typeof n.y!="number")throw new Error(`Node "${n.label}" is missing coordinates`);e.push(n)}return{nodes:e,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}},k=new Wt;function ht(){return D()["wardley-beta"]}u(ht,"getConfig");function xt(e,n,r,x,a,d,m,C,g){k.addNode({id:e,label:n,x:r,y:x,className:a,labelOffsetX:d,labelOffsetY:m,inertia:C,sourceStrategy:g})}u(xt,"addNode");function gt(e,n,r=!1,x,a){k.addLink({source:e,target:n,dashed:r,label:x,flow:a})}u(gt,"addLink");function yt(e,n,r){k.addTrend({nodeId:e,targetX:n,targetY:r})}u(yt,"addTrend");function ut(e,n,r){k.addAnnotation({number:e,coordinates:n,text:r})}u(ut,"addAnnotation");function mt(e,n,r){k.addNote({text:e,x:n,y:r})}u(mt,"addNote");function wt(e,n,r){k.addAccelerator({name:e,x:n,y:r})}u(wt,"addAccelerator");function kt(e,n,r){k.addDeaccelerator({name:e,x:n,y:r})}u(kt,"addDeaccelerator");function bt(e,n){k.setAnnotationsBox(e,n)}u(bt,"setAnnotationsBox");function $t(e,n){k.setSize(e,n)}u($t,"setSize");function vt(e){k.startPipeline(e)}u(vt,"startPipeline");function Pt(e,n){k.addPipelineComponent(e,n)}u(Pt,"addPipelineComponent");function Ct(e){k.setAxes(e)}u(Ct,"updateAxes");function St(e){return k.getNode(e)}u(St,"getNode");function Mt(e){return k.resolveNodeId(e)}u(Mt,"resolveNodeId");function Nt(){return k.build()}u(Nt,"getWardleyData");function zt(){k.clear(),et()}u(zt,"clear");var Dt={getConfig:ht,addNode:xt,addLink:gt,addTrend:yt,addAnnotation:ut,addNote:mt,addAccelerator:wt,addDeaccelerator:kt,setAnnotationsBox:bt,setSize:$t,startPipeline:vt,addPipelineComponent:Pt,updateAxes:Ct,getNode:St,resolveNodeId:Mt,getWardleyData:Nt,clear:zt,setAccTitle:at,getAccTitle:rt,setDiagramTitle:st,getDiagramTitle:it,getAccDescription:nt,setAccDescription:ot},Gt=["Genesis","Custom Built","Product","Commodity"],qt=u(()=>{let{themeVariables:e}=D();return{backgroundColor:e.wardley?.backgroundColor??e.background??"#fff",axisColor:e.wardley?.axisColor??"#000",axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??"#222",gridColor:e.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:e.wardley?.componentFill??"#fff",componentStroke:e.wardley?.componentStroke??"#000",componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??"#222",linkStroke:e.wardley?.linkStroke??"#000",evolutionStroke:e.wardley?.evolutionStroke??"#dc3545",annotationStroke:e.wardley?.annotationStroke??"#000",annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??"#222",annotationFill:e.wardley?.annotationFill??e.background??"#fff"}},"getTheme"),Ht=u(()=>{let e=D()["wardley-beta"];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},"getConfigValues"),jt=u((e,n,r,x)=>{V.debug(`Rendering Wardley map
|
|
2
|
+
`+e);let a=Ht(),d=qt(),m=a.nodeRadius*1.6,C=x.db,g=C.getWardleyData(),F=C.getDiagramTitle(),S=g.size?.width??a.width,b=g.size?.height??a.height,E=dt(n);E.selectAll("*").remove(),tt(E,b,S,a.useMaxWidth),E.attr("viewBox",`0 0 ${S} ${b}`);let v=E.append("g").attr("class","wardley-map"),q=E.append("defs");q.append("marker").attr("id",`arrow-${n}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-end-${n}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),q.append("marker").attr("id",`link-arrow-start-${n}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),v.append("rect").attr("class","wardley-background").attr("width",S).attr("height",b).attr("fill",d.backgroundColor);let Y=S-a.padding*2,I=b-a.padding*2;F&&v.append("text").attr("class","wardley-title").attr("x",S/2).attr("y",a.padding/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(F);let z=u(t=>a.padding+t/100*Y,"projectX"),L=u(t=>b-a.padding-t/100*I,"projectY"),R=v.append("g").attr("class","wardley-axes");R.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1),R.append("line").attr("x1",a.padding).attr("x2",a.padding).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1);let Lt=g.axes.xLabel??"Evolution",Tt=g.axes.yLabel??"Visibility";R.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",a.padding+Y/2).attr("y",b-a.padding/4).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(Lt),R.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",a.padding/3).attr("y",a.padding+I/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${a.padding/3} ${a.padding+I/2})`).text(Tt);let B=g.axes.stages&&g.axes.stages.length>0?g.axes.stages:Gt;if(B.length>0){let t=v.append("g").attr("class","wardley-stages"),s=g.axes.stageBoundaries,o=[];if(s&&s.length===B.length){let i=0;s.forEach(p=>{o.push({start:i,end:p}),i=p})}else{let i=1/B.length;B.forEach((p,l)=>{o.push({start:l*i,end:(l+1)*i})})}B.forEach((i,p)=>{let l=o[p],f=a.padding+l.start*Y,h=a.padding+l.end*Y,y=(f+h)/2;p>0&&t.append("line").attr("x1",f).attr("x2",f).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",y).attr("y",b-a.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize-2).attr("text-anchor","middle").text(i)})}if(a.showGrid){let t=v.append("g").attr("class","wardley-grid");for(let s=1;s<4;s++){let o=s/4,i=a.padding+Y*o;t.append("line").attr("x1",i).attr("x2",i).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding-I*o).attr("y2",b-a.padding-I*o).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}let c=new Map;if(g.nodes.forEach(t=>{c.set(t.id,{x:z(t.x),y:L(t.y),node:t})}),g.pipelines.length>0){let t=v.append("g").attr("class","wardley-pipelines"),s=v.append("g").attr("class","wardley-pipeline-links");g.pipelines.forEach(o=>{if(o.componentIds.length===0)return;let i=o.componentIds.map(h=>({id:h,pos:c.get(h),node:g.nodes.find(y=>y.id===h)})).filter(h=>h.pos&&h.node).sort((h,y)=>h.node.x-y.node.x);for(let h=0;h<i.length-1;h++){let y=i[h],w=i[h+1];s.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",y.pos.x).attr("y1",y.pos.y).attr("x2",w.pos.x).attr("y2",w.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let p=1/0,l=-1/0,f=0;if(o.componentIds.forEach(h=>{let y=c.get(h);y&&(p=Math.min(p,y.x),l=Math.max(l,y.x),f=y.y)}),p!==1/0&&l!==-1/0){let y=a.nodeRadius*4,w=f-y/2,P=c.get(o.nodeId);if(P){let N=(p+l)/2;P.x=N,P.y=w-m/6}t.append("rect").attr("class","wardley-pipeline-box").attr("x",p-15).attr("y",w).attr("width",l-p+30).attr("height",y).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let Z=v.append("g").attr("class","wardley-links"),U=new Map;g.pipelines.forEach(t=>{U.set(t.nodeId,new Set(t.componentIds))});let J=g.links.filter(t=>!(!c.has(t.source)||!c.has(t.target)||U.get(t.target)?.has(t.source)));Z.selectAll("line").data(J).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{let s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?m/Math.sqrt(2):a.nodeRadius,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f);return s.x+l/h*p}).attr("y1",t=>{let s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?m/Math.sqrt(2):a.nodeRadius,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f);return s.y+f/h*p}).attr("x2",t=>{let s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?m/Math.sqrt(2):a.nodeRadius,l=s.x-o.x,f=s.y-o.y,h=Math.sqrt(l*l+f*f);return o.x+l/h*p}).attr("y2",t=>{let s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?m/Math.sqrt(2):a.nodeRadius,l=s.x-o.x,f=s.y-o.y,h=Math.sqrt(l*l+f*f);return o.y+f/h*p}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>t.flow==="forward"||t.flow==="bidirectional"?`url(#link-arrow-end-${n})`:null).attr("marker-start",t=>t.flow==="backward"||t.flow==="bidirectional"?`url(#link-arrow-start-${n})`:null),Z.selectAll("text").data(J.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{let s=c.get(t.source),o=c.get(t.target),i=(s.x+o.x)/2,p=o.y-s.y,l=o.x-s.x,f=Math.sqrt(l*l+p*p),h=8,y=p/f;return i+y*h}).attr("y",t=>{let s=c.get(t.source),o=c.get(t.target),i=(s.y+o.y)/2,p=o.x-s.x,l=o.y-s.y,f=Math.sqrt(p*p+l*l),h=8,y=-p/f;return i+y*h}).attr("fill",d.axisTextColor).attr("font-size",a.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{let s=c.get(t.source),o=c.get(t.target),i=(s.x+o.x)/2,p=(s.y+o.y)/2,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f),y=8,w=f/h,P=-l/h,N=i+w*y,O=p+P*y,X=Math.atan2(f,l)*180/Math.PI;return(X>90||X<-90)&&(X+=180),`rotate(${X} ${N} ${O})`}).text(t=>t.label);let At=v.append("g").attr("class","wardley-trends"),Xt=g.trends.map(t=>{let s=c.get(t.nodeId);if(!s)return null;let o=z(t.targetX),i=L(t.targetY),p=o-s.x,l=i-s.y,f=Math.sqrt(p*p+l*l),h=a.nodeRadius+2,y=f>h?o-p/f*h:o,w=f>h?i-l/f*h:i;return{origin:s,targetX:o,targetY:i,adjustedX2:y,adjustedY2:w}}).filter(t=>t!==null);At.selectAll("line").data(Xt).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${n})`);let M=v.append("g").attr("class","wardley-nodes").selectAll("g").data(g.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));M.filter(t=>t.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let T=M.filter(t=>t.sourceStrategy==="market");T.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>!t.isPipelineParent&&t.sourceStrategy!=="market"&&t.className!=="anchor").append("circle").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);let H=a.nodeRadius*.7,$=a.nodeRadius*1.2;if(T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x).attr("y1",t=>c.get(t.id).y-$).attr("x2",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x).attr("y2",t=>c.get(t.id).y-$).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y-$).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",H).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),M.filter(t=>t.isPipelineParent===!0).append("rect").attr("x",t=>c.get(t.id).x-m/2).attr("y",t=>c.get(t.id).y-m/2).attr("width",m).attr("height",m).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",t=>{let s=c.get(t.id),o=t.isPipelineParent?m/2+15:a.nodeRadius+15;return t.sourceStrategy&&(o+=a.nodeRadius+10),s.x+o}).attr("y1",t=>{let s=c.get(t.id),o=t.isPipelineParent?m:a.nodeRadius*2;return s.y-o/2}).attr("x2",t=>{let s=c.get(t.id),o=t.isPipelineParent?m/2+15:a.nodeRadius+15;return t.sourceStrategy&&(o+=a.nodeRadius+10),s.x+o}).attr("y2",t=>{let s=c.get(t.id),o=t.isPipelineParent?m:a.nodeRadius*2;return s.y+o/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),M.append("text").attr("x",t=>{let s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetX!==void 0?s.x+t.labelOffsetX:s.x;let o=a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetX===void 0&&(o+=10);let i=t.labelOffsetX??o;return s.x+i}).attr("y",t=>{let s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetY!==void 0?s.y+t.labelOffsetY:s.y-3;let o=-a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetY===void 0&&(o-=10);let i=t.labelOffsetY??o;return s.y+i}).attr("class","wardley-node-label").attr("fill",t=>t.className==="evolved"?d.evolutionStroke:t.className==="anchor"?"#000":d.componentLabelColor).attr("font-size",a.labelFontSize).attr("font-weight",t=>t.className==="anchor"?"bold":"normal").attr("text-anchor",t=>t.className==="anchor"?"middle":"start").attr("dominant-baseline",t=>t.className==="anchor"?"middle":"auto").text(t=>t.label),g.annotations.length>0){let t=v.append("g").attr("class","wardley-annotations");if(g.annotations.forEach(s=>{let o=s.coordinates.map(i=>({x:z(i.x),y:L(i.y)}));if(o.length>1)for(let i=0;i<o.length-1;i++)t.append("line").attr("class","wardley-annotation-line").attr("x1",o[i].x).attr("y1",o[i].y).attr("x2",o[i+1].x).attr("y2",o[i+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");o.forEach(i=>{let p=t.append("g").attr("class","wardley-annotation");p.append("circle").attr("cx",i.x).attr("cy",i.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),p.append("text").attr("x",i.x).attr("y",i.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.number)})}),g.annotationsBox){let s=z(g.annotationsBox.x),o=L(g.annotationsBox.y),i=10,p=16,l=11,f=t.append("g").attr("class","wardley-annotations-box"),h=[...g.annotations].filter(w=>w.text).sort((w,P)=>w.number-P.number),y=[];if(h.forEach((w,P)=>{let N=f.append("text").attr("x",s+i).attr("y",o+i+(P+1)*p).attr("font-size",l).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${w.number}. ${w.text}`);y.push(N)}),y.length>0){let w=0,P=0;y.forEach(j=>{let W=j.node(),Bt=W.getComputedTextLength();w=Math.max(w,Bt);let Ft=W.getBBox();P=Math.max(P,Ft.height)});let N=w+i*2+105,O=h.length*p+i*2+P/2,X=a.padding,Et=S-a.padding-N,Yt=a.padding,It=b-a.padding-O;s=Math.max(X,Math.min(s,Et)),o=Math.max(Yt,Math.min(o,It)),y.forEach((j,W)=>{j.attr("x",s+i).attr("y",o+i+(W+1)*p)}),f.insert("rect","text").attr("x",s).attr("y",o).attr("width",N).attr("height",O).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(g.notes.length>0){let t=v.append("g").attr("class","wardley-notes");g.notes.forEach(s=>{let o=z(s.x),i=L(s.y);t.append("text").attr("x",o).attr("y",i).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.text)})}if(g.accelerators.length>0){let t=v.append("g").attr("class","wardley-accelerators");g.accelerators.forEach(s=>{let o=z(s.x),i=L(s.y),p=60,l=30,f=20,h=`
|
|
3
|
+
M ${o} ${i-l/2}
|
|
4
|
+
L ${o+p-f} ${i-l/2}
|
|
5
|
+
L ${o+p-f} ${i-l/2-8}
|
|
6
|
+
L ${o+p} ${i}
|
|
7
|
+
L ${o+p-f} ${i+l/2+8}
|
|
8
|
+
L ${o+p-f} ${i+l/2}
|
|
9
|
+
L ${o} ${i+l/2}
|
|
10
|
+
Z
|
|
11
|
+
`;t.append("path").attr("d",h).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",o+p/2).attr("y",i+l/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.name)})}if(g.deaccelerators.length>0){let t=v.append("g").attr("class","wardley-deaccelerators");g.deaccelerators.forEach(s=>{let o=z(s.x),i=L(s.y),p=60,l=30,f=20,h=`
|
|
12
|
+
M ${o+p} ${i-l/2}
|
|
13
|
+
L ${o+f} ${i-l/2}
|
|
14
|
+
L ${o+f} ${i-l/2-8}
|
|
15
|
+
L ${o} ${i}
|
|
16
|
+
L ${o+f} ${i+l/2+8}
|
|
17
|
+
L ${o+f} ${i+l/2}
|
|
18
|
+
L ${o+p} ${i+l/2}
|
|
19
|
+
Z
|
|
20
|
+
`;t.append("path").attr("d",h).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",o+p/2).attr("y",i+l/2+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.name)})}},"draw"),Vt={draw:jt},_t=u(({wardley:e}={})=>{let n=K(),r=Q(),x=_(n,r.themeVariables),a=_(x.wardley,e);return`
|
|
21
|
+
.wardley-background {
|
|
22
|
+
fill: ${a.backgroundColor};
|
|
23
|
+
}
|
|
24
|
+
.wardley-axes line, .wardley-axes path {
|
|
25
|
+
stroke: ${a.axisColor};
|
|
26
|
+
}
|
|
27
|
+
.wardley-axis-label {
|
|
28
|
+
fill: ${a.axisTextColor};
|
|
29
|
+
}
|
|
30
|
+
.wardley-stage-label {
|
|
31
|
+
fill: ${a.axisTextColor};
|
|
32
|
+
}
|
|
33
|
+
.wardley-grid line {
|
|
34
|
+
stroke: ${a.gridColor};
|
|
35
|
+
}
|
|
36
|
+
.wardley-node circle {
|
|
37
|
+
fill: ${a.componentFill};
|
|
38
|
+
stroke: ${a.componentStroke};
|
|
39
|
+
}
|
|
40
|
+
.wardley-node-label {
|
|
41
|
+
fill: ${a.componentLabelColor};
|
|
42
|
+
}
|
|
43
|
+
.wardley-link {
|
|
44
|
+
stroke: ${a.linkStroke};
|
|
45
|
+
}
|
|
46
|
+
.wardley-link--dashed {
|
|
47
|
+
stroke-dasharray: 4 4;
|
|
48
|
+
}
|
|
49
|
+
.wardley-link-label {
|
|
50
|
+
fill: ${a.axisTextColor};
|
|
51
|
+
}
|
|
52
|
+
.wardley-trend line {
|
|
53
|
+
stroke: ${a.evolutionStroke};
|
|
54
|
+
}
|
|
55
|
+
.wardley-annotation-line {
|
|
56
|
+
stroke: ${a.annotationStroke};
|
|
57
|
+
}
|
|
58
|
+
.wardley-annotation circle {
|
|
59
|
+
fill: ${a.annotationFill};
|
|
60
|
+
stroke: ${a.annotationStroke};
|
|
61
|
+
}
|
|
62
|
+
.wardley-annotation text {
|
|
63
|
+
fill: ${a.annotationTextColor};
|
|
64
|
+
}
|
|
65
|
+
.wardley-annotations-box rect {
|
|
66
|
+
fill: ${a.annotationFill};
|
|
67
|
+
stroke: ${a.annotationStroke};
|
|
68
|
+
}
|
|
69
|
+
.wardley-annotations-box text {
|
|
70
|
+
fill: ${a.annotationTextColor};
|
|
71
|
+
}
|
|
72
|
+
.wardley-pipeline-box {
|
|
73
|
+
stroke: ${a.componentStroke};
|
|
74
|
+
}
|
|
75
|
+
.wardley-notes text {
|
|
76
|
+
fill: ${a.axisTextColor};
|
|
77
|
+
}
|
|
78
|
+
`},"styles"),re={parser:ft,db:Dt,renderer:Vt,styles:_t};export{re as diagram};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a as $t}from"./chunk-VOCDYA3H.js";import{b as Ut}from"./chunk-IP56FOSI.js";import"./chunk-CBGUD2NP.js";import{o as mt}from"./chunk-6DCNDVBX.js";import"./chunk-22DRK7VS.js";import{H as Vt,O as Ot,T as Wt,U as Ft,V as Xt,W as Yt,X as Nt,Y as Ht,Z as dt,i as zt,k as Bt,u as nt}from"./chunk-7CSIRG7W.js";import{b as xt}from"./chunk-ERWOH47R.js";import{a}from"./chunk-EIBFAW37.js";import{K as bt,q as ft,r as pt}from"./chunk-LGUG3SQB.js";import"./chunk-6DHFEWGX.js";var yt=(function(){var t=a(function(z,r,h,c){for(h=h||{},c=z.length;c--;h[z[c]]=r);return h},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],x=[1,6],u=[1,7],A=[1,5,10,12,14,16,18,19,21,23,36,37,38],_=[1,25],T=[1,26],V=[1,28],L=[1,29],M=[1,30],F=[1,31],X=[1,32],v=[1,33],O=[1,34],Y=[1,35],N=[1,36],p=[1,37],P=[1,43],l=[1,42],D=[1,47],E=[1,50],m=[1,10,12,14,16,18,19,21,23,36,37,38],$=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],S=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],j=[1,65],w=[26,28],b={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:a(function(r,h,c,g,y,o,U){var d=o.length-1;switch(y){case 5:g.setOrientation(o[d]);break;case 9:g.setDiagramTitle(o[d].text.trim());break;case 12:g.setLineData({text:"",type:"text"},o[d]);break;case 13:g.setLineData(o[d-1],o[d]);break;case 14:g.setBarData({text:"",type:"text"},o[d]);break;case 15:g.setBarData(o[d-1],o[d]);break;case 16:this.$=o[d].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=o[d].trim(),g.setAccDescription(this.$);break;case 19:this.$=o[d-1];break;case 20:case 30:this.$=[o[d-2],...o[d]];break;case 21:case 31:this.$=[o[d]];break;case 22:this.$={value:Number(o[d-1]),label:o[d]};break;case 23:this.$={value:Number(o[d]),label:""};break;case 24:g.setXAxisTitle(o[d]);break;case 25:g.setXAxisTitle(o[d-1]);break;case 26:g.setXAxisTitle({type:"text",text:""});break;case 27:g.setXAxisBand(o[d]);break;case 28:g.setXAxisRangeData(Number(o[d-2]),Number(o[d]));break;case 29:this.$=o[d-1];break;case 32:g.setYAxisTitle(o[d]);break;case 33:g.setYAxisTitle(o[d-1]);break;case 34:g.setYAxisTitle({type:"text",text:""});break;case 35:g.setYAxisRangeData(Number(o[d-2]),Number(o[d]));break;case 39:this.$={text:o[d],type:"text"};break;case 40:this.$={text:o[d],type:"text"};break;case 41:this.$={text:o[d],type:"markdown"};break;case 42:this.$=o[d];break;case 43:this.$=o[d-1]+""+o[d];break}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,36:n,37:x,38:u}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,36:n,37:x,38:u}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:n,37:x,38:u}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(A,[2,36]),t(A,[2,37]),t(A,[2,38]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,36:n,37:x,38:u}),{1:[2,3]},t(A,[2,5]),t(i,[2,7],{4:22,36:n,37:x,38:u}),{11:23,30:_,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},{11:39,13:38,24:P,29:l,30:_,31:40,32:41,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},{11:45,15:44,29:D,30:_,35:46,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},{11:49,17:48,24:E,30:_,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},{11:52,17:51,24:E,30:_,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},{20:[1,53]},{22:[1,54]},t(m,[2,18]),{1:[2,2]},t(m,[2,8]),t(m,[2,9]),t($,[2,39],{41:55,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p}),t($,[2,40]),t($,[2,41]),t(S,[2,42]),t(S,[2,44]),t(S,[2,45]),t(S,[2,46]),t(S,[2,47]),t(S,[2,48]),t(S,[2,49]),t(S,[2,50]),t(S,[2,51]),t(S,[2,52]),t(S,[2,53]),t(m,[2,10]),t(m,[2,24],{32:41,31:56,24:P,29:l}),t(m,[2,26]),t(m,[2,27]),{33:[1,57]},{11:59,30:_,34:58,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},t(m,[2,11]),t(m,[2,32],{35:60,29:D}),t(m,[2,34]),{33:[1,61]},t(m,[2,12]),{17:62,24:E},{25:63,27:64,29:j},t(m,[2,14]),{17:66,24:E},t(m,[2,16]),t(m,[2,17]),t(S,[2,43]),t(m,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(m,[2,33]),{29:[1,70]},t(m,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(w,[2,23],{30:[1,73]}),t(m,[2,15]),t(m,[2,28]),t(m,[2,29]),{11:59,30:_,34:74,39:24,40:T,41:27,42:V,43:L,44:M,45:F,46:X,47:v,48:O,49:Y,50:N,51:p},t(m,[2,35]),t(m,[2,19]),{25:75,27:64,29:j},t(w,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:a(function(r,h){if(h.recoverable)this.trace(r);else{var c=new Error(r);throw c.hash=h,c}},"parseError"),parse:a(function(r){var h=this,c=[0],g=[],y=[null],o=[],U=this.table,d="",et=0,vt=0,Pt=0,xi=2,Et=1,di=o.slice.call(arguments,1),C=Object.create(this.lexer),q={yy:{}};for(var ht in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ht)&&(q.yy[ht]=this.yy[ht]);C.setInput(r,q.yy),q.yy.lexer=C,q.yy.parser=this,typeof C.yylloc>"u"&&(C.yylloc={});var lt=C.yylloc;o.push(lt);var fi=C.options&&C.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pi(I){c.length=c.length-2*I,y.length=y.length-I,o.length=o.length-I}a(pi,"popStack");function It(){var I;return I=g.pop()||C.lex()||Et,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=h.symbols_[I]||I),I}a(It,"lex");for(var R,ct,G,B,vi,ut,Q={},st,H,Mt,at;;){if(G=c[c.length-1],this.defaultActions[G]?B=this.defaultActions[G]:((R===null||typeof R>"u")&&(R=It()),B=U[G]&&U[G][R]),typeof B>"u"||!B.length||!B[0]){var gt="";at=[];for(st in U[G])this.terminals_[st]&&st>xi&&at.push("'"+this.terminals_[st]+"'");C.showPosition?gt="Parse error on line "+(et+1)+`:
|
|
2
|
+
`+C.showPosition()+`
|
|
3
|
+
Expecting `+at.join(", ")+", got '"+(this.terminals_[R]||R)+"'":gt="Parse error on line "+(et+1)+": Unexpected "+(R==Et?"end of input":"'"+(this.terminals_[R]||R)+"'"),this.parseError(gt,{text:C.match,token:this.terminals_[R]||R,line:C.yylineno,loc:lt,expected:at})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+R);switch(B[0]){case 1:c.push(R),y.push(C.yytext),o.push(C.yylloc),c.push(B[1]),R=null,ct?(R=ct,ct=null):(vt=C.yyleng,d=C.yytext,et=C.yylineno,lt=C.yylloc,Pt>0&&Pt--);break;case 2:if(H=this.productions_[B[1]][1],Q.$=y[y.length-H],Q._$={first_line:o[o.length-(H||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(H||1)].first_column,last_column:o[o.length-1].last_column},fi&&(Q._$.range=[o[o.length-(H||1)].range[0],o[o.length-1].range[1]]),ut=this.performAction.apply(Q,[d,vt,et,q.yy,B[1],y,o].concat(di)),typeof ut<"u")return ut;H&&(c=c.slice(0,-1*H*2),y=y.slice(0,-1*H),o=o.slice(0,-1*H)),c.push(this.productions_[B[1]][0]),y.push(Q.$),o.push(Q._$),Mt=U[c[c.length-2]][c[c.length-1]],c.push(Mt);break;case 3:return!0}}return!0},"parse")},W=(function(){var z={EOF:1,parseError:a(function(h,c){if(this.yy.parser)this.yy.parser.parseError(h,c);else throw new Error(h)},"parseError"),setInput:a(function(r,h){return this.yy=h||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var h=r.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:a(function(r){var h=r.length,c=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===g.length?this.yylloc.first_column:0)+g[g.length-c.length].length-c[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(r){this.unput(this.match.slice(r))},"less"),pastInput:a(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var r=this.pastInput(),h=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
|
5
|
+
`+h+"^"},"showPosition"),test_match:a(function(r,h){var c,g,y;if(this.options.backtrack_lexer&&(y={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(y.yylloc.range=this.yylloc.range.slice(0))),g=r[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],c=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var o in y)this[o]=y[o];return!1}return!1},"test_match"),next:a(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,h,c,g;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),o=0;o<y.length;o++)if(c=this._input.match(this.rules[y[o]]),c&&(!h||c[0].length>h[0].length)){if(h=c,g=o,this.options.backtrack_lexer){if(r=this.test_match(c,y[o]),r!==!1)return r;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(r=this.test_match(h,y[g]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:a(function(){var h=this.next();return h||this.lex()},"lex"),begin:a(function(h){this.conditionStack.push(h)},"begin"),popState:a(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:a(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:a(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:a(function(h){this.begin(h)},"pushState"),stateStackSize:a(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:a(function(h,c,g,y){var o=y;switch(g){case 0:break;case 1:break;case 2:return this.popState(),36;break;case 3:return this.popState(),36;break;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 33;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 29;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return z})();b.lexer=W;function k(){this.yy={}}return a(k,"Parser"),k.prototype=b,b.Parser=k,new k})();yt.parser=yt;var bi=yt;function At(t){return t.type==="bar"}a(At,"isBarPlot");function ot(t){return t.type==="band"}a(ot,"isBandAxisData");function K(t){return t.type==="linear"}a(K,"isLinearAxisData");var jt=class{constructor(t){this.parentGroup=t}static{a(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((n,x)=>Math.max(x.length,n),0)*i,height:i};let e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(let n of t){let x=Ut(s,1,n),u=x?x.width:n.length*i,A=x?x.height:i;e.width=Math.max(e.width,u),e.height=Math.max(e.height,A)}return s.remove(),e}},qt=.7,Gt=.2,Qt=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{a(this,"BaseAxis")}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){qt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(qt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=Gt*t.width;this.outerPadding=Math.min(e.width/2,s);let n=e.height;this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0&&(n=Math.max(n,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*e.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*e.height))),n+=this.axisConfig.labelPadding*2,this.labelTextHeight=e.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let e=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=e.height+this.axisConfig.titlePadding*2;this.titleTextHeight=e.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=Gt*t.height;this.outerPadding=Math.min(e.height/2,s);let n=e.width+this.axisConfig.labelPadding*2;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let e=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=e.height+this.axisConfig.titlePadding*2;this.titleTextHeight=e.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateOffsetByRotation(t){let i=this.normalizedLabelRotationInRad;return i===0?0:Math.sin(i)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${i},${this.getScaleValue(e)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(e)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${this.getScaleValue(e)},${i} L ${this.getScaleValue(e)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${this.getScaleValue(e)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(e)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}},mi=class extends Qt{static{a(this,"BandAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.categories=e,this.scale=ft().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=ft().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),xt.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},yi=class extends Qt{static{a(this,"LinearAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.domain=e,this.scale=pt().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=pt().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function kt(t,i,e,s){let n=new jt(s);return ot(t)?new mi(i,e,t.categories,t.title,n):new yi(i,e,[t.min,t.max],t.title,n)}a(kt,"getAxis");var Ai=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{a(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function Kt(t,i,e,s){let n=new jt(s);return new Ai(n,t,i,e)}a(Kt,"getChartTitleComponent");var ki=class{constructor(t,i,e,s,n){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=n}static{a(this,"LinePlot")}getDrawableElement(){let t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]),i;if(this.orientation==="horizontal"?i=bt().y(s=>s[0]).x(s=>s[1])(t):i=bt().x(s=>s[0]).y(s=>s[1])(t),!i)return[];let e=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let x=[];for(let[u,[A,_]]of t.entries()){let T=this.plotData.pointLabels[u];T&&(this.orientation==="horizontal"?x.push({x:_+10,y:A,text:T,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):x.push({x:A,y:_-10,text:T,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}x.length>0&&e.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:x})}return e}},wi=class{constructor(t,i,e,s,n,x){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=x}static{a(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),e=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),s=e/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(n=>({x:this.boundingRect.x,y:n[0]-s,height:e,width:n[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(n=>({x:n[0]-s,y:n[1],width:e,height:this.boundingRect.y+this.boundingRect.height-n[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},Ci=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{a(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{let s=new ki(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{let s=new wi(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break}return t}};function Zt(t,i,e){return new Ci(t,i,e)}a(Zt,"getPlotComponent");var Si=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:Kt(t,i,e,s),plot:Zt(t,i,e),xAxis:kt(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:kt(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{a(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),x=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:n,height:x});t-=u.width,i-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=u.height,i-=u.height,this.componentStore.xAxis.setAxisPosition("bottom"),u=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=u.height,this.componentStore.yAxis.setAxisPosition("left"),u=this.componentStore.yAxis.calculateSpace({width:t,height:i}),e=u.width,t-=u.width,t>0&&(n+=t,t=0),i>0&&(x+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:x}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+x}),this.componentStore.yAxis.setRange([s,s+x]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(A=>At(A))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=0,x=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),u=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),A=this.componentStore.plot.calculateSpace({width:x,height:u});t-=A.width,i-=A.height,A=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),e=A.height,i-=A.height,this.componentStore.xAxis.setAxisPosition("left"),A=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=A.width,s=A.width,this.componentStore.yAxis.setAxisPosition("top"),A=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=A.height,n=e+A.height,t>0&&(x+=t,t=0),i>0&&(u+=i,i=0),this.componentStore.plot.calculateSpace({width:x,height:u}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+x]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([n,n+u]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(_=>At(_))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}},_i=class{static{a(this,"XYChartBuilder")}static build(t,i,e,s){return new Si(t,i,e,s).getDrawableElement()}},Z=0,Jt,J=_t(),tt=St(),f=Rt(),wt=tt.plotColorPalette.split(",").map(t=>t.trim()),rt=!1,Ct=!1;function St(){let t=zt(),i=nt();return mt(t.xyChart,i.themeVariables.xyChart)}a(St,"getChartDefaultThemeConfig");function _t(){let t=nt();return mt(Bt.xyChart,t.xyChart)}a(_t,"getChartDefaultConfig");function Rt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}a(Rt,"getChartDefaultData");function it(t){let i=nt();return Vt(t.trim(),i)}a(it,"textSanitizer");function ti(t){Jt=t}a(ti,"setTmpSVGG");function ii(t){t==="horizontal"?J.chartOrientation="horizontal":J.chartOrientation="vertical"}a(ii,"setOrientation");function ei(t){f.xAxis.title=it(t.text)}a(ei,"setXAxisTitle");function Tt(t,i){f.xAxis={type:"linear",title:f.xAxis.title,min:t,max:i},rt=!0}a(Tt,"setXAxisRangeData");function si(t){f.xAxis={type:"band",title:f.xAxis.title,categories:t.map(i=>it(i.text))},rt=!0}a(si,"setXAxisBand");function ai(t){f.yAxis.title=it(t.text)}a(ai,"setYAxisTitle");function ni(t,i){f.yAxis={type:"linear",title:f.yAxis.title,min:t,max:i},Ct=!0}a(ni,"setYAxisRangeData");function oi(t){let i=Math.min(...t),e=Math.max(...t),s=K(f.yAxis)?f.yAxis.min:1/0,n=K(f.yAxis)?f.yAxis.max:-1/0;f.yAxis={type:"linear",title:f.yAxis.title,min:Math.min(s,i),max:Math.max(n,e)}}a(oi,"setYAxisRangeFromPlotData");function Dt(t){let i=[];if(t.length===0)return i;if(!rt){let e=K(f.xAxis)?f.xAxis.min:1/0,s=K(f.xAxis)?f.xAxis.max:-1/0;Tt(Math.min(e,1),Math.max(s,t.length))}if(ot(f.xAxis)&&t.length>f.xAxis.categories.length&&(t=t.slice(0,f.xAxis.categories.length)),Ct||oi(t),ot(f.xAxis)&&(i=f.xAxis.categories.map((e,s)=>[e,t[s]])),K(f.xAxis)){let e=f.xAxis.min,s=f.xAxis.max;if(t.length===1)i=[[`${e}`,t[0]]];else{let n=(s-e)/(t.length-1);i=t.map((x,u)=>[`${e+u*n}`,x])}}return i}a(Dt,"transformDataWithoutCategory");function Lt(t){return wt[t===0?0:t%wt.length]}a(Lt,"getPlotColorFromPalette");function ri(t,i){let e=i.map(u=>u.value),s=i.map(u=>u.label?it(u.label):""),n=Dt(e),x=s.some(u=>u!=="");f.plots.push({type:"line",strokeFill:Lt(Z),strokeWidth:2,data:n,...x?{pointLabels:s}:{}}),Z++}a(ri,"setLineData");function hi(t,i){let e=i.map(n=>n.value),s=Dt(e);f.plots.push({type:"bar",fill:Lt(Z),data:s}),Z++}a(hi,"setBarData");function li(){if(f.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return f.title=dt(),_i.build(J,f,tt,Jt)}a(li,"getDrawableElem");function ci(){return tt}a(ci,"getChartThemeConfig");function ui(){return J}a(ui,"getChartConfig");function gi(){return f}a(gi,"getXYChartData");var Ri=a(function(){Wt(),Z=0,J=_t(),f=Rt(),tt=St(),wt=tt.plotColorPalette.split(",").map(t=>t.trim()),rt=!1,Ct=!1},"clear"),Ti={getDrawableElem:li,clear:Ri,setAccTitle:Ft,getAccTitle:Xt,setDiagramTitle:Ht,getDiagramTitle:dt,getAccDescription:Nt,setAccDescription:Yt,setOrientation:ii,setXAxisTitle:ei,setXAxisRangeData:Tt,setXAxisBand:si,setYAxisTitle:ai,setYAxisRangeData:ni,setLineData:ri,setBarData:hi,setTmpSVGG:ti,getChartThemeConfig:ci,getChartConfig:ui,getXYChartData:gi},Di=a((t,i,e,s)=>{let n=s.db,x=n.getChartThemeConfig(),u=n.getChartConfig(),A=n.getXYChartData().plots[0].data.map(p=>p[1]);function _(p){return p==="top"?"text-before-edge":"middle"}a(_,"getDominantBaseLine");function T(p){return p==="left"?"start":p==="right"?"end":"middle"}a(T,"getTextAnchor");function V(p){return`translate(${p.x}, ${p.y}) rotate(${p.rotation||0})`}a(V,"getTextTransformation"),xt.debug(`Rendering xychart chart
|
|
7
|
+
`+t);let L=$t(i),M=L.append("g").attr("class","main"),F=M.append("rect").attr("width",u.width).attr("height",u.height).attr("class","background");Ot(L,u.height,u.width,!0),L.attr("viewBox",`0 0 ${u.width} ${u.height}`),F.attr("fill",x.backgroundColor),n.setTmpSVGG(L.append("g").attr("class","mermaid-tmp-group"));let X=n.getDrawableElem(),v={};function O(p){let P=M,l="";for(let[D]of p.entries()){let E=M;D>0&&v[l]&&(E=v[l]),l+=p[D],P=v[l],P||(P=v[l]=E.append("g").attr("class",p[D]))}return P}a(O,"getGroup");for(let p of X){if(p.data.length===0)continue;let P=O(p.groupTexts);switch(p.type){case"rect":if(P.selectAll("rect").data(p.data).enter().append("rect").attr("x",l=>l.x).attr("y",l=>l.y).attr("width",l=>l.width).attr("height",l=>l.height).attr("fill",l=>l.fill).attr("stroke",l=>l.strokeFill).attr("stroke-width",l=>l.strokeWidth),u.showDataLabel){let l=u.showDataLabelOutsideBar;if(u.chartOrientation==="horizontal"){let D=function(b,W){let{data:k,label:z}=b;return W*z.length*E<=k.width-m};var Y=D;a(D,"fitsHorizontally");let E=.7,m=10,$=p.data.map((b,W)=>({data:b,label:A[W].toString()})).filter(b=>b.data.width>0&&b.data.height>0),S=$.map(b=>{let{data:W}=b,k=W.height*.7;for(;!D(b,k)&&k>0;)k-=1;return k}),j=Math.floor(Math.min(...S)),w=a(b=>l?b.data.x+b.data.width+m:b.data.x+b.data.width-m,"determineLabelXPosition");P.selectAll("text").data($).enter().append("text").attr("x",w).attr("y",b=>b.data.y+b.data.height/2).attr("text-anchor",l?"start":"end").attr("dominant-baseline","middle").attr("fill",x.dataLabelColor).attr("font-size",`${j}px`).text(b=>b.label)}else{let D=function(w,b,W){let{data:k,label:z}=w,h=b*z.length*.7,c=k.x+k.width/2,g=c-h/2,y=c+h/2,o=g>=k.x&&y<=k.x+k.width,U=k.y+W+b<=k.y+k.height;return o&&U};var N=D;a(D,"fitsInBar");let E=10,m=p.data.map((w,b)=>({data:w,label:A[b].toString()})).filter(w=>w.data.width>0&&w.data.height>0),$=m.map(w=>{let{data:b,label:W}=w,k=b.width/(W.length*.7);for(;!D(w,k,E)&&k>0;)k-=1;return k}),S=Math.floor(Math.min(...$)),j=a(w=>l?w.data.y-E:w.data.y+E,"determineLabelYPosition");P.selectAll("text").data(m).enter().append("text").attr("x",w=>w.data.x+w.data.width/2).attr("y",j).attr("text-anchor","middle").attr("dominant-baseline",l?"auto":"hanging").attr("fill",x.dataLabelColor).attr("font-size",`${S}px`).text(w=>w.label)}}break;case"text":P.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",l=>l.fill).attr("font-size",l=>l.fontSize).attr("dominant-baseline",l=>_(l.verticalPos)).attr("text-anchor",l=>T(l.horizontalPos)).attr("transform",l=>V(l)).text(l=>l.text);break;case"path":P.selectAll("path").data(p.data).enter().append("path").attr("d",l=>l.path).attr("fill",l=>l.fill?l.fill:"none").attr("stroke",l=>l.strokeFill).attr("stroke-width",l=>l.strokeWidth);break}}},"draw"),Li={draw:Di},Xi={parser:bi,db:Ti,renderer:Li};export{Xi as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t=document.documentElement,e=null;try{e=localStorage.getItem("website:color-scheme")}catch{e=null}var c=e==="light"||e==="dark"?e:matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";t.dataset.colorScheme=c;t.style.colorScheme=c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer reset,tokens,base,composition,content,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:106.25%;text-size-adjust:100%;scroll-behavior:smooth}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}img,picture,video,canvas,svg{display:block;max-inline-size:100%}button,input,textarea,select{font:inherit}}@layer tokens{:root{color-scheme:light;--frost: #f8f6ef;--surface: #fffdf7;--ink: #24231f;--graphite: #65625b;--violet: #236f86;--teal: #a64f2d;--violet-soft: #e8e8e3;--teal-soft: #f3e4da;--line: #e1ddd3;--line-strong: #c9c3b7;--code-surface: #ffffff;--shadow: 0 20px 64px rgb(44 39 29 / 8%);--overlay: rgb(24 27 39 / 44%);--danger: #a83d56;--focus-ring: 0 0 0 3px rgb(35 111 134 / 25%);--article-width: 760px;--rail-width: 288px;--page-gutter: clamp(1rem, 3vw, 2.5rem);--font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--font-article: var(--font-system);--font-ui: var(--font-system)}:root[data-color-scheme=dark]{color-scheme:dark;--frost: #111113;--surface: #1b1b1f;--ink: #ededf0;--graphite: #a7a7ae;--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--line: #303036;--line-strong: #46464d;--code-surface: #151518;--shadow: 0 20px 70px rgb(0 0 0 / 26%);--overlay: rgb(4 5 10 / 68%);--danger: #ff93a8;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}@media(prefers-color-scheme:dark){:root:not([data-color-scheme=light]){color-scheme:dark;--frost: #111113;--surface: #1b1b1f;--ink: #ededf0;--graphite: #a7a7ae;--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--line: #303036;--line-strong: #46464d;--code-surface: #151518;--shadow: 0 20px 70px rgb(0 0 0 / 26%);--overlay: rgb(4 5 10 / 68%);--danger: #ff93a8;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}}}@layer base{body{display:flex;flex-direction:column;min-block-size:100vh;background:var(--frost);color:var(--ink);font-family:var(--font-ui);line-height:1.55;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--violet) 28%,transparent);color:var(--ink)}a{color:inherit;text-underline-offset:.2em}button,a,input,summary,[tabindex]:not([tabindex="-1"]){outline:0}:focus-visible{border-radius:.2rem;box-shadow:var(--focus-ring)}button{border:0;color:inherit}code,kbd,pre{font-family:var(--font-mono)}}@layer composition{.skip-link{position:fixed;z-index:100;inset-block-start:.75rem;inset-inline-start:.75rem;translate:0 -180%;padding:.65rem .9rem;border:1px solid var(--violet);border-radius:.35rem;background:var(--surface);font-size:.82rem;font-weight:650}.skip-link:focus{translate:0}.site-header{position:relative;z-index:10;border-block-end:1px solid var(--line);background:color-mix(in srgb,var(--frost) 92%,transparent)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;inline-size:min(100%,calc(var(--article-width) + var(--rail-width) + 3.5rem));min-block-size:4.25rem;margin-inline:auto;padding-inline:var(--page-gutter);gap:1.2rem}.site-mark{display:inline-flex;align-items:baseline;gap:.6rem;text-decoration:none}.site-mark__glyph{color:var(--violet);font-family:var(--font-article);font-size:1.8rem;font-style:italic;font-weight:620;line-height:1}.site-mark__name{font-size:.86rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.site-actions,.site-navigation,.site-navigation__list{display:flex;align-items:center;gap:.35rem}.site-navigation{flex:1 1 auto;justify-content:center;min-inline-size:0}.site-navigation__list,.site-navigation__overflow{margin:0;padding:0;list-style:none}.site-navigation__list,.site-actions{flex:none}.site-navigation__more{position:relative;flex:none}.site-navigation__more>summary{list-style:none}.site-navigation__more>summary::-webkit-details-marker{display:none}.site-navigation a,.site-navigation__more>summary,.site-action{display:inline-flex;align-items:center;min-block-size:2.3rem;padding-inline:.72rem;border:1px solid transparent;border-radius:.35rem;background:transparent;color:var(--ink);cursor:pointer;font-size:.76rem;font-weight:620;letter-spacing:.04em;text-decoration:none;column-gap:.55rem}.site-navigation a:hover,.site-navigation__more>summary:hover,.site-action:hover{border-color:var(--line);background:var(--surface);color:var(--ink)}.site-navigation a[aria-current=page],.site-navigation__more[data-has-current=true]>summary{color:var(--ink);font-weight:720}.site-navigation__overflow{position:absolute;z-index:30;inset-block-start:calc(100% + .45rem);inset-inline-end:0;display:grid;min-inline-size:10.5rem;padding:.35rem;border:1px solid var(--line);border-radius:.42rem;background:var(--surface);box-shadow:var(--shadow)}.site-navigation__more:not([open])>.site-navigation__overflow{display:none}.site-navigation__overflow a{display:flex;inline-size:100%}.site-actions [data-search-open]{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface) 72%,transparent)}.site-action__shortcut{color:var(--graphite);font-size:.72rem;font-weight:540;letter-spacing:.02em}.language-switcher{position:relative}.language-switcher>summary{list-style:none}.language-switcher>summary::-webkit-details-marker{display:none}.language-switcher__panel{position:absolute;z-index:30;inset-block-start:calc(100% + .45rem);inset-inline-end:0;min-inline-size:11rem;padding:.38rem;border:1px solid var(--line);border-radius:.42rem;background:var(--surface);box-shadow:var(--shadow)}.language-switcher__panel ul{display:grid;padding:0;margin:0;gap:.15rem;list-style:none}.language-switcher__panel a{display:block;padding:.58rem .65rem;border-radius:.3rem;color:var(--ink);font-size:.76rem;text-decoration:none}.language-switcher__panel a:hover,.language-switcher__panel a[aria-current=page]{background:var(--violet-soft);color:var(--ink)}.translation-fallback{position:fixed;z-index:40;inset-inline:1rem;inset-block-end:calc(1rem + env(safe-area-inset-bottom,0px));inline-size:fit-content;max-inline-size:min(32rem,calc(100% - 2rem));padding:.8rem 1rem;border-inline-start:3px solid var(--violet);border-radius:.25rem;margin-inline:auto;background:color-mix(in srgb,var(--violet) 8%,var(--surface));box-shadow:var(--shadow);color:var(--ink);font-family:var(--font-ui);font-size:.78rem;pointer-events:none;animation:translation-fallback-notice 5s ease-in forwards}@keyframes translation-fallback-notice{0%,90%{visibility:visible;opacity:1;transform:translateY(0)}to{visibility:hidden;opacity:0;transform:translateY(.4rem)}}.site-footer{margin-block-start:auto;border-block-start:1px solid var(--line);color:var(--graphite)}.site-footer__inner{display:flex;align-items:center;justify-content:center;inline-size:min(100%,calc(var(--article-width) + var(--rail-width) + 3.5rem));margin-inline:auto;padding:.85rem var(--page-gutter);gap:.35rem;font-size:.74rem;text-align:center}.site-footer__github{display:inline-flex;align-items:center;flex:none;gap:.3rem;color:inherit;text-decoration:none}.site-footer__github:hover{color:var(--ink)}.site-footer__github svg{inline-size:.95rem;block-size:.95rem;fill:currentColor}.mobile-toolbar{display:none}}@layer content{body.theme-minimal{--website-reading-margin-inline: 0 auto}body.theme-docs{--website-reading-margin-inline: auto}:is(.minimal-entry,.docs-article)>:where(.note-header,.source-actions,.tab-collection,.related-articles,.website-comments),:is(.minimal-entry,.docs-article)>.note-content>:where(h1,h2,h3,h4,p,ul,ol,dl,blockquote,pre,table,.highlighter-rouge,.code-block-copy,.callout,.mermaid-diagram,.footnotes){inline-size:min(100%,var(--reading-width));margin-inline:var(--website-reading-margin-inline)}.note-header{margin-block-end:2.5rem;padding-block-end:0;border-block-end:0}.note-meta{color:var(--graphite);font-family:var(--font-ui);font-size:.67rem;font-weight:670;letter-spacing:.11em;text-transform:uppercase}.note-title,.note-content h1,.note-content h2,.note-content h3,.note-content h4{color:var(--ink);font-family:var(--font-article);text-wrap:balance}.note-title{max-inline-size:20ch;font-size:clamp(2rem,4vw,3.1rem);font-weight:650;letter-spacing:-.025em;line-height:1.08}.note-description,.note-subtitle{inline-size:100%;max-inline-size:none;margin-block-start:0;color:var(--ink);font-family:var(--font-article);font-size:1.08rem;font-style:normal;line-height:1.6}.note-byline{max-inline-size:49ch;color:var(--graphite);font-family:var(--font-ui);font-size:.78rem;line-height:1.5}.note-title+.note-byline{margin-block-start:.8rem}.note-byline+.note-description,.note-byline+.note-subtitle{margin-block-start:1rem}.note-title+.note-description,.note-title+.note-subtitle{margin-block-start:1.25rem}.note-meta{display:flex;flex-wrap:wrap;margin-block-start:1.65rem;gap:.55rem 1rem}.note-meta__topics{display:flex;flex:1 1 18rem;flex-wrap:wrap;min-inline-size:0;max-inline-size:100%;gap:.4rem}.note-content{color:var(--ink);font-family:var(--font-article);font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.7;overflow-wrap:anywhere}.note-content>*+*{margin-block-start:1.35em}.note-content h1,.note-content h2,.note-content h3,.note-content h4{position:relative;scroll-margin-block-start:2rem}.note-content h1{font-size:clamp(2rem,4vw,2.8rem);font-weight:650;letter-spacing:-.025em;line-height:1.14}.note-content h2{margin-block-start:2.65em;padding-block-start:0;font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:650;letter-spacing:-.015em;line-height:1.18}.note-content h2:before{content:none}.note-content h3{margin-block-start:2.15em;font-size:1.32rem;font-weight:650;line-height:1.3}.note-content h4{font-size:1.08rem;font-weight:700;letter-spacing:.015em}.note-content strong{font-weight:720}.note-content em{font-style:italic}.note-content a:not(.tag-chip):not(.website-embed__source){color:color-mix(in srgb,var(--violet) 88%,var(--ink));text-decoration-color:color-mix(in srgb,var(--violet) 44%,transparent);text-decoration-thickness:.08em}.note-content a:hover{text-decoration-color:currentColor}.note-content ul,.note-content ol{padding-inline-start:1.35em}.note-content li+li{margin-block-start:.36em}.note-content li::marker{color:var(--teal);font-family:var(--font-ui);font-size:.8em;font-weight:750}.note-content blockquote{padding:.1rem 0 .1rem 1.25rem;border-inline-start:2px solid var(--teal);color:var(--ink);font-style:italic}.note-content hr{inline-size:38%;margin:3.5rem auto;border:0;border-block-start:1px solid var(--line-strong)}.note-content mark{margin-inline:-.08em;padding-inline:.08em;background:linear-gradient(transparent 40%,color-mix(in srgb,var(--teal) 25%,transparent) 40%,color-mix(in srgb,var(--teal) 25%,transparent) 92%,transparent 92%);color:inherit}.note-content code,.note-content kbd,.note-content pre{font-family:var(--font-mono)}.note-content :not(pre)>code{padding:.14em .32em;border:1px solid var(--line);border-radius:.25rem;background:var(--code-surface);font-size:.84em}.note-content pre{max-inline-size:100%;padding:1.25rem 1.35rem;border:1px solid var(--line);border-radius:.4rem;background:var(--code-surface);font-size:.82rem;line-height:1.65;overflow:auto}.note-content table{display:block;inline-size:max-content;max-inline-size:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:.82rem;overflow-x:auto}.note-content th,.note-content td{padding:.6rem .75rem;border-block-end:1px solid var(--line);text-align:start;vertical-align:top}.note-content th{color:var(--ink);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.note-content img,.note-content video,.note-content object,.note-content iframe{inline-size:auto;max-inline-size:100%;border-radius:.35rem}.note-content img[data-image-expand]{cursor:zoom-in}.note-content img[data-image-expand]:focus-visible{outline:2px solid var(--ink);outline-offset:.2rem}.note-content .website-external-video,.note-content .website-external-player{display:block;inline-size:100%}.note-content .website-external-player{min-block-size:200px;aspect-ratio:16 / 9;border:0}.note-content .website-external-frame,.note-content .website-tweet{inline-size:100%;margin-block:1.6rem}.note-content .website-external-frame__viewport{display:block;inline-size:100%;min-block-size:18rem;border:1px solid var(--line);background:var(--surface)}.note-content .website-external-frame__fallback,.note-content .website-tweet__fallback{color:var(--ink);font-family:var(--font-ui);font-size:.74rem}.note-content .website-tweet{max-inline-size:34rem}.website-tweet[data-website-tweet-state=loading] .website-tweet__mount{min-block-size:8rem}.website-tweet__mount{inline-size:100%}.note-content figure{display:grid;justify-items:start;gap:.65rem}.note-content figcaption{color:var(--graphite);font-family:var(--font-ui);font-size:.72rem;line-height:1.45}.note-content input[type=checkbox]{inline-size:1em;block-size:1em;margin:0 .42em 0 -1.22em;accent-color:var(--teal)}.footnotes{margin-block-start:4rem;padding-block-start:1.4rem;border-block-start:1px solid var(--line);color:var(--ink);font-size:.86em}}@layer components{:is(.minimal-reading-column,.docs-main)>.sequence-navigation{inline-size:min(100%,var(--reading-width));margin-inline:var(--website-reading-margin-inline)}.sequence-navigation>a[rel=next]:first-child{grid-column:2}.code-block-copy{position:relative;max-inline-size:100%}.code-block-copy>pre{inline-size:100%;margin:0;padding-inline-end:4rem}.source-copy__button{position:absolute;z-index:1;inset-block-start:.55rem;inset-inline-end:.55rem;display:grid;inline-size:2rem;block-size:2rem;padding:0;border:0;border-radius:.3rem;background:color-mix(in srgb,var(--code-surface) 94%,transparent);color:var(--ink);box-shadow:0 1px 4px #181b2712;cursor:pointer;place-items:center}.source-copy__button:hover,.source-copy__button:focus-visible{background:var(--surface);color:var(--ink)}.source-copy__button:focus-visible{box-shadow:var(--focus-ring)}.source-copy__button[data-copy-state=success]{background:var(--teal-soft);color:var(--teal)}.source-copy__button[data-copy-state=error]{color:var(--danger)}.source-copy__icon{inline-size:.9rem;block-size:.9rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.media-image__expand{position:static;display:inline-grid;margin-inline-start:.4rem;vertical-align:middle}.theme-docs :is(.related-articles,.tab-collection){margin-block-start:clamp(3rem,7vw,5rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-section-heading{padding-block-end:.8rem;border-block-end:1px solid var(--line-strong)}.theme-docs :is(.related-articles,.tab-collection) .minimal-section-heading h2{margin:0;font-family:var(--font-article);font-size:clamp(1.35rem,2.7vw,1.75rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-recent__grid{display:grid;grid-template-columns:minmax(0,1fr)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card{position:relative;min-inline-size:0;padding-block:clamp(1.5rem,3vw,2rem);border-block-end:1px solid var(--line)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card:has(:is(h2,h3) a:focus-visible){border-radius:.2rem;box-shadow:var(--focus-ring)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card--with-image{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);align-items:center;gap:clamp(1.25rem,3vw,2rem)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__media{display:block;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface)}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__media img{inline-size:100%;block-size:100%;object-fit:cover}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3){position:static;margin:0;font-family:var(--font-article);font-size:clamp(1.15rem,2.2vw,1.42rem);line-height:1.28;overflow-wrap:anywhere}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a{color:var(--ink);text-decoration:none}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a:after{position:absolute;inset:0;content:""}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card :is(h2,h3) a:focus-visible{box-shadow:none}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__subtitle,.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card__excerpt{margin:.6rem 0 0;color:var(--ink);font-size:.9rem;line-height:1.62}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card footer{margin-block-start:.75rem;color:var(--graphite);font-size:.7rem;font-variant-numeric:tabular-nums}.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card footer a{position:relative;z-index:1;color:inherit;text-underline-offset:.15em}.website-comments{margin-block-start:clamp(3.5rem,8vw,6rem);padding-block-start:1.4rem;border-block-start:2px solid var(--ink)}.website-comments__header{padding-block-end:.85rem;border-block-end:1px solid var(--line)}.website-comments__header h2{margin:0;font-family:var(--font-article);font-size:clamp(1.4rem,2.5vw,1.75rem);font-weight:650;letter-spacing:-.015em}.website-comments__status,.website-comments__fallback{color:var(--graphite);font-family:var(--font-ui)}.website-comments__status,.website-comments__fallback{margin-block:1rem 0;font-size:.8rem;line-height:1.6}.website-comments__embed{min-inline-size:0;margin-block-start:1rem}.website-comments__embed .giscus-frame{inline-size:100%}.relation-section{position:relative;padding:.85rem .2rem 0 1rem;border-block-start:1px solid var(--line-strong)}.relation-section__title{margin-block-end:.7rem;color:var(--ink);font-size:.65rem;font-weight:720;letter-spacing:.1em;text-transform:uppercase}.relation-disclosure>summary{cursor:pointer}.relation-disclosure>summary .relation-section__title{display:inline;margin:0}.relation-disclosure>summary::marker{color:var(--graphite);font-size:.7em}.relation-disclosure>.relation-list{margin-block-start:.7rem}.context-tag-list,.tag-filter__list{display:flex;flex-wrap:wrap;margin:0;padding:0;gap:.42rem;list-style:none}.tag-filter__list li+li{margin-block-start:0}.context-tag-list a,.tag-filter__list a{display:inline-flex;align-items:center;min-block-size:1.75rem;padding:.22rem .28rem .22rem .58rem;border:1px solid var(--line-strong);border-radius:100vmax;gap:.38rem;background:transparent;color:var(--ink);font-size:.72rem;font-weight:640;line-height:1;text-decoration:none}.context-tag-list a:hover,.tag-filter__list a:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));background:transparent;color:var(--ink)}.tag-filter__list a[aria-current=page]{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));background:color-mix(in srgb,var(--line-strong) 28%,transparent);color:var(--ink)}.context-tag__count{min-inline-size:1rem;padding-inline-start:.38rem;border-inline-start:1px solid var(--line);background:transparent;color:var(--graphite);font-size:.62rem;font-variant-numeric:tabular-nums}.tag-filter{margin-block-start:1.5rem}.tag-filter__list a{min-block-size:2rem;padding:.3rem .42rem .3rem .72rem;font-size:.74rem}.filter-empty{margin-block-start:1.5rem;color:var(--graphite);font-size:.86rem}.archive-timeline{display:grid;gap:1.25rem}.archive-timeline>.relation-section__title{margin:0}.archive-timeline__year{display:grid;gap:.5rem}.archive-timeline__year h3{margin:0;font-family:var(--font-article);font-size:1rem;font-weight:650;letter-spacing:-.01em}.archive-timeline__year ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;gap:.35rem .25rem;list-style:none}.archive-timeline__year li{position:relative;min-inline-size:0}.archive-timeline__year li:not(:nth-child(6n+1)):before{position:absolute;inset-block:.5rem;inset-inline-start:-.125rem;border-inline-start:1px solid var(--line-strong);content:"";pointer-events:none}.archive-timeline__year a{display:flex;align-items:center;justify-content:space-between;min-block-size:2rem;padding:.35rem .5rem;border-radius:.3rem;color:var(--ink);font-size:.75rem;font-variant-numeric:tabular-nums;text-decoration:none}.archive-timeline__year a:hover,.archive-timeline__year a[aria-current=page]{background:color-mix(in srgb,var(--line) 48%,transparent);color:var(--ink)}.archive-timeline__year h3 a{color:var(--ink);font-family:inherit;font-size:inherit;font-weight:inherit}.archive-timeline__year li a{min-inline-size:0;padding:.28rem .2rem;border:0;border-radius:0;font-size:.72rem}.archive-timeline__year li a>span:first-child{color:var(--ink);font-weight:640}.archive-timeline__year li .archive-timeline__count{min-inline-size:0;padding-inline-start:.1rem;border-inline-start:0;font-size:.62rem}.archive-timeline__count{min-inline-size:1.5rem;color:var(--graphite);text-align:end}[data-filter-item][hidden],[data-filter-group][hidden]{display:none}.website-index-list{margin-block-start:2.5rem;padding:0;border-block-start:1px solid var(--line);list-style:none}.website-index-list li,.website-index-list li+li{margin:0;border-block-end:1px solid var(--line)}.website-index-list a{display:block;padding:.72rem .2rem;color:var(--ink);font-weight:580;text-decoration:none}.website-index-list a:hover{color:var(--violet)}.docs-tree--dialog{margin-block-start:1.5rem;padding-block-start:1.25rem;border-block-start:1px solid var(--line)}.relation-list,.outline-list,.tag-list{display:grid;margin:0;padding:0;gap:.32rem;list-style:none}.relation-list a,.outline-list a{position:relative;display:block;padding:.24rem .35rem;border-radius:.25rem;color:var(--ink);font-size:.77rem;line-height:1.38;text-decoration:none}.relation-list a:hover,.outline-list a:hover,.outline-list a[aria-current=location]{background:var(--surface);color:var(--ink)}.outline-list a[aria-current=location]:before{position:absolute;inset-block:.42rem;inset-inline-start:-.7rem;inline-size:2px;background:var(--violet);content:""}.outline-list .outline-list{padding-inline-start:.65rem}.relation-empty{color:var(--graphite);font-family:var(--font-article);font-size:.78rem;font-style:italic}.tag-chip{display:inline-flex;align-items:center;min-block-size:1.7rem;padding-inline:.58rem;border:1px solid var(--line-strong);border-radius:100vmax;background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:.72rem;font-weight:640;line-height:1;text-decoration:none;white-space:nowrap}.tab-collection__topics{display:flex;flex-wrap:wrap;margin:.8rem 0 0;padding:0;list-style:none;gap:.4rem}.tab-collection__topics li,.tab-collection__topics .tag-chip{position:relative;z-index:1}.tag-chip[href]:hover{border-color:color-mix(in srgb,var(--graphite) 72%,var(--line));color:var(--ink)}.callout{--callout-accent: var(--violet);margin-block:1.7rem;padding:0;border:1px solid color-mix(in srgb,var(--callout-accent) 30%,var(--line));border-inline-start:3px solid var(--callout-accent);border-radius:.35rem;background:color-mix(in srgb,var(--callout-accent) 7%,var(--surface));color:var(--ink);font-style:normal}.callout[data-callout=tip],.callout[data-callout=success]{--callout-accent: var(--teal)}.callout[data-callout=warning],.callout[data-callout=danger],.callout[data-callout=failure]{--callout-accent: var(--danger)}.callout__title,.callout>summary{padding:.72rem .9rem;color:color-mix(in srgb,var(--callout-accent) 84%,var(--ink));font-family:var(--font-ui);font-size:.74rem;font-weight:720;letter-spacing:.025em}.callout>summary{cursor:pointer}.callout__content{padding:0 .95rem .9rem}.website-embed{position:relative;margin-block:2rem;padding:1.2rem 1.25rem 1.35rem;border:1px solid var(--line);border-inline-start:3px double var(--violet);border-radius:.35rem;background:color-mix(in srgb,var(--frost) 55%,var(--surface))}.website-embed:before{position:absolute;inset-block-start:.7rem;inset-inline-end:.8rem;color:var(--violet);content:"\21b3";font-family:var(--font-ui);font-size:.9rem}.website-embed__source{display:inline-block;margin-block-end:.85rem;color:var(--graphite);font-family:var(--font-ui);font-size:.66rem;font-weight:670;letter-spacing:.07em;text-decoration:none;text-transform:uppercase}.website-embed__content>:first-child{margin-block-start:0}.website-embed__content>:last-child{margin-block-end:0}.website-unresolved{border-block-end:1px dashed var(--danger);color:var(--danger);cursor:help}.attachment-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.35rem;background:var(--frost);gap:.85rem;color:inherit;font-family:var(--font-ui);text-decoration:none}.attachment-card__type{color:var(--violet);font-size:.66rem;font-weight:760;letter-spacing:.08em}.note-preview{position:fixed;z-index:80;display:grid;grid-template-rows:auto minmax(0,1fr);inline-size:min(420px,calc(100vw - 24px));max-block-size:min(560px,calc(100vh - 24px));border:1px solid var(--line-strong);border-radius:.55rem;background:var(--surface);box-shadow:0 18px 54px #191c2c33;overflow:hidden;pointer-events:auto}.note-preview__header{padding:.9rem 1rem .85rem;border-block-end:1px solid var(--line)}.note-preview__eyebrow{margin-block-end:.35rem;color:var(--teal);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.note-preview__title{display:block;margin:0;font-family:var(--font-article);font-size:1.05rem;line-height:1.3}.note-preview__title-link{color:inherit;text-decoration-color:transparent;text-decoration-thickness:.08em;text-underline-offset:.18em}.note-preview__title-link:hover{color:var(--violet);text-decoration-color:currentColor}.note-preview__description{margin-block-start:.45rem;color:var(--ink);font-family:var(--font-article);font-size:.76rem;line-height:1.55}.note-preview__body{min-block-size:4rem;max-block-size:min(240px,calc(100vh - 170px));padding:.85rem 1rem 1rem;color:var(--ink);font-family:var(--font-article);font-size:.78rem;line-height:1.58;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.note-preview__body:focus-visible{outline:2px solid var(--violet);outline-offset:-3px}.note-preview__body>:first-child{margin-block-start:0}.note-preview__body>:last-child{margin-block-end:0}.note-preview__body p,.note-preview__body ul,.note-preview__body ol,.note-preview__body blockquote,.note-preview__body pre,.note-preview__body table{margin-block:.7rem}.note-preview__body h1,.note-preview__body h2,.note-preview__body h3,.note-preview__body h4,.note-preview__body h5,.note-preview__body h6{margin-block:1rem .4rem;color:var(--ink);font-family:var(--font-article);font-size:.92rem;line-height:1.35}.note-preview__body pre,.note-preview__body table{max-inline-size:100%;overflow:auto}.note-preview__body pre{padding:.65rem;border-radius:.3rem;background:var(--code-surface);font-family:var(--font-ui);font-size:.68rem}.note-preview__body table{border-collapse:collapse;font-family:var(--font-ui)}.note-preview__body th,.note-preview__body td{padding:.35rem .45rem;border:1px solid var(--line);text-align:start}.website-dialog{inline-size:min(680px,calc(100vw - 2rem));max-block-size:min(760px,calc(100vh - 2rem));padding:0;border:1px solid var(--line-strong);border-radius:.55rem;background:var(--surface);color:var(--ink);box-shadow:0 28px 90px #0b0d1857}.website-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(5px)}.website-dialog__sheet{display:grid;max-block-size:inherit;grid-template-rows:auto minmax(0,1fr)}.website-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-block-end:1px solid var(--line);gap:1rem}.website-dialog__title{font-size:.7rem;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.website-dialog__close{display:grid;inline-size:2rem;block-size:2rem;border-radius:50%;background:var(--frost);color:var(--ink);cursor:pointer;place-items:center}.website-dialog__body{padding:1rem;overflow:auto}.website-dialog--graph{inline-size:min(1440px,calc(100vw - 3rem));max-block-size:calc(100vh - 3rem)}.website-dialog--graph .website-dialog__sheet{block-size:min(900px,calc(100vh - 3rem))}.website-dialog--graph .website-dialog__body{display:grid;min-block-size:0;padding:.75rem;overflow:hidden}.website-dialog--graph .graph-view{block-size:100%;min-block-size:0}.website-dialog--media{inline-size:min(1200px,calc(100vw - 3rem));max-block-size:calc(100vh - 3rem)}.website-dialog--media .website-dialog__sheet{block-size:min(900px,calc(100vh - 3rem))}.media-dialog__controls{display:flex;align-items:center;min-inline-size:0;gap:.3rem}.media-dialog__controls button{display:grid;flex:none;inline-size:2.5rem;block-size:2.5rem;border:1px solid transparent;border-radius:.3rem;background:var(--frost);color:var(--ink);cursor:pointer;font-family:var(--font-ui);font-size:1rem;place-items:center}.media-dialog__controls button:hover,.media-dialog__controls button:focus-visible{border-color:var(--line-strong);background:var(--surface)}.media-dialog__controls button:disabled{cursor:default;opacity:.45}.media-dialog__controls output{min-inline-size:6.5rem;color:var(--ink);font-family:var(--font-ui);font-size:.7rem;font-weight:650;text-align:center}.media-dialog__body{display:grid;min-block-size:0;padding:0;overflow:hidden}.media-dialog__viewport{min-inline-size:0;min-block-size:0;overflow:auto;overscroll-behavior:contain}.media-dialog__viewport[data-media-pannable]{cursor:grab}.media-dialog__viewport[data-media-panning],.media-dialog__viewport[data-media-panning] *{cursor:grabbing;user-select:none}.media-dialog__canvas{box-sizing:border-box;display:grid;min-block-size:100%;margin-inline:auto;padding:1rem;place-items:center}.media-dialog__canvas>:is(svg,img,picture),.media-dialog__canvas>picture>img{display:block;position:static!important;inset:auto!important;float:none!important;margin:0!important;transform:none!important;min-inline-size:0!important;inline-size:100%!important;max-inline-size:none!important;min-block-size:0!important;block-size:auto!important;max-block-size:none!important}.search-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:.15rem .8rem;border:1px solid var(--line-strong);border-radius:.38rem;background:var(--frost);gap:.65rem}.search-box input{min-inline-size:0;block-size:3rem;border:0;outline:0;background:transparent;color:var(--ink)}.search-box input:focus-visible{border-radius:0;box-shadow:none}.search-box kbd{color:var(--graphite);font-family:var(--font-mono);font-size:.65rem}.search-navigation{margin:.75rem .1rem 0}.search-navigation[hidden]{display:none}.search-navigation__list{display:flex;flex-wrap:wrap;margin:0;padding:0;column-gap:1rem;row-gap:.35rem;list-style:none}.search-navigation a{color:var(--ink);font-size:.72rem;text-decoration:none}.search-navigation a:hover,.search-navigation a:focus-visible,.search-navigation a[aria-current=page]{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}.search-status{min-block-size:1.2rem;margin:.75rem .1rem .35rem;color:var(--graphite);font-size:.7rem}.search-results{display:grid;margin:0;padding:0;gap:.25rem;list-style:none}.search-result__link{display:grid;padding:.7rem .75rem;border:1px solid transparent;border-radius:.32rem;gap:.15rem;text-decoration:none}.search-result__link:hover,.search-result__link:focus-visible{border-color:var(--line);background:var(--frost)}.search-result__link strong{font-family:var(--font-article);font-size:.95rem}.search-result__meta{color:var(--graphite);font-size:.66rem}.mermaid-diagram{position:relative;padding:1rem;padding-inline-end:5.4rem;border:1px solid var(--line);border-radius:.4rem;background:var(--frost);overflow-x:auto}.mermaid-diagram>svg{cursor:zoom-in}.mermaid-diagram>.mermaid-diagram__expand{inset-inline-end:2.85rem}[data-math-rendered]{max-inline-size:100%;overflow-x:auto}[data-math-rendered][data-source-copy]{position:relative}:is([data-math-style=display],[data-math=display],.math-display)[data-source-copy]{display:block;padding-inline-end:2.6rem}:is([data-math-style=inline],[data-math=inline],.math-inline)[data-source-copy]{display:inline-flex;align-items:center;gap:.1rem;overflow:visible;vertical-align:middle}:is([data-math-style=inline],[data-math=inline],.math-inline)>.source-copy__button{position:static;flex:none;inline-size:1.5rem;block-size:1.5rem;background:transparent;box-shadow:none}:is([data-math-style=inline],[data-math=inline],.math-inline)>.source-copy__button:focus-visible{box-shadow:var(--focus-ring)}[data-math-rendered] mjx-container{color:var(--ink)}.local-graph{display:grid;min-inline-size:0;gap:.55rem}.local-graph__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.local-graph__actions{display:flex;gap:.15rem}.local-graph__actions button{display:grid;inline-size:1.75rem;block-size:1.75rem;padding:.28rem;border:1px solid transparent;border-radius:.3rem;background:transparent;color:var(--ink);cursor:pointer;place-items:center}.local-graph__actions button:hover,.local-graph__actions button:focus-visible{border-color:var(--line-strong);background:var(--frost);color:var(--ink)}.local-graph__actions svg{inline-size:1rem;block-size:1rem;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.local-graph__actions circle{fill:currentcolor;stroke:none}.graph-view{position:relative;min-inline-size:0}.graph-canvas{block-size:100%;min-block-size:0;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);overflow:hidden;touch-action:none}.graph-view--compact{display:grid;block-size:220px;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.graph-view--compact .graph-canvas{border:0;border-radius:0}.graph-view--expanded,.graph-view--global{block-size:100%;min-block-size:480px}.graph-canvas svg{inline-size:100%;block-size:100%;cursor:grab}.graph-canvas svg:active{cursor:grabbing}.graph-edge{stroke:color-mix(in srgb,var(--graphite) 52%,transparent)}.graph-edge--embed{stroke:var(--teal);stroke-dasharray:4 4}.graph-node{cursor:pointer;outline:none;transition:opacity .14s ease}.graph-node circle{fill:var(--violet-soft);stroke:none}.graph-node:hover circle,.graph-node:focus-visible circle{fill:var(--violet)}.graph-node:focus-visible circle{filter:drop-shadow(0 0 3px var(--violet))}.graph-node--current text{font-weight:720}.graph-node--dimmed,.graph-edge--dimmed{opacity:.14}.graph-node text{fill:var(--ink);font-family:var(--font-ui);font-size:10px;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.graph-status{position:absolute;z-index:1;inset-block-end:.35rem;inset-inline-end:.55rem;margin:0;color:var(--graphite);font-size:.58rem;pointer-events:none}.graph-view--compact .graph-status{position:static;min-inline-size:0;padding:.1rem .55rem .35rem;justify-self:end}.graph-view[data-graph-bounded-fallback=true]{display:grid;place-items:center}.graph-view[data-graph-bounded-fallback=true] .graph-status{position:static;max-inline-size:36rem;padding:1rem;font-size:.82rem;line-height:1.55;text-align:center}.local-graph__fallback{margin-block-start:.35rem;border-block-start:1px solid var(--line);padding-block-start:.65rem}.source-actions{display:flex;flex-wrap:wrap;margin-block-start:1.5rem;padding-block-start:.5rem;border-block-start:1px solid var(--line);gap:.45rem}.source-actions a{display:inline-flex;align-items:center;min-block-size:1.75rem;padding:.2rem 0;border:0;color:var(--ink);font-family:var(--font-ui);font-size:.68rem;font-weight:620;text-decoration:none;column-gap:.32rem}.source-actions a:hover{color:var(--ink);text-decoration:underline}.source-actions__icon{inline-size:.84rem;block-size:.84rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45}.source-actions .source-actions__repository{inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px;justify-content:center;margin-block:-.35rem;margin-inline-start:auto;padding:0}.source-actions__github-icon{inline-size:.95rem;block-size:.95rem;fill:currentColor}.page-actions{position:relative;z-index:4;float:inline-end;margin-block-end:1rem;margin-inline-start:1rem;color:var(--ink);font-family:var(--font-ui)}.page-actions__split{display:flex;border:1px solid var(--line-strong);border-radius:.55rem;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 8px 24px #1817130f}.page-actions button,.page-actions summary,.page-actions a{color:inherit}.page-actions__primary,.page-actions__menu>summary{display:inline-flex;align-items:center;min-block-size:2.55rem;background:transparent;cursor:pointer}.page-actions__primary{padding-inline:.78rem;gap:.48rem;font-size:.78rem;font-weight:650}.page-actions__primary:disabled,.page-actions__item:disabled{cursor:wait;opacity:.62}.page-actions__icon,.page-actions svg{inline-size:1rem;block-size:1rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}.page-actions__menu{position:relative;border-inline-start:1px solid var(--line)}.page-actions__menu>summary{justify-content:center;inline-size:2.15rem;border-radius:0 .5rem .5rem 0;list-style:none}.page-actions__menu>summary::-webkit-details-marker{display:none}.page-actions__menu>summary svg{inline-size:.85rem;transition:rotate .14s ease}.page-actions__menu[open]>summary svg{rotate:180deg}.page-actions__primary:hover,.page-actions__menu>summary:hover{background:var(--frost)}.page-actions__panel{position:absolute;z-index:20;inset-block-start:calc(100% + .48rem);inset-inline-end:-1px;display:grid;inline-size:min(19rem,calc(100vw - 2rem));padding:.4rem;border:1px solid var(--line-strong);border-radius:.65rem;background:var(--surface);box-shadow:var(--shadow);gap:.15rem}.page-actions__menu:not([open])>.page-actions__panel{display:none}.page-actions__item{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:center;inline-size:100%;padding:.58rem;border-radius:.42rem;background:transparent;cursor:pointer;text-align:start;text-decoration:none;gap:.65rem}.page-actions__item:hover{background:var(--frost)}.page-actions__item-icon{display:grid;inline-size:2rem;block-size:2rem;border:1px solid var(--line);border-radius:.42rem;color:var(--ink);place-items:center}.page-actions__item strong,.page-actions__item small{display:block}.page-actions__item strong{color:var(--ink);font-size:.84rem;font-weight:650}.page-actions__item small{margin-block-start:.08rem;color:var(--ink);font-size:.72rem;line-height:1.35}.page-actions__error{margin:.25rem .58rem .4rem;padding-block-start:.55rem;border-block-start:1px solid var(--line);color:var(--danger);font-size:.72rem;line-height:1.4}}@layer utilities{.visually-hidden{position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;border:0!important;margin:-1px!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}.no-js [data-search-open],.no-js [data-color-scheme-toggle],.no-js .mobile-toolbar{display:none!important}.no-js .local-graph__actions,.no-js .graph-view,.no-js [data-copy-page],.only-no-js{display:none}.no-js .only-no-js{display:revert}.no-js .site-navigation__list{flex:1 1 auto;flex-wrap:wrap;justify-content:center}}@media(max-width:880px){.translation-fallback{inset-block-end:calc(max(.7rem,env(safe-area-inset-bottom)) + 4rem)}.site-header__inner{min-block-size:3.6rem}.site-navigation,.site-actions [data-dialog-open=browse],.site-actions [data-dialog-open=context]{display:none}.language-switcher>summary span:nth-child(2){display:none}.no-js .site-navigation{display:flex;max-inline-size:58vw;overflow-x:auto}.mobile-toolbar{position:fixed;z-index:40;inset-block-end:max(.7rem,env(safe-area-inset-bottom));inset-inline-start:50%;translate:-50% 0;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;inline-size:min(360px,calc(100vw - 1.5rem));padding:.35rem;border:1px solid var(--line-strong);border-radius:.65rem;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 16px 50px #10121f3d;backdrop-filter:blur(14px)}.mobile-toolbar button{display:grid;min-block-size:2.8rem;border-radius:.35rem;background:transparent;color:var(--ink);cursor:pointer;font-size:.66rem;font-weight:650;place-items:center}.mobile-toolbar button:hover{background:var(--frost);color:var(--ink)}.website-dialog{inline-size:100%;max-inline-size:none;max-block-size:min(82vh,760px);margin:auto 0 0;border-width:1px 0 0;border-radius:.8rem .8rem 0 0}.website-dialog--graph,.website-dialog--media{inline-size:calc(100% - 1rem);max-block-size:calc(100vh - 1rem);margin:auto;border:1px solid var(--line-strong);border-radius:.7rem}.website-dialog--graph .website-dialog__sheet,.website-dialog--media .website-dialog__sheet{block-size:calc(100vh - 1rem);grid-template-rows:auto minmax(0,1fr)}.website-dialog--graph .website-dialog__sheet:before,.website-dialog--media .website-dialog__sheet:before{display:none}.website-dialog--media .website-dialog__header{padding-inline:.65rem;gap:.5rem}.website-dialog--media .website-dialog__title{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.media-dialog__controls{gap:.15rem}.media-dialog__controls output{min-inline-size:4.75rem}.graph-view--expanded,.graph-view--global{min-block-size:0}.website-dialog__sheet:before{justify-self:center;inline-size:2.8rem;block-size:.22rem;margin-block:.55rem .1rem;border-radius:100vmax;background:var(--line-strong);content:""}.website-dialog__sheet{grid-template-rows:auto auto minmax(0,1fr)}.js .website-dialog [data-dialog-movable]{position:static;display:block;max-block-size:none;margin:0;padding:0;border:0;overflow:visible}.site-footer{margin-block-end:5.5rem}}@media(max-width:520px){.theme-docs :is(.related-articles,.tab-collection) .minimal-post-card--with-image{grid-template-columns:minmax(0,1fr)}.site-mark__name{max-inline-size:14ch;overflow-wrap:anywhere;white-space:normal}.site-action__label,.site-action kbd,.site-actions [data-search-open]{display:none}.note-title{font-size:clamp(2.2rem,13vw,3.25rem)}.note-content{font-size:1rem;line-height:1.72}.page-actions{float:none;display:flex;justify-content:flex-end;margin-block-end:1.5rem;margin-inline-start:0}.page-actions__primary{justify-content:center;inline-size:2.55rem;padding-inline:0}.page-actions__primary-label{position:absolute;inline-size:1px;block-size:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.graph-node,.page-actions__menu>summary svg,.mermaid-diagram *,.mermaid-diagram *:before,.mermaid-diagram *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.translation-fallback{animation-timing-function:steps(1,end)}}@media(forced-colors:active){.note-content img[data-image-expand]:focus-visible{outline-color:ButtonText}.source-copy__button:focus-visible{outline:2px solid ButtonText;outline-offset:2px;box-shadow:none}[data-month-filter-option][aria-current=page]{outline:2px solid Highlight;outline-offset:-2px}}@media print{:root{color-scheme:light;--frost: #ffffff;--surface: #ffffff;--ink: #111111;--graphite: #4a4a4a;--line: #d0d0d0}.site-header,.minimal-docs-sidebar,.minimal-context,.mobile-toolbar,.site-footer,.source-actions,.page-actions,.source-copy__button,.website-comments,.website-dialog,.website-external-frame__viewport,.website-tweet__mount{display:none!important}.translation-fallback{position:static;max-inline-size:none;margin-block-end:1.5rem;box-shadow:none;animation:none}.minimal-shell,.minimal-shell--docs,.minimal-shell--docs:has(>.minimal-context){display:block;inline-size:auto;padding:0}.note-content a{color:inherit}.code-block-copy>pre{padding-inline-end:1.35rem}.mermaid-diagram{padding-inline-end:1rem}:is([data-math-style=display],[data-math=display],.math-display)[data-source-copy]{padding-inline-end:0}:is([data-math-style=inline],[data-math=inline],.math-inline)[data-source-copy]{display:inline;vertical-align:baseline}}@layer tokens{.theme-docs{--violet: #236f86;--teal: #a64f2d;--violet-soft: #e8e8e3;--teal-soft: #f3e4da;--focus-ring: 0 0 0 3px rgb(35 111 134 / 25%);--article-width: 760px;--reading-width: 632px;--rail-width: 220px}:root[data-color-scheme=dark] .theme-docs{--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}@media(prefers-color-scheme:dark){:root:not([data-color-scheme=light]) .theme-docs{--violet: #78b7ff;--teal: #e59a73;--violet-soft: #1d2a38;--teal-soft: #3b2922;--focus-ring: 0 0 0 3px rgb(120 183 255 / 28%)}}}@layer composition{.theme-docs .site-header{position:sticky;inset-block-start:0;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px)}.theme-docs .site-header__inner,.theme-docs .site-footer__inner{inline-size:min(100%,1640px)}.theme-docs .site-mark__glyph{color:var(--teal);font-family:var(--font-ui);font-style:normal}.docs-shell{display:grid;grid-template-columns:244px minmax(0,1fr) var(--rail-width);justify-content:center;inline-size:min(100%,1640px);min-block-size:72vh;margin-inline:auto;padding:2rem var(--page-gutter) 7rem;gap:clamp(1.5rem,3vw,3.25rem)}.docs-sidebar,.docs-context{position:sticky;inset-block-start:6.4rem;align-self:start;max-block-size:calc(100vh - 8rem);overflow:auto;scrollbar-width:thin}.docs-sidebar{position:sticky;padding:.4rem 0 1.5rem}.docs-sidebar:before{content:none}.docs-main{min-inline-size:0}.docs-article{padding:clamp(2rem,5vw,4rem);border:0;background:transparent}.docs-context{padding-block-start:.75rem}}@layer content{.theme-docs .note-title{max-inline-size:20ch;font-family:var(--font-ui);font-size:clamp(2rem,4vw,3.1rem);font-weight:650;letter-spacing:-.025em;line-height:1.08}.theme-docs .note-description,.theme-docs .note-subtitle,.theme-docs .note-content{font-family:var(--font-ui)}.theme-docs .note-content{font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.7}.docs-article>.page-actions{margin-inline-end:max(0px,calc((100% - var(--reading-width)) / 2))}.theme-docs .note-content h1,.theme-docs .note-content h2,.theme-docs .note-content h3,.theme-docs .note-content h4{font-family:var(--font-ui)}.theme-docs .note-content h2{padding-block-start:0;border-block-start:0;font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:650;letter-spacing:-.015em}.theme-docs .note-content h2:before{content:none}.theme-docs .note-header{margin-block-end:2.5rem;padding-block-end:0;border-block-end:0}.theme-docs .note-description,.theme-docs .note-subtitle{margin-block-start:0;font-style:normal}.theme-docs .note-meta{margin-block-start:1rem}}@layer components{.docs-tree__list{display:grid;margin:0;padding:0;gap:.2rem;list-style:none}.docs-tree__list .docs-tree__list{margin:.2rem 0 .45rem .72rem;padding-inline-start:.65rem;border-inline-start:1px solid var(--line)}.docs-tree__item>a,.docs-tree__item>span{display:block;padding:.38rem .55rem;border-radius:.22rem;color:var(--ink);font-size:.76rem;line-height:1.35;text-decoration:none}.docs-tree__item>a:hover,.docs-tree__item>a[aria-current=page]{background:var(--violet-soft);color:var(--ink)}.docs-tree__item>a[aria-current=page]{font-weight:700}.theme-docs .sequence-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-block-start:1rem;border:1px solid var(--line);background:var(--surface)}.theme-docs .sequence-navigation a{display:grid;min-block-size:5.2rem;align-content:center;padding:.9rem 1.1rem;gap:.22rem;text-decoration:none}.theme-docs .sequence-navigation a+a{border-inline-start:1px solid var(--line);text-align:end}.theme-docs .sequence-navigation span{color:var(--teal);font-size:.62rem;font-weight:720;letter-spacing:.09em;text-transform:uppercase}.theme-docs .sequence-navigation strong{color:var(--ink);font-size:.82rem}}@media(max-width:1100px){.docs-shell{grid-template-columns:220px minmax(0,var(--article-width))}.docs-context{position:static;grid-column:2;display:grid;max-block-size:none;padding-block-start:1.5rem;border-block-start:1px solid var(--line);overflow:visible}}@media(max-width:880px){.docs-shell{display:block;padding:1rem 0 6rem}.docs-sidebar,.docs-context{display:none}.docs-article{padding:2.2rem max(1.25rem,5vw) 4rem;border-inline:0}.no-js .docs-sidebar,.no-js .docs-context{position:static;display:block;max-block-size:none;margin:1rem max(1.25rem,5vw);overflow:visible}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./chunks/chunk-WWLZIRS6.js";import"./chunks/chunk-SZDMZNUS.js";import"./chunks/chunk-GMBKQ7NZ.js";import"./chunks/chunk-UE533OZ7.js";import"./chunks/chunk-D6FURU6X.js";import"./chunks/chunk-6DHFEWGX.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as y}from"./chunks/chunk-UE533OZ7.js";import"./chunks/chunk-6DHFEWGX.js";var S="website:docs-page-change",m=Symbol.for("jekyll-obsidian.docs-navigation-controller"),E="[data-page-head]",L="meta[data-page-csp]";function h(e,t){return e.origin===t.origin&&e.pathname===t.pathname&&e.search===t.search}function b(e){for(let n of document.querySelectorAll("[data-docs-navigation]"))for(let o of n.querySelectorAll("a[href]")){let r=new URL(o.href,e);h(r,e)?o.setAttribute("aria-current","page"):o.removeAttribute("aria-current")}let t=document.querySelector("[data-docs-navigation]");t&&(t.dataset.docsNavigationReady="true")}function p(e){if(!e.hash){window.scrollTo({top:0,left:0,behavior:"instant"});return}let t;try{t=decodeURIComponent(e.hash.slice(1))}catch{return}document.getElementById(t)?.scrollIntoView({block:"start",behavior:"instant"})}function T(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return null;let t=e.target;if(!(t instanceof Element))return null;let n=t.closest(".docs-sidebar a[href], .minimal-docs-sidebar a[href], .docs-tree--dialog a[href]");if(!n||n.target||n.hasAttribute("download"))return null;let o=new URL(n.href,window.location.href);if(o.origin!==window.location.origin||!/^https?:$/.test(o.protocol))return null;let r=new URL(window.location.href);return h(o,r)&&o.hash?null:n}function f(e){return document.importNode(e,!0)}function g(e,t,n){let o=document.querySelector(e),r=t.querySelector(e);if(o&&r){let a=f(r);return o.replaceWith(a),a}if(o&&o.remove(),r&&n){let a=f(r);return n.after(a),a}return null}function q(e){let t=[...document.head.querySelectorAll(E)],n=[...e.head.querySelectorAll(E)].map(r=>f(r)),o=document.head.querySelector('meta[name="color-scheme"]');t.forEach(r=>r.remove()),o?.parentNode?o.after(...n):document.head.append(...n)}function A(e){let t=document.querySelector("[data-language-switcher]"),n=e.querySelector("[data-language-switcher]");if(!t||!n)return;let o=t.querySelector("summary"),r=n.querySelector("summary"),a=t.querySelector(".language-switcher__panel"),s=n.querySelector(".language-switcher__panel");o&&r&&o.setAttribute("aria-label",r.getAttribute("aria-label")||"Language"),a&&s&&a.replaceChildren(...[...s.childNodes].map(u=>document.importNode(u,!0)))}function M(e){let t=document.head.querySelector(L)?.content,n=e.head.querySelector(L)?.content;return!!(t&&t===n)}function D(e,t,n){if(!M(e))throw new TypeError("Destination requires a different Content Security Policy");let o=document.querySelector("[data-docs-main]"),r=e.querySelector("[data-docs-main]"),a=[...document.body.classList].find(u=>u.startsWith("theme-"));if(!o||!r||!a||!e.body.classList.contains(a))throw new TypeError("Destination is not a documentation page in the current theme");for(let u of["browse","context","graph-global","graph-local","media"])y(u);q(e),A(e),document.documentElement.lang=e.documentElement.lang,document.documentElement.dir=e.documentElement.dir;let s=f(r);o.replaceWith(s),g("[data-page-context]",e,s),g(".mobile-toolbar",e),g("[data-page-dialogs]",e),n&&history.pushState({websiteDocs:!0},"",t),b(t),p(t),document.dispatchEvent(new CustomEvent(S,{detail:{url:t.href}}))}function C(){let e=document;if(e[m]?.(),!document.querySelector("[data-docs-navigation]"))return;let n=null,o=0,r=new URL(window.location.href),a=async(i,d)=>{let l=++o;n?.abort(),n=new AbortController,document.querySelector("[data-docs-main]")?.setAttribute("aria-busy","true");try{let c=await fetch(i,{credentials:"same-origin",headers:{Accept:"text/html"},signal:n.signal});if(!c.ok||!c.headers.get("content-type")?.includes("text/html"))throw new Error(`Documentation page returned HTTP ${c.status}`);let v=new DOMParser().parseFromString(await c.text(),"text/html");if(l!==o)return;D(v,i,d),r=new URL(i.href)}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;window.location.assign(i.href)}finally{l===o&&(n=null,document.querySelector("[data-docs-main]")?.removeAttribute("aria-busy"))}},s=i=>{let d=T(i);if(!d)return;i.preventDefault();let l=new URL(d.href,window.location.href),c=new URL(window.location.href);if(h(l,c)){l.href!==c.href&&history.pushState({websiteDocs:!0},"",l),r=new URL(l.href),p(l);return}a(l,!0)},u=()=>{let i=new URL(window.location.href);if(h(i,r)){p(i);return}a(i,!1)},w=()=>{n?.abort(),document.removeEventListener("click",s),window.removeEventListener("popstate",u),e[m]===w&&delete e[m]};b(new URL(window.location.href)),document.addEventListener("click",s),window.addEventListener("popstate",u),e[m]=w}export{S as DOCS_PAGE_CHANGE_EVENT,C as initialiseDocsNavigation,M as sameContentSecurityPolicy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{da as se,e as O,f as re,h as Y,i as oe,j as ne,k as le,l as ie}from"./chunks/chunk-LGUG3SQB.js";import{a as Q}from"./chunks/chunk-UE533OZ7.js";import{b as ee}from"./chunks/chunk-D6FURU6X.js";import{c as te,d as ae}from"./chunks/chunk-DGEGT77F.js";import"./chunks/chunk-6DHFEWGX.js";var W=Symbol.for("jekyll-obsidian.graph-controller"),N=new Map,pe=0,z=null,me=250,fe=1e3;function X(){return matchMedia("(prefers-reduced-motion: reduce)").matches}function be(a){let l=a.dataset.graphMode;return l==="compact"||l==="expanded"||l==="global"?l:"compact"}function de(a,l,c=!1){let g=Number(a);if(!Number.isSafeInteger(g)||g<(c?0:1))throw new TypeError(`Invalid local graph ${l}`);return g}function ye(a){let l=a.querySelector("template[data-local-graph-data]"),g=a.querySelector("[data-graph-view]")?.dataset.currentNoteId;if(!l||!g)throw new TypeError("Local graph data is unavailable");let i=[...l.content.querySelectorAll("[data-graph-node]")].map(d=>{let m=d.dataset.nodeId,r=d.dataset.nodeTitle,n=d.dataset.nodeUrl;if(!m||!r||!n)throw new TypeError("Invalid local graph node");return{id:m,title:r,url:n,degree:de(d.dataset.nodeDegree,"degree",!0)}}),w=[...l.content.querySelectorAll("[data-graph-edge]")].map(d=>{let m=d.dataset.edgeSource,r=d.dataset.edgeTarget,n=d.dataset.edgeKind;if(!m||!r||n!=="link"&&n!=="embed")throw new TypeError("Invalid local graph edge");return{source:m,target:r,kind:n,count:de(d.dataset.edgeCount,"edge count")}}),p=new Set(i.map(d=>d.id));if(!p.has(g)||w.some(d=>!p.has(d.source)||!p.has(d.target)))throw new TypeError("Local graph references an unknown node");return{current_id:g,nodes:i,edges:w}}function Ee(){return z??=ae(ee("graph")).then(te).catch(a=>{throw z=null,a}),z}function P(a,l){let c=l==="compact"?5:7,g=l==="compact"?28:56;return Math.sqrt(c*c+Math.log2(a+1)*g)}function V(a){return typeof a=="string"?a:a.id}function ce(a){return a instanceof MouseEvent||a instanceof PointerEvent?[a.clientX,a.clientY]:a instanceof TouchEvent&&a.touches[0]?[a.touches[0].clientX,a.touches[0].clientY]:null}function F(a,l,c){N.get(a)?.(),a.dataset.graphDisposed="false",a.dataset.graphError="false",a.dataset.graphBoundedFallback="false";let g=a.querySelector("[data-graph-status]");g&&(g.textContent=a.dataset.graphLoading||"Loading graph\u2026");let i=be(a),w=new Map(l.nodes.map(e=>[e.id,new Set]));for(let e of l.edges)w.get(e.source)?.add(e.target),w.get(e.target)?.add(e.source);let p=l.nodes.map(e=>({...e,degree:e.degree??w.get(e.id)?.size??0})),d=l.edges.map(e=>({...e}));a.querySelector("[data-graph-canvas]")?.remove();let m=document.createElement("div");m.className="graph-canvas",m.dataset.graphCanvas="",a.prepend(m);let r=m.clientWidth||(i==="compact"?220:640),n=m.clientHeight||(i==="compact"?210:480),h=p.find(e=>e.id===c),b=r/2,M=n/2;p.forEach((e,t)=>{if(e===h){e.x=b,e.y=M,e.fx=b,e.fy=M,e.labelSide=0;return}let o=h?t-(p.indexOf(h)<t?1:0):t,u=Math.max(p.length-(h?1:0),1),s=o/u*Math.PI*2-Math.PI/2,x=Math.max(58,Math.min(r,n)*(i==="compact"?.31:.36));e.x=b+Math.cos(s)*x,e.y=M+Math.sin(s)*x,e.labelSide=Math.abs(Math.cos(s))<.1?0:Math.cos(s)<0?-1:1});let $=++pe,k=`website-graph-title-${$}`,T=`website-graph-description-${$}`,S=O(m).append("svg").attr("viewBox",`0 0 ${r} ${n}`).attr("role","group").attr("aria-labelledby",`${k} ${T}`);S.append("title").attr("id",k).text(a.dataset.graphTitle||"Note relation graph"),S.append("desc").attr("id",T).text(a.dataset.graphDescription||"Linked notes are connected by solid lines; embedded notes use dashed lines.");let A=S.append("g").attr("class","graph-viewport"),I=A.append("g").attr("class","graph-links").selectAll("line").data(d).join("line").attr("class",e=>`graph-edge graph-edge--${e.kind}`).attr("stroke-width",e=>Math.min(1+Math.log2(e.count),4)),_=i!=="global",L=A.append("g").attr("class","graph-nodes").selectAll("g").data(p).join("g").attr("class",e=>`graph-node${e.id===c?" graph-node--current":""}`).attr("data-node-id",e=>e.id).attr("data-node-url",e=>e.url).attr("role",e=>_&&e.id===c?"img":"link").attr("tabindex",0).attr("aria-current",e=>e.id===c?"page":null).attr("aria-label",e=>(a.dataset.graphNodeLabel||"{title}, {count} relations").replace("{title}",e.title).replace("{count}",String(e.degree))).on("click",(e,t)=>{e.defaultPrevented||t.dragged||_&&t.id===c||window.location.assign(t.url)}).on("keydown",(e,t)=>{(e.key==="Enter"||e.key===" ")&&!(_&&t.id===c)&&(e.preventDefault(),window.location.assign(t.url))});L.append("circle").attr("r",e=>P(e.degree,i));let R=L.append("text").text(e=>e.title),C=new Map;for(let e of p)C.set(e.id,new Set([e.id]));for(let e of d)C.get(V(e.source))?.add(V(e.target)),C.get(V(e.target))?.add(V(e.source));let q=e=>{let t=e?C.get(e.id):void 0;L.classed("graph-node--dimmed",o=>!!(t&&!t.has(o.id))),I.classed("graph-edge--dimmed",o=>!!(t&&V(o.source)!==e?.id&&V(o.target)!==e?.id))};L.on("pointerenter.highlight",(e,t)=>q(t)),L.on("pointerleave.highlight",()=>q()),L.on("focus.highlight",(e,t)=>q(t)),L.on("blur.highlight",()=>q());let G=le(p).force("link",ne(d).id(e=>e.id).distance(e=>e.kind==="embed"?i==="compact"?56:82:i==="compact"?72:110).strength(.34)).force("charge",ie().strength(i==="compact"?-115:-220)).force("collision",oe().radius(e=>P(e.degree,i)+(i==="compact"?12:20))).force("center",Y(b,M)),D=()=>{let e=0;if(i==="compact"){R.each(function(o){o.labelWidth=typeof this.getComputedTextLength=="function"?this.getComputedTextLength():o.title.length*5.5,o.labelHeight=this.getBoundingClientRect().height});for(let t of p){let o=P(t.degree,i),u=t.x??r/2,s=t.y??n/2,x=o+4,v=t.labelWidth??0,f=o+4,y=r-o-4;t.labelSide===-1&&(f=Math.max(f,v+x+2)),t.labelSide===1&&(y=Math.min(y,r-v-x-2)),t.labelSide===0&&(f=Math.max(f,v/2+1),y=Math.min(y,r-v/2-1));let E=f<=y?Math.max(f,Math.min(y,u)):r/2,H=o+16,J=Math.max(H,Math.min(n-H,s));E!==u&&(t.vx=0),J!==s&&(t.vy=0),t.x=E,t.y=J}if(h){let t=h.x??b,o=h.y??M,u=h.labelWidth??0,s=h.labelHeight??0,x=1,v=r-1;for(let E of p){if(E===h||E.labelSide===0||Math.abs((E.y??M)-o)>=((E.labelHeight??0)+s)/2)continue;let H=P(E.degree,i)+4;E.labelSide===-1&&(x=Math.max(x,(E.x??b)-H)),E.labelSide===1&&(v=Math.min(v,(E.x??b)+H))}let f=x+u/2+2,y=v-u/2-2;f<=y&&(e=Math.max(f,Math.min(y,t))-t)}}I.attr("x1",t=>t.source.x??0).attr("y1",t=>t.source.y??0).attr("x2",t=>t.target.x??0).attr("y2",t=>t.target.y??0),L.attr("transform",t=>`translate(${t.x??b},${t.y??M})`),R.each(function(o){let u=O(this),s=o.x??b,x=(s-b)/r,v=i==="compact"?4:6,f=P(o.degree,i)+v;if(o.id===c){i==="compact"?u.attr("text-anchor","middle").attr("x",e).attr("y","0.32em"):u.attr("text-anchor","start").attr("x",f).attr("y","0.32em");return}if(i==="compact"&&o.labelSide===0||i!=="compact"&&Math.abs(x)<.1){u.attr("text-anchor","middle").attr("x",0).attr("y",(o.y??M)<M?-f:f+6);return}let y=i==="compact"?o.labelSide??1:x<0?-1:1;if(i==="compact")u.attr("text-anchor","middle").attr("x",y*(f+(o.labelWidth??0)/2)).attr("y","0.32em");else{let E=typeof this.getComputedTextLength=="function"?this.getComputedTextLength():o.title.length*6,H=s+y*(f+E);(H<4||H>r-4)&&(y*=-1),u.attr("text-anchor",y<0?"end":"start").attr("x",y*f).attr("y","0.32em")}})};D();let he=re().filter((e,t)=>!e.ctrlKey&&!e.button&&t.id!==c).clickDistance(4).on("start",(e,t)=>{e.sourceEvent?.stopPropagation();let o=e.sourceEvent?ce(e.sourceEvent):null;t.dragStartX=o?.[0]??e.x,t.dragStartY=o?.[1]??e.y,t.dragged=!1,!e.active&&!X()&&G.alphaTarget(.2).restart(),t.fx=t.x,t.fy=t.y}).on("drag",(e,t)=>{let o=e.sourceEvent?ce(e.sourceEvent):null,u=o?.[0]??e.x,s=o?.[1]??e.y;Math.hypot(u-(t.dragStartX??u),s-(t.dragStartY??s))>4&&(t.dragged=!0),t.fx=e.x,t.fy=e.y,X()&&(t.x=e.x,t.y=e.y,D())}).on("end",(e,t)=>{e.active||G.alphaTarget(0),setTimeout(()=>{t.dragged=!1},0)});L.call(he);let U=se().extent([[0,0],[r,n]]).scaleExtent([.45,3]).filter(e=>e.type==="wheel"||e.type.startsWith("touch")?!0:e instanceof MouseEvent?e.button===0&&!(e.target instanceof Element&&e.target.closest(".graph-node")):!0).on("zoom",e=>{A.attr("transform",e.transform.toString()),a.dataset.graphScale=String(e.transform.k)});S.call(U),a.dataset.graphScale="1";let B=0,j=new ResizeObserver(()=>{cancelAnimationFrame(B),B=requestAnimationFrame(()=>{let e=m.clientWidth,t=m.clientHeight;if(e<=0||t<=0||Math.abs(e-r)<1&&Math.abs(t-n)<1)return;let o=(e-r)/2,u=(t-n)/2;for(let s of p)s.x=(s.x??r/2)+o,s.y=(s.y??n/2)+u,s.fx!=null&&(s.fx+=o),s.fy!=null&&(s.fy+=u);r=e,n=t,b=r/2,M=n/2,S.attr("viewBox",`0 0 ${r} ${n}`),U.extent([[0,0],[r,n]]),G.force("center",Y(b,M)),X()?G.stop():G.alpha(.35).restart(),D()})});j.observe(m);let K=S.node(),Z=e=>e.preventDefault();K?.addEventListener("wheel",Z,{passive:!1}),X()?(G.stop(),D()):G.on("tick",D),g&&(g.textContent=(a.dataset.graphSummary||"{notes} notes and {relations} relations.").replace("{notes}",String(p.length)).replace("{relations}",String(d.length))),a.dataset.graphReady="true";let ue=()=>{G.stop(),j.disconnect(),cancelAnimationFrame(B),K?.removeEventListener("wheel",Z),a.dataset.graphDisposed="true",N.delete(a)};N.set(a,ue)}function ge(a){a.dataset.graphError="true";let l=a.querySelector("[data-graph-status]");l&&(l.textContent=a.dataset.graphUnavailable||"The interactive graph could not be loaded. Use the linked notes below.")}function Me(a){N.get(a)?.(),a.querySelector("[data-graph-canvas]")?.remove(),a.dataset.graphBoundedFallback="true",a.dataset.graphError="false",a.dataset.graphReady="fallback";let l=a.querySelector("[data-graph-status]");l&&(l.textContent=a.dataset.graphTooLarge||"This complete graph is too large to render interactively. Use local graphs or search instead.")}function Le(){let a=document;a[W]?.();let l=document.querySelector("[data-local-graph-section]");if(!l)return;let c,g=0;try{c=ye(l);let r=l.querySelector("[data-graph-view]");if(!r)throw new TypeError("Local graph view is unavailable");F(r,c,c.current_id);let n=l.querySelector("[data-graph-fallback]");n&&(n.hidden=!0)}catch{let r=l.querySelector("[data-graph-view]");r&&ge(r);return}let i=r=>{let n=r.currentTarget;if(!(n instanceof HTMLElement))return;let h=n.dataset.graphOpen;if(h!=="local"&&h!=="global")return;r.preventDefault();let b=h==="global"?++g:0;n.closest("dialog[open]")?.close();let k=Q(h==="global"?"graph-global":"graph-local");if(!k)return;let T=k.querySelector(`[data-graph-dialog-view="${h}"]`);if(T){if(h==="local"){F(T,c,c.current_id);return}Ee().then(S=>{!k.open||b!==g||(S.nodes.length>me||S.edges.length>fe?Me(T):F(T,S,c.current_id))}).catch(()=>{k.open&&b===g&&ge(T)})}},w=[...l.querySelectorAll("[data-graph-open]")];for(let r of w)r.addEventListener("click",i);let p=new Map;for(let r of document.querySelectorAll('dialog[data-dialog="graph-global"], dialog[data-dialog="graph-local"]')){let n=()=>{r.dataset.dialog==="graph-global"&&(g+=1);let h=r.querySelector("[data-graph-dialog-view]");h&&N.get(h)?.()};p.set(r,n),r.addEventListener("close",n)}function d(){g+=1;for(let r of w)r.removeEventListener("click",i);for(let[r,n]of p)r.removeEventListener("close",n);window.removeEventListener("pagehide",m);for(let r of[...N.values()])r();a[W]===d&&delete a[W]}function m(r){r.persisted||d()}a[W]=d,window.addEventListener("pagehide",m)}export{Le as initialiseGraphs};
|