UKSIWDDN.js
2 lines · archify/explainer/vendor/pele/chunks/UKSIWDDN.js at a406594
1import{a as ge,b as xe}from"./DKTLEL5E.js";import{a as he,b as q,c as be,d as ye,e as ke,f as $e,g as Re,h as Ae,i as we,j as ve,k as Me,l as Ce,m as Ee,n as Te,o as Le,p as Oe}from"./3DKXF73K.js";import{b as V,c,d as j,m as Z,n as fe,o as F}from"./IZOKQ2GT.js";import{a as pe,g as me}from"./XTDUIGUI.js";var Ie=32;function De(t){return new pe(t,"semantic",{type:"radar"})}function Ne(t,e){let n=t.axes.map(r=>({name:r.name,label:r.label??r.name})),i=t.curves.map(r=>{let u;if(r.entries[0].axis===void 0)u=r.entries.map(s=>s.value);else{if(n.length===0)throw De("Axes must be populated before curves for reference entries");let s=new Map;for(let d of r.entries)d.axis!==void 0&&!s.has(d.axis.$refText)&&s.set(d.axis.$refText,d.value);u=n.map(d=>{let x=s.get(d.name);if(x===void 0)throw De("Missing entry for axis "+d.label);return x})}return{name:r.name,label:r.label??r.name,entries:u}}),a={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"};for(let r of t.options)r.name==="showLegend"?a.showLegend=r.value:r.name==="graticule"?a.graticule=r.value:a[r.name]=r.value;return a.ticks>Ie&&(a.ticks=Ie),{type:"radar",title:t.title||e,accTitle:t.accTitle?t.accTitle.replace(/^\s+/g,""):void 0,accDescr:t.accDescr?t.accDescr.replace(/\n\s+/g,`
2`):void 0,axes:n,curves:i,options:a}}var ee=0,z=0;function _e(t,e){let n=e;for(let i=t.charCodeAt(n);i>=48&&i<=57;i=t.charCodeAt(n))n++;return n}function He(t,e){(e<ee||e>=z)&&(ee=e,z=_e(t,e));let n=z;if(n===e)return-1;let i=t.charCodeAt(n)===46;if(i){let a=_e(t,n+1),r=a-n-1;if(r>0&&t.charCodeAt(a)!==46)return a;if(r>1)return a-1}return t.charCodeAt(e)===48?e+1:i?n-1>e?n-1:-1:n}var J=q.pattern,Q=/[\t ]*accDescr\s*{/y,H=-2;function Ge(t,e){return Q.lastIndex=e,Q.test(t)&&(H===-2&&(H=t.lastIndexOf("}")),Q.lastIndex>H)?-1:(J.lastIndex=e,J.test(t)?J.lastIndex:-1)}var te={name:"ID",pattern:/[\w]([-\w]*\w)?/y},A=t=>({name:t,pattern:t,longer:[te]}),w=t=>({name:t,pattern:t}),Se=[w("radar-beta:"),{...Me("radar-beta"),longer:[te]},A("showLegend"),A("graticule"),A("curve"),A("ticks"),A("axis"),A("max"),A("min"),w(":"),w(","),w("["),w("]"),w("{"),w("}"),{name:"GRATICULE",pattern:/circle|polygon/y},{name:"BOOLEAN",pattern:/true|false/y},{...q,match:Ge},be,ye,{name:"NUMBER",pattern:/(?:[0-9]+\.[0-9]+(?!\.))|(?:0|[1-9][0-9]*(?!\.))/y,match:He},ke,te,$e,Re,Ae,we,ve];function Ke(t){return ee=z=0,H=-2,he(t,Se,"radar")}function Be(t){let e=new Oe(Ke(t),Se,"radar"),n={$type:"Radar",axes:[],curves:[],options:[]},i=()=>{for(;e.kind===23;)e.i++},a=()=>{e.kind!==-1&&(e.kind!==23&&e.fail("a line break or the end of input"),i())},r=()=>{if(!e.accept(11))return;let g=Le(e.expect(21));return e.expect(12),g},u=g=>{if(!g)return{$type:"Entry",value:Number(e.expect(20))};let h={$refText:e.expect(22)};return e.accept(9),{$type:"Entry",axis:h,value:Number(e.expect(20))}},s=()=>{let g=e.expect(22),h=r(),p={$type:"Curve",name:g,entries:[]};h!==void 0&&(p.label=h),e.expect(13),i(),e.kind!==20&&e.kind!==22&&e.fail("a number or an axis name");let k=e.kind===22;for(p.entries.push(u(k));e.accept(10);)i(),p.entries.push(u(k));return i(),e.expect(14),p},d=()=>{let g={$type:"Axis",name:e.expect(22)},h=r();return h!==void 0&&(g.label=h),g},x=()=>{let g=e.kind,h=e.take(),p;return g===2?p=e.expect(16)==="true":g===3?p=e.expect(15):p=Number(e.expect(20)),{$type:"Option",name:h,value:p}},N=()=>e.kind===2||e.kind===5||e.kind===7||e.kind===8||e.kind===3;for(i(),e.accept(0)||(e.expect(1),e.accept(9)),i();e.kind!==-1;)switch(e.kind){case 23:e.i++;break;case 17:n.accDescr=Te(e.take()),a();break;case 18:n.accTitle=Ee(e.take()),a();break;case 19:n.title=Ce(e.take()),a();break;case 6:e.i++;do n.axes.push(d());while(e.accept(10));break;case 4:e.i++;do n.curves.push(s());while(e.accept(10));break;default:for(N()||e.fail("an axis, a curve, an option, a title, or a line break"),n.options.push(x());e.accept(10);)N()||e.fail("an option"),n.options.push(x())}return n}var C=12,ne=26,Pe=24;function b(t,e,n,i,a){let r=t.radar?.[e];return typeof r=="number"&&r>=i?Math.min(r,a):n}function Ue(t,e,n,i){let a=Math.min(Math.max(t,e),n);return i*(a-e)/(n-e)}function Xe(t,e){let n=t.length,i=`M${c(t[0].x)},${c(t[0].y)}`;for(let a=0;a<n;a++){let r=t[(a-1+n)%n],u=t[a],s=t[(a+1)%n],d=t[(a+2)%n];i+=` C${c(u.x+(s.x-r.x)*e)},${c(u.y+(s.y-r.y)*e)} ${c(s.x-(d.x-u.x)*e)},${c(s.y-(d.y-u.y)*e)} ${c(s.x)},${c(s.y)}`}return i+" Z"}function We(t){let e="";for(let n of t)e+=(e?" ":"")+c(n.x)+","+c(n.y);return e}function Ve(t,e,n){let i=b(e,"width",320,1,4e3);return ge(n,i,160,(a,r)=>Ye(t,e,n,a,b(e,"height",320,1,4e3)*a/i,r))}function Ye(t,e,n,i,a,r){let u=n.fontSize??16,s=Math.round(u*.875),d=n.measurer??me(n.fontFamily),x=n.padding??8,N=b(e,"axisScaleFactor",1,0,10),g=b(e,"axisLabelFactor",1.05,0,10),h=b(e,"curveTension",.17,0,1),p=Math.min(i,a)/2,{axes:k,curves:_}=t,{ticks:re,graticule:ae,min:je}=t.options,ie=k.length,S=k.map((o,l)=>{let f=2*Math.PI*l/ie-Math.PI/2;return{x:Math.cos(f),y:Math.sin(f)}}),E=t.options.max;if(E===null){E=-1/0;for(let o of _)for(let l of o.entries)l>E&&(E=l)}let $=-i/2-b(e,"marginLeft",16,0,2e3),y=i/2+b(e,"marginRight",16,0,2e3),v=-a/2-b(e,"marginTop",16,0,2e3),R=a/2+b(e,"marginBottom",16,0,2e3),B="";for(let o=0;o<re;o++){let l=Math.min(p,p*(o+1)/re);ae==="circle"?B+=`<circle r="${c(l)}"/>`:B+=`<polygon points="${We(S.map(f=>({x:f.x*l,y:f.y*l})))}"/>`}let G="",K="";S.forEach((o,l)=>{let f=p*N;G+=`M0,0L${c(o.x*f)},${c(o.y*f)}`;let m=F(k[l].label,!1,d,s,4e3),I=p*g+6,D=o.x*I+(o.x>.01?m.width/2:o.x<-.01?-m.width/2:0),M=o.y*I+(o.y>.01?m.height/2:o.y<-.01?-m.height/2:0);K+=`<g class="pele-axis-label" data-id="${V(k[l].name)}">${j(m,D,M,"")}</g>`,$=Math.min($,D-m.width/2),y=Math.max(y,D+m.width/2),v=Math.min(v,M-m.height/2),R=Math.max(R,M+m.height/2)});let U="";_.forEach((o,l)=>{if(o.entries.length!==ie)return;let f=o.entries.map((D,M)=>{let de=Ue(D,je,E,p),ue=Number.isFinite(de)?de:0;return{x:S[M].x*ue,y:S[M].y*ue}}),m=Z(l),I=` class="pele-curve" data-id="${V(o.name)}" fill="${m}" stroke="${m}"`;U+=ae==="circle"?`<path${I} d="${Xe(f,h)}"/>`:`<polygon${I} points="${We(f)}"/>`});let T=t.options.showLegend?_.map(o=>F(o.label,!1,d,s,4e3)):[],P=0;for(let o of T)P=Math.max(P,o.width);let W=T.length*ne,L=r?-(C+8+P)/2:y+Pe,oe=r?R+Pe/2:-W/2;T.length>0&&r?($=Math.min($,L),y=Math.max(y,-L),R=oe+W):T.length>0&&(y=L+C+8+P,v=Math.min(v,-W/2),R=Math.max(R,W/2));let X="";T.forEach((o,l)=>{let f=oe+l*ne+ne/2,m=Z(l);X+=`<g class="pele-legend-item" data-id="${V(_[l].name)}"><rect x="${c(L)}" y="${c(f-C/2)}" width="${C}" height="${C}" rx="2" fill="${m}" fill-opacity="0.4" stroke="${m}"/>`+j(o,L+C+8+o.width/2,f,"")+"</g>"});let O=F(t.title,!1,d,u,xe(n),1),se=O.height>0?O.height+8:0,ce=Math.max(y-$,O.width),Y=Math.ceil(ce+2*x),le=Math.ceil(R-v+se+2*x),Fe=`translate(${c(x+(ce-(y-$))/2-$)},${c(x+se-v)})`,ze=j(O,Y/2,x+O.height/2,' class="pele-title" font-weight="var(--_tw)"')+`<g transform="${Fe}">`+(B?`<g class="pele-graticule" fill="none" stroke="var(--_a)">${B}</g>`:"")+(G?`<path class="pele-axes" d="${G}" fill="none" stroke="var(--_b)"/>`:"")+(U?`<g class="pele-curves" fill-opacity="0.2" stroke-width="1.5" stroke-linejoin="round">${U}</g>`:"")+(K?`<g class="pele-axis-labels" font-size="${s}">${K}</g>`:"")+(X?`<g class="pele-legend" font-size="${s}">${X}</g>`:"")+"</g>";return{svg:fe("radar",Y,le,u,n,t,ze),width:Y,height:le,links:[]}}var ut={type:"radar",parse:(t,e,n)=>Ne(Be(t),n),render:Ve};export{ut as a};