@perspective-dev/viewer-charts 4.5.1 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/perspective-viewer-charts.js +2 -2
- package/dist/cdn/perspective-viewer-charts.js.map +3 -3
- package/dist/esm/config.d.ts +19 -0
- package/dist/esm/perspective-viewer-charts.js +2 -2
- package/dist/esm/perspective-viewer-charts.js.map +3 -3
- package/dist/esm/plugin/plugin.d.ts +15 -2
- package/dist/esm/render/scheduler.d.ts +23 -0
- package/dist/esm/webgl/context-manager.d.ts +100 -117
- package/dist/esm/webgl/context-pool.d.ts +40 -0
- package/dist/esm/webgl/gl-context.d.ts +54 -0
- package/package.json +1 -1
- package/src/ts/config.ts +21 -1
- package/src/ts/plugin/plugin.ts +76 -12
- package/src/ts/render/scheduler.ts +125 -42
- package/src/ts/webgl/context-manager.ts +195 -189
- package/src/ts/webgl/context-pool.ts +78 -0
- package/src/ts/webgl/gl-context.ts +191 -0
- package/src/ts/worker/renderer.worker.ts +62 -19
- package/src/ts/worker/session-host.ts +29 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var y="Series Charts",F="Cartesian Charts",
|
|
2
|
-
`),getComputedStyle(this._parent).position==="static"&&(this._parent.style.position="relative"),n.style.left="-9999px",n.style.top="0px",this._parent.appendChild(n),this._div=n;let r=n.getBoundingClientRect().width,l=n.getBoundingClientRect().height,a=t.px+12,s=t.py-l-8;a+r>i.cssWidth&&(a=t.px-r-12),a<0&&(a=4),s<0&&(s=t.py+12),s+l>i.cssHeight&&(s=i.cssHeight-l-4),n.style.left=`${a}px`,n.style.top=`${s}px`}dismiss(){this._div&&(this._div.remove(),this._div=null)}setCursor(e){this._glCanvas.style.cursor=e}};var d="worker",q="direct";var J='var kr=Object.defineProperty;var Rl=(e,t,n)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var E=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ml=(e,t)=>{for(var n in t)kr(e,n,{get:t[n],enumerable:!0})};var c=(e,t,n)=>Rl(e,typeof t!="symbol"?t+"":t,n);var Ln,hi=E(()=>{Ln="attribute vec2 a_start;attribute vec2 a_end;attribute float a_color_start;attribute float a_color_end;attribute float a_corner;uniform mat4 u_projection;uniform vec2 u_resolution;uniform float u_line_width;uniform vec2 u_color_range;uniform sampler2D u_gradient_lut;varying float v_edge_dist;varying vec3 v_color;float A(float B,float C,float D){if(D<=C){return 0.5;}else if(C<0.&&D>0.){float E=max(-C,D);return clamp(0.5+0.5*(B/E),0.,1.);}return clamp((B-C)/(D-C),0.,1.);}void main(){float C=u_color_range.x;float D=u_color_range.y;float F=0.5*(a_color_start+a_color_end);float G=A(F,C,D);v_color=texture2D(u_gradient_lut,vec2(G,0.5)).rgb;vec4 H=u_projection*vec4(a_start,0.,1.);vec4 I=u_projection*vec4(a_end,0.,1.);vec2 J=H.xy*u_resolution*0.5;vec2 K=I.xy*u_resolution*0.5;vec2 L=K-J;float M=length(L);L=M>0.001?L/M:vec2(1.,0.);vec2 N=vec2(-L.y,L.x);float O=step(1.5,a_corner);float P=1.-mod(a_corner,2.)*2.;vec4 Q=mix(H,I,O);float R=(u_line_width+1.5)*0.5;vec2 S=(N*P*R)/(u_resolution*0.5);gl_Position=Q+vec4(S,0.,0.);v_edge_dist=P;}"});var Tn,yi=E(()=>{Tn="precision highp float;uniform float u_line_width;varying float v_edge_dist;varying vec3 v_color;void main(){float A=abs(v_edge_dist);float B=u_line_width/(u_line_width+1.5);float C=1.-smoothstep(B,1.,A);gl_FragColor=vec4(v_color,C);}"});var wn,xi=E(()=>{wn="attribute vec2 a_position;attribute float a_color_value;attribute float a_size_value;uniform mat4 u_projection;uniform float u_point_size;uniform vec2 u_color_range;uniform vec2 u_size_range;uniform vec2 u_point_size_range;varying float v_color_t;varying float v_point_size;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);float A=u_size_range.y-u_size_range.x;if(A>0.){float B=clamp((a_size_value-u_size_range.x)/A,0.,1.);gl_PointSize=mix(u_point_size_range.x,u_point_size_range.y,B);}else{gl_PointSize=u_point_size;}v_point_size=gl_PointSize;float C=u_color_range.x;float D=u_color_range.y;if(D<=C){v_color_t=0.5;}else if(C<0.&&D>0.){float E=max(-C,D);v_color_t=clamp(0.5+0.5*(a_color_value/E),0.,1.);}else{v_color_t=clamp((a_color_value-C)/(D-C),0.,1.);}}"});var Rn,Ci=E(()=>{Rn="precision highp float;varying float v_color_t;varying float v_point_size;uniform sampler2D u_gradient_lut;void main(){vec2 A=gl_PointCoord-vec2(0.5);float B=length(A);if(B>0.5){discard;}float C=1.5/max(v_point_size,1.);float D=1.-smoothstep(0.5-C,0.5,B);vec4 E=texture2D(u_gradient_lut,vec2(clamp(v_color_t,0.,1.),0.5));gl_FragColor=vec4(E.rgb,E.a*D);}"});var gt,_i=E(()=>{gt="attribute vec2 a_corner;attribute vec2 a_position;attribute float a_color_value;uniform vec2 u_radius_ndc;uniform mat4 u_projection;uniform vec2 u_color_range;varying vec2 v_uv;varying float v_color_t;void main(){vec4 A=u_projection*vec4(a_position,0.,1.);gl_Position=A+vec4(a_corner*u_radius_ndc*A.w,0.,0.);v_uv=a_corner;float B=u_color_range.x;float C=u_color_range.y;if(C<=B){v_color_t=0.5;}else if(B<0.&&C>0.){float D=max(-B,C);v_color_t=clamp(0.5+0.5*(a_color_value/D),0.,1.);}else{v_color_t=clamp((a_color_value-B)/(C-B),0.,1.);}}"});var Un,vi=E(()=>{Un="precision highp float;uniform float u_intensity;varying vec2 v_uv;varying float v_color_t;void main(){float A=length(v_uv);float B=max(0.,1.-A);B=B*B*u_intensity;if(B<=0.){discard;}gl_FragColor=vec4(B,B*v_color_t,0.,0.);}"});var On,Ai=E(()=>{On="precision highp float;varying vec2 v_uv;varying float v_color_t;void main(){float A=length(v_uv);if(A>=1.){discard;}float B=(v_color_t-0.5)*2.;gl_FragColor=vec4(max(0.,B),max(0.,-B),0.,0.);}"});var Ur,Nr=E(()=>{Ur=`#version 300 es\nin vec2 a_corner;in vec2 a_position;in float a_color_value;uniform mat4 u_projection;uniform vec2 u_radius_ndc;uniform vec2 u_color_range;out vec2 v_uv;out float v_color_t;void main(){vec4 A=u_projection*vec4(a_position,0.,1.);gl_Position=A+vec4(a_corner*u_radius_ndc*A.w,0.,0.);v_uv=a_corner;float B=u_color_range.x;float C=u_color_range.y;if(C<=B){v_color_t=0.5;}else if(B<0.&&C>0.){float D=max(-B,C);v_color_t=clamp(0.5+0.5*(a_color_value/D),0.,1.);}else{v_color_t=clamp((a_color_value-B)/(C-B),0.,1.);}}`});var Vr,Or=E(()=>{Vr=`#version 300 es\nprecision highp float;uniform float u_intensity;in vec2 v_uv;in float v_color_t;layout(location=0)out vec4 A;layout(location=1)out vec4 B;void main(){float C=length(v_uv);float D=max(0.0f,1.0f-C);D=D*D*u_intensity;if(D<=0.0f){discard;}A=vec4(D,D*v_color_t,0.0f,0.0f);float E=(v_color_t-0.5f)*2.0f;B=vec4(max(0.0f,E),max(0.0f,-E),0.0f,0.0f);}`});var Vn,Li=E(()=>{Vn="attribute vec2 a_corner;varying vec2 v_uv;void main(){v_uv=a_corner*0.5+0.5;gl_Position=vec4(a_corner,0.,1.);}"});var Hn,Ti=E(()=>{Hn="precision highp float;uniform sampler2D u_heat;uniform sampler2D u_extreme;uniform sampler2D u_gradient_lut;uniform float u_heat_max;uniform int u_color_mode;varying vec2 v_uv;void main(){vec4 A=texture2D(u_heat,v_uv);float B=A.r;float C=A.g;if(B<=0.){discard;}float D;float E;float F=clamp(B/max(u_heat_max,1e-4),0.,1.);if(u_color_mode==0){D=pow(F,0.6);E=clamp(B,0.,1.);}else if(u_color_mode==2){vec4 G=texture2D(u_extreme,v_uv);float H=G.r;float I=G.g;float J=max(H,I);if(J<=0.){D=0.5;}else if(H>=I){D=clamp(0.5+H*0.5,0.5,1.);}else{D=clamp(0.5-I*0.5,0.,0.5);}E=F;}else if(u_color_mode==3){float K=C-0.5*B;float L=clamp(abs(K)/max(u_heat_max,1e-4),0.,1.);float M=K>=0.?1.:-1.;D=clamp(0.5+0.5*M*L,0.,1.);E=L;}else{D=clamp(C/B,0.,1.);E=F;}vec4 N=texture2D(u_gradient_lut,vec2(D,0.5));gl_FragColor=vec4(N.rgb,N.a*E);}"});var Yn,wi=E(()=>{Yn="attribute vec2 a_corner;uniform mat4 u_projection;uniform vec2 u_extent_min;uniform vec2 u_extent_max;uniform vec2 u_uv_min;uniform vec2 u_uv_max;varying vec2 v_uv;void main(){vec2 A=mix(u_extent_min,u_extent_max,a_corner);vec2 B=mix(u_uv_min,u_uv_max,vec2(a_corner.x,1.-a_corner.y));v_uv=B;gl_Position=u_projection*vec4(A,0.,1.);}"});var zn,Ri=E(()=>{zn="precision highp float;varying vec2 v_uv;uniform sampler2D u_tile;uniform float u_alpha;void main(){vec4 A=texture2D(u_tile,v_uv);gl_FragColor=vec4(A.rgb,A.a*u_alpha);}"});function ru(e,t){if(t.width<=0||t.height<=0)return e;let n=e.xMax-e.xMin,o=e.yMax-e.yMin;if(n<=0||o<=0)return e;let i=t.width/t.height;if(n/o<i){let s=(e.xMin+e.xMax)/2,a=o*i/2;return{xMin:s-a,xMax:s+a,yMin:e.yMin,yMax:e.yMax}}else{let s=(e.yMin+e.yMax)/2,a=n/i/2;return{xMin:e.xMin,xMax:e.xMax,yMin:s-a,yMax:s+a}}}var ht,$n=E(()=>{"use strict";ht=class{constructor(){c(this,"me",1);c(this,"fe",1);c(this,"ve",0);c(this,"Ae",0);c(this,"vt",0);c(this,"At",1);c(this,"Lt",0);c(this,"Tt",1);c(this,"He",null);c(this,"si",!1);c(this,"go",!1);c(this,"ho",!1);c(this,"wt",null);c(this,"Rt",null);c(this,"Mn",null);c(this,"yo",!1);c(this,"xo",0);c(this,"Co",0);c(this,"Fn",null);c(this,"Sn",null);c(this,"Dn",null);c(this,"Bn",null)}get lockedAxis(){return this.He}get scaleX(){return this.me}get scaleY(){return this.fe}set scaleX(t){this.me=t}set scaleY(t){this.fe=t}get normTranslateX(){return this.ve}get normTranslateY(){return this.Ae}set normTranslateX(t){this.ve=t}set normTranslateY(t){this.Ae=t}get baseXRange(){return this.At-this.vt}get baseYRange(){return this.Tt-this.Lt}setBaseDomain(t,n,o,i){let r=n-t;if(this.isXDefault()||!this.go)this.vt=t,this.At=n;else{let a=this.At-this.vt,l=(this.vt+this.At)/2+this.ve*a;this.vt=t,this.At=n,this.ve=r>0?(l-(t+n)/2)/r:0}let s=i-o;if(this.isYDefault()||!this.ho)this.Lt=o,this.Tt=i;else{let a=this.Tt-this.Lt,l=(this.Lt+this.Tt)/2+this.Ae*a;this.Lt=o,this.Tt=i,this.Ae=s>0?(l-(o+i)/2)/s:0}}pinAxis(t){t==="x"?this.go=!0:this.ho=!0}unpinAxis(t){t==="x"?this.go=!1:this.ho=!1}configure(t){this.He=t.lockAxis??null,this.si=t.lockAspect??!1,this.He==="x"?(this.me=1,this.ve=0):this.He==="y"&&(this.fe=1,this.Ae=0)}isXDefault(){return this.me===1&&this.ve===0}isYDefault(){return this.fe===1&&this.Ae===0}isDefault(){return this.isXDefault()&&this.isYDefault()}getVisibleDomain(){let t=this.At-this.vt,n=this.Tt-this.Lt,o=t/this.me,i=n/this.fe,r=(this.vt+this.At)/2+this.ve*t,s=(this.Lt+this.Tt)/2+this.Ae*n,a={xMin:r-o/2,xMax:r+o/2,yMin:s-i/2,yMax:s+i/2};return this.si&&this.Rt?ru(a,this.Rt.t):a}attach(t,n,o){this.detach(),this.wt=t,this.Rt=n,this.Mn=o,this.Fn=i=>{i.preventDefault();let r=t.getBoundingClientRect(),s=i.clientX-r.left,a=i.clientY-r.top,l=this.Rt.t;if(s<l.x||s>l.x+l.width||a<l.y||a>l.y+l.height)return;let u=(s-l.x)/l.width,m=(a-l.y)/l.height,f=this.me,b=this.fe,p=Math.pow(1.1,-i.deltaY/100);this.He!=="x"&&(this.me=Math.max(1,Math.min(1e5,this.me*p))),this.He!=="y"&&(this.fe=Math.max(1,Math.min(1e5,this.fe*p))),this.He!=="x"&&f!==this.me&&(this.ve+=(u-.5)*(1/f-1/this.me)),this.He!=="y"&&b!==this.fe&&(this.Ae+=(.5-m)*(1/b-1/this.fe)),this.Mn()},this.Sn=i=>{let r=t.getBoundingClientRect(),s=i.clientX-r.left,a=i.clientY-r.top,l=this.Rt.t;s>=l.x&&s<=l.x+l.width&&a>=l.y&&a<=l.y+l.height&&(this.yo=!0,this.xo=i.clientX,this.Co=i.clientY,t.setPointerCapture(i.pointerId))},this.Dn=i=>{if(!this.yo)return;let r=i.clientX-this.xo,s=i.clientY-this.Co;this.xo=i.clientX,this.Co=i.clientY;let a=this.Rt.t;this.He!=="x"&&a.width>0&&(this.ve-=r/(a.width*this.me)),this.He!=="y"&&a.height>0&&(this.Ae+=s/(a.height*this.fe)),this.Mn()},this.Bn=()=>{this.yo=!1},t.addEventListener("wheel",this.Fn,{passive:!1}),t.addEventListener("pointerdown",this.Sn),t.addEventListener("pointermove",this.Dn),t.addEventListener("pointerup",this.Bn)}updateLayout(t){this.Rt=t}detach(){this.wt&&(this.Fn&&this.wt.removeEventListener("wheel",this.Fn),this.Sn&&this.wt.removeEventListener("pointerdown",this.Sn),this.Dn&&this.wt.removeEventListener("pointermove",this.Dn),this.Bn&&this.wt.removeEventListener("pointerup",this.Bn)),this.wt=null,this.Mn=null}reset(){this.me=1,this.fe=1,this.ve=0,this.Ae=0}serialize(){return{scaleX:this.me,scaleY:this.fe,normTranslateX:this.ve,normTranslateY:this.Ae}}restore(t){this.me=t.scaleX,this.fe=t.scaleY,this.ve=t.normTranslateX,this.Ae=t.normTranslateY}}});function Fi(e,t){let n=t??su[e]??{};return new Intl.NumberFormat(navigator.languages,n)}function Si(e){if(!e||e.format!=="custom"){let n={timeZone:e?.timeZone,dateStyle:e?.dateStyle==="disabled"?void 0:e?.dateStyle??$r.dateStyle,timeStyle:e?.timeStyle==="disabled"?void 0:e?.timeStyle??$r.timeStyle};return new Intl.DateTimeFormat(navigator.languages,n)}let t={timeZone:e.timeZone,hour12:e.hour12??!0,fractionalSecondDigits:e.fractionalSecondDigits};return e.year!=="disabled"&&(t.year=e.year??"2-digit"),e.month!=="disabled"&&(t.month=e.month??"numeric"),e.day!=="disabled"&&(t.day=e.day??"numeric"),e.weekday&&e.weekday!=="disabled"&&(t.weekday=e.weekday),e.hour!=="disabled"&&(t.hour=e.hour??"numeric"),e.minute!=="disabled"&&(t.minute=e.minute??"numeric"),e.second!=="disabled"&&(t.second=e.second??"numeric"),new Intl.DateTimeFormat(navigator.languages,t)}function jr(e){let t={timeZone:"utc",dateStyle:e?.dateStyle==="disabled"?void 0:e?.dateStyle??au.dateStyle};return new Intl.DateTimeFormat(navigator.languages,t)}function Di(e){return e.split("|").at(-1)??e}var su,$r,au,Zr=E(()=>{"use strict";su={float:{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}},$r={dateStyle:"short",timeStyle:"medium"},au={dateStyle:"short"}});var Zn,qr=E(()=>{"use strict";Zn=class{constructor(t,n=128){c(this,"Vt");c(this,"m",new Map);c(this,"ye",new Map);c(this,"ai");this.Vt=t,this.ai=n}async fetchRow(t){if(!this.Vt)throw new Error("LazyRowFetcher disposed");let n=this.m.get(t);if(n)return this.m.delete(t),this.m.set(t,n),n;let o=this.ye.get(t);if(o)return o;let i=this.ki(t);this.ye.set(t,i);try{let r=await i;if(!this.Vt)return r;if(this.m.set(t,r),this.m.size>this.ai){let s=this.m.keys().next().value;s!==void 0&&this.m.delete(s)}return r}finally{this.ye.delete(t)}}async ki(t){let n=this.Vt;if(!n)throw new Error("LazyRowFetcher disposed");let o=new Map;return await n.with_typed_arrays({start_row:t,end_row:t+1,float32:!0},(i,r,s,a)=>{for(let l=0;l<i.length;l++){let u=i[l];if(u.startsWith("__"))continue;let m=r[l],f=s[l],b=a[l];(f?!(f[0]>>0&1):!1)?o.set(u,null):b?o.set(u,b[m[0]]):o.set(u,m[0])}}),o}dispose(){this.Vt=null,this.m.clear(),this.ye.clear()}get isDisposed(){return this.Vt===null}}});function Kr(e,t){let n=Math.floor(Math.log10(e)),o=e/Math.pow(10,n),i;return t?o<1.5?i=1:o<3?i=2:o<7?i=5:i=10:o<=1?i=1:o<=2?i=2:o<=5?i=5:i=10,i*Math.pow(10,n)}function se(e,t,n){n<1&&(n=1);let o=Kr(t-e,!1),i=Kr(o/n,!0),r=Math.ceil(e/i)*i,s=Math.floor(t/i)*i,a=[];for(let l=r;l<=s+i*.001;l+=i)a.push(l);return a}function ae(e){let t=Math.abs(e);return t===0?"0":t>=1e9?(e/1e9).toFixed(1)+"B":t>=1e6?(e/1e6).toFixed(1)+"M":t>=1e3?(e/1e3).toFixed(1)+"K":Number.isInteger(e)?e.toString():t>=1?e.toFixed(1):e.toFixed(2)}function he(e,t){let n=new Date(e);return isNaN(n.getTime())?ae(e):t!==void 0&&t>0?t>=864e5*28?n.toLocaleDateString(void 0,{year:"numeric",month:"short"}):t>=864e5?n.toLocaleDateString(void 0,{month:"short",day:"numeric"}):t>=36e5?n.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric"}):t>=6e4?n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit",second:"2-digit"}):n.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}var ve=E(()=>{"use strict"});var Jr,Qr,es=E(()=>{"use strict";Jr={facet_mode:"grid",shared_x_axis:!0,shared_y_axis:!0,coordinated_tooltip:!1,zoom_mode:"shared",facet_padding:6},Qr={auto_alt_y_axis:!1,facet_mode:"grid",facet_zoom_mode:"shared",series_zoom_mode:"dynamic",include_zero:!1,domain_mode:"expand",line_width_px:2,point_size_px:8,band_inner_frac:.5,bar_inner_pad:.1,wick_width_px:1,ohlc_line_width_px:1,gradient_radius_px:32,gradient_intensity:.6,gradient_heat_max:4,gradient_color_mode:"mean",map_tile_provider:"carto-positron",map_tile_alpha:1}});function Be(e,t,n,o,i,r,s={}){if(!e)return;let a=e.getContext("2d");if(!a)return;a.save(),a.setTransform(1,0,0,1,0,0),a.scale(r,r),a.font=`11px ${i.fontFamily}`;let l=16,u=8,m=0;for(let h of n){let y=a.measureText(h).width;y>m&&(m=y)}let f=m+u*2,b=n.length*l+u*2-4,p=t.px+12,d=t.py-b-8;p+f>o.cssWidth&&(p=t.px-f-12),d<0&&(d=t.py+12),d+b>o.cssHeight&&(d=o.cssHeight-b-4);let g=n.length>0;if(s.crosshair&&(a.strokeStyle=i.Mt,a.globalAlpha=.3,a.lineWidth=1,a.setLineDash([4,4]),a.beginPath(),a.moveTo(t.px,o.t.y),a.lineTo(t.px,o.t.y+o.t.height),a.moveTo(o.t.x,t.py),a.lineTo(o.t.x+o.t.width,t.py),a.stroke(),a.setLineDash([]),a.globalAlpha=1),s.highlightRadius&&s.highlightRadius>0&&(a.strokeStyle=i.Mt,a.globalAlpha=.8,a.lineWidth=2,a.beginPath(),a.arc(t.px,t.py,s.highlightRadius,0,Math.PI*2),a.stroke(),a.globalAlpha=1),g){a.fillStyle=i.In,a.strokeStyle=i.li,a.lineWidth=1,a.beginPath(),a.roundRect(p,d,f,b,4),a.fill(),a.stroke(),a.fillStyle=i.ui,a.textAlign="left",a.textBaseline="top";for(let h=0;h<n.length;h++)a.fillText(n[h],p+u,d+u+h*l)}a.restore()}var qn,yt=E(()=>{"use strict";qn=class{constructor(){c(this,"Be",null);c(this,"Ht",0);c(this,"Yt",null);c(this,"Kt",null);c(this,"dt",!1)}get isPinned(){return this.dt}setHost(t){this.dt&&(this.Kt?.dismiss(),this.dt=!1),this.Kt=t}setCursor(t){this.Kt?.setCursor(t)}attach(t){this.detach(),this.Be=t}detach(){this.Ht&&(cancelAnimationFrame(this.Ht),this.Ht=0),this.Yt!==null&&(clearTimeout(this.Yt),this.Yt=null),this.Be=null}dispatchHover(t,n){if(this.dt||!this.Be||this.Ht||this.Yt!==null)return;let o=()=>{this.Ht=0,this.Yt=null,this.Be?.onHover(t,n)};typeof requestAnimationFrame=="function"?this.Ht=requestAnimationFrame(o):this.Yt=setTimeout(o,16)}dispatchLeave(){this.dt||!this.Be||this.Be.onLeave()}dispatchClick(t,n){if(this.Be&&!this.Be.onClickPre?.(t,n)){if(this.dt){let o=this.Be;this.dismiss(),o.onUnpin?.();return}this.Be.onPin?.(t,n)}}dispatchDblClick(t,n){this.Be?.onDblClick?.(t,n)}pin(t,n,o){t.length!==0&&(this.Kt?.pin(t,n,o),this.dt=!0)}dismiss(){this.Kt?.dismiss(),this.dt=!1}}});function Kn(e){let t=e.trim();if(t.startsWith("#")){let o=t.slice(1);return o.length===3&&(o=o[0]+o[0]+o[1]+o[1]+o[2]+o[2]),[parseInt(o.slice(0,2),16)/255,parseInt(o.slice(2,4),16)/255,parseInt(o.slice(4,6),16)/255]}let n=t.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);return n?[+n[1]/255,+n[2]/255,+n[3]/255]:[.5,.5,.5]}var Bi=E(()=>{"use strict"});function ts(e){if(!e)return it.slice();let t=e.trim();if(!t)return it.slice();let n=t.indexOf("(");if(n<0||!/^linear-gradient\\s*\\(/i.test(t))return it.slice();let o=t.lastIndexOf(")");if(o<=n)return it.slice();let i=t.substring(n+1,o),r=[],s=0,a=0;for(let b=0;b<i.length;b++){let p=i[b];p==="("?s++:p===")"?s--:p===","&&s===0&&(r.push(i.substring(a,b)),a=b+1)}r.push(i.substring(a));let l=[],u=0;if(r.length>0){let b=r[0].trim().toLowerCase();(b.startsWith("to ")||/^[-\\d.]+(deg|rad|grad|turn)/.test(b))&&(u=1)}for(let b=u;b<r.length;b++){let p=r[b].trim();if(!p)continue;let d=p.match(/\\s([\\-\\d.]+)%\\s*$/),g=d?p.substring(0,d.index).trim():p,h=d?parseFloat(d[1])/100:null;try{let y=Kn(g);l.push({color:y,offset:h})}catch{}}if(l.length===0)return it.slice();if(l.length===1){let[b,p,d]=l[0].color;return[{offset:0,color:[b,p,d,1]},{offset:1,color:[b,p,d,1]}]}l[0].offset===null&&(l[0].offset=0),l[l.length-1].offset===null&&(l[l.length-1].offset=1);for(let b=1;b<l.length-1;b++){if(l[b].offset!==null)continue;let p=b+1;for(;p<l.length&&l[p].offset===null;)p++;let d=l[b-1].offset,g=l[p].offset,h=p-(b-1);for(let y=b;y<p;y++)l[y].offset=d+(y-(b-1))/h*(g-d);b=p-1}let m=0;return l.map(b=>{let p=Math.max(m,Math.min(1,b.offset));return m=p,{offset:p,color:[b.color[0],b.color[1],b.color[2],1]}})}function Ae(e,t){if(e.length===0)return[0,0,0,1];if(t<=e[0].offset)return e[0].color.slice();let n=e[e.length-1];if(t>=n.offset)return n.color.slice();let o=0,i=e.length-1;for(;i-o>1;){let u=o+i>>1;e[u].offset<=t?o=u:i=u}let r=e[o],s=e[i],a=s.offset-r.offset,l=a>0?(t-r.offset)/a:0;return[r.color[0]+(s.color[0]-r.color[0])*l,r.color[1]+(s.color[1]-r.color[1])*l,r.color[2]+(s.color[2]-r.color[2])*l,r.color[3]+(s.color[3]-r.color[3])*l]}function rt(e,t,n){if(!isFinite(e)||t===n)return .5;let o;if(t>=0?o=n:n<=0?o=-t:o=Math.max(-t,n),o<=0)return .5;let i=.5+.5*(e/o);return i<0?0:i>1?1:i}function ns(e){if(e.length===0)return it.slice();if(e.length===1){let[n,o,i]=e[0];return[{offset:0,color:[n,o,i,1]},{offset:1,color:[n,o,i,1]}]}let t=e.length-1;return e.map(([n,o,i],r)=>({offset:r/t,color:[n,o,i,1]}))}function os(e,t=256){let n=new Uint8Array(t*4);for(let o=0;o<t;o++){let i=t===1?0:o/(t-1),r=Ae(e,i);n[o*4]=Math.round(r[0]*255),n[o*4+1]=Math.round(r[1]*255),n[o*4+2]=Math.round(r[2]*255),n[o*4+3]=Math.round(r[3]*255)}return n}var it,Ie=E(()=>{"use strict";Bi();it=[{offset:0,color:[3/255,102/255,214/255,1]},{offset:1,color:[255/255,127/255,14/255,1]}]});function lu(e){return isFinite(e)?e<0?0:e>1?1:e:.5}function is(e){return!isFinite(e)||e<0?1:e}function rs(e){let t=(r,s)=>e[r]||s,n=e["--psp-charts--gradient--background"]||e["--psp-charts--full-gradient--background"]||"linear-gradient(#0366d6 0%, #ff7f0e 100%)",o=ts(n),i=[];for(let r=1;;r++){let s=e[`--psp-charts--series-${r}--color`];if(!s)break;i.push(Kn(s))}return{fontFamily:t("--psp-charts--font-family",t("font-family","monospace")),backgroundColor:t("--psp--background-color","rgba(255, 255, 255, 1)"),Mt:t("--psp-charts--axis-ticks--color","rgba(160, 0, 0, 0.8)"),xe:t("--psp--color","rgba(180, 0, 0, 0.9)"),_o:t("--psp-charts--axis-lines--color","rgba(160, 0, 0, 0.4)"),Pn:t("--psp-charts--gridline--color","rgba(255, 0, 0, 1)"),H:o,vo:t("--psp-charts--legend--color","rgba(180, 180, 180, 0.9)"),Ni:t("--psp-charts--legend-border--color","rgba(128,128,128,0.3)"),In:t("--psp-charts--tooltip--background","rgba(155,155,155,0.8)"),ui:t("--psp-charts--tooltip--color","#161616"),li:t("--psp-charts--tooltip--border-color","#fff"),Ao:lu(parseFloat(t("--psp-charts--area--opacity","0.85"))),mi:is(parseFloat(t("--psp-charts--heatmap-gap--px","0"))),fi:is(parseFloat(t("--psp-charts--sunburst-gap--px","1"))),Ie:i}}var ss=E(()=>{"use strict";Bi();Ie()});function as(e,t){let n=Ot.get(e);n?n.fullRender=t:(n={glManager:e,fullRender:t,waiters:[]},Ot.set(e,n));let o=Promise.withResolvers();return n.waiters.push(o),Jn||(Jn=ms(us)),o.promise}function ls(e,t){if(!Ii.has(e)){t();return}let n=Qn.get(e);n||(n=[],Qn.set(e,n)),n.push(t)}async function us(){let e=Array.from(Ot.values());Ot.clear();let t=[];for(let n of e)try{n.glManager.applyPendingResize(),n.fullRender(),t.push(n)}catch(o){console.error("scheduler: fullRender threw",o);for(let i of n.waiters)i.reject(o)}await Promise.all(t.map(uu)),Jn=0,Ot.size>0&&(Jn=ms(us))}async function uu(e){Ii.add(e.glManager);try{await e.glManager.awaitGpuFence(),e.glManager.endFrame();for(let t of e.waiters)t.resolve()}catch(t){console.error("scheduler: present failed",t);try{e.glManager.endFrame()}catch{}for(let n of e.waiters)n.reject(t)}finally{Ii.delete(e.glManager);let t=Qn.get(e.glManager);if(t){Qn.delete(e.glManager);for(let n of t)try{n()}catch(o){console.error("scheduler: deferred op threw",o)}}}}function ms(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,16)}var Ot,Jn,Ii,Qn,Pi=E(()=>{"use strict";Ot=new Map,Jn=0,Ii=new Set,Qn=new Map});var fs,mu,fu,Le,Vt=E(()=>{"use strict";Zr();qr();ve();$n();es();yt();ss();Pi();fs=!0,mu=(()=>{if(fs)return ae;{let e=Fi("float");return t=>e.format(t)}})(),fu=(()=>{if(fs)return he;{let e=Si();return t=>e.format(t)}})(),Le=class{constructor(){c(this,"e",null);c(this,"D",null);c(this,"d",null);c(this,"ci",{});c(this,"b",null);c(this,"Jt",[]);c(this,"B",[]);c(this,"A",[]);c(this,"P",[]);c(this,"Pe",{});c(this,"En",!1);c(this,"Wn",!1);c(this,"pt",{});c(this,"Lo",{});c(this,"To",new Map);c(this,"Gn");c(this,"N",{...Jr});c(this,"h",{...Qr});c(this,"L",new qn);c(this,"wo",null);c(this,"kn",Promise.resolve());c(this,"Qt",null);c(this,"Le",null)}setGridlineCanvas(t){this.D=t}setChromeCanvas(t){this.d=t}setTheme(t){this.ci=t,this.Qt=null}setZoomController(t){this.b=t,t.configure(this.getZoomConfig())}getZoomControllerForFacet(t){if(this.N.zoom_mode==="shared")return this.b;if(!this.b)return null;let n=this.Jt[t];return n||(n=new ht,n.configure(this.getZoomConfig()),this.Jt[t]=n),n}computeEffectiveFacetFlags(){let t=this.N.zoom_mode==="independent",n=!t&&this.N.shared_x_axis,o=!t&&this.N.shared_y_axis;return this.En=n,this.Wn=o,{independentZoom:t,effectiveSharedX:n,effectiveSharedY:o}}syncFacetZoomLayouts(t){let n=this.N.zoom_mode==="independent";for(let o=0;o<t.length;o++)if(this.getZoomControllerForFacet(o)?.updateLayout(t[o].layout),!n)return}setZoomBaseDomain(t,n,o,i){this.b&&this.b.setBaseDomain(t,n,o,i);for(let r of this.Jt)r&&r.setBaseDomain(t,n,o,i)}getZoomConfig(){return{}}setColumnSlots(t){this.B=t}setViewPivots(t,n){this.A=t,this.P=n}setColumnTypes(t){this.Pe=t,this.di()}resetExpandedDomain(){}setGroupByTypes(t){this.pt=t}setColumnsConfig(t){this.Lo=t??{},this.di()}di(){this.To=new Map;for(let[t,n]of Object.entries(this.Lo)){let o=this.Pe[t]??this.pt[t],i=this.Ui(o,n);i&&this.To.set(t,i)}}Ui(t,n){if(!(!t||!n)){if(t==="integer"||t==="float"){let o=n.number_format;if(!o)return;let i=Fi(t,o);return r=>i.format(r)}if(t==="datetime"){let o=n.date_format;if(!o)return;let i=Si(o);return r=>i.format(r)}if(t==="date"){let o=n.date_format;if(!o)return;let i=jr(o);return r=>i.format(r)}}}getColumnFormatter(t,n="value"){if(t){let r=this.To.get(Di(t));if(r)return r}if(n==="tick")return;let o=t?Di(t):void 0,i=o?this.Pe[o]??this.pt[o]:void 0;return i==="date"||i==="datetime"?fu:mu}setDefaultChartType(t){this.Gn=t}setFacetConfig(t){this.N={...t}}setPluginConfig(t){this.h={...t},this.N={...this.N,facet_mode:t.facet_mode,zoom_mode:t.facet_zoom_mode},this.Nn=t.series_zoom_mode==="dynamic"}T(){return this.Qt||(this.Qt=rs(this.ci)),this.Qt}invalidateTheme(){this.Qt=null}setView(t){this.Le&&this.Le.dispose(),this.Le=new Zn(t);let n=this.L.isPinned;this.L.dismiss(),n&&this.emitUnselect()}tooltipCallbacks(){return{onHover:()=>{},onLeave:()=>{}}}attachTooltip(t){this.L.attach(this.tooltipCallbacks()),this.L.setHost(t),this.wo=t}async buildClickDetail(t){let n={};if(t.rowIdx!=null&&t.rowIdx>=0&&this.Le)try{let i=await this.Le.fetchRow(t.rowIdx);n=Object.fromEntries(i)}catch{n={}}let o=[];for(let i=0;i<this.A.length;i++){let r=t.groupByValues[i];r!=null&&r!==""&&o.push([this.A[i],"==",r])}for(let i=0;i<this.P.length;i++){let r=t.splitByValues[i];r!=null&&r!==""&&o.push([this.P[i],"==",r])}return{row:n,column_names:[t.columnName],config:{filter:o}}}emitUserClick(t){let n={row:t.row,column_names:t.column_names,config:t.config};this.wo?.emitUserClick?.(n)}emitUserSelect(t){let n={selected:t.selected,row:t.row,column_names:t.column_names,insertConfig:t.insertConfig};this.wo?.emitUserSelect?.(n)}emitClickAndSelect(t){let n=this.kn.then(async()=>{let o=await this.buildClickDetail(t);this.emitUserClick(o),this.emitUserSelect({selected:!0,row:o.row,column_names:o.column_names,insertConfig:o.config})});return this.kn=n.catch(o=>{console.error("emitClickAndSelect failed",o)}),n}emitUnselect(t={}){let n=this.kn.then(()=>{this.emitUserSelect({selected:!1,row:t.row??{},column_names:t.column_names??[],insertConfig:{filter:[]}})});this.kn=n.catch(o=>{console.error("emitUnselect failed",o)})}requestRender(t){return as(t,()=>this.Ft(t))}destroy(){this.L.detach(),this.L.dismiss(),this.Le&&(this.Le.dispose(),this.Le=null),this.destroyInternal()}}});var eo,cs=E(()=>{"use strict";eo=class{constructor(t,n,o,i,r){c(this,"Ze",new Map);c(this,"ce");c(this,"Ce");c(this,"St");c(this,"pi");this.ce=t,this.Ce=o,this.St=r,this.pi=Math.max(1,Math.ceil((n-t)/r))}bi(t,n){return n*this.pi+t}insert(t,n,o){let i=Math.floor((n-this.ce)/this.St),r=Math.floor((o-this.Ce)/this.St),s=this.bi(i,r),a=this.Ze.get(s);a||(a=[],this.Ze.set(s,a)),a.push(t)}query(t,n,o,i,r,s,a){let l=Math.ceil(o/i/this.St),u=Math.ceil(o/r/this.St),m=Math.floor((t-this.ce)/this.St),f=Math.floor((n-this.Ce)/this.St),b=-1,p=o*o;for(let d=f-u;d<=f+u;d++)for(let g=m-l;g<=m+l;g++){let h=this.Ze.get(this.bi(g,d));if(h)for(let y of h){let x=(s[y]-t)*i,C=(a[y]-n)*r,_=x*x+C*C;_<p&&(p=_,b=y)}}return b}}});var to,ds=E(()=>{"use strict";cs();to=class{constructor(){c(this,"en",null);c(this,"tn",!0)}markDirty(){this.tn=!0}get isDirty(){return this.tn}rebuild(t,n,o){if(n===0){this.en=null,this.tn=!1;return}let i=t.xMax-t.xMin||1,r=t.yMax-t.yMin||1,a=(i+r)/2/Math.max(1,Math.sqrt(n)),l=new eo(t.xMin,t.xMax,t.yMin,t.yMax,a);o((u,m,f)=>l.insert(u,m,f)),this.en=l,this.tn=!1}query(t,n,o,i,r,s,a){return!this.en||!s||!a?-1:this.en.query(t,n,o,i,r,s,a)}clear(){this.en=null,this.tn=!0}}});function Ve(e,t,n=[]){let o=new Map;for(let r of e.keys()){if(r.startsWith("__"))continue;let s=r.lastIndexOf("|");if(s===-1)continue;let a=r.substring(0,s);o.has(a)||o.set(a,new Set),o.get(a).add(r)}let i=[];for(let[r,s]of o){let a=new Map,l=!0;for(let u of t){if(!u)continue;let m=`${r}|${u}`,f=e.get(m);if(!s.has(m)||!f?.values){l=!1;break}a.set(u,m)}if(l){for(let u of n){if(!u)continue;let m=`${r}|${u}`;s.has(m)&&e.get(m)?.values&&a.set(u,m)}i.push({prefix:r,colNames:a})}}return i}var Ht=E(()=>{"use strict"});var no,ps=E(()=>{"use strict";no=class{constructor(t){c(this,"data");c(this,"dictionary",[]);c(this,"dictMap",new Map);this.data=new Int32Array(t),this.data.fill(-1)}set(t,n){let o=this.dictMap.get(n);return o===void 0&&(o=this.dictionary.length,this.dictionary.push(n),this.dictMap.set(n,o)),this.data[t]=o,o}get(t){let n=this.data[t];return n<0?null:this.dictionary[n]}}});function bs(e,t,n,o){let i;if(!e)i="(null)";else{let s=e.valid;if(!(s?!!(s[t>>3]>>(t&7)&1):!0))i="(null)";else if(e.indices&&e.dictionary)i=e.dictionary[e.indices[t]]??"(null)";else if(e.values){let l=e.values[t];i=l==null?"(null)":String(l)}else i="(null)"}let r=o.get(i);return r===void 0&&(r=n.length,n.push(i),o.set(i,r)),r}function cu(e,t,n,o,i,r){let s=t?[t,n]:[n],a=[];return o&&a.push(o),i&&a.push(i),r&&a.push(r),Ve(e,s,a).map(l=>({prefix:l.prefix,xColName:t?l.colNames.get(t):"",yColName:l.colNames.get(n),colorColName:o?`${l.prefix}|${o}`:"",sizeColName:i?`${l.prefix}|${i}`:"",labelColName:r?`${l.prefix}|${r}`:""}))}function gs(e,t,n,o){e.glyph.ensureProgram(e,t);let i=e.s,r=e.j;e.h.domain_mode==="expand"?(e.ce=e.nn,e.qe=e.on,e.Ce=e.rn,e.Ke=e.sn,e.c=e.Un,e.f=e.On,e.Je=e.Vn,e.Qe=e.Hn):(e.ce=1/0,e.qe=-1/0,e.Ce=1/0,e.Ke=-1/0,e.c=1/0,e.f=-1/0,e.Je=1/0,e.Qe=-1/0,e.nn=1/0,e.on=-1/0,e.rn=1/0,e.sn=-1/0,e.Un=1/0,e.On=-1/0,e.Vn=1/0,e.Hn=-1/0),e.R=NaN,e.M=NaN,e.bt=0,e.zt.clear(),e.Ro=0;let a=e.B,l=a[0]||"",u=a[1]||"",m=a[2]||"",f=a[3]||"",b=a[4]||"";e.Ee=l,e.Te=u,e.gi=!l,e.we=!!l&&e.Pe[l]==="string",e.de=!!u&&e.Pe[u]==="string",e.Xt=[],e.$t=[],e.yi=new Map,e.xi=new Map,e.et=null,e.tt=null,e.we&&(e.R=0,e.ce=0,e.qe=0,e.nn=1/0,e.on=-1/0),e.de&&(e.M=0,e.Ce=0,e.Ke=0,e.rn=1/0,e.sn=-1/0);let p=t.C.totalCapacity||o;if(e.P.length>0){if(e._=cu(n,l,u,m,f,b),e._.length===0){e.w=0,e.U=[];return}if(e.Ye=e._[0].xColName,e.We=e._[0].yColName,e.s=m,e.K=f,e.Yn=b,e.j=!1,m){let h=n.get(e._[0].colorColName);e.j=h?.type==="string"}t.ensureBufferCapacity(p*e._.length)}else if(e._=[],e.Ye=l,e.We=u,e.s=m,e.K=f,e.Yn=b,e.j=!1,e.s){let h=n.get(e.s);e.j=h?.type==="string"}(e.s!==i||e.j!==r)&&(e.u=new Map);let d=Math.max(1,e._.length);e.w=p,e.U=new Array(d).fill(0);let g=d*p;e.O=new Float32Array(g),e.V=new Float32Array(g),e.gt=new Float32Array(g),e.Dt=new Int32Array(g),e.Bt=b?new no(g):null}function hs(e,t,n,o,i,r){if(!e.We)return;let s=i;if(s===0||e.w===0)return;let a=e._.length>0,l=[];if(a)for(let d of e._){let g=d.xColName?n.get(d.xColName):null,h=n.get(d.yColName);if(!h||!e.de&&!h.values)continue;let y=d.sizeColName?n.get(d.sizeColName):null,x=d.colorColName?n.get(d.colorColName)??null:null,C=d.labelColName?n.get(d.labelColName)??null:null;l.push({xCol:g?.values??null,yCol:h.values??null,xColData:g??null,yColData:h,xValid:g?.valid,yValid:h.valid,colorCol:x,sizeCol:y?.values??null,labelCol:C})}else{let d=e.Ye?n.get(e.Ye):null,g=e.We?n.get(e.We):null;if(!g||!e.de&&!g.values)return;let h=e.s?n.get(e.s)??null:null,y=e.Yn?n.get(e.Yn)??null:null;l.push({xCol:d?.values??null,yCol:g.values??null,xColData:d??null,yColData:g,xValid:d?.valid,yValid:g?.valid,colorCol:h,sizeCol:null,labelCol:y})}if(l.length===0)return;e.Ci<s&&(e.Mo=new Float32Array(s*2),e.Fo=new Float32Array(s),e.So=new Float32Array(s),e.Ci=s);let u=e.Mo,m=e.Fo,f=e.So,b=!a&&e.K?n.get(e.K)?.values??null:null;if(e.j&&e.s){for(let d of l){let g=d.colorCol?.dictionary;if(g)for(let h=0;h<g.length;h++){let y=g[h];e.u.has(y)||e.u.set(y,e.u.size)}}e.u.size>0&&(e.c=0,e.f=e.u.size-1)}!e.s&&e._.length>1&&(e.c=0,e.f=e._.length-1);for(let d=0;d<l.length;d++){let g=l[d],h=e.U[d]??0,y=d*e.w,x=e.w-h;if(x<=0)continue;let C=g.colorCol?.valid,_=0;for(let w=0;w<s&&_<x;w++){let L=w;if(!e.de&&g.yValid&&!(g.yValid[L>>3]>>(L&7)&1)||!e.we&&g.xCol&&g.xValid&&!(g.xValid[L>>3]>>(L&7)&1))continue;let T=C!==void 0&&!(C[L>>3]>>(L&7)&1),F;if(e.de)F=bs(g.yColData,L,e.$t,e.xi);else if(g.yCol){if(F=g.yCol[L],isNaN(F))continue}else continue;let W;if(e.we)W=bs(g.xColData,L,e.Xt,e.yi);else if(g.xCol){if(W=g.xCol[L],isNaN(W))continue}else W=o+L;let[P,B]=e.projectPoint(W,F);if(isNaN(P)||isNaN(B))continue;P<e.ce&&(e.ce=P),P>e.qe&&(e.qe=P),B<e.Ce&&(e.Ce=B),B>e.Ke&&(e.Ke=B),isNaN(e.R)&&(e.R=P),isNaN(e.M)&&(e.M=B);let k=P-e.R,N=B-e.M,O=y+h+_;e.O[O]=k,e.V[O]=N,e.Dt[O]=o+L,u[_*2]=k,u[_*2+1]=N;let U=g.colorCol;if(T)m[_]=.5,e.gt[O]=.5;else if(U&&!e.j&&U.values){let S=U.values[L];m[_]=S,e.gt[O]=S,S<e.c&&(e.c=S),S>e.f&&(e.f=S)}else if(U&&e.j&&U.indices&&U.dictionary){let S=U.dictionary[U.indices[L]];e.u.has(S)||(e.u.set(S,e.u.size),e.f=e.u.size-1);let X=e.u.get(S);m[_]=X,e.gt[O]=X}else m[_]=d,e.gt[O]=d;if(e.Bt&&g.labelCol){let S=g.labelCol,X=S.valid;!(X!==void 0&&!(X[L>>3]>>(L&7)&1))&&S.indices&&S.dictionary&&e.Bt.set(O,S.dictionary[S.indices[L]])}if(g.sizeCol){let S=g.sizeCol[L];f[_]=S,S<e.Je&&(e.Je=S),S>e.Qe&&(e.Qe=S)}else if(b){let S=b[L];f[_]=S,S<e.Je&&(e.Je=S),S>e.Qe&&(e.Qe=S)}else f[_]=0;_++}if(_===0)continue;let v=(y+h)*2*Float32Array.BYTES_PER_ELEMENT;t.C.upload("a_position",u.subarray(0,_*2),v,2);let A=(y+h)*Float32Array.BYTES_PER_ELEMENT;t.C.upload("a_color_value",m.subarray(0,_),A),t.C.upload("a_size_value",f.subarray(0,_),A),e.U[d]=h+_,e.U[d]>e.Ro&&(e.Ro=e.U[d])}let p=0;for(let d of e.U)p+=d;e.bt=p,t.uploadedCount=p,e.zt.markDirty(),isFinite(e.ce)&&e.setZoomBaseDomain(e.ce,e.qe,e.Ce,e.Ke)}var ys=E(()=>{"use strict";Ht();ps()});function oo(e,t,n,o,i){let r=e.getContext("2d");r&&(r.save(),r.setTransform(1,0,0,1,0,0),r.scale(i,i),r.font=`11px ${o.fontFamily}`,r.fillStyle=o.xe,r.textAlign="center",r.textBaseline="middle",r.fillText(t,n.x+n.width/2,n.y+n.height/2),r.restore())}var Ei=E(()=>{"use strict"});var ee,He=E(()=>{"use strict";ee=class{constructor(t,n,o){c(this,"margins");c(this,"t");c(this,"cssWidth");c(this,"cssHeight");c(this,"Z",0);c(this,"ie",1);c(this,"J",0);c(this,"re",1);this.cssWidth=t,this.cssHeight=n;let r=(o.leftExtra??55)+(o.hasYLabel?16:0),a=(o.bottomExtra??24)+(o.hasXLabel?18:0),l=0,u=o.rightExtra??(o.hasLegend?80:16),m=o.originX??0,f=o.originY??0,b=o.cellWidth??t,p=o.cellHeight??n,d=m+r,g=f+l,h=Math.max(1,b-r-u),y=Math.max(1,p-l-a),x=t-(d+h),C=n-(g+y);this.margins={top:g,right:x,bottom:C,left:d},this.t={x:d,y:g,width:h,height:y}}buildProjectionMatrix(t,n,o,i,r,s,a=.02,l=0,u=0){let m=n-t,f=i-o;m===0&&(m=1),f===0&&(f=1);let b=m*a,p=f*a,d=s&&r==="y"&&o>=0,g=s&&r==="y"&&i<=0,h=s&&r==="x"&&t>=0,y=s&&r==="x"&&n<=0;t-=b,n+=b,o-=p,i+=p,d?(o=0,i+=p):g&&(i=0,o-=p),h?(t=0,n+=b):y&&(n=0,t-=b),this.Z=t,this.ie=n,this.J=o,this.re=i;let x=2*this.margins.left/this.cssWidth-1,C=1-2*this.margins.right/this.cssWidth,_=2*this.margins.bottom/this.cssHeight-1,v=1-2*this.margins.top/this.cssHeight,A=(C-x)/(n-t),w=(v-_)/(i-o),L=x-A*(t-l),T=_-w*(o-u);return new Float32Array([A,0,0,0,0,w,0,0,0,0,-1,0,L,T,0,1])}E(t,n){let{x:o,y:i,width:r,height:s}=this.t,a=(t-this.Z)/(this.ie-this.Z),l=(n-this.J)/(this.re-this.J);return{px:o+a*r,py:i+(1-l)*s}}}});function xs(e){return e.cells.filter(t=>t.isBottomEdge).map(t=>t.layout)}function Cs(e){return e.cells.filter(t=>t.isLeftEdge).map(t=>t.layout)}function xu(e,t,n,o){if(e<=1)return{cols:1,rows:1};let i=1,r=e,s=1/0,a=e;for(let l=1;l<=e;l++){let u=Math.ceil(e/l),m=Math.max(1,(t-(l-1)*o)/l),f=Math.max(1,(n-(u-1)*o)/u),b=m/f,p=Math.max(b,1/b),d=l*u;(p<s||p===s&&d<a)&&(i=l,r=u,s=p,a=d)}return{cols:i,rows:r}}function Ye(e,t){let n=e.length,{cssWidth:o,cssHeight:i}=t;if(n<=0||o<=0||i<=0)return{cells:[]};let r=t.titleBand??hu,s=t.hasLegend?yu:0,a=t.xAxis??"cell",l=t.yAxis??"cell",u=a==="none"&&l==="none",m=l==="outer"?du+(t.hasYLabel?bu:0):0,f=a==="outer"?pu+(t.hasXLabel?gu:0):0,b=0,p=s,d=m,g=b,h=Math.max(1,o-m-p),y=Math.max(1,i-b-f),x=Math.max(0,t.gap??0),{cols:C,rows:_}=xu(n,h,y,x),v=Math.max(0,C-1)*x,A=Math.max(0,_-1)*x,w=Math.max(1,(h-v)/C),L=Math.max(1,(y-A)/_),T=[];for(let B=0;B<n;B++){let k=Math.floor(B/C),N=B-k*C,O=k===_-1||B+C>=n,U=N===0,S=d+N*(w+x),X=g+k*(L+x),H=X+r,z=S,te=w,xe=Math.max(1,L-r),Ce=new ee(o,i,{hasXLabel:a==="cell"&&t.hasXLabel===!0,hasYLabel:l==="cell"&&t.hasYLabel===!0,hasLegend:!1,leftExtra:l==="cell"?void 0:0,bottomExtra:a==="cell"?void 0:0,rightExtra:u?0:void 0,originX:z,originY:H,cellWidth:te,cellHeight:xe}),_e=r>0?{x:z,y:X,width:te,height:r}:void 0;T.push({index:B,label:e[B],layout:Ce,titleRect:_e,isLeftEdge:U,isBottomEdge:O})}let F=t.hasLegend?{x:d+h,y:b,width:s,height:y}:void 0,W=a==="outer"?{x:d,y:g+y,width:h,height:f}:void 0;return{cells:T,legendRect:F,outerXAxisRect:W,outerYAxisRect:l==="outer"?{x:0,y:g,width:m,height:y}:void 0}}var du,pu,bu,gu,hu,yu,Yt=E(()=>{"use strict";He();du=55,pu=24,bu=16,gu=18,hu=18,yu=96});function Cu(e,t){if(t<=0)return[];let n=new Array(t);for(let o=0;o<t;o++){let i=t===1?.5:o/(t-1),r=Ae(e,i);n[o]=[r[0],r[1],r[2]]}return n}function fe(e,t,n){if(e.length>0){if(e.length>=n)return e.slice(0,n);let o=new Array(n);for(let i=0;i<n;i++)o[i]=e[i%e.length];return o}return Cu(t,n)}var zt=E(()=>{"use strict";Ie()});function Xt(e){e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA)}function $t(e,t,n,o){e.enable(e.SCISSOR_TEST),e.scissor(Math.round(t.margins.left*n),Math.round(t.margins.bottom*n),Math.round(t.t.width*n),Math.round(t.t.height*n));try{o()}finally{e.disable(e.SCISSOR_TEST)}}function ze(e,t,n,o){Xt(e),$t(e,t,n,o)}var jt=E(()=>{"use strict"});function Zt(e,t,n){let o=e.gl,i;if(t?.texture){if(i=t.texture,t.lastStops===n)return t}else i=o.createTexture();let r=os(n,_s);return o.bindTexture(o.TEXTURE_2D,i),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,_s,1,0,o.RGBA,o.UNSIGNED_BYTE,r),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),{texture:i,lastStops:n}}function Pe(e,t,n,o=0){let i=e.gl;i.activeTexture(i.TEXTURE0+o),i.bindTexture(i.TEXTURE_2D,t),i.uniform1i(n,o)}var _s,xt=E(()=>{"use strict";Ie();_s=256});function de(e,t,n){e.width=Math.round(t.cssWidth*n),e.height=Math.round(t.cssHeight*n);let o=e.getContext("2d");return o?(o.scale(n,n),o.clearRect(0,0,t.cssWidth,t.cssHeight),o):null}function le(e,t){let n=e.getContext("2d");return n?(n.setTransform(t,0,0,t,0,0),n):null}var Ct=E(()=>{"use strict"});function io(e,t,n,o,i,r,s){let a=i==="bottom"?1:-1;e.textAlign="center",e.textBaseline=i==="bottom"?"top":"bottom";let l=a*8;for(let u of n){let m=r(u);m<t.x-1||m>t.x+t.width+1||(e.beginPath(),e.moveTo(m,o),e.lineTo(m,o+a*5),e.stroke(),e.fillText(s(u),m,o+l))}}function ro(e,t,n,o,i,r,s){let a=i==="left"?-1:1;e.textAlign=i==="left"?"right":"left",e.textBaseline="middle";let l=a*8;for(let u of n){let m=r(u);m<t.y-1||m>t.y+t.height+1||(e.beginPath(),e.moveTo(o,m),e.lineTo(o+a*5,m),e.stroke(),e.fillText(s(u),o+l,m))}}function so(e,t,n,o){for(let i of n){let r=Math.round(o(i))+.5;r<t.x||r>t.x+t.width||(e.beginPath(),e.moveTo(r,t.y),e.lineTo(r,t.y+t.height),e.stroke())}}function ao(e,t,n,o){for(let i of n){let r=Math.round(o(i))+.5;r<t.y||r>t.y+t.height||(e.beginPath(),e.moveTo(t.x,r),e.lineTo(t.x+t.width,r),e.stroke())}}var Wi=E(()=>{"use strict"});function _t(e,t,n){let{t:o}=n,i=Math.max(2,Math.floor(o.width/90)),r=Math.max(2,Math.floor(o.height/60));return{xTicks:se(e.min,e.max,i),yTicks:se(t.min,t.max,r)}}function Gi(e,t,n,o,i,r){let s=le(e,r);if(!s)return;let{t:a}=t;s.strokeStyle=i.Pn,s.lineWidth=1,so(s,a,n,l=>t.E(l,0).px),ao(s,a,o,l=>t.E(0,l).py)}function vs(e,t,n){if(n)return n;let o=t.length>1?t[1]-t[0]:0;return e.isDate?i=>he(i,o):ae}function As(e,t,n,o,i,r,s,a,l){let{Mt:u,xe:m,_o:f,fontFamily:b}=s,p=vs(t,n,l);e.strokeStyle=f,e.lineWidth=1,e.beginPath(),e.moveTo(r.x,i),e.lineTo(r.x+r.width,i),e.stroke(),e.fillStyle=u,e.strokeStyle=u,e.font=`11px ${b}`;for(let d of o)io(e,d.t,n,i,"bottom",g=>d.E(g,0).px,p);a&&t.label&&(e.fillStyle=m,e.font=`13px ${b}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(t.label,a.cx,a.baselineY))}function Ls(e,t,n,o,i,r,s,a,l){let{Mt:u,xe:m,_o:f,fontFamily:b}=s,p=vs(t,n,l);e.strokeStyle=f,e.lineWidth=1,e.beginPath(),e.moveTo(i,r.y),e.lineTo(i,r.y+r.height),e.stroke(),e.fillStyle=u,e.strokeStyle=u,e.font=`11px ${b}`;for(let d of o)ro(e,d.t,n,i,"left",g=>d.E(0,g).py,p);a&&t.label&&(e.fillStyle=m,e.font=`13px ${b}`,e.save(),e.translate(14,a.pivotY),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="bottom",e.fillText(t.label,0,0),e.restore())}function ki(e,t,n,o,i,r,s,a){let l=le(e,s);if(!l)return;let{t:u}=n;As(l,t,o,[n],u.y+u.height,u,i,r?{cx:u.x+u.width/2,baselineY:n.cssHeight-2}:null,a)}function Ni(e,t,n,o,i,r,s,a){let l=le(e,s);if(!l)return;let{t:u}=n;Ls(l,t,o,[n],u.x,u,i,r?{pivotY:u.y+u.height/2}:null,a)}function Ts(e,t,n,o,i,r,s,a,l){let u=le(e,a);u&&As(u,n,o,i,t.y,t,r,s?{cx:t.x+t.width/2,baselineY:t.y+t.height-2}:null,l)}function ws(e,t,n,o,i,r,s,a,l){let u=le(e,a);u&&Ls(u,n,o,i,t.x+t.width,t,r,s?{pivotY:t.y+t.height/2}:null,l)}var Rs=E(()=>{"use strict";ve();Ct();Wi()});function Ui(e,t,n,o,i){if(i===0)return{x:e-n/2,y:t,width:n,height:o};if(i===90)return{x:e-o/2,y:t,width:o,height:n};let r=(n+o)/Math.SQRT2;return{x:e-r,y:t,width:r,height:r}}function Oi(e,t){return e.x<=t.x+t.width&&t.x<=e.x+e.width&&e.y<=t.y+t.height&&t.y<=e.y+e.height}function Ms(e,t){return e.x+e.width+14>t.x+t.width}function Vi(e,t){return e.x>=t.x&&e.x+e.width<=t.x+t.width&&e.y>=t.y&&e.y+e.height<=t.y+t.height}function st(e,t,n){if(n<=0)return"";if(e.measureText(t).width<=n)return t;let o=0,i=t.length;for(;o<i;){let r=o+i+1>>1,s=t.slice(0,r)+"\\u2026";e.measureText(s).width<=n?o=r:i=r-1}return o===0?"":t.slice(0,o)+"\\u2026"}function Fs(e,t,n,o){if(o<=0||n<=0)return[];if(e.measureText(t).width<=n)return[t];let i=[],r=t;for(;r.length>0&&i.length<o;){let s=i.length===o-1,a=r.length;for(;a>0&&e.measureText(r.slice(0,a)).width>n;)a--;if(a===0&&(a=1),a===r.length){i.push(r);break}let l=a,u=r.lastIndexOf(" ",a);if(u>0&&(l=u),s){i.push(st(e,r,n));break}i.push(r.slice(0,l)),r=r.slice(l).trimStart()}return i.length===1&&i[0].length<=2?[]:i}var lo=E(()=>{"use strict"});function uo(e,t,n,o){let i=[];if(o<=n)return i;let r=n,s=e[n];for(let a=n+1;a<o;a++){let l=e[a];l!==s&&(i.push({startIdx:r,endIdx:a-1,label:t[s]??""}),r=a,s=l)}return i.push({startIdx:r,endIdx:o-1,label:t[s]??""}),i}function qt(e,t,n){if(n<t)return[];let o=[];for(let i of e){if(i.endIdx<t||i.startIdx>n)continue;let r=i.startIdx<t?t:i.startIdx,s=i.endIdx>n?n:i.endIdx;r===i.startIdx&&s===i.endIdx?o.push(i):o.push({startIdx:r,endIdx:s,label:i.label})}return o}var Kt=E(()=>{"use strict"});function Hi(e,t){return e.E(t,0).px}function Yi(e,t){return e.E(0,t).py}function wu(e,t,n){let o=Math.max(0,n-100);return e*16>o?{size:t*6.62+10,rotation:90}:e*(t*6+10)>o?{size:t*4+20,rotation:45}:{size:_u,rotation:0}}function Ss(e,t){let n=e.levels.length,o=[];for(let i=0;i<n;i++){let r=e.levels[i];i===n-1?o.push(wu(e.numRows,r.maxLabelChars,t)):o.push({size:vu,rotation:0})}return o}function Ds(e){let t=e.levels.length,n=[],o=6.2;for(let i=0;i<t;i++)if(i===t-1){let r=e.levels[i].maxLabelChars;n.push(Math.max(Au,r*o+Tu))}else n.push(Lu);return n}function Bs(e){let t=0;for(let n of e)t+=n;return t}function Ee(e,t){return e.numRows===0||e.levels.length===0?24:Bs(Ss(e,t).map(n=>n.size))}function At(e){return e.numRows===0||e.levels.length===0?55:Bs(Ds(e))}function Ru(e,t,n,o){let i=t-e+1;if(i<=0)return[];let r=Math.max(1,Math.floor(n/o));if(i<=r){let l=[];for(let u=e;u<=t;u++)l.push(u);return l}let s=Math.ceil(i/r),a=[];for(let l=e;l<=t;l+=s)a.push(l);return a}function Is(e,t){return e.labels[t]??""}function Ps(e,t,n,o){let i=o?Math.min(t,n):t,r=o?Math.max(t,n):n,s=Math.max(0,Math.ceil(i)),a=Math.min(e-1,Math.floor(r));return a<s?null:[s,a]}function Es(e,t,n,o){let i=[];for(let r of e){let s=t(r.startIdx-.5),a=t(r.endIdx+.5),l=Math.max(n,Math.min(s,a)),u=Math.min(o,Math.max(s,a));u>l&&i.push({run:r,nearEdge:s,farEdge:a,nearClip:l,farClip:u})}return i}function Te(e,t,n,o){if(n.numRows===0||n.levels.length===0)return;let{Mt:i,xe:r,fontFamily:s}=o,{t:a}=t,l=a.y+a.height;e.strokeStyle=i,e.fillStyle=i,e.lineWidth=1,e.font=`${vt}px ${s}`;let u=Ss(n,a.width),m=Ps(n.numRows,t.Z,t.ie,!1);if(!m)return;let[f,b]=m,p=n.levels.length,d=l;for(let h=p-1;h>=0;h--){let y=n.levels[h],x=u[h],C=d;d+=x.size,h===p-1?Mu(e,t,y,f,b,C,x,s,i):Fu(e,t,y,f,b,C,s,i)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=r,e.font=`13px ${s}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(g,a.x+a.width/2,t.cssHeight-2))}function Mu(e,t,n,o,i,r,s,a,l){let{t:u}=t,f=Math.max(40,Math.min(n.maxLabelChars*6.2+8,u.width/2)),b=s.rotation===0?Ru(o,i,u.width,f):Su(o,i);e.strokeStyle=l,e.fillStyle=l,e.beginPath();for(let h of b){let y=Hi(t,h);y<u.x-1||y>u.x+u.width+1||(e.moveTo(y,r),e.lineTo(y,r+mo))}e.stroke(),e.font=`${vt}px ${a}`;let p=r+mo+3,d={x:u.x,width:u.width,y:r,height:9999},g=[];for(let h of b){let y=Hi(t,h);if(y<u.x-1||y>u.x+u.width+1)continue;let x=Is(n,h);if(!x)continue;let C=e.measureText(x).width,_=Ui(y,p,C,zi,s.rotation);if(Vi(_,d)){if(s.rotation===0){if(g.some(v=>Oi(v,_)))continue}else if(g.some(v=>Ms(v,_)))continue;g.push(_),Ws(e,x,y,p,s.rotation,"center")}}}function Fu(e,t,n,o,i,r,s,a){let{t:l}=t,u=qt(n.runs,o,i);if(u.length===0)return;let m=Es(u,d=>Hi(t,d),l.x,l.x+l.width);if(m.length===0)return;e.strokeStyle=a,e.fillStyle=a,e.beginPath();for(let d of m)e.moveTo(d.nearClip,r+3),e.lineTo(d.farClip,r+3),e.moveTo(d.nearEdge,r),e.lineTo(d.nearEdge,r+3),e.moveTo(d.farEdge,r),e.lineTo(d.farEdge,r+3);e.stroke(),e.font=`${vt}px ${s}`;let f=r+3+4,b=[],p={x:l.x,width:l.width,y:r,height:9999};for(let d of m){let g=(d.nearClip+d.farClip)/2,h=d.run.label;if(!h)continue;let y=d.farClip-d.nearClip-4,x=st(e,h,y);if(!x)continue;let C=e.measureText(x).width,_=Ui(g,f,C,zi,0);Vi(_,p)&&(b.some(v=>Oi(v,_))||(b.push(_),Ws(e,x,g,f,0,"center")))}}function Su(e,t){let n=[];for(let o=e;o<=t;o++)n.push(o);return n}function at(e,t,n,o){if(n.numRows===0||n.levels.length===0)return;let{Mt:i,xe:r,fontFamily:s}=o,{t:a}=t,l=a.x;e.strokeStyle=i,e.fillStyle=i,e.lineWidth=1,e.font=`${vt}px ${s}`;let u=Ds(n),m=Ps(n.numRows,t.J,t.re,!0);if(!m)return;let[f,b]=m,p=n.levels.length,d=l;for(let h=p-1;h>=0;h--){let y=n.levels[h],x=u[h],C=d;d-=x,h===p-1?Du(e,t,y,f,b,C,s,i):Bu(e,t,y,f,b,C,x,s,i)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=r,e.font=`13px ${s}`,e.save(),e.translate(14,a.y+a.height/2),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="bottom",e.fillText(g,0,0),e.restore())}function Du(e,t,n,o,i,r,s,a){let{t:l}=t,u=zi+4,m=i-o+1,f=Math.max(1,Math.floor(l.height/u)),b=m<=f?1:Math.ceil(m/f);e.strokeStyle=a,e.fillStyle=a,e.beginPath();for(let p=o;p<=i;p+=b){let d=Yi(t,p);d<l.y-1||d>l.y+l.height+1||(e.moveTo(r-mo,d),e.lineTo(r,d))}e.stroke(),e.font=`${vt}px ${s}`,e.textAlign="right",e.textBaseline="middle";for(let p=o;p<=i;p+=b){let d=Yi(t,p);if(d<l.y-1||d>l.y+l.height+1)continue;let g=Is(n,p);g&&e.fillText(g,r-mo-3,d)}}function Bu(e,t,n,o,i,r,s,a,l){let{t:u}=t,m=qt(n.runs,o,i);if(m.length===0)return;let f=Es(m,p=>Yi(t,p),u.y,u.y+u.height);if(f.length===0)return;e.strokeStyle=l,e.fillStyle=l;let b=r-3;e.beginPath();for(let p of f)e.moveTo(b,p.nearClip),e.lineTo(b,p.farClip),e.moveTo(b,p.nearEdge),e.lineTo(r,p.nearEdge),e.moveTo(b,p.farEdge),e.lineTo(r,p.farEdge);e.stroke(),e.font=`${vt}px ${a}`,e.textAlign="right",e.textBaseline="middle";for(let p of f){let d=(p.nearClip+p.farClip)/2,g=p.run.label;if(!g)continue;let h=s-6,y=st(e,g,h);y&&e.fillText(y,b-3,d)}}function Ws(e,t,n,o,i,r){if(i===0){e.textAlign=r==="end"?"right":"center",e.textBaseline="top",e.fillText(t,n,o);return}e.save(),e.translate(n,o),e.rotate(-i*Math.PI/180),e.textAlign="right",e.textBaseline="middle",e.fillText(t,-2,0),e.restore()}var _u,vu,mo,vt,zi,Au,Lu,Tu,Lt=E(()=>{"use strict";lo();Kt();_u=25,vu=22,mo=5,vt=11,zi=14,Au=55,Lu=60,Tu=10});function Iu(e){return`rgb(${Math.round(e[0]*255)},${Math.round(e[1]*255)},${Math.round(e[2]*255)})`}function Tt(e,t,n,o,i,r){let s={x:t.t.x+t.t.width+12,y:t.margins.top+20,width:Math.max(1,t.cssWidth-t.t.x-t.t.width-12),height:Math.max(1,t.t.height)};Jt(e,s,n,o,i,r)}function Jt(e,t,n,o,i,r=ae){let s=e.getContext("2d");if(!s)return;let a=i.vo,l=i.Ni,u=i.fontFamily,m=16,f=Math.min(120,t.height*.4),b=t.x,p=t.y;s.fillStyle=a,s.font=`9px ${u}`,s.textAlign="left",s.textBaseline="bottom",s.fillText(n.label,b,p-4);let d=n.max,g=n.min,h=s.createLinearGradient(0,p,0,p+f),y=16;for(let C=0;C<=y;C++){let _=C/y,v=d+_*(g-d),A=rt(v,n.min,n.max),w=Ae(o,A);h.addColorStop(_,Iu(w))}s.fillStyle=h,s.fillRect(b,p,m,f),s.strokeStyle=l,s.lineWidth=1,s.strokeRect(b,p,m,f),s.fillStyle=a,s.font=`10px ${u}`,s.textAlign="left",s.textBaseline="middle";let x=b+m+5;if(s.fillText(r(n.max),x,p+2),s.fillText(r((n.min+n.max)/2),x,p+f/2),s.fillText(r(n.min),x,p+f-2),n.min<0&&n.max>0){let C=(n.max-0)/(n.max-n.min),_=p+C*f;s.strokeStyle=a,s.lineWidth=1,s.beginPath(),s.moveTo(b+m,_),s.lineTo(b+m+4,_),s.stroke(),s.fillStyle=a,s.fillText("0",x,_)}}function fo(e,t,n,o,i){let r={x:t.t.x+t.t.width+12,y:t.margins.top+10,width:Math.max(1,t.cssWidth-t.t.x-t.t.width-12),height:Math.max(1,t.t.height)};Qt(e,r,n,o,i)}function Qt(e,t,n,o,i){let r=e.getContext("2d");if(!r||n.size===0)return;let s=i.vo,a=i.fontFamily,l=10,u=18,m=t.x,f=t.y+u/2;r.font=`11px ${a}`,r.textAlign="left",r.textBaseline="middle";for(let[b,p]of n){if(f+l/2>t.y+t.height)break;let d=o[p]??o[p%o.length]??[0,0,0];r.fillStyle=`rgb(${Math.round(d[0]*255)},${Math.round(d[1]*255)},${Math.round(d[2]*255)})`,r.fillRect(m,f-l/2,l,l),r.fillStyle=s,r.fillText(b,m+l+6,f),f+=u}}var co=E(()=>{"use strict";ve();Ie()});function Xe(e){return isNaN(e)?0:e}function Gs(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0)return;let s=e._.length>0,a=e.N.facet_mode,l=s&&a==="grid";e.computeEffectiveFacetFlags();let u=e.s!==""&&e.c<e.f,m=l&&e.N.zoom_mode==="independent",f;if(e.b&&!m?f=e.b.getVisibleDomain():f={xMin:e.ce,xMax:e.qe,yMin:e.Ce,yMax:e.Ke},!isFinite(f.xMin)||!isFinite(f.yMin))return;let b=e.T(),p=b.Ie,d=e.Pe[e.Ee]||"",g=e.Pe[e.Te]||"",h=d==="date"||d==="datetime",y=g==="date"||g==="datetime",x=e.j,C=!x&&!e.s,_=b.H;if(x||C){let v=C?Math.max(1,e._.length):Math.max(1,e.u.size);if(e.zn&&e.Do===p&&e.Bo===v)_=e.zn;else{let A=fe(p,b.H,v);_=ns(A),e.zn=_,e.Do=p,e.Bo=v}}else e.zn=null,e.Do=null,e.Bo=-1;e.Q=Zt(t,e.Q,_),l?Wu(e,t,f,b,{xIsDate:h,yIsDate:y,cssWidth:i,cssHeight:r}):(e.v=null,Eu(e,t,f,b,{xIsDate:h,yIsDate:y,cssWidth:i,cssHeight:r,hasColorCol:u})),$e(e)}function po(e,t,n,o){return{min:t,max:n,label:e.Ee||(e.gi?"Row":e.Ye||""),isDate:o}}function bo(e,t,n,o){return{min:t,max:n,label:e.Te||e.We,isDate:o}}function go(e,t){let n=0;for(let i of e)i.length>n&&(n=i.length);return{levels:[{labels:e.slice(),runs:[],maxLabelChars:n}],numRows:e.length,levelLabels:[t]}}function Pu(e,t,n,o,i,r,s,a,l){if(e.we&&e.et){let u=le(t,l);u&&Te(u,n,e.et,a)}else ki(t,o,n,r,a,!0,l,e.getColumnFormatter(e.Ye,"tick"));if(e.de&&e.tt){let u=le(t,l);u&&at(u,n,e.tt,a)}else Ni(t,i,n,s,a,!0,l,e.getColumnFormatter(e.We,"tick"))}function Eu(e,t,n,o,i){let r=t.gl,{cssWidth:s,cssHeight:a,xIsDate:l,yIsDate:u,hasColorCol:m}=i;e.et=e.we&&e.Xt.length>0?go(e.Xt,e.Ee||e.Ye||""):null,e.tt=e.de&&e.$t.length>0?go(e.$t,e.Te||e.We||""):null;let f=m?80:16,b=55+(e.Te?16:0),p=Math.max(1,s-b-f),d=e.tt?At(e.tt):void 0,g=e.et?Ee(e.et,p):void 0,h=new ee(s,a,{hasXLabel:!!e.Ee,hasYLabel:!!e.Te,hasLegend:m,leftExtra:d,bottomExtra:g});e.a=h,e.b&&e.b.updateLayout(h);let y=h.buildProjectionMatrix(n.xMin,n.xMax,n.yMin,n.yMax,void 0,void 0,void 0,Xe(e.R),Xe(e.M)),x=po(e,n.xMin,n.xMax,l),C=bo(e,n.yMin,n.yMax,u),_=_t(x,C,h),v=e.we?[]:_.xTicks,A=e.de?[]:_.yTicks,w=e.an==="map";if(e.D&&!w){let L=t.dpr;de(e.D,h,L),Gi(e.D,h,v,A,o,L)}else e.D&&w&&de(e.D,h,t.dpr);ze(r,h,t.dpr,()=>{w&&e.renderBackground(t,h,y,n,Xe(e.R),Xe(e.M)),e.glyph.draw(e,t,y)}),e.Re=x,e.Me=C,e.Xn=v,e.Ge=A,e.$n=o.H,e.jn=m}function Wu(e,t,n,o,i){let r=t.gl,{cssWidth:s,cssHeight:a,xIsDate:l,yIsDate:u}=i;e.et=e.we&&e.Xt.length>0?go(e.Xt,e.Ee||e.Ye||""):null,e.tt=e.de&&e.$t.length>0?go(e.$t,e.Te||e.We||""):null;let m=e._.map(A=>A.prefix),f=e.j&&e.u.size>1,b=!!e.s&&!e.j&&e.c<e.f,p=f||b,d=Ye(m,{cssWidth:s,cssHeight:a,xAxis:e.En?"outer":"cell",yAxis:e.Wn?"outer":"cell",hasLegend:p,hasXLabel:!!e.Ee,hasYLabel:!!e.Te,gap:e.N.facet_padding});if(e.v=d,d.cells.length>1){let A=d.cells[0].layout.t;for(let w=1;w<d.cells.length;w++){let L=d.cells[w].layout.t;if(L.width!==A.width||L.height!==A.height){console.warn(`facet-grid: cell ${w} size (${L.width}\\xD7${L.height}) differs from cell 0 (${A.width}\\xD7${A.height})`);break}}}e.a=d.cells[0]?.layout??null,e.syncFacetZoomLayouts(d.cells);let g=e.N.zoom_mode==="independent",h=po(e,n.xMin,n.xMax,l),y=bo(e,n.yMin,n.yMax,u),x=d.cells[0]?.layout,C=x?_t(h,y,x):{xTicks:[],yTicks:[]},_=e.we?[]:C.xTicks,v=e.de?[]:C.yTicks;e.D&&x&&de(e.D,x,t.dpr),Xt(r);for(let A=0;A<d.cells.length;A++){let w=d.cells[A],L=e.getZoomControllerForFacet(A),T=g&&L?L.getVisibleDomain():n,F=w.layout.buildProjectionMatrix(T.xMin,T.xMax,T.yMin,T.yMax,void 0,void 0,void 0,Xe(e.R),Xe(e.M)),W=e.an==="map";if(e.D&&!W){let P=g?_t(po(e,T.xMin,T.xMax,l),bo(e,T.yMin,T.yMax,u),w.layout).xTicks:_,B=g?_t(po(e,T.xMin,T.xMax,l),bo(e,T.yMin,T.yMax,u),w.layout).yTicks:v;Gi(e.D,w.layout,P,B,o,t.dpr)}$t(r,w.layout,t.dpr,()=>{W&&e.renderBackground(t,w.layout,F,T,Xe(e.R),Xe(e.M)),e.glyph.drawSeries(e,t,F,A)})}e.Re=h,e.Me=y,e.Xn=_,e.Ge=v,e.$n=o.H,e.jn=p}function $e(e){!e.d||!e.a||!e.Re||!e.Me||!e.e||(de(e.d,e.a,e.e.dpr),e.v?ku(e):Gu(e))}function Gu(e){let t=e.a,n=e.T(),o=e.e?.dpr??1;if(e.an==="map"?e.renderMapChrome(e.d,t,n,o):Pu(e,e.d,t,e.Re,e.Me,e.Xn,e.Ge,n,o),e.jn){let r=e.$n??n.H;if(e.j&&e.u.size>0){let s=fe(n.Ie,r,e.u.size);fo(e.d,t,e.u,s,n)}else e.s&&Tt(e.d,t,{min:e.c,max:e.f,label:e.s},r,n,e.getColumnFormatter(e.s,"value"))}ks(e,e.d,t,0,1),e.se>=0&&e.O&&e.V&&Ou(e,e.d,t)}function ku(e){let t=e.v,n=e.d,o=e.T(),i=e.e?.dpr??1,r=e.Xn,s=e.Ge,a=e.Re,l=e.Me,u=e.an==="map",m=e.En&&!e.we,f=e.Wn&&!e.de,b=e.N.zoom_mode==="independent";u&&e.renderMapChrome(n,e.a,o,i),!u&&m&&t.outerXAxisRect&&Ts(n,t.outerXAxisRect,a,r,xs(t),o,!!e.Ee,i,e.getColumnFormatter(e.Ye,"tick")),!u&&f&&t.outerYAxisRect&&ws(n,t.outerYAxisRect,l,s,Cs(t),o,!!e.Te,i,e.getColumnFormatter(e.We,"tick"));for(let p=0;p<t.cells.length;p++){let d=t.cells[p],g=b?e.getZoomControllerForFacet(p):null,h=g?g.getVisibleDomain():null,y=h?{...a,min:h.xMin,max:h.xMax}:a,x=h?{...l,min:h.yMin,max:h.yMax}:l,C=b?_t(y,x,d.layout):{xTicks:r,yTicks:s};if(!u&&!m)if(e.we&&e.et){let _=le(n,i);_&&Te(_,d.layout,e.et,o)}else ki(n,y,d.layout,C.xTicks,o,!!e.Ee,i,e.getColumnFormatter(e.Ye,"tick"));if(!u&&!f)if(e.de&&e.tt){let _=le(n,i);_&&at(_,d.layout,e.tt,o)}else Ni(n,x,d.layout,C.yTicks,o,!!e.Te,i,e.getColumnFormatter(e.We,"tick"));d.titleRect&&oo(n,d.label,d.titleRect,o,i),ks(e,n,d.layout,p,p+1)}if(e.jn&&t.legendRect){let p=e.$n??o.H;if(e.j&&e.u.size>0){let d=fe(o.Ie,p,Math.max(1,e.u.size));Qt(n,t.legendRect,e.u,d,o)}else e.s&&Jt(n,{x:t.legendRect.x,y:t.legendRect.y+20,width:t.legendRect.width,height:t.legendRect.height-20},{min:e.c,max:e.f,label:e.s},p,o,e.getColumnFormatter(e.s,"value"))}if(e.se>=0&&e.O&&e.V){let p=isNaN(e.R)?0:e.R,d=isNaN(e.M)?0:e.M,g=e.O[e.se]+p,h=e.V[e.se]+d,y=Nu(e,e.se),x=e.glyph.tooltipOptions(),C=e.W.lines??[];for(let _=0;_<t.cells.length;_++){let v=t.cells[_],A=_===y,w=v.layout.E(g,h),L=v.layout.t;if(w.px<L.x||w.px>L.x+L.width||w.py<L.y||w.py>L.y+L.height)continue;let T=e.N.coordinated_tooltip;Be(n,w,A||T?C:[],v.layout,o,i,{crosshair:x.crosshair,highlightRadius:A?x.highlightRadius:0})}}}function Nu(e,t){return e.w<=0?0:Math.floor(t/e.w)}function ks(e,t,n,o,i){if(!e.Bt||!e.O||!e.V)return;let r=e.Bt.dictionary,s=e.Bt.data,a=e.O,l=e.V,u=isNaN(e.R)?0:e.R,m=isNaN(e.M)?0:e.M,f=e.w;if(f<=0)return;let b=0;for(let x=o;x<i;x++)b+=e.U[x]??0;if(b===0)return;let p=e.e?.dpr??1,d=le(t,p);if(!d)return;let g=e.T(),h=n.t,y=Math.max(1,Math.ceil(b/Uu));d.save(),d.font=`11px ${g.fontFamily}`,d.fillStyle=g.xe,d.textAlign="left",d.textBaseline="middle";for(let x=o;x<i;x++){let C=e.U[x]??0,_=x*f;for(let v=0;v<C;v+=y){let A=_+v,w=s[A];if(w<0)continue;let{px:L,py:T}=n.E(a[A]+u,l[A]+m);L<h.x||L>h.x+h.width||T<h.y||T>h.y+h.height||d.fillText(r[w],L+8,T-4)}}d.restore()}function Ou(e,t,n){let o=e.se;if(o<0||!e.O||!e.V)return;let i=isNaN(e.R)?0:e.R,r=isNaN(e.M)?0:e.M,s=n.E(e.O[o]+i,e.V[o]+r),a=e.W.lines??[],l=e.T();Be(t,s,a,n,l,e.e?.dpr??1,e.glyph.tooltipOptions())}var Uu,Xi=E(()=>{"use strict";Ei();He();Yt();zt();Ie();jt();xt();yt();Rs();Ct();Lt();co();Uu=5e3});function Vu(e){if(!e.zt.isDirty||!e.O||!e.V)return;let t=e.O,n=e.V,o=Math.max(1,e._.length),i=e.w,r=isNaN(e.R)?0:e.R,s=isNaN(e.M)?0:e.M;e.zt.rebuild({xMin:e.ce-r,xMax:e.qe-r,yMin:e.Ce-s,yMax:e.Ke-s},e.bt,a=>{for(let l=0;l<o;l++){let u=e.U[l]??0,m=l*i;for(let f=0;f<u;f++)a(m+f,t[m+f],n[m+f])}})}function $i(e,t,n){if(!e.O||!e.V)return;let{layout:o,facetIdx:i}=Hu(e,t,n);if(!o){Ns(e);return}let r=o.t;if(t<r.x||t>r.x+r.width||n<r.y||n>r.y+r.height){Ns(e);return}let s=o.Z,a=o.ie,l=o.J,u=o.re,m=s+(t-r.x)/r.width*(a-s),f=u-(n-r.y)/r.height*(u-l),b=r.width/(a-s),p=r.height/(u-l),d=isNaN(e.R)?0:e.R,g=isNaN(e.M)?0:e.M,h=m-d,y=f-g,x=i<0?Yu(e,h,y,b,p):zu(e,i,h,y,b,p);if(x!==e.se||i!==e.ln){if(e.se=x,e.ln=i,x>=0){let C=e.W.beginHover(x);e.glyph.buildTooltipLines(e,x).then(_=>{e.W.commitHover(C,_)&&$e(e)})}else e.W.clearHover();$e(e)}}function Ns(e){(e.se!==-1||e.ln!==-1)&&(e.se=-1,e.ln=-1,$e(e))}function Hu(e,t,n){if(e.v){let o=e.v.cells;for(let i=0;i<o.length;i++){let r=o[i].layout.t;if(t>=r.x&&t<=r.x+r.width&&n>=r.y&&n<=r.y+r.height)return{layout:o[i].layout,facetIdx:i}}return{layout:null,facetIdx:-1}}return{layout:e.a,facetIdx:-1}}function Yu(e,t,n,o,i){Vu(e);let r=e.zt.query(t,n,en,o,i,e.O,e.V);if(r>=0)return r;let s=en*en,a=Math.max(1,e._.length),l=e.w,u=e.O,m=e.V;for(let f=0;f<a;f++){let b=e.U[f]??0,p=f*l;for(let d=0;d<b;d++){let g=p+d,h=(u[g]-t)*o,y=(m[g]-n)*i,x=h*h+y*y;x<s&&(s=x,r=g)}}return r}function zu(e,t,n,o,i,r){let s=e.U[t]??0;if(s===0)return-1;let a=e.w,l=t*a,u=e.O,m=e.V,f=en*en,b=-1;for(let p=0;p<s;p++){let d=l+p,g=(u[d]-n)*i,h=(m[d]-o)*r,y=g*g+h*h;y<f&&(f=y,b=d)}return b}function Us(e,t){if(e.L.dismiss(),e.Io=t,t<0||!e.O||!e.V)return;let n=Xu(e,t);if(!n)return;let o=isNaN(e.R)?0:e.R,i=isNaN(e.M)?0:e.M,r=n.E(e.O[t]+o,e.V[t]+i),s=e.W.beginPin();e.glyph.buildTooltipLines(e,t).then(a=>{e.W.isPinFresh(s)&&e.Io===t&&a.length!==0&&e.L.pin(a,r,n)}),e.se=-1,e.ln=-1,$e(e)}function Xu(e,t){if(e.v&&e.w>0){let n=Math.floor(t/e.w),o=e.v.cells[n];if(o)return o.layout}return e.a}function Os(e){e.L.dismiss(),e.Io=-1}var en,Vs=E(()=>{"use strict";Xi();en=24});var wt,ji=E(()=>{"use strict";wt=class{constructor(){c(this,"lines",null);c(this,"hoveredTarget",null);c(this,"Po",0);c(this,"Eo",0)}beginHover(t){return this.lines=null,this.hoveredTarget=t,++this.Po}commitHover(t,n){return t!==this.Po?!1:(this.lines=n,!0)}clearHover(){this.lines=null,this.hoveredTarget=null,this.Po++}beginPin(){return++this.Eo}isPinFresh(t){return t===this.Eo}invalidatePin(){this.Eo++}}});function j(e,t,n,o,i,r){let s=e.shaders.getOrCreate(t,n,o),a=e.gl,l={program:s};for(let u of i)l[u]=a.getUniformLocation(s,u);for(let u of r)l[u]=a.getAttribLocation(s,u);return l}var ue=E(()=>{"use strict"});async function ho(e,t){let n=[];if(!e.Dt||!e.Le)return n;let o=e.Dt[t];if(o<0)return n;if(e._.length>0&&e.w>0){let s=Math.floor(t/e.w),a=e._[s];a?.prefix&&n.push(a.prefix)}let i=await e.Le.fetchRow(o),r=e._.length>0&&e.w>0?e._[Math.floor(t/e.w)]?.prefix??null:null;for(let[s,a]of i){if(a==null)continue;let l=s;if(r!==null){let u=`${r}|`;if(!s.startsWith(u))continue;l=s.substring(u.length)}else if(s.includes("|"))continue;if(typeof a=="number"){let u=e.getColumnFormatter(s,"value")(a);n.push(`${l}: ${u}`)}else n.push(`${l}: ${a}`)}return n}var Zi=E(()=>{"use strict"});function $u(e,t,n,o,i){t.uniformMatrix4fv(e.u_projection,!1,n),t.uniform1f(e.u_point_size,o.h.point_size_px*i),o.c<o.f?t.uniform2f(e.u_color_range,o.c,o.f):t.uniform2f(e.u_color_range,0,0),o.Je<o.Qe?t.uniform2f(e.u_size_range,o.Je,o.Qe):t.uniform2f(e.u_size_range,0,0);let r=Math.min(o.h.point_size_px,3);t.uniform2f(e.u_point_size_range,Math.max(2*i,o.h.point_size_px/r*i),o.h.point_size_px*r*i)}function Hs(e,t,n,o){let i=n.gl;if(!t.Q)return!1;i.useProgram(e.program),$u(e,i,o,t,n.dpr),Pe(n,t.Q.texture,e.u_gradient_lut,0);let r=n.C.peek("a_position"),s=n.C.peek("a_color_value"),a=n.C.peek("a_size_value");return!r||!s||!a?!1:(i.bindBuffer(i.ARRAY_BUFFER,r.buffer),i.enableVertexAttribArray(e.a_position),i.vertexAttribPointer(e.a_position,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,s.buffer),i.enableVertexAttribArray(e.a_color_value),i.vertexAttribPointer(e.a_color_value,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,a.buffer),i.enableVertexAttribArray(e.a_size_value),i.vertexAttribPointer(e.a_size_value,1,i.FLOAT,!1,0,0),!0)}var Rt,qi=E(()=>{"use strict";xt();ue();Zi();xi();Ci();Rt=class{constructor(){c(this,"name","point");c(this,"m",null)}ensureProgram(t,n){this.m||(this.m=j(n,"scatter",wn,Rn,["u_projection","u_point_size","u_color_range","u_gradient_lut","u_size_range","u_point_size_range"],["a_position","a_color_value","a_size_value"]))}draw(t,n,o){let i=this.m;if(!i||!Hs(i,t,n,o))return;let r=n.gl,s=Math.max(1,t._.length),a=t.w;for(let l=0;l<s;l++){let u=t.U[l]??0;u<=0||r.drawArrays(r.POINTS,l*a,u)}}drawSeries(t,n,o,i){let r=this.m;if(!r||!Hs(r,t,n,o))return;let s=t.U[i]??0;if(s<=0)return;let a=n.gl,l=t.w;a.drawArrays(a.POINTS,i*l,s)}buildTooltipLines(t,n){return ho(t,n)}tooltipOptions(){return{crosshair:!0,highlightRadius:6}}destroy(t){this.m=null}}});function q(e){let t=e.gl;if(e.isWebGL2){let o=t;return{setDivisor(i,r){i<0||o.vertexAttribDivisor(i,r)},drawArraysInstanced(i,r,s,a){o.drawArraysInstanced(i,r,s,a)}}}let n=t.getExtension("ANGLE_instanced_arrays");return{setDivisor(o,i){o<0||n?.vertexAttribDivisorANGLE(o,i)},drawArraysInstanced(o,i,r,s){n?.drawArraysInstancedANGLE(o,i,r,s)}}}function je(e){let t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,1,2,3]),e.STATIC_DRAW),t}function yo(e){let t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW),t}function Ze(e,t,n,o,i){if(n<0)return!0;let r=e.C.peek(o);if(!r)return!1;let s=e.gl;return s.bindBuffer(s.ARRAY_BUFFER,r.buffer),s.enableVertexAttribArray(n),s.vertexAttribPointer(n,i,s.FLOAT,!1,0,0),t.setDivisor(n,1),!0}var we=E(()=>{"use strict"});function Ys(e,t,n,o){let i=n.gl;if(!t.Q)return!1;let r=n.dpr;i.useProgram(e.program),i.uniformMatrix4fv(e.u_projection,!1,o),i.uniform2f(e.u_resolution,i.canvas.width,i.canvas.height),i.uniform1f(e.u_line_width,t.h.line_width_px*r),t.c<t.f?i.uniform2f(e.u_color_range,t.c,t.f):i.uniform2f(e.u_color_range,0,0),Pe(n,t.Q.texture,e.u_gradient_lut,0);let s=q(n),{setDivisor:a}=s;return i.bindBuffer(i.ARRAY_BUFFER,e.cornerBuffer),i.enableVertexAttribArray(e.a_corner),i.vertexAttribPointer(e.a_corner,1,i.FLOAT,!1,0,0),a(e.a_corner,0),i.enableVertexAttribArray(e.a_start),a(e.a_start,1),i.enableVertexAttribArray(e.a_end),a(e.a_end,1),i.enableVertexAttribArray(e.a_color_start),a(e.a_color_start,1),i.enableVertexAttribArray(e.a_color_end),a(e.a_color_end,1),!0}function zs(e,t,n,o){let i=t.U[o]??0;if(i<2)return;let r=n.gl,s=t.w,a=2*Float32Array.BYTES_PER_ELEMENT,l=Float32Array.BYTES_PER_ELEMENT,u=n.C.peek("a_position"),m=n.C.peek("a_color_value");if(!u||!m)return;let f=o*s*a;r.bindBuffer(r.ARRAY_BUFFER,u.buffer),r.vertexAttribPointer(e.a_start,2,r.FLOAT,!1,a,f),r.vertexAttribPointer(e.a_end,2,r.FLOAT,!1,a,f+a);let b=o*s*l;r.bindBuffer(r.ARRAY_BUFFER,m.buffer),r.vertexAttribPointer(e.a_color_start,1,r.FLOAT,!1,l,b),r.vertexAttribPointer(e.a_color_end,1,r.FLOAT,!1,l,b+l),q(n).drawArraysInstanced(r.TRIANGLE_STRIP,0,4,i-1)}function Xs(e,t){let{setDivisor:n}=q(t);n(e.a_start,0),n(e.a_end,0),n(e.a_color_start,0),n(e.a_color_end,0)}var Mt,Ki=E(()=>{"use strict";xt();we();ue();ve();hi();yi();Mt=class{constructor(){c(this,"name","line");c(this,"m",null)}ensureProgram(t,n){if(this.m)return;let o=j(n,"line",Ln,Tn,["u_projection","u_resolution","u_line_width","u_color_range","u_gradient_lut"],["a_start","a_end","a_color_start","a_color_end","a_corner"]);this.m={...o,cornerBuffer:je(n.gl)}}draw(t,n,o){let i=this.m;if(!i||!Ys(i,t,n,o))return;let s=Math.max(1,t._.length);for(let a=0;a<s;a++)zs(i,t,n,a);Xs(i,n)}drawSeries(t,n,o,i){let r=this.m;r&&Ys(r,t,n,o)&&(zs(r,t,n,i),Xs(r,n))}async buildTooltipLines(t,n){let o=[];if(!t.O||!t.V)return o;if(t._.length>0&&t.w>0){let b=Math.floor(n/t.w),p=t._[b];p&&o.push(p.prefix)}let i=t.O[n],r=t.V[n],s=t.Pe[t.Ee]||"",l=s==="date"||s==="datetime"?he(i):ae(i);o.push(`${t.Ee||"Row"}: ${l}`);let u=t.Pe[t.Te]||"",f=u==="date"||u==="datetime"?he(r):ae(r);return o.push(`${t.Te}: ${f}`),o}tooltipOptions(){return{crosshair:!0,highlightRadius:5}}destroy(t){let n=this.m;n?.cornerBuffer&&t.e&&t.e.gl.deleteBuffer(n.cornerBuffer),this.m=null}}});function Ju(e){switch(e){case"density":return ju;case"extreme":return qu;case"signed":return Ku;case"mean":default:return Zu}}function $s(e){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}function Ji(e,t,n,o){return j(e,t,n,o,["u_projection","u_radius_ndc","u_intensity","u_color_range"],["a_corner","a_position","a_color_value"])}function Qu(e){let t=e.gl;if(e.isWebGL2){let n=t;if(n.getExtension("EXT_color_buffer_float"))return{internalFormat:n.RGBA16F,format:n.RGBA,type:n.HALF_FLOAT,isFloat:!0}}return{internalFormat:t.RGBA,format:t.RGBA,type:t.UNSIGNED_BYTE,isFloat:!1}}function js(e){let t=e.C.peek("a_position"),n=e.C.peek("a_color_value");return!!t&&!!n}function tm(e,t){if(!e.s||e.j)return t.robustBounds=null,null;let n=t.robustBounds;if(n&&n.dataCount===e.bt&&n.colorName===e.s&&n.colorIsString===e.j)return{lo:n.lo,hi:n.hi};let o=nm(e);return o?(t.robustBounds={lo:o.lo,hi:o.hi,dataCount:e.bt,colorName:e.s,colorIsString:e.j},o):(t.robustBounds=null,null)}function nm(e){if(!e.gt||e.bt<2)return null;let t=e.w,n=Math.max(1,e._.length),o=Math.max(1,Math.ceil(e.bt/em)),i=[],r=e.gt;for(let m=0;m<n;m++){let f=e.U[m]??0,b=m*t;for(let p=0;p<f;p+=o){let d=r[b+p];Number.isFinite(d)&&i.push(d)}}if(i.length<2)return null;i.sort((m,f)=>m-f);let s=Math.floor(i.length*.05),a=Math.min(i.length-1,Math.ceil(i.length*.95)),l=i[s],u=i[a];return u>l?{lo:l,hi:u}:e.f>e.c?{lo:e.c,hi:e.f}:null}var ju,Zu,qu,Ku,Ft,em,Qi=E(()=>{"use strict";xt();we();ue();Zi();_i();vi();Ai();Nr();Or();Li();Ti();ju=0,Zu=1,qu=2,Ku=3,Ft=class{constructor(){c(this,"name","density");c(this,"m",null)}ensureProgram(t,n){if(this.m){this.ensureHeatTarget(t,n);return}let o=n.gl,i=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,i),o.bufferData(o.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),o.STATIC_DRAW);let r=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,r),o.bufferData(o.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),o.STATIC_DRAW);let{internalFormat:s,format:a,type:l,isFloat:u}=Qu(n),m=$s(o),f=o.createFramebuffer();this.m={splat:Ji(n,"density-splat",gt,Un),extremeSplat:null,mrtSplat:null,resolve:j(n,"density-resolve",Vn,Hn,["u_heat","u_extreme","u_gradient_lut","u_heat_max","u_color_mode"],["a_corner"]),quadCornerBuffer:i,tripleCornerBuffer:r,heatTexture:m,heatFramebuffer:f,extremeTexture:null,extremeFramebuffer:null,mrtFramebuffer:null,heatWidth:0,heatHeight:0,heatType:l,heatInternalFormat:s,heatFormat:a,floatFbo:u,indexedBlend:null,signedDowngradeWarned:!1,robustBounds:null},this.ensureHeatTarget(t,n)}draw(t,n,o){let i=this.m;if(!i||!js(n))return;let r=Math.max(1,t._.length),s=t.w,a=0;for(let l=0;l<r;l++)a+=t.U[l]??0;a!==0&&this.runSplatAndResolve(t,n,i,o,l=>{for(let u=0;u<r;u++){let m=t.U[u]??0;m<=0||l(u*s,m)}})}drawSeries(t,n,o,i){let r=this.m;if(!r||!js(n))return;let s=t.U[i]??0;if(s<=0)return;let a=t.w;this.runSplatAndResolve(t,n,r,o,l=>l(i*a,s))}buildTooltipLines(t,n){return ho(t,n)}tooltipOptions(){return{crosshair:!0,highlightRadius:0}}destroy(t){let n=this.m;if(!n||!t.e){this.m=null;return}let o=t.e.gl;o.deleteBuffer(n.quadCornerBuffer),o.deleteBuffer(n.tripleCornerBuffer),o.deleteTexture(n.heatTexture),o.deleteFramebuffer(n.heatFramebuffer),n.extremeTexture&&o.deleteTexture(n.extremeTexture),n.extremeFramebuffer&&o.deleteFramebuffer(n.extremeFramebuffer),n.mrtFramebuffer&&o.deleteFramebuffer(n.mrtFramebuffer),this.m=null}ensureHeatTarget(t,n){let o=this.m;if(!o)return;let i=n.gl,r=i.canvas.width,s=i.canvas.height;if(!(r===o.heatWidth&&s===o.heatHeight)&&!(r<=0||s<=0)){if(this.allocAccumTexture(i,o,o.heatTexture,r,s),i.bindFramebuffer(i.FRAMEBUFFER,o.heatFramebuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.heatTexture,0),o.extremeTexture&&(this.allocAccumTexture(i,o,o.extremeTexture,r,s),o.extremeFramebuffer&&(i.bindFramebuffer(i.FRAMEBUFFER,o.extremeFramebuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.extremeTexture,0)),o.mrtFramebuffer)){let a=i;a.bindFramebuffer(a.FRAMEBUFFER,o.mrtFramebuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.heatTexture,0),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT1,a.TEXTURE_2D,o.extremeTexture,0)}i.bindFramebuffer(i.FRAMEBUFFER,null),o.heatWidth=r,o.heatHeight=s}}allocAccumTexture(t,n,o,i,r){t.bindTexture(t.TEXTURE_2D,o),t.texImage2D(t.TEXTURE_2D,0,n.heatInternalFormat,i,r,0,n.heatFormat,n.heatType,null)}ensureExtremeTarget(t,n){let o=t.gl;if(n.extremeTexture)return;let i=$s(o);if(n.extremeTexture=i,n.extremeFramebuffer=o.createFramebuffer(),this.allocAccumTexture(o,n,i,n.heatWidth,n.heatHeight),o.bindFramebuffer(o.FRAMEBUFFER,n.extremeFramebuffer),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,i,0),n.indexedBlend===null){let r=t.isWebGL2?o.getExtension("OES_draw_buffers_indexed"):null;n.indexedBlend=r??!1}if(n.indexedBlend){let r=o;n.mrtFramebuffer=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,n.mrtFramebuffer),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n.heatTexture,0),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT1,r.TEXTURE_2D,i,0)}o.bindFramebuffer(o.FRAMEBUFFER,null)}ensureExtremeSplatProgram(t,n){return n.extremeSplat||(n.extremeSplat=Ji(t,"density-extreme",gt,On)),n.extremeSplat}ensureMrtSplatProgram(t,n){return n.mrtSplat||(n.mrtSplat=Ji(t,"density-mrt",Ur,Vr)),n.mrtSplat}activeMode(t,n,o){let i=n.h.gradient_color_mode;return i==="signed"&&!o.floatFbo?(this.warnDowngradeOnce(o,"signed mode requires a float framebuffer (EXT_color_buffer_float); falling back to mean."),"mean"):i==="extreme"&&!t.isWebGL2?(this.warnDowngradeOnce(o,"extreme mode requires WebGL2 (for MAX blend and a second color attachment); falling back to mean."),"mean"):i}warnDowngradeOnce(t,n){t.signedDowngradeWarned||(t.signedDowngradeWarned=!0,console.warn(`Density: ${n}`))}runSplatAndResolve(t,n,o,i,r){if(this.ensureHeatTarget(t,n),o.heatWidth===0||o.heatHeight===0||!t.Q)return;let s=this.activeMode(n,t,o),a=t.c<t.f&&(!!t.s||t._.length>1),l=0,u=0;if(s!=="density"&&a&&(l=t.c,u=t.f,!t.j&&(s==="mean"||s==="extreme"))){let f=tm(t,o);f&&(l=f.lo,u=f.hi)}s==="extreme"&&this.ensureExtremeTarget(n,o),s==="extreme"&&o.indexedBlend?this.runMrtExtremePass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r):(this.runHeatPass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r),s==="extreme"&&this.runExtremePass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r)),this.runResolvePass(n,o,t,s)}runHeatPass(t,n,o,i,r,s,a,l){let u=t.gl,m=!!u.getParameter(u.SCISSOR_TEST);u.bindFramebuffer(u.FRAMEBUFFER,n.heatFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),this.clearTarget(u,m),u.blendFunc(u.ONE,u.ONE),u.blendEquation(u.FUNC_ADD),this.bindSplatProgram(u,n.splat,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,n.splat,l),this.unbindSplatInstancing(t,n.splat)}runExtremePass(t,n,o,i,r,s,a,l){let u=t.gl,m=!!u.getParameter(u.SCISSOR_TEST),f=this.ensureExtremeSplatProgram(t,n);u.bindFramebuffer(u.FRAMEBUFFER,n.extremeFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),this.clearTarget(u,m),u.blendFunc(u.ONE,u.ONE);let b=u;b.blendEquation(b.MAX),this.bindSplatProgram(u,f,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,f,l),this.unbindSplatInstancing(t,f),u.blendEquation(u.FUNC_ADD)}runMrtExtremePass(t,n,o,i,r,s,a,l){let u=t.gl,m=n.indexedBlend,f=!!u.getParameter(u.SCISSOR_TEST),b=this.ensureMrtSplatProgram(t,n);u.bindFramebuffer(u.FRAMEBUFFER,n.mrtFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),u.drawBuffers([u.COLOR_ATTACHMENT0,u.COLOR_ATTACHMENT1]),this.clearTarget(u,f),m.enableiOES(u.BLEND,0),m.enableiOES(u.BLEND,1),m.blendEquationiOES(0,u.FUNC_ADD),m.blendFunciOES(0,u.ONE,u.ONE),m.blendEquationiOES(1,u.MAX),m.blendFunciOES(1,u.ONE,u.ONE),this.bindSplatProgram(u,b,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,b,l),this.unbindSplatInstancing(t,b),m.blendEquationiOES(0,u.FUNC_ADD),m.blendEquationiOES(1,u.FUNC_ADD),m.blendFunciOES(0,u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA),m.blendFunciOES(1,u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA),u.drawBuffers([u.COLOR_ATTACHMENT0])}clearTarget(t,n){n&&t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),n&&t.enable(t.SCISSOR_TEST)}bindSplatProgram(t,n,o,i,r,s,a,l,u){t.useProgram(n.program),t.uniformMatrix4fv(n.u_projection,!1,o),t.uniform1f(n.u_intensity,i);let m=2*r/Math.max(1,s),f=2*r/Math.max(1,a);t.uniform2f(n.u_radius_ndc,m,f),t.uniform2f(n.u_color_range,l,u)}bindAndDispatchInstanced(t,n,o,i){let r=t.gl;r.bindBuffer(r.ARRAY_BUFFER,n.quadCornerBuffer),r.enableVertexAttribArray(o.a_corner),r.vertexAttribPointer(o.a_corner,2,r.FLOAT,!1,0,0);let s=q(t);s.setDivisor(o.a_corner,0),s.setDivisor(o.a_position,1),s.setDivisor(o.a_color_value,1);let a=t.C.peek("a_position"),l=t.C.peek("a_color_value");i((u,m)=>{let f=2*Float32Array.BYTES_PER_ELEMENT,b=Float32Array.BYTES_PER_ELEMENT;r.bindBuffer(r.ARRAY_BUFFER,a.buffer),r.enableVertexAttribArray(o.a_position),r.vertexAttribPointer(o.a_position,2,r.FLOAT,!1,f,u*f),r.bindBuffer(r.ARRAY_BUFFER,l.buffer),r.enableVertexAttribArray(o.a_color_value),r.vertexAttribPointer(o.a_color_value,1,r.FLOAT,!1,b,u*b),s.drawArraysInstanced(r.TRIANGLE_STRIP,0,4,m)})}unbindSplatInstancing(t,n){let o=q(t);o.setDivisor(n.a_position,0),o.setDivisor(n.a_color_value,0)}runResolvePass(t,n,o,i){let r=t.gl;r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,r.canvas.width,r.canvas.height),r.blendEquation(r.FUNC_ADD),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA);let s=n.resolve;r.useProgram(s.program),r.uniform1f(s.u_heat_max,o.h.gradient_heat_max),r.uniform1i(s.u_color_mode,Ju(i)),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,n.heatTexture),r.uniform1i(s.u_heat,0),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,n.extremeTexture??n.heatTexture),r.uniform1i(s.u_extreme,1),Pe(t,o.Q.texture,s.u_gradient_lut,2),r.bindBuffer(r.ARRAY_BUFFER,n.tripleCornerBuffer),r.enableVertexAttribArray(s.a_corner),r.vertexAttribPointer(s.a_corner,2,r.FLOAT,!1,0,0),r.drawArrays(r.TRIANGLES,0,3)}};em=5e4});var lt,xo,Co,_o,er=E(()=>{"use strict";Vt();ds();ys();Xi();Vs();ji();qi();Ki();Qi();lt=class extends Le{constructor(n){super();c(this,"glyph");c(this,"an","cartesian");c(this,"Q",null);c(this,"Ye","");c(this,"We","");c(this,"Ee","");c(this,"Te","");c(this,"gi",!1);c(this,"s","");c(this,"K","");c(this,"Yn","");c(this,"j",!1);c(this,"we",!1);c(this,"de",!1);c(this,"Xt",[]);c(this,"$t",[]);c(this,"yi",new Map);c(this,"xi",new Map);c(this,"et",null);c(this,"tt",null);c(this,"_",[]);c(this,"ce",1/0);c(this,"qe",-1/0);c(this,"Ce",1/0);c(this,"Ke",-1/0);c(this,"R",NaN);c(this,"M",NaN);c(this,"c",1/0);c(this,"f",-1/0);c(this,"Je",1/0);c(this,"Qe",-1/0);c(this,"nn",1/0);c(this,"on",-1/0);c(this,"rn",1/0);c(this,"sn",-1/0);c(this,"Un",1/0);c(this,"On",-1/0);c(this,"Vn",1/0);c(this,"Hn",-1/0);c(this,"w",0);c(this,"U",[]);c(this,"Ro",0);c(this,"O",null);c(this,"V",null);c(this,"gt",null);c(this,"Dt",null);c(this,"Bt",null);c(this,"bt",0);c(this,"u",new Map);c(this,"W",new wt);c(this,"Mo",null);c(this,"Fo",null);c(this,"So",null);c(this,"Ci",0);c(this,"zt",new to);c(this,"a",null);c(this,"se",-1);c(this,"Io",-1);c(this,"ln",-1);c(this,"v",null);c(this,"Re",null);c(this,"Me",null);c(this,"Xn",null);c(this,"Ge",null);c(this,"$n",null);c(this,"jn",!1);c(this,"zn",null);c(this,"Do",null);c(this,"Bo",-1);this.glyph=n}projectPoint(n,o){return[n,o]}renderBackground(n,o,i,r,s,a){}renderMapChrome(n,o,i,r){}tooltipCallbacks(){return{onHover:(n,o)=>$i(this,n,o),onLeave:()=>{this.se!==-1&&(this.se=-1,$e(this))},onPin:(n,o)=>{if($i(this,n,o),this.se>=0){let i=this.se;Us(this,i),this.Oi(i)}},onUnpin:()=>{this.emitUnselect()}}}async Oi(n){if(!this.Dt)return;let o=this.Dt[n],i=this.B[1]||this.B[0]||"",r=[];if(this._.length>0&&this.w>0){let s=Math.floor(n/this.w),a=this._[s];a?.prefix&&this.P.length>0&&(r=a.prefix.split("|"))}await this.emitClickAndSelect({rowIdx:o!=null&&o>=0?o:null,columnName:i,groupByValues:[],splitByValues:r})}async uploadAndRender(n,o,i,r){let s=r-i;this.e=n,i===0&&gs(this,n,o,r),s!==0&&(hs(this,n,o,i,s,r),this.h.domain_mode==="expand"&&(this.we||(this.nn=this.ce,this.on=this.qe),this.de||(this.rn=this.Ce,this.sn=this.Ke),this.Un=this.c,this.On=this.f,this.Vn=this.Je,this.Hn=this.Qe),await this.requestRender(n))}resetExpandedDomain(){this.nn=1/0,this.on=-1/0,this.rn=1/0,this.sn=-1/0,this.Un=1/0,this.On=-1/0,this.Vn=1/0,this.Hn=-1/0}Ft(n){n.uploadedCount===0&&this.bt===0||(this.e=n,Gs(this,n))}destroyInternal(){this.glyph.destroy(this),this.Q=null,this.O=null,this.V=null,this.gt=null,this.Dt=null,this.Bt=null,this.W.clearHover(),this.u.clear(),this.zt.clear(),this.Mo=null,this.Fo=null,this.So=null,this._=[],this.U=[],Os(this)}},xo=class extends lt{constructor(){super(new Rt)}},Co=class extends lt{constructor(){super(new Mt)}},_o=class extends lt{constructor(){super(new Ft)}}});function sl(e,t){if(t>rl||t<-rl)return[NaN,NaN];let n=e*Math.PI*6378137/180,o=t*Math.PI/180,i=6378137*Math.log(Math.tan(Math.PI/4+o/2));return[n,i]}function al(e,t,n){let o=1<<e,i=2*ke/o,r=-ke+t*i,s=r+i,a=ke-n*i,l=a-i;return{xMin:r,yMin:l,xMax:s,yMax:a}}function ll(e,t=256,n=19){if(!isFinite(e)||e<=0)return 0;let o=Math.log2(2*ke/(t*e));return Math.max(0,Math.min(n,Math.floor(o)))}function ul(e,t){let n=1<<t,o=2*ke/n,i=Math.floor((e.xMin+ke)/o),r=Math.floor((e.xMax+ke)/o),s=Math.floor((ke-e.yMax)/o),a=Math.floor((ke-e.yMin)/o),l=[];for(let u=s;u<=a;u++)if(!(u<0||u>=n))for(let m=i;m<=r;m++)m<0||m>=n||l.push({z:t,x:m,y:u});return l}var ke,rl,Sr=E(()=>{"use strict";ke=Math.PI*6378137,rl=85.0511287798066});var mi,ml=E(()=>{"use strict";mi=class{constructor(t=256){c(this,"he",new Map);c(this,"Di");this.Di=t}get(t){let n=this.he.get(t);return n!==void 0&&(this.he.delete(t),this.he.set(t,n)),n}set(t,n,o){if(this.he.has(n)){let i=this.he.get(n);t.deleteTexture(i),this.he.delete(n)}for(this.he.set(n,o);this.he.size>this.Di;){let i=this.he.keys().next().value;if(i===void 0)break;let r=this.he.get(i);t.deleteTexture(r),this.he.delete(i)}}has(t){return this.he.has(t)}dispose(t){for(let n of this.he.values())t.deleteTexture(n);this.he.clear()}}});function Wt(e,t,n,o){return`${e}/${t}/${n}/${o}`}var fi,fl=E(()=>{"use strict";fi=class{constructor(){c(this,"ye",new Map);c(this,"Bi",()=>{})}setOnLoad(t){this.Bi=t}load(t,n,o,i){let r=Wt(t.id,n,o,i),s=this.ye.get(r);if(s)return s.promise;let a=new AbortController,l=t.urlFor(n,o,i),u=this.Yi(l,a.signal).then(m=>(this.ye.delete(r),m&&this.Bi(),m)).catch(()=>(this.ye.delete(r),null));return this.ye.set(r,{promise:u,abort:a}),u}cancelAll(){for(let t of this.ye.values())t.abort.abort();this.ye.clear()}cancelExcept(t){for(let[n,o]of this.ye)t.has(n)||(o.abort.abort(),this.ye.delete(n))}async Yi(t,n){let o=await fetch(t,{signal:n});if(!o.ok)return null;let i=await o.blob();return await createImageBitmap(i)}}});var ci,cl=E(()=>{"use strict";Sr();ml();fl();wi();Ri();ue();ci=class{constructor(){c(this,"o",null);c(this,"G",null);c(this,"m",new mi);c(this,"_n",new fi);c(this,"vn",null);c(this,"Ii",1);c(this,"Pi",()=>{})}setOnTileLoad(t){this.Pi=t,this._n.setOnLoad(t)}setSource(t,n){this.vn?.id!==n.id&&(this.m.dispose(t),this._n.cancelAll(),this.vn=n)}setAlpha(t){this.Ii=Math.max(0,Math.min(1,t))}get source(){return this.vn}render(t,n,o,i,r,s){let a=this.vn;if(!a)return;this.zi(t);let l=this.o,u=this.G;if(!l||!u)return;let m=t.gl,f=t.dpr,b=Math.max(1,n.t.width*f),p=i.xMax-i.xMin;if(!isFinite(p)||p<=0)return;let d=p/b,g=ll(d,a.tileSize,a.maxZoom),h=ul(i,g),y=new Set;for(let C of h)y.add(Wt(a.id,C.z,C.x,C.y));this._n.cancelExcept(y),m.useProgram(l.program),m.uniformMatrix4fv(l.u_projection,!1,o),m.uniform1f(l.u_alpha,this.Ii),m.bindBuffer(m.ARRAY_BUFFER,u),m.enableVertexAttribArray(l.a_corner),m.vertexAttribPointer(l.a_corner,2,m.FLOAT,!1,0,0),m.activeTexture(m.TEXTURE0),m.uniform1i(l.u_tile,0);let x=m.isEnabled(m.BLEND);m.enable(m.BLEND),m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);for(let C of h)this.Xi(m,l,a,C,r,s);x||m.disable(m.BLEND)}destroy(t){this._n.cancelAll(),this.m.dispose(t),this.G&&(t.deleteBuffer(this.G),this.G=null),this.o=null}Xi(t,n,o,i,r,s){let a=al(i.z,i.x,i.y),l={xMin:a.xMin-r,xMax:a.xMax-r,yMin:a.yMin-s,yMax:a.yMax-s},u=Wt(o.id,i.z,i.x,i.y),m=this.m.get(u);if(m){this.Ei(t,n,m,l,[0,0],[1,1]);return}this.$i(t,o,i);for(let f=1;f<=6;f++){let b=i.z-f;if(b<0)return;let p=i.x>>f,d=i.y>>f,g=Wt(o.id,b,p,d),h=this.m.get(g);if(!h)continue;let y=1<<f,x=i.x-p*y,C=i.y-d*y,_=1/y,v=[x*_,C*_],A=[v[0]+_,v[1]+_];this.Ei(t,n,h,l,v,A);return}}Ei(t,n,o,i,r,s){t.bindTexture(t.TEXTURE_2D,o),t.uniform2f(n.u_extent_min,i.xMin,i.yMin),t.uniform2f(n.u_extent_max,i.xMax,i.yMax),t.uniform2f(n.u_uv_min,r[0],r[1]),t.uniform2f(n.u_uv_max,s[0],s[1]),t.drawArrays(t.TRIANGLE_STRIP,0,4)}$i(t,n,o){let i=Wt(n.id,o.z,o.x,o.y);this.m.has(i)||this._n.load(n,o.z,o.x,o.y).then(r=>{if(!r)return;if(this.vn?.id!==n.id){r.close();return}let s=t.createTexture();if(!s){r.close();return}t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,s),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r),this.m.set(t,i,s),this.Pi()})}zi(t){if(this.o&&this.G)return;let n=t.gl;this.o=j(t,"map-tile",Yn,zn,["u_projection","u_extent_min","u_extent_max","u_uv_min","u_uv_max","u_tile","u_alpha"],["a_corner"]);let o=n.createBuffer();o&&(n.bindBuffer(n.ARRAY_BUFFER,o),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),n.STATIC_DRAW),this.G=o)}}});function cf(){return new hn("carto-positron","https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function df(){return new hn("carto-dark-matter","https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function pf(){return new hn("carto-voyager","https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function Dr(e){switch(e){case"carto-dark-matter":return df();case"carto-voyager":return pf();case"carto-positron":default:return cf()}}var hn,dl=E(()=>{"use strict";hn=class{constructor(t,n,o,i=256,r=19,s=[]){this.id=t;this.template=n;this.attribution=o;this.tileSize=i;this.maxZoom=r;this.subdomains=s}urlFor(t,n,o){let i=this.template.replace("{z}",String(t)).replace("{x}",String(n)).replace("{y}",String(o));if(this.subdomains.length>0){let r=(n+o)%this.subdomains.length;i=i.replace("{s}",this.subdomains[r])}return i}}});var di={};Ml(di,{MapChart:()=>Gt,MapDensityChart:()=>Pr,MapLineChart:()=>Ir,MapScatterChart:()=>Br});var Gt,Br,Ir,Pr,pi=E(()=>{"use strict";er();qi();Ki();Qi();cl();dl();Sr();Ct();Gt=class extends lt{constructor(n){super(n);c(this,"an","map");c(this,"je");this.je=new ci,this.je.setOnTileLoad(()=>{this.e&&this.requestRender(this.e)})}projectPoint(n,o){return sl(n,o)}getZoomConfig(){return{lockAspect:!0}}setPluginConfig(n){super.setPluginConfig(n),this.e&&this.je.setSource(this.e.gl,Dr(n.map_tile_provider)),this.je.setAlpha(n.map_tile_alpha)}renderBackground(n,o,i,r,s,a){this.je.source||(this.je.setSource(n.gl,Dr(this.h.map_tile_provider)),this.je.setAlpha(this.h.map_tile_alpha)),this.je.render(n,o,i,r,s,a)}renderMapChrome(n,o,i,r){if(!n)return;let s=le(n,r);if(!s)return;let a=this.je.source?.attribution??"";if(!a)return;let l=o.t;s.save(),s.font=`10px ${i.fontFamily}`,s.textAlign="right",s.textBaseline="bottom";let u=4,f=s.measureText(a).width,b=12,p=l.x+l.width-4,d=l.y+l.height-4;s.fillStyle="rgba(255, 255, 255, 0.75)",s.fillRect(p-f-u*2,d-b-u,f+u*2,b+u),s.fillStyle=i.xe,s.fillText(a,p-u,d-u/2),s.restore()}destroyInternal(){this.e&&this.je.destroy(this.e.gl),super.destroyInternal()}},Br=class extends Gt{constructor(){super(new Rt)}},Ir=class extends Gt{constructor(){super(new Mt)}},Pr=class extends Gt{constructor(){super(new Ft)}}});typeof window>"u"&&(globalThis.window={});var Nt=class{constructor(t){c(this,"S");c(this,"An",new Map);this.S=t}precompile(t){for(let n of t)this.getOrCreate(n.name,n.vert,n.frag)}getOrCreate(t,n,o){let i=this.An.get(t);if(i)return i;let r=this.S,s=r.createShader(r.VERTEX_SHADER);if(r.shaderSource(s,n),r.compileShader(s),!r.getShaderParameter(s,r.COMPILE_STATUS)){let l=r.getShaderInfoLog(s);throw r.deleteShader(s),new Error(`Vertex shader compile error [${t}]: ${l}`)}let a=r.createShader(r.FRAGMENT_SHADER);if(r.shaderSource(a,o),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS)){let l=r.getShaderInfoLog(a);throw r.deleteShader(s),r.deleteShader(a),new Error(`Fragment shader compile error [${t}]: ${l}`)}if(i=r.createProgram(),r.attachShader(i,s),r.attachShader(i,a),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS)){let l=r.getProgramInfoLog(i);throw r.deleteProgram(i),r.deleteShader(s),r.deleteShader(a),new Error(`Shader link error [${t}]: ${l}`)}return r.deleteShader(s),r.deleteShader(a),this.An.set(t,i),i}releaseAll(){for(let t of this.An.values())this.S.deleteProgram(t);this.An.clear()}};var vn="attribute vec2 a_corner;attribute float a_x_center;attribute float a_half_width;attribute float a_y0;attribute float a_y1;attribute vec3 a_color;attribute float a_series_id;attribute float a_axis;uniform mat4 u_proj_left;uniform mat4 u_proj_right;uniform float u_hover_series;uniform float u_horizontal;varying vec3 v_color;varying float v_hover;varying vec2 v_local;void main(){vec2 A;if(u_horizontal>0.5){A=vec2(mix(a_y0,a_y1,a_corner.x),a_x_center+(a_corner.y-0.5)*2.*a_half_width);}else{A=vec2(a_x_center+(a_corner.x-0.5)*2.*a_half_width,mix(a_y0,a_y1,a_corner.y));}mat4 B=a_axis<0.5?u_proj_left:u_proj_right;gl_Position=B*vec4(A,0.,1.);v_color=a_color;v_hover=abs(a_series_id-u_hover_series)<0.5?1.:0.;v_local=a_corner;}";var An="precision highp float;varying vec3 v_color;varying float v_hover;varying vec2 v_local;void main(){vec3 A=v_color;if(v_hover>0.5){A=mix(A,vec3(1.),0.25);}gl_FragColor=vec4(A,1.);}";hi();yi();xi();Ci();var Mn="attribute vec2 a_position;uniform mat4 u_projection;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);}";var Fn="precision highp float;uniform vec3 u_color;uniform float u_opacity;void main(){gl_FragColor=vec4(u_color,u_opacity);}";var Ue="attribute vec2 a_start;attribute vec2 a_end;attribute float a_corner;attribute float a_real_start;attribute float a_real_end;uniform mat4 u_projection;uniform vec2 u_resolution;uniform float u_line_width;uniform float u_interp_alpha;varying float v_edge_dist;varying float v_seg_alpha;void main(){vec4 A=u_projection*vec4(a_start,0.,1.);vec4 B=u_projection*vec4(a_end,0.,1.);vec2 C=A.xy*u_resolution*0.5;vec2 D=B.xy*u_resolution*0.5;vec2 E=D-C;float F=length(E);E=F>0.001?E/F:vec2(1.,0.);vec2 G=vec2(-E.y,E.x);float H=step(1.5,a_corner);float I=1.-mod(a_corner,2.)*2.;vec4 J=mix(A,B,H);float K=(u_line_width+1.5)*0.5;vec2 L=(G*I*K)/(u_resolution*0.5);gl_Position=J+vec4(L,0.,0.);v_edge_dist=I;float M=a_real_start*a_real_end;v_seg_alpha=mix(u_interp_alpha,1.,step(0.5,M));}";var Oe="precision highp float;uniform vec4 u_color;uniform float u_line_width;varying float v_edge_dist;varying float v_seg_alpha;void main(){float A=abs(v_edge_dist);float B=u_line_width/(u_line_width+1.5);float C=1.-smoothstep(B,1.,A);gl_FragColor=vec4(u_color.rgb,u_color.a*C*v_seg_alpha);}";var Sn="attribute vec2 a_position;attribute vec3 a_color;uniform mat4 u_projection;uniform float u_point_size;varying vec3 v_color;varying float v_point_size;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);gl_PointSize=u_point_size;v_point_size=u_point_size;v_color=a_color;}";var Dn="precision highp float;varying vec3 v_color;varying float v_point_size;void main(){vec2 A=gl_PointCoord-vec2(0.5);float B=length(A);if(B>0.5)discard;float C=1.5/max(v_point_size,1.);float D=1.-smoothstep(0.5-C,0.5,B);gl_FragColor=vec4(v_color,D);}";var Bn="attribute vec2 a_corner;attribute float a_x_center;attribute float a_half_width;attribute float a_y0;attribute float a_y1;attribute vec3 a_color;uniform mat4 u_projection;varying vec3 v_color;void main(){float A=a_x_center+(a_corner.x-0.5)*2.*a_half_width;float B=mix(a_y0,a_y1,a_corner.y);gl_Position=u_projection*vec4(A,B,0.,1.);v_color=a_color;}";var In="precision highp float;varying vec3 v_color;void main(){gl_FragColor=vec4(v_color,1.);}";var Pn="attribute vec2 a_corner;attribute vec2 a_cell;attribute float a_color_t;uniform mat4 u_projection;uniform vec2 u_cell_inset;uniform vec2 u_cell_size;varying float v_color_t;void main(){vec2 A=0.5*u_cell_size;vec2 B=u_cell_size-2.*u_cell_inset;float C=a_cell.x-A.x+u_cell_inset.x+a_corner.x*B.x;float D=a_cell.y-A.y+u_cell_inset.y+a_corner.y*B.y;gl_Position=u_projection*vec4(C,D,0.,1.);v_color_t=a_color_t;}";var En="precision highp float;uniform sampler2D u_gradient_lut;varying float v_color_t;void main(){float A=clamp(v_color_t,0.,1.);vec4 B=texture2D(u_gradient_lut,vec2(A,0.5));gl_FragColor=vec4(B.rgb,1.);}";var Wn="attribute float a_strip_t;attribute float a_side;attribute vec2 a_angles;attribute vec2 a_radii;attribute vec4 a_color;uniform vec2 u_center;uniform vec2 u_resolution;uniform float u_border_px;varying vec4 v_color;varying vec2 v_edge;void main(){float A=u_border_px*0.5;float B=a_radii.x+A;float C=a_radii.y-A;if(C<=B){gl_Position=vec4(2.,2.,2.,1.);v_color=vec4(0.);v_edge=vec2(0.);return;}float D=mix(B,C,a_side);float E=A/max(D,1.);float F=a_angles.y-a_angles.x;E=min(E,F*0.5);float G=mix(a_angles.x+E,a_angles.y-E,a_strip_t);vec2 H=u_center+vec2(cos(G),sin(G))*D;vec2 I=(H/u_resolution)*2.-1.;gl_Position=vec4(I.x,-I.y,0.,1.);v_color=a_color;v_edge=vec2(a_strip_t,a_side);}";var Gn="precision highp float;varying vec4 v_color;void main(){gl_FragColor=v_color;}";var kn="attribute vec2 a_position;attribute vec4 a_color;uniform vec2 u_resolution;varying vec4 v_color;void main(){vec2 A=(a_position/u_resolution)*2.-1.;A.y=-A.y;gl_Position=vec4(A,0.,1.);v_color=a_color;}";var Nn="precision highp float;varying vec4 v_color;void main(){gl_FragColor=v_color;}";_i();vi();Ai();Li();Ti();wi();Ri();var Mi=[{name:"bar",vert:vn,frag:An},{name:"line",vert:Ln,frag:Tn},{name:"scatter",vert:wn,frag:Rn},{name:"bar-area",vert:Mn,frag:Fn},{name:"bar-scatter",vert:Sn,frag:Dn},{name:"line-uniform",vert:Ue,frag:Oe},{name:"candlestick-body",vert:Bn,frag:In},{name:"heatmap",vert:Pn,frag:En},{name:"sunburst-arc",vert:Wn,frag:Gn},{name:"treemap",vert:kn,frag:Nn},{name:"density-splat",vert:gt,frag:Un},{name:"density-extreme",vert:gt,frag:On},{name:"density-resolve",vert:Vn,frag:Hn},{name:"map-tile",vert:Yn,frag:zn}];var Ut=class{constructor(t){c(this,"S");c(this,"i",new Map);c(this,"qt",0);c(this,"Ln",0);this.S=t}get totalCapacity(){return this.qt}get maxCapacity(){return this.Ln}set maxCapacity(t){this.Ln=t}ensureCapacity(t){this.qt=this.Ln>0?Math.min(t,this.Ln):t}peek(t){return this.i.get(t)}getOrCreate(t,n,o){let i=this.qt*n*o,r=this.i.get(t);if(r&&r.byteCapacity>=i)return r;let s=this.S;r&&s.deleteBuffer(r.buffer);let a=s.createBuffer();return s.bindBuffer(s.ARRAY_BUFFER,a),s.bufferData(s.ARRAY_BUFFER,i,s.DYNAMIC_DRAW),r={buffer:a,byteCapacity:i},this.i.set(t,r),r}upload(t,n,o,i=1){let r=this.S,s=this.getOrCreate(t,i,n.BYTES_PER_ELEMENT);if(!1){let a=o+n.byteLength;if(a>s.byteCapacity)throw new Error(`BufferPool.upload("${t}"): write ${o}..${a} exceeds capacity ${s.byteCapacity} (_totalCapacity=${this.qt}, components=${i}, bytes=${n.BYTES_PER_ELEMENT}). Did you pass the full scratch buffer instead of a subarray(0, n)?`)}return r.bindBuffer(r.ARRAY_BUFFER,s.buffer),r.bufferSubData(r.ARRAY_BUFFER,o,n),s.buffer}releaseAll(){for(let t of this.i.values())this.S.deleteBuffer(t.buffer);this.i.clear(),this.qt=0}};var Xn=class{constructor(t,n={}){c(this,"Ut");c(this,"S");c(this,"Tn");c(this,"_t");c(this,"i");c(this,"wn",0);c(this,"oi",0);c(this,"ii",0);c(this,"ri",1);c(this,"po");c(this,"bo",null);c(this,"ct",null);c(this,"Rn",null);this.Ut=t,this.po=n.precompile??!1;let o=t.getContext("webgl2",{antialias:!0,alpha:!0,premultipliedAlpha:!1});if(o)this.S=o,this.Tn=!0;else{let i=t.getContext("webgl",{antialias:!0,alpha:!0,premultipliedAlpha:!1});if(!i)throw new Error("WebGL is not supported");this.S=i,this.Tn=!1}this._t=new Nt(this.S),this.i=new Ut(this.S),this.po&&this._t.precompile(Mi),t.addEventListener("webglcontextlost",i=>{i.preventDefault()}),t.addEventListener("webglcontextrestored",()=>{this._t.releaseAll(),this.i.releaseAll(),this._t=new Nt(this.S),this.i=new Ut(this.S),this.wn=0,this.po&&this._t.precompile(Mi)})}get gl(){return this.S}get isWebGL2(){return this.Tn}get shaders(){return this._t}get C(){return this.i}get uploadedCount(){return this.wn}set uploadedCount(t){this.wn=t}resize(t,n,o){this.oi=t,this.ii=n,this.ri=o;let i=Math.round(t*o),r=Math.round(n*o);(this.Ut.width!==i||this.Ut.height!==r)&&(this.Ut.width=i,this.Ut.height=r,this.S.viewport(0,0,i,r))}requestResize(t,n,o){this.Rn={cssWidth:t,cssHeight:n,dpr:o}}applyPendingResize(){if(!this.Rn)return!1;let{cssWidth:t,cssHeight:n,dpr:o}=this.Rn;return this.Rn=null,this.resize(t,n,o),!0}get cssWidth(){return this.oi}get cssHeight(){return this.ii}get dpr(){return this.ri}clear(){this.S.clearColor(0,0,0,0),this.S.clear(this.S.COLOR_BUFFER_BIT|this.S.DEPTH_BUFFER_BIT),this.wn=0}setFrameCallback(t){this.bo=t}endFrame(){if(!this.bo)return;let t=this.Ut;if(typeof t.transferToImageBitmap!="function")return;let n=t.transferToImageBitmap();this.bo(n)}async awaitGpuFence(){if(!this.Tn){this.S.finish();return}let t=this.S,n=t.fenceSync(t.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n){t.finish();return}try{let o=t.SYNC_FLUSH_COMMANDS_BIT;for(;;){let i=t.clientWaitSync(n,o,0);if(i===t.ALREADY_SIGNALED||i===t.CONDITION_SATISFIED)return;if(i===t.WAIT_FAILED){t.finish();return}o=0,await this.Gi()}}finally{t.deleteSync(n)}}ensureBufferCapacity(t){this.i.ensureCapacity(t)}Gi(){return this.ct||(this.ct=new MessageChannel,this.ct.port1.start()),new Promise(t=>{let n=this.ct;n.port1.addEventListener("message",()=>t(),{once:!0}),n.port2.postMessage(null)})}destroy(){this.i.releaseAll(),this._t.releaseAll(),this.ct&&(this.ct.port1.close(),this.ct.port2.close(),this.ct=null);let t=this.S.getExtension("WEBGL_lose_context");t&&t.loseContext()}};$n();$n();function zr(e,t,n,o){let{controller:i,layout:r}=e,s=r.t,a=i.getVisibleDomain(),l=a.xMin+(t-s.x)/s.width*(a.xMax-a.xMin),u=a.yMax-(n-s.y)/s.height*(a.yMax-a.yMin),m=Math.pow(1.1,-o/100),f=i.lockedAxis;f!=="x"&&(i.scaleX=Math.max(1,Math.min(1e5,i.scaleX*m))),f!=="y"&&(i.scaleY=Math.max(1,Math.min(1e5,i.scaleY*m)));let b=i.getVisibleDomain(),p=b.xMin+(t-s.x)/s.width*(b.xMax-b.xMin),d=b.yMax-(n-s.y)/s.height*(b.yMax-b.yMin),g=i.baseXRange,h=i.baseYRange;f!=="x"&&g>0&&(i.normTranslateX+=(l-p)/g),f!=="y"&&h>0&&(i.normTranslateY+=(u-d)/h)}function Xr(e,t,n){let{controller:o,layout:i}=e,r=o.getVisibleDomain(),s=i.t,a=(r.xMax-r.xMin)/s.width,l=(r.yMax-r.yMin)/s.height,u=o.lockedAxis,m=o.baseXRange,f=o.baseYRange;u!=="x"&&m>0&&(o.normTranslateX-=t*a/m),u!=="y"&&f>0&&(o.normTranslateY+=n*l/f)}var jn=class{constructor(t){c(this,"Ot");this.Ot=t}pin(t,n,o){this.Ot({kind:"pinTooltip",lines:t,pos:n,bounds:o})}dismiss(){this.Ot({kind:"dismissTooltip"})}setCursor(t){this.Ot({kind:"setCursor",cursor:t})}emitUserClick(t){this.Ot({kind:"userClick",detail:t})}emitUserSelect(t){this.Ot({kind:"userSelect",selected:t.selected,row:t.row,column_names:t.column_names,insertConfig:t.insertConfig})}};er();Vt();var vo=class{constructor(t=1024){c(this,"size");c(this,"value");c(this,"colorValue");c(this,"sizeSign");c(this,"x0");c(this,"y0");c(this,"x1");c(this,"y1");c(this,"a0");c(this,"a1");c(this,"r0");c(this,"r1");c(this,"depth");c(this,"parent");c(this,"firstChild");c(this,"nextSibling");c(this,"lastChild");c(this,"childCount");c(this,"leafRowIdx");c(this,"name");c(this,"colorLabel");c(this,"count",0);c(this,"capacity",0);this._i(t)}reset(){this.count>0&&(this.x0.fill(0,0,this.count),this.y0.fill(0,0,this.count),this.x1.fill(0,0,this.count),this.y1.fill(0,0,this.count),this.a0.fill(0,0,this.count),this.a1.fill(0,0,this.count),this.r0.fill(0,0,this.count),this.r1.fill(0,0,this.count)),this.count=0}allocate(){this.count===this.capacity&&this._i(this.capacity*2);let t=this.count++;return this.firstChild[t]=-1,this.nextSibling[t]=-1,this.lastChild[t]=-1,this.childCount[t]=0,this.leafRowIdx[t]=-1,this.size[t]=0,this.value[t]=0,this.colorValue[t]=NaN,this.sizeSign[t]=1,this.name[t]="",this.colorLabel[t]="",t}appendChild(t,n){this.parent[n]=t,this.depth[n]=this.depth[t]+1,this.nextSibling[n]=-1;let o=this.lastChild[t];o===-1?this.firstChild[t]=n:this.nextSibling[o]=n,this.lastChild[t]=n,this.childCount[t]++}isLeaf(t){return this.firstChild[t]===-1}_i(t){let n=Math.max(t,1024),o=(i,r)=>{let s=new r(n);return i&&i.length>0&&s.set(i),s};this.size=o(this.size,Float32Array),this.value=o(this.value,Float32Array),this.colorValue=o(this.colorValue,Float32Array),this.sizeSign=o(this.sizeSign,Int8Array),this.x0=o(this.x0,Float32Array),this.y0=o(this.y0,Float32Array),this.x1=o(this.x1,Float32Array),this.y1=o(this.y1,Float32Array),this.a0=o(this.a0,Float32Array),this.a1=o(this.a1,Float32Array),this.r0=o(this.r0,Float32Array),this.r1=o(this.r1,Float32Array),this.depth=o(this.depth,Int32Array),this.parent=o(this.parent,Int32Array),this.firstChild=o(this.firstChild,Int32Array),this.nextSibling=o(this.nextSibling,Int32Array),this.lastChild=o(this.lastChild,Int32Array),this.childCount=o(this.childCount,Int32Array),this.leafRowIdx=o(this.leafRowIdx,Int32Array),this.name?this.name.length=n:this.name=new Array(n),this.colorLabel?this.colorLabel.length=n:this.colorLabel=new Array(n),this.capacity=n}};function Zs(e,t){let n=[],o=t;for(;e.parent[o]!==-1;)n.push(e.name[o]),o=e.parent[o];return n.reverse()}ji();function Ao(e){for(let t of e.keys())if(!t.startsWith("__"))return t;return""}var St=class extends Le{constructor(){super(...arguments);c(this,"K","");c(this,"s","");c(this,"pe","empty");c(this,"r",new vo);c(this,"Y",-1);c(this,"g",-1);c(this,"ae",[]);c(this,"It",new Map);c(this,"Zn",0);c(this,"c",1/0);c(this,"f",-1/0);c(this,"u",new Map);c(this,"X",null);c(this,"ee",0);c(this,"W",new wt)}};Ht();Kt();ve();function ut(e,t,n,o,i){if(!e||t<=0)return null;let r=new Float64Array(t),s=1/0,a=-1/0;for(let u=0;u<t;u++){let m=e[u+n];r[u]=m,m<s&&(s=m),m>a&&(a=m)}let l=1/0;for(let u=1;u<t;u++){let m=Math.abs(r[u]-r[u-1]);m>0&&m<l&&(l=m)}return(!isFinite(l)||l===0)&&(l=Math.max(1,a-s)),{categoryPositions:r,numericCategoryDomain:{min:s-l/2,max:a+l/2,isDate:i,label:o,bandWidth:l}}}function Dt(e,t){if(e.length!==1)return{mode:"category"};let n=t[e[0]];return n==="date"||n==="datetime"||n==="integer"||n==="float"?{mode:"numeric",numericType:n}:{mode:"category"}}function om(e,t,n){return t?n==="boolean"?e?"true":"false":n==="date"||n==="datetime"?he(e):n==="integer"?String(e|0):n==="float"?ae(e):String(e):""}function tr(e,t,n){let o=e.values,i=e.valid,r=new Int32Array(t),s=[""],a=new Map;a.set("",0);for(let l=0;l<t;l++){let u=i?!!(i[l>>3]>>(l&7)&1):!0,m=o[l],f=om(m,u,n),b=a.get(f);b===void 0&&(b=s.length,s.push(f),a.set(f,b)),r[l]=b}return{indices:r,dictionary:s}}function Bt(e,t,n,o=[]){let i=[];for(let u=0;;u++){let m=e.get(`__ROW_PATH_${u}__`);if(!m)break;if(m.type==="string"&&m.indices&&m.dictionary)i.push({indices:m.indices,dictionary:m.dictionary});else if(m.values){let f=o[u]??"string";i.push(tr(m,t,f))}else break}let r=0;if(n>0&&i.length>0)for(;r<t;){let u=!1;for(let m of i){let f=m.dictionary[m.indices[r]];if(f!=null&&f!==""){u=!0;break}}if(u)break;r++}let s=Math.max(0,t-r),a=i.length;return{rowPaths:n>0&&a>0?i.map((u,m)=>{let f=new Array(s),b=0;for(let d=0;d<s;d++){let g=u.dictionary[u.indices[d+r]]??"";f[d]=g,g.length>b&&(b=g.length)}let p=m===a-1?[]:uo(u.indices,u.dictionary,r,r+s).map(d=>({startIdx:d.startIdx-r,endIdx:d.endIdx-r,label:d.label}));return{labels:f,runs:p,maxLabelChars:b}}):[],numCategories:s,rowOffset:r}}function nr(e,t,n,o){if(e.length===0)return null;for(let b of e)if(b.type!=="string")return null;let i=Math.max(0,t-n),r=[],s=new Map,a=e.map(()=>new Int32Array(i)),l=b=>{let p=s.get(b);return p===void 0&&(p=r.length,r.push(b),s.set(b,p)),p};for(let b=0;b<e.length;b++){let p=e[b].data,d=a[b];for(let g=0;g<i;g++){let h=g+n,y;if(!p)y="(null)";else{let x=p.valid;if(!(x?!!(x[h>>3]>>(h&7)&1):!0))y="(null)";else if(p.indices&&p.dictionary)y=p.dictionary[p.indices[h]]??"(null)";else if(p.values){let _=p.values[h];y=_==null?"(null)":String(_)}else y="(null)"}d[g]=l(y)}}let u=0;for(let b of r)b.length>u&&(u=b.length);return{domain:{levels:[{labels:r.slice(),runs:[],maxLabelChars:u}],numRows:r.length,levelLabels:[o]},perColumnSlots:a}}function tn(e){e.r.reset(),e.It.clear();let t=e.r.allocate();e.r.name[t]="Total",e.r.depth[t]=0,e.r.parent[t]=-1,e.It.set(t,new Map),e.Y=t,e.g=t,e.ae=[t],e.Zn=0,e.c=1/0,e.f=-1/0,e.u.clear(),e.X=null,e.ee=0}function im(e,t,n){let o=e.It.get(t);o||(o=new Map,e.It.set(t,o));let i=o.get(n);if(i!==void 0)return i;let r=e.r.allocate();return e.r.name[r]=n,e.r.appendChild(t,r),o.set(n,r),r}function Lo(e,t,n,o,i,r,s){let a=e.Y,l=t.length;for(let u=0;u<l;u++){let m=im(e,a,t[u]);u===l-1&&((s===0||l===s)&&(e.r.size[m]=Math.abs(n),e.r.sizeSign[m]=n<0?-1:1,e.r.leafRowIdx[m]=r),isNaN(o)||(e.r.colorValue[m]=o,o<e.c&&(e.c=o),o>e.f&&(e.f=o)),i&&(e.r.colorLabel[m]=i,e.u.has(i)||e.u.set(i,e.u.size))),a=m}}function To(e,t,n){let o=NaN,i="";return t?(e.pe==="numeric"&&t.values?o=t.values[n]:e.pe==="series"&&t.indices&&t.dictionary&&(i=t.dictionary[t.indices[n]]),{colorValue:o,colorLabel:i}):{colorValue:o,colorLabel:i}}function qs(e,t){if(e.pe!=="series"||!t?.dictionary)return;let n=t.dictionary;for(let o=0;o<n.length;o++){let i=n[o];e.u.has(i)||e.u.set(i,e.u.size)}}function rm(e,t){if(e.P.length===0)return null;let n=e.K?[e.K]:[],o=e.s?[e.s]:[],i=Ve(t,n,o);return i.length===0?null:i.map(r=>({prefix:r.prefix,sizeCol:e.K?t.get(`${r.prefix}|${e.K}`)??null:null,colorCol:e.s?t.get(`${r.prefix}|${e.s}`)??null:null}))}function nn(e,t){let n=[];for(let g=0;;g++){let h=t.get(`__ROW_PATH_${g}__`);if(!h)break;if(h.type==="string"&&h.indices&&h.dictionary)n.push({indices:h.indices,dictionary:h.dictionary});else if(h.values){let y=e.A[g],x=e.pt[y]??"string";n.push(tr(h,h.values.length,x))}else break}let o=n.length>0,i=e.A.length,r=rm(e,t),s=r!==null,a=e.K?t.get(e.K):null,l=e.s?t.get(e.s):null,u=s?r[0].sizeCol:a,m=o?n[0].indices.length:u?.values?.length??0;if(m===0)return;if(s)for(let g of r)qs(e,g.colorCol);else qs(e,l);let f=e.Zn,b=s&&o?i+1:i;if(!o){let g;for(let[y,x]of t){if(y.startsWith("__")||s&&y.includes("|"))continue;let C=y.lastIndexOf("|"),_=C===-1?y:y.substring(C+1);if(!(_===e.K||_===e.s)&&x.type==="string"&&x.indices&&x.dictionary){g=x;break}}let h=s?r:null;for(let y=0;y<m;y++){let x=g?.indices&&g?.dictionary?g.dictionary[g.indices[y]]:`Row ${f+y}`;if(h)for(let C of h){let _=C.sizeCol?.values?C.sizeCol.values[y]:1,{colorValue:v,colorLabel:A}=To(e,C.colorCol,y);Lo(e,[C.prefix,x],_,v,A,f+y,b)}else{let C=a?.values?a.values[y]:1,{colorValue:_,colorLabel:v}=To(e,l,y);Lo(e,[x],C,_,v,f+y,b)}}e.Zn=f+m;return}let p=s?1:0,d=new Array(n.length+p);for(let g=0;g<m;g++){let h=0;for(let y=0;y<n.length;y++){let x=n[y],C=x.dictionary[x.indices[g]];if(!C&&C!=="0")break;d[p+h++]=C}if(h!==0)if(s)for(let y of r){d[0]=y.prefix;let x=d.slice(0,h+1),C=y.sizeCol?.values?y.sizeCol.values[g]:1,{colorValue:_,colorLabel:v}=To(e,y.colorCol,g);Lo(e,x,C,_,v,f+g,b)}else{let y=d.slice(0,h),x=a?.values?a.values[g]:1,{colorValue:C,colorLabel:_}=To(e,l,g);Lo(e,y,x,C,_,f+g,b)}}e.Zn=f+m}function on(e){let t=e.r,n=t.value,o=t.size,i=t.firstChild,r=t.nextSibling,s=new Int32Array(128);s[0]=e.Y,s[1]=0;let a=1;for(let l=0;l<t.count;l++)n[l]=0;for(;a>0;){a--;let l=s[a*2];if(s[a*2+1]===0){s[a*2+1]=1,a++;for(let m=i[l];m!==-1;m=r[m]){if((a+1)*2>s.length){let f=new Int32Array(s.length*2);f.set(s),s=f}s[a*2]=m,s[a*2+1]=0,a++}}else if(i[l]===-1)n[l]=Math.max(0,o[l]);else{let m=0;for(let f=i[l];f!==-1;f=r[f])m+=n[f];n[l]=m}}if(e.ae.length>1){let l=[];for(let f=1;f<e.ae.length;f++)l.push(t.name[e.ae[f]]);let u=e.Y,m=!0;for(let f of l){let p=e.It.get(u)?.get(f);if(p===void 0){m=!1;break}u=p}if(m&&t.firstChild[u]!==-1){e.g=u,wo(e,u);return}}e.g=e.Y,e.ae=[e.Y]}function wo(e,t){let n=[],o=t;for(;o!==-1;)n.unshift(o),o=e.r.parent[o];e.ae=n}var sm=1,or=14,Ks=1,Js=4;function Ro(e,t,n,o,i,r,s,a,l){if(e.x0[t]=Math.round(n),e.y0[t]=Math.round(o),e.x1[t]=Math.round(i),e.y1[t]=Math.round(r),e.firstChild[t]===-1||(i-n)*(r-o)<Js)return;let m=e.depth[t]-s,f=l&&m===1&&e.firstChild[t]!==-1,b=f?or:Ks,p=f?sm:Ks,d=e.x0[t]+p,g=e.y0[t]+b,h=e.x1[t]-p,y=e.y1[t]-p;if(h<=d||y<=g)return;let x=0;for(let C=e.firstChild[t];C!==-1;C=e.nextSibling[C])e.value[C]>0&&(a[x++]=C);x!==0&&rn(e,a,0,x,d,g,h,y,s,a.subarray(x),l)}function rn(e,t,n,o,i,r,s,a,l,u,m){let f=o-n;if(f===0)return;if(f===1){Ro(e,t[n],i,r,s,a,l,u,m);return}let b=0;for(let v=n;v<o;v++)b+=e.value[t[v]];let p=b/2,d=0,g=n+1,h=1/0;for(let v=n;v<o-1;v++){d+=e.value[t[v]];let A=Math.abs(d-p);A<h&&(h=A,g=v+1)}let y=0;for(let v=n;v<g;v++)y+=e.value[t[v]];let x=y/b,C=s-i,_=a-r;if(C>=_){let v=Math.round(i+C*x);rn(e,t,n,g,i,r,v,a,l,u,m),rn(e,t,g,o,v,r,s,a,l,u,m)}else{let v=Math.round(r+_*x);rn(e,t,n,g,i,r,s,v,l,u,m),rn(e,t,g,o,i,v,s,a,l,u,m)}}function Qs(e,t,n,o){e.ee=ir(e,t,n,o,0)}function ir(e,t,n,o,i){let r=e.r,s=r.x0,a=r.y0,l=r.x1,u=r.y1,m=r.depth,f=r.firstChild,b=r.nextSibling,p=r.value;(!e.X||e.X.length<r.count)&&(e.X=new Int32Array(r.count));let d=e.X,g=i,h=new Int32Array(128);h[0]=t;let y=1;for(;y>0;){y--;let x=h[y];if(p[x]<=0||(m[x]>=o&&(d[g++]=x),m[x]-o>=n))continue;let C=l[x]-s[x],_=u[x]-a[x];if(!(C*_<Js))for(let v=f[x];v!==-1;v=b[v]){if(y>=h.length){let A=new Int32Array(h.length*2);A.set(h),h=A}h[y++]=v}}return g}zt();Yt();Ie();function Mo(e,t,n){return .299*e+.587*t+.114*n}function am(e,t){let n=Ae(e,t);return[n[0],n[1],n[2]]}function sn(e,t,n,o){let i=e.r,r=i.colorValue[t];if(e.pe==="numeric"&&!isNaN(r)&&e.f>e.c)return am(n,rt(r,e.c,e.f));let s=e.u.get(i.colorLabel[t])??0;return o[s%o.length]??[0,0,0]}function Fo(e,t,n,o,i){let r=sn(e,t,n,o),s=e.r.sizeSign[t]<0?i:1;return[r[0],r[1],r[2],s]}ue();function So(e,t,n,o,i,r,s){let a=Math.round(o*n),l=Math.round(i*n);(t.width!==a||t.height!==l)&&(t.width=a,t.height=l,e.ht=!0);let u=t.getContext("2d");if(u){if(e.ht){e.le?.close(),e.le=null,e.ht=!1;let m=++e.un;r(u),createImageBitmap(t).then(f=>{e.un===m?(e.le?.close(),e.le=f):f.close()})}else e.le&&(u.clearRect(0,0,t.width,t.height),u.drawImage(e.le,0,0));s&&(u.save(),u.scale(n,n),s(u),u.restore())}}lo();He();co();function ea(e,t,n,o,i,r,s,a){if(n.length===0)return;let{In:l,ui:u,li:m}=t;e.font=`11px ${a}`;let f=16,b=8,p=0;for(let x of n){let C=e.measureText(x).width;C>p&&(p=C)}let d=p+b*2,g=n.length*f+b*2-4,h=o+12,y=i-g-8;h+d>r&&(h=o-d-12),h<0&&(h=4),y<0&&(y=i+12),y+g>s&&(y=s-g-4),e.fillStyle=l,e.strokeStyle=m,e.lineWidth=1,e.beginPath(),e.roundRect(h,y,d,g,4),e.fill(),e.stroke(),e.fillStyle=u,e.textAlign="left",e.textBaseline="top";for(let x=0;x<n.length;x++)e.fillText(n[x],h+b,y+b+x*f)}var ta=24,lm=8,na=12,oa=2,ia=" \\u203A ";function Do(e,t,n,o,i){e.ke=[];let r=e.T().In;t.fillStyle=r,t.fillRect(0,0,n,ta),t.font=`11px ${o}`,t.textAlign="left",t.textBaseline="middle";let s=lm,a=e.r;for(let l=0;l<e.ae.length;l++){let u=e.ae[l],m=l===e.ae.length-1,f=a.name[u];t.fillStyle=i;let b=t.measureText(f).width;t.fillText(f,s,na),e.ke.push({nodeId:u,x0:s-oa,y0:0,x1:s+b+oa,y1:ta}),s+=b,m||(t.fillText(ia,s,na),s+=t.measureText(ia).width)}}function Bo(e,t,n,o,i,r,s,a){let l=e.W.hoveredTarget===n?e.W.lines??[]:[];l.length!==0&&ea(t,e.T(),l,o,i,r,s,a)}function Io(e,t,n,o,i,r,s,a=null){e.pe==="series"&&e.u.size>1?a?Qt(t,a,e.u,n,i):fo(t,ra(r,s),e.u,n,i):e.pe==="numeric"&&e.c<e.f&&Tt(t,ra(r,s),{min:e.c,max:e.f,label:e.s},o,i,e.getColumnFormatter(e.s,"value"))}function ra(e,t){return new ee(e,t,{hasXLabel:!1,hasYLabel:!1,hasLegend:!0})}function an(e,t){if(e.g===-1)return;let n=t.gl,o=t.cssWidth,i=t.cssHeight;if(o<=0||i<=0)return;let r=e.r,s=e.P.length>0&&e.N.facet_mode==="grid",a=e.ae.length>1?28:0,u=(e.pe==="series"?e.u.size>1:e.pe==="numeric"&&e.c<e.f)?90:0,m=new Int32Array(Math.max(r.count,64));if(s)um(e,m,o,i,a,u);else{e.v=null;let d=r.depth[e.g];Ro(r,e.g,0,a,o-u,i,d,m,e.qn),Qs(e,e.g,100,d),sr(e);let g=e.Fe,h=e.Ne;for(let y=0;y<e.ee;y++)g[y]=d,h[y]=e.g}if(!e.o){let d=j(t,"treemap",kn,Nn,["u_resolution"],["a_position","a_color"]);e.o=d.program,e.F=d}let f=e.T(),b=f.H,p=fe(f.Ie,b,Math.max(1,e.u.size));if(e.D){let d=e.D.getContext("2d");d&&d.clearRect(0,0,e.D.width,e.D.height)}e.ht=!0,mm(e,n,b,p,f.Ao),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.useProgram(e.o),n.uniform2f(e.F.u_resolution,o,i),n.bindBuffer(n.ARRAY_BUFFER,e.Pt),n.enableVertexAttribArray(e.F.a_position),n.vertexAttribPointer(e.F.a_position,2,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,e.Et),n.enableVertexAttribArray(e.F.a_color),n.vertexAttribPointer(e.F.a_color,4,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,e.Wo),It(e)}function um(e,t,n,o,i,r){let s=e.r,a=[],l=[];for(let d=s.firstChild[e.Y];d!==-1;d=s.nextSibling[d])s.value[d]<=0||(a.push(d),l.push(s.name[d]));let u=Math.max(1,o-i),m=Math.max(1,n-r),f=Ye(l,{cssWidth:m,cssHeight:u,hasLegend:!1,xAxis:"none",yAxis:"none",gap:e.N.facet_padding});e.v=f,sr(e);let b=e.Fe,p=0;for(let d=0;d<a.length;d++){let g=a[d],h=f.cells[d];if(!h)continue;let y=s.name[g],x=e.nt.get(y)??g,C=s.depth[x],_=h.layout.t;Ro(s,x,_.x,_.y+i,_.x+_.width,_.y+i+_.height,C,t,e.qn);let v=ir(e,x,100,C,p);b.length<v&&sr(e);let A=e.Fe,w=e.Ne;for(let L=p;L<v;L++)A[L]=C,w[L]=x;p=v}e.ee=p}function sr(e){let t=e.X?.length??e.r.count;(!e.Fe||e.Fe.length<t)&&(e.Fe=new Int32Array(t)),(!e.Ne||e.Ne.length<t)&&(e.Ne=new Int32Array(t))}function mm(e,t,n,o,i){let r=e.r,s=e.X,a=e.ee,l=e.Fe,u=e.Ne,m=h=>l?l[h]:r.depth[e.g],f=h=>u?u[h]:e.g,b=0;for(let h=0;h<a;h++){let y=s[h];if(y===f(h))continue;let x=r.x1[y]-r.x0[y],C=r.y1[y]-r.y0[y];x<1||C<1||(r.firstChild[y]===-1?b++:r.depth[y]-m(h)===1&&(b+=2))}let p=new Float32Array(b*6*2),d=new Float32Array(b*6*4),g=0;for(let h=0;h<a;h++){let y=s[h];if(y===f(h))continue;let x=r.x0[y],C=r.y0[y],_=r.x1[y],v=r.y1[y],A=_-x,w=v-C;if(!(A<1||w<1)){if(r.firstChild[y]===-1){let L=Fo(e,y,n,o,i);g=rr(p,d,g,x,C,_-1,v-1,L)}else if(r.depth[y]-m(h)===1){let T=[.25,.25,.25,1];g=rr(p,d,g,x,v-1,_,v,T),g=rr(p,d,g,_-1,C,_,v,T)}}}e.Wo=g,e.Pt||(e.Pt=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,e.Pt),t.bufferData(t.ARRAY_BUFFER,p.subarray(0,g*2),t.DYNAMIC_DRAW),e.Et||(e.Et=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,e.Et),t.bufferData(t.ARRAY_BUFFER,d.subarray(0,g*4),t.DYNAMIC_DRAW)}function rr(e,t,n,o,i,r,s,a){let l=n*2,u=n*4;e[l+0]=o,e[l+1]=i,e[l+2]=r,e[l+3]=i,e[l+4]=o,e[l+5]=s,e[l+6]=r,e[l+7]=i,e[l+8]=r,e[l+9]=s,e[l+10]=o,e[l+11]=s;for(let m=0;m<6;m++)t[u+m*4+0]=a[0],t[u+m*4+1]=a[1],t[u+m*4+2]=a[2],t[u+m*4+3]=a[3];return n+6}function It(e){if(!e.d||e.g===-1)return;let t=e.e;if(!t)return;let{dpr:n,cssWidth:o,cssHeight:i}=t,r=e.te!==-1?e.te:e.I;So(e,e.d,n,o,i,s=>fm(e,s,n,o,i),r!==-1?s=>{let a=e.T(),{fontFamily:l}=a,u=e.r;cm(s,u,r);let m=e.X,f=e.ee,b=e.Fe,p=e.Ne;for(let d=0;d<f;d++){let g=m[d],h=p?p[d]:e.g;if(g===h||u.firstChild[g]===-1)continue;let y=u.x1[g]-u.x0[g],x=u.y1[g]-u.y0[g],C=b?b[d]:u.depth[e.g],_=u.depth[g]-C;_===1?Po(s,u,g,y,x,a,!e.qn):_===2&&Po(s,u,g,y,x,a,!0)}if(u.firstChild[r]===-1){let d=a.H,g=fe(a.Ie,d,Math.max(1,e.u.size)),h=u.x1[r]-u.x0[r],y=u.y1[r]-u.y0[r];sa(e,s,r,h,y,l,d,g,!0)}e.te===-1&&e.I!==-1&&dm(e,s,e.I,o,i,l)}:null)}function fm(e,t,n,o,i){let r=e.d;t.clearRect(0,0,r.width,r.height),t.save(),t.scale(n,n);let s=e.T(),{fontFamily:a,xe:l}=s,u=s.H,m=fe(s.Ie,u,Math.max(1,e.u.size)),f=e.r,b=e.X,p=e.ee,d=e.Fe,g=e.Ne;for(let h=0;h<p;h++){let y=b[h],x=g?g[h]:e.g;if(y===x||f.firstChild[y]!==-1)continue;let C=f.x1[y]-f.x0[y],_=f.y1[y]-f.y0[y];sa(e,t,y,C,_,a,u,m)}for(let h=0;h<p;h++){let y=b[h],x=g?g[h]:e.g;if(y===x||f.firstChild[y]===-1)continue;let C=f.x1[y]-f.x0[y],_=f.y1[y]-f.y0[y],v=d?d[h]:f.depth[e.g],A=f.depth[y]-v;A===1?Po(t,f,y,C,_,s,!e.qn):A===2&&Po(t,f,y,C,_,s,!0)}if(e.ae.length>1&&Do(e,t,o,a,l),Io(e,r,m,u,s,o,i),e.v){t.font=`11px ${a}`,t.fillStyle=l,t.textAlign="center",t.textBaseline="top";for(let h of e.v.cells){let y=h.layout.t;t.fillText(h.label,y.x+y.width/2,y.y-14)}}t.restore()}function sa(e,t,n,o,i,r,s,a,l=!1){if(o<30||i<14)return;let b=e.r,p=sn(e,n,s,a),d=Mo(p[0],p[1],p[2]),g=l?d>.5?"rgba(0,0,0,0.85)":"rgba(255,255,255,0.9)":d>.5?"rgba(0,0,0,0.5)":"rgba(255,255,255,0.55)",h=Math.min(11,Math.floor(i/2));if(h<7)return;t.font=`${h}px ${r}`;let y=o-8,x=h*1.3,C=Math.max(1,Math.floor((i-8)/x)),_=Fs(t,b.name[n],y,C);if(_.length===0)return;let v=_.length*x,A=b.y0[n]+(i-v)/2+x/2;t.fillStyle=g,t.textAlign="center",t.textBaseline="middle";let w=b.x0[n]+o/2;for(let L=0;L<_.length;L++)t.fillText(_[L],w,A+L*x)}function Po(e,t,n,o,i,{fontFamily:r,xe:s,backgroundColor:a},l){let u=t.x0[n],m=t.y0[n],f=t.name[n];if(l){if(o<60||i<30)return;let b=12;e.font=`${b}px ${r}`;let p=f,d=o-16;if(e.measureText(p).width>d){for(;p.length>1;)if(p=p.slice(0,-1),e.measureText(p+"\\u2026").width<=d){p+="\\u2026";break}}if(p.length<=3)return;e.save(),e.beginPath(),e.rect(u,m,o,i),e.clip();let h=u+o/2,y=m+i/2;e.textAlign="center",e.textBaseline="middle",e.lineWidth=2,e.strokeStyle=s,e.lineJoin="round",e.strokeText(p,h,y),e.fillStyle=a,e.fillText(p,h,y),e.restore()}else{if(o<40||i<22)return;let b=11;e.font=`${b}px ${r}`;let p=f,d=o-10;if(e.measureText(p).width>d){for(;p.length>1;)if(p=p.slice(0,-1),e.measureText(p+"\\u2026").width<=d){p+="\\u2026";break}}e.fillStyle=s,e.globalAlpha=.85,e.textAlign="left",e.textBaseline="top",e.fillText(p,u+5,m+4),e.globalAlpha=1}}function cm(e,t,n){e.strokeStyle="rgba(255,255,255,0.9)",e.lineWidth=2,e.strokeRect(t.x0[n],t.y0[n],t.x1[n]-t.x0[n],t.y1[n]-t.y0[n])}function dm(e,t,n,o,i,r){let s=e.r,a=(s.x0[n]+s.x1[n])/2,l=(s.y0[n]+s.y1[n])/2;Bo(e,t,n,a,l,o,i,r)}async function We(e,t,n){let o=e.r,i=Zs(o,t),r=e.P.length>0&&e.N.facet_mode==="grid",s=r?i.slice(0,e.P.length):[],a=r?i.slice(e.P.length,e.P.length+e.A.length):i.slice(0,e.A.length),l=n==="leaf"?o.leafRowIdx[t]??null:null;await e.emitClickAndSelect({rowIdx:l!=null&&l>=0?l:null,columnName:e.K,groupByValues:a,splitByValues:s})}async function mt(e,t){let n=e.r,o=[],i=[],r=t;for(;n.parent[r]!==-1;)i.push(n.name[r]),r=n.parent[r];i.reverse(),i.length>0?o.push(i.join(" \\u203A ")):o.push(n.name[t]);let s=e.getColumnFormatter(e.K,"value");if(o.push(`Value: ${s(n.value[t])}`),e.s&&!isNaN(n.colorValue[t])){let u=e.getColumnFormatter(e.s,"value");o.push(`${e.s}: ${u(n.colorValue[t])}`)}let a=n.leafRowIdx[t];if(n.firstChild[t]===-1&&a!==-1&&e.Le){let u=await e.Le.fetchRow(a);for(let[m,f]of u)f!=null&&(m===e.s&&!isNaN(n.colorValue[t])||(typeof f=="number"?o.push(`${m}: ${e.getColumnFormatter(m,"value")(f)}`):o.push(`${m}: ${f}`)))}return n.firstChild[t]!==-1&&o.push(`Children: ${n.childCount[t]}`),o}function Eo(e,t,n,o){e.L.dismiss(),e.te=t;let i=e.e?.cssWidth??0,r=e.e?.cssHeight??0;mt(e,t).then(s=>{e.te===t&&s.length!==0&&e.L.pin(s,{px:n.cx,py:n.cy},{cssWidth:i,cssHeight:r})}),e.I=-1,o()}function Wo(e){e.L.dismiss(),e.te=-1}function Go(e,t,n){let o=e.r;if(e.P.length>0&&e.N.facet_mode==="grid"){let i=t;for(;i!==-1&&o.parent[i]!==e.Y;)i=o.parent[i];i!==-1&&e.nt.set(o.name[i],t),e.I=-1,n();return}e.g=t,wo(e,t),e.I=-1,n()}function ar(e,t,n){let o=e.r,i=o.x0,r=o.y0,s=o.x1,a=o.y1,l=o.depth,u=o.firstChild,m=e.X,f=e.ee,b=e.Fe,p=e.Ne,d=-1,g=1/0,h=-1,y=1/0,x=-1;if(!m)return{leafId:-1,branchId:-1,inHeader:!1};for(let C=0;C<f;C++){let _=m[C],v=p?p[C]:e.g;if(_===v||!(t>=i[_]&&t<=s[_]&&n>=r[_]&&n<=a[_]))continue;let A=(s[_]-i[_])*(a[_]-r[_]);if(u[_]!==-1){A<y&&(y=A,h=_);let w=b?b[C]:l[e.g],L=l[_]-w;if(L===1&&n<=r[_]+or&&(x=_),L===2){let T=s[_]-i[_],F=a[_]-r[_];if(T>=60&&F>=30){let W=r[_]+F/2,P=i[_]+T/2;Math.abs(n-W)<10&&Math.abs(t-P)<T*.4&&(x=_)}}}else A<g&&(g=A,d=_)}return x!==-1?{leafId:-1,branchId:x,inHeader:!0}:{leafId:d,branchId:h,inHeader:!1}}function aa(e,t,n){if(e.te!==-1)return;for(let a of e.ke)if(t>=a.x0&&t<=a.x1&&n>=a.y0&&n<=a.y1){e.L.setCursor("pointer"),e.I=-1,It(e);return}let{leafId:o,branchId:i,inHeader:r}=ar(e,t,n),s=r?i:o!==-1?o:i;if(s!==e.I){if(e.I=s,e.L.setCursor(i!==-1?"pointer":"default"),s!==-1){let a=e.W.beginHover(s);mt(e,s).then(l=>{e.W.commitHover(a,l)&&It(e)})}else e.W.clearHover();It(e)}}function la(e,t,n){if(e.te!==-1){ln(e),e.emitUnselect();return}for(let s of e.ke)if(t>=s.x0&&t<=s.x1&&n>=s.y0&&n<=s.y1){s.nodeId!==e.g&&(ko(e,s.nodeId),e.emitUnselect());return}let{leafId:o,branchId:i,inHeader:r}=ar(e,t,n);i!==-1&&r?(ko(e,i),We(e,i,"branch")):o!==-1?(ma(e,o),We(e,o,"leaf")):i!==-1&&(ko(e,i),We(e,i,"branch"))}function ua(e,t,n){let o=e.te!==-1;ln(e),o&&e.emitUnselect();let{leafId:i,branchId:r}=ar(e,t,n),s=e.r,a=r;if(a===-1&&i!==-1){let l=s.parent[i];l!==e.g&&l!==-1&&(a=l)}a!==-1&&a!==e.g&&s.firstChild[a]!==-1&&(ko(e,a),We(e,a,"branch"),i!==-1&&s.firstChild[i]===-1&&(ma(e,i),We(e,i,"leaf")))}function ko(e,t){Go(e,t,()=>{e.e&&an(e,e.e)})}function ma(e,t){let n=e.r,o=(n.x0[t]+n.x1[t])/2,i=(n.y0[t]+n.y1[t])/2;Eo(e,t,{cx:o,cy:i},()=>It(e))}function ln(e){Wo(e)}var No=class extends St{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"Pt",null);c(this,"Et",null);c(this,"Wo",0);c(this,"I",-1);c(this,"te",-1);c(this,"ke",[]);c(this,"le",null);c(this,"ht",!0);c(this,"un",0);c(this,"nt",new Map);c(this,"v",null);c(this,"qn",!1);c(this,"Fe",null);c(this,"Ne",null)}tooltipCallbacks(){return{onHover:(n,o)=>aa(this,n,o),onLeave:()=>{this.I!==-1&&this.te===-1&&(this.I=-1,this.e&&an(this,this.e))},onClickPre:(n,o)=>(la(this,n,o),!0),onDblClick:(n,o)=>ua(this,n,o)}}async uploadAndRender(n,o,i,r){if(this.e=n,i===0){let s=this.B;if(this.K=s[0]||Ao(o)||"",this.s=s[1]||"",!this.s)this.pe="empty";else{let a=this.Pe[this.s],l=a==="float"||a==="integer"||a==="date"||a==="datetime";this.pe=l?"numeric":"series"}this.I=-1,this.te=-1,this.ke=[],this.nt.clear(),this.v=null,this.Fe=null,this.Ne=null,this.Wo=0,this.W.clearHover(),this.W.invalidatePin(),ln(this),this.le?.close(),this.le=null,this.ht=!0,this.un++,tn(this)}nn(this,o),on(this),this.Y!==-1&&await this.requestRender(n)}Ft(n){this.Y!==-1&&(this.e=n,an(this,n))}destroyInternal(){ln(this),this.le?.close(),this.le=null;let n=this.e?.gl;n&&(this.Pt&&n.deleteBuffer(this.Pt),this.Et&&n.deleteBuffer(this.Et)),this.Pt=null,this.Et=null,this.o=null,this.F=null,this.Y=-1,this.g=-1,this.ae=[],this.It.clear(),this.X=null,this.ee=0,this.ke=[],this.nt.clear(),this.v=null,this.Fe=null,this.Ne=null}};zt();we();ue();var fa=4,un=30;function pm(e,t){let n=0,o=e.depth[t],i=new Int32Array(128);i[0]=t;let r=1;for(;r>0;){r--;let s=i[r],a=e.depth[s]-o;a>n&&(n=a);for(let l=e.firstChild[s];l!==-1;l=e.nextSibling[l]){if(r>=i.length){let u=new Int32Array(i.length*2);u.set(i),i=u}i[r++]=l}}return n}function lr(e,t,n){let o=e.depth[t],i=Math.max(1,pm(e,t)),s=Math.max(0,n-un)/i;e.a0[t]=0,e.a1[t]=2*Math.PI,e.r0[t]=0,e.r1[t]=un,ca(e,t,0,2*Math.PI,un,s,o)}function ca(e,t,n,o,i,r,s){let a=e.value[t];if(a<=0)return;let l=o-n,u=n;for(let m=e.firstChild[t];m!==-1;m=e.nextSibling[m]){let f=e.value[m];if(f<=0)continue;let b=f/a,p=u,d=u+l*b;u=d;let g=i,h=i+r;e.a0[m]=p,e.a1[m]=d,e.r0[m]=g,e.r1[m]=h;let y=d-p,x=(g+h)/2;y*x*r<fa||e.firstChild[m]!==-1&&ca(e,m,p,d,h,r,s)}}function da(e,t){e.ee=ur(e,t,0)}function ur(e,t,n){let o=e.r,i=o.a0,r=o.a1,s=o.r0,a=o.r1,l=o.firstChild,u=o.nextSibling,m=o.value;(!e.X||e.X.length<o.count)&&(e.X=new Int32Array(o.count));let f=e.X,b=n,p=new Int32Array(128);p[0]=t;let d=1;for(;d>0;){d--;let g=p[d];if(m[g]<=0)continue;f[b++]=g;let h=r[g]-i[g],y=(s[g]+a[g])/2,x=h*y,C=a[g]-s[g];if(!(x*C<fa))for(let _=l[g];_!==-1;_=u[_]){if(d>=p.length){let v=new Int32Array(p.length*2);v.set(p),p=v}p[d++]=_}}return b}Yt();var Uo=32,bm=28,gm=90;function Oo(e,t){if(e.l.length===0)return{centerX:e.ot,centerY:e.it};let n=e.r;for(let o of e.l){let i=t;for(;i!==-1;){if(i===o.drillRoot)return{centerX:o.centerX,centerY:o.centerY};i=n.parent[i]}}return{centerX:e.ot,centerY:e.it}}function mn(e,t){if(e.g===-1)return;let n=t.gl,o=t.cssWidth,i=t.cssHeight;if(o<=0||i<=0)return;let r=e.P.length>0&&e.N.facet_mode==="grid",s=e.pe==="series"?e.u.size>1:e.pe==="numeric"&&e.c<e.f,a=!r&&e.ae.length>1?bm:0,l=s?gm:0;if(r)hm(e,o,i,l);else{e.v=null,e.l=[];let d=o-l,g=i-a;e.ot=d/2,e.it=a+g/2,e.Go=Math.max(0,Math.min(d,g)/2-4),lr(e.r,e.g,e.Go),da(e,e.g)}ym(e,t);let u=e.T(),m=u.H,f=fe(u.Ie,m,Math.max(1,e.u.size));if(e.D){let d=e.D.getContext("2d");d&&d.clearRect(0,0,e.D.width,e.D.height)}let b=t.dpr;e.ht=!0,xm(e,n,m,f,u.Ao,b),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.useProgram(e.o);let p=e.F;if(n.uniform2f(p.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(p.u_border_px,u.fi*b),e.l.length>0)for(let d of e.l)d.instanceCount!==0&&(n.uniform2f(p.u_center,d.centerX*b,d.centerY*b),pa(e,n,t,d.instanceStart,d.instanceCount));else n.uniform2f(p.u_center,e.ot*b,e.it*b),pa(e,n,t,0,e.ko);qe(e)}function hm(e,t,n,o){let i=e.r,r=[],s=[];for(let f=i.firstChild[e.Y];f!==-1;f=i.nextSibling[f])i.value[f]<=0||(r.push(f),s.push(i.name[f]));let a=Math.max(1,t-o),l=Ye(s,{cssWidth:a,cssHeight:n,hasLegend:!1,xAxis:"none",yAxis:"none",gap:e.N.facet_padding});e.v=l;let u=[],m=0;for(let f=0;f<r.length;f++){let b=r[f],p=l.cells[f];if(!p)continue;let d=i.name[b],g=e.nt.get(d)??b,h=p.layout.t,y=h.x+h.width/2,x=h.y+h.height/2,C=Math.max(0,Math.min(h.width,h.height)/2-4);lr(i,g,C);let _=ur(e,g,m),v=m,A=_-m;u.push({label:d,centerX:y,centerY:x,maxRadius:C,drillRoot:g,instanceStart:v,instanceCount:A,nodeStart:v,nodeCount:A}),m=_}e.ee=m,e.l=u,u.length>0&&(e.ot=u[0].centerX,e.it=u[0].centerY,e.Go=u[0].maxRadius)}function ym(e,t){if(e.o)return;let n=t.gl,o=j(t,"sunburst-arc",Wn,Gn,["u_center","u_resolution","u_border_px"],["a_strip_t","a_side","a_angles","a_radii","a_color"]);e.o=o.program,e.F=o;let i=new Float32Array((Uo+1)*2*2);for(let r=0;r<=Uo;r++){let s=r/Uo,a=r*4;i[a+0]=s,i[a+1]=0,i[a+2]=s,i[a+3]=1}e.jt=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.jt),n.bufferData(n.ARRAY_BUFFER,i,n.STATIC_DRAW),e.Zt=n.createBuffer()}function xm(e,t,n,o,i,r){let s=e.r,a=e.X,l=e.l.length>0,u=l?e.l.reduce((p,d)=>p+d.instanceCount,0):e.ee,m=new Float32Array(u*8),f=0,b=(p,d,g)=>{let h=f;for(let y=p;y<d;y++){let x=a[y];if(x===g)continue;let C=s.a0[x],_=s.a1[x],v=s.r0[x],A=s.r1[x];if(_<=C||A<=v)continue;let w=Fo(e,x,n,o,i),L=f*8;m[L+0]=C,m[L+1]=_,m[L+2]=v*r,m[L+3]=A*r,m[L+4]=w[0],m[L+5]=w[1],m[L+6]=w[2],m[L+7]=w[3],f++}return{rangeStart:h,rangeCount:f-h}};if(l)for(let p of e.l){let d=p.instanceStart,g=d+p.instanceCount,{rangeStart:h,rangeCount:y}=b(d,g,p.drillRoot);p.instanceStart=h,p.instanceCount=y}else b(0,e.ee,e.g);e.ko=f,t.bindBuffer(t.ARRAY_BUFFER,e.Zt),t.bufferData(t.ARRAY_BUFFER,m.subarray(0,f*8),t.DYNAMIC_DRAW)}function pa(e,t,n,o,i){if(i===0)return;let r=e.F;t.bindBuffer(t.ARRAY_BUFFER,e.jt);let s=2*Float32Array.BYTES_PER_ELEMENT;t.enableVertexAttribArray(r.a_strip_t),t.vertexAttribPointer(r.a_strip_t,1,t.FLOAT,!1,s,0),t.enableVertexAttribArray(r.a_side),t.vertexAttribPointer(r.a_side,1,t.FLOAT,!1,s,Float32Array.BYTES_PER_ELEMENT);let a=q(n),{setDivisor:l}=a;l(r.a_strip_t,0),l(r.a_side,0),t.bindBuffer(t.ARRAY_BUFFER,e.Zt);let u=8*Float32Array.BYTES_PER_ELEMENT,m=Float32Array.BYTES_PER_ELEMENT,f=o*u;t.enableVertexAttribArray(r.a_angles),t.vertexAttribPointer(r.a_angles,2,t.FLOAT,!1,u,f),l(r.a_angles,1),t.enableVertexAttribArray(r.a_radii),t.vertexAttribPointer(r.a_radii,2,t.FLOAT,!1,u,f+2*m),l(r.a_radii,1),t.enableVertexAttribArray(r.a_color),t.vertexAttribPointer(r.a_color,4,t.FLOAT,!1,u,f+4*m),l(r.a_color,1),a.drawArraysInstanced(t.TRIANGLE_STRIP,0,2*(Uo+1),i),l(r.a_angles,0),l(r.a_radii,0),l(r.a_color,0)}function qe(e){if(!e.d||e.g===-1)return;let t=e.e;if(!t)return;let{dpr:n,cssWidth:o,cssHeight:i}=t;So(e,e.d,n,o,i,r=>Cm(e,r,n,o,i),e.I!==-1?r=>{_m(r,e,e.I),vm(e,r,e.I,o,i,e.T().fontFamily)}:null)}function Cm(e,t,n,o,i){let r=e.d;t.clearRect(0,0,r.width,r.height),t.save(),t.scale(n,n);let s=e.T(),{fontFamily:a,xe:l,In:u}=s,m=s.H,f=fe(s.Ie,m,Math.max(1,e.u.size)),b=e.r,p=e.X,d=e.ee,g=e.l.length>0;if(g)for(let y of e.l){let x=y.nodeStart+y.nodeCount;for(let C=y.nodeStart;C<x;C++){let _=p[C];_!==y.drillRoot&&ba(e,t,_,a,m,f,y.centerX,y.centerY)}}else for(let y=0;y<d;y++){let x=p[y];x!==e.g&&ba(e,t,x,a,m,f,e.ot,e.it)}let h=Math.max(0,un-s.fi*.5);if(t.fillStyle=u,t.textAlign="center",t.textBaseline="middle",g){for(let y of e.l)if(t.beginPath(),t.fillStyle=u,t.arc(y.centerX,y.centerY,h,0,2*Math.PI),t.fill(),t.fillStyle=l,t.font=`11px ${a}`,t.fillText(b.name[y.drillRoot],y.centerX,y.centerY),e.v){let x=e.v.cells.find(C=>C.label===y.label);x?.titleRect&&(t.fillStyle=l,t.font=`11px ${a}`,t.textBaseline="middle",t.fillText(y.label,x.titleRect.x+x.titleRect.width/2,x.titleRect.y+x.titleRect.height/2))}}else t.beginPath(),t.arc(e.ot,e.it,h,0,2*Math.PI),t.fill(),t.fillStyle=l,t.font=`11px ${a}`,t.fillText(b.name[e.g],e.ot,e.it);!g&&e.ae.length>1&&Do(e,t,o,a,l),Io(e,r,f,m,s,o,i,g?e.v?.legendRect??null:null),t.restore()}function ba(e,t,n,o,i,r,s,a){let l=e.r,u=l.a0[n],m=l.a1[n],f=l.r0[n],b=l.r1[n],p=b-f,d=(f+b)/2,h=(m-u)*d;if(p<16||h<8)return;let y=Math.min(11,Math.floor(h*.7));if(y<7)return;t.font=`${y}px ${o}`;let x=l.name[n],C=p-4,_=x;if(t.measureText(_).width>C){for(;_.length>1;)if(_=_.slice(0,-1),t.measureText(_+"\\u2026").width<=C){_+="\\u2026";break}}if(_.length<2)return;let v=(u+m)/2;t.save(),t.translate(s,a);let A=v,w=v>Math.PI/2&&v<3*Math.PI/2;e.vi==="upright"&&w&&(A+=Math.PI),t.rotate(A);let L=sn(e,n,i,r),T=Mo(L[0],L[1],L[2]);t.fillStyle=T>.5?"rgba(0,0,0,0.85)":"rgba(255,255,255,0.9)",t.textAlign="center",t.textBaseline="middle";let F=e.vi==="upright"&&w?-d:d;t.fillText(_,F,0),t.restore()}function _m(e,t,n){let o=t.r,i=o.a0[n],r=o.a1[n],s=o.r0[n],a=o.r1[n],{centerX:l,centerY:u}=Oo(t,n);e.strokeStyle="rgba(255,255,255,0.9)",e.lineWidth=2,e.beginPath(),e.arc(l,u,a,i,r),e.arc(l,u,s,r,i,!0),e.closePath(),e.stroke()}function vm(e,t,n,o,i,r){let s=e.r,a=(s.a0[n]+s.a1[n])/2,l=(s.r0[n]+s.r1[n])/2,{centerX:u,centerY:m}=Oo(e,n),f=u+Math.cos(a)*l,b=m+Math.sin(a)*l;Bo(e,t,n,f,b,o,i,r)}function ga(e,t,n){if(e.l.length===0)return{centerX:e.ot,centerY:e.it,drillRoot:e.g};for(let o of e.l){let i=t-o.centerX,r=n-o.centerY;if(!(Math.sqrt(i*i+r*r)>o.maxRadius+4))return{centerX:o.centerX,centerY:o.centerY,drillRoot:o.drillRoot}}return null}function Am(e,t,n){let o=e.r,i=t;for(;i!==-1;){if(i===n)return!0;i=o.parent[i]}return!1}function ha(e,t,n){let o=ga(e,t,n);if(!o)return-1;let i=e.r,r=e.X,s=e.ee;if(!r)return-1;let a=t-o.centerX,l=n-o.centerY,u=Math.sqrt(a*a+l*l),m=Math.atan2(l,a);if(m<0&&(m+=2*Math.PI),u<i.r1[e.Y]+.001&&o.drillRoot!==e.Y)return o.drillRoot;let f=e.l.length>0;for(let b=0;b<s;b++){let p=r[b];if(p===o.drillRoot||f&&!Am(e,p,o.drillRoot))continue;let d=i.a0[p],g=i.a1[p],h=i.r0[p],y=i.r1[p];if(!(u<h||u>y)&&!(m<d||m>g))return p}return-1}function ya(e,t,n){if(e.te!==-1)return;for(let r of e.ke)if(t>=r.x0&&t<=r.x1&&n>=r.y0&&n<=r.y1){e.L.setCursor("pointer"),e.I!==-1&&(e.I=-1,qe(e));return}let o=ha(e,t,n),i=e.r;if(e.L.setCursor(o!==-1&&i.firstChild[o]!==-1?"pointer":"default"),o!==e.I){if(e.I=o,o!==-1){let r=e.W.beginHover(o);mt(e,o).then(s=>{e.W.commitHover(r,s)&&qe(e)})}else e.W.clearHover();qe(e)}}function xa(e,t,n){if(e.te!==-1){Vo(e),e.emitUnselect();return}for(let s of e.ke)if(t>=s.x0&&t<=s.x1&&n>=s.y0&&n<=s.y1){s.nodeId!==e.g&&(mr(e,s.nodeId),e.emitUnselect());return}let o=e.r,i=ga(e,t,n);if(i){let s=t-i.centerX,a=n-i.centerY;if(Math.sqrt(s*s+a*a)<o.r1[e.Y]+.001){let u=o.parent[i.drillRoot];if(u!==-1&&u!==e.Y)mr(e,u),e.emitUnselect();else if(e.l.length>0){let m=e.l.find(f=>f.drillRoot===i.drillRoot);m&&(e.nt.delete(m.label),e.emitUnselect()),e.e&&mn(e,e.e)}return}}let r=ha(e,t,n);r!==-1&&(o.firstChild[r]!==-1?(mr(e,r),We(e,r,"branch")):(Lm(e,r),We(e,r,"leaf")))}function mr(e,t){Go(e,t,()=>{e.e&&mn(e,e.e)})}function Lm(e,t){let n=e.r,o=(n.a0[t]+n.a1[t])/2,i=(n.r0[t]+n.r1[t])/2,{centerX:r,centerY:s}=Oo(e,t),a=r+Math.cos(o)*i,l=s+Math.sin(o)*i;Eo(e,t,{cx:a,cy:l},()=>qe(e))}function Vo(e){Wo(e)}var Ho=class extends St{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"jt",null);c(this,"Zt",null);c(this,"ko",0);c(this,"vi","upright");c(this,"ot",0);c(this,"it",0);c(this,"Go",0);c(this,"I",-1);c(this,"te",-1);c(this,"ke",[]);c(this,"le",null);c(this,"ht",!0);c(this,"un",0);c(this,"v",null);c(this,"nt",new Map);c(this,"l",[])}tooltipCallbacks(){return{onHover:(n,o)=>ya(this,n,o),onLeave:()=>{this.I!==-1&&this.te===-1&&(this.I=-1,qe(this))},onClickPre:(n,o)=>(xa(this,n,o),!0)}}async uploadAndRender(n,o,i,r){if(this.e=n,i===0){let s=this.B;if(this.K=s[0]||Ao(o)||"",this.s=s[1]||"",!this.s)this.pe="empty";else{let a=this.Pe[this.s],l=a==="float"||a==="integer"||a==="date"||a==="datetime";this.pe=l?"numeric":"series"}this.I=-1,this.te=-1,this.ke=[],this.nt.clear(),this.v=null,this.l=[],this.ko=0,this.W.clearHover(),this.W.invalidatePin(),Vo(this),this.le?.close(),this.le=null,this.ht=!0,this.un++,tn(this)}nn(this,o),on(this),this.Y!==-1&&await this.requestRender(n)}Ft(n){this.Y!==-1&&(this.e=n,mn(this,n))}destroyInternal(){Vo(this),this.le?.close(),this.le=null;let n=this.e?.gl;n&&(this.jt&&n.deleteBuffer(this.jt),this.Zt&&n.deleteBuffer(this.Zt)),this.jt=null,this.Zt=null,this.o=null,this.F=null,this.Y=-1,this.g=-1,this.ae=[],this.It.clear(),this.X=null,this.ee=0,this.ke=[],this.v=null,this.nt.clear(),this.l=[]}};Vt();var Pt=class extends Le{constructor(){super(...arguments);c(this,"Se",[]);c(this,"ne",0);c(this,"rt",0);c(this,"o",null);c(this,"G",null);c(this,"a",null);c(this,"Re",null);c(this,"Me",null);c(this,"Ge",null);c(this,"Nn",!0)}getZoomConfig(){return{lockAxis:"y"}}};Ht();function Yo(e,t=.5,n=.1){let o=t/Math.max(1,e),i=o*(1-n)/2;return{slotWidth:o,halfWidth:i}}function Ca(e,t,n="bar"){let o=t?.[e]?.chart_type?.toLowerCase?.();return o==="bar"||o==="line"||o==="scatter"||o==="area"?o:n}function _a(e,t,n){let o=n?.[e]?.stack;return typeof o=="boolean"?o:t==="bar"||t==="area"}function fr(e,t){return t?.[e]?.alt_axis===!0}function va(e,t,n){if(t!=="line"&&t!=="area")return"skip";let o=n?.[e]?.interpolate;return o===void 0||t==="area"?"solid":o}var Aa=50,ft=0,zo=1;function Xo(){return{count:0,catIdx:new Int32Array(0),seriesId:new Int32Array(0),axis:new Uint8Array(0),chartType:new Uint8Array(0),xCenter:new Float64Array(0),halfWidth:new Float64Array(0),y0:new Float64Array(0),y1:new Float64Array(0)}}function Tm(e,t){return e&&e.catIdx.length>=t?(e.count=0,e):{count:0,catIdx:new Int32Array(t),seriesId:new Int32Array(t),axis:new Uint8Array(t),chartType:new Uint8Array(t),xCenter:new Float64Array(t),halfWidth:new Float64Array(t),y0:new Float64Array(t),y1:new Float64Array(t)}}function fn(e,t,n,o,i){let r=e.seriesId[t],s=e.catIdx[t];return{catIdx:s,aggIdx:Math.floor(r/n),splitIdx:r%n,seriesId:r,xCenter:e.xCenter[t],halfWidth:e.halfWidth[t],y0:e.y0[t],y1:e.y1[t],value:o[s*i+r],axis:e.axis[t],chartType:e.chartType[t]===ft?"bar":"area"}}function La(e,t){return e&&e.length>=t?e:new Float64Array(Math.max(t,e?.length??0))}function Ta(e,t){e[t>>3]|=1<<(t&7)}function wa(e){let{columns:t,numRows:n,columnSlots:o,groupBy:i,splitBy:r,groupByTypes:s,columnsConfig:a,defaultChartType:l,autoAltYAxis:u,bandInnerFrac:m,barInnerPad:f,includeZero:b,scratchBars:p,scratchPosStack:d,scratchNegStack:g}=e,h=Dt(i,s),y={aggregates:[],splitPrefixes:[],rowPaths:[],numCategories:0,rowOffset:0,axisMode:h,numericCategoryDomain:null,categoryPositions:null,series:[],bars:Xo(),posStack:d??null,negStack:g??null,samples:new Float32Array(0),sampleValid:new Uint8Array(0),leftDomain:{min:0,max:0},rightDomain:null,hasRightAxis:!1,leftValueAxisMode:"numeric",rightValueAxisMode:null,leftValueCategoryDomain:null,rightValueCategoryDomain:null},x=o.filter(R=>!!R);if(x.length===0)return y;let C=[];if(r.length>0){for(let R of Ve(t,[],x))R.colNames.size>0&&C.push(R.prefix);C.length===0&&C.push("")}else C.push("");let _=i.map(R=>s[R]??"string"),{rowPaths:v,numCategories:A,rowOffset:w}=Bt(t,n,i.length,_);if(A===0)return{...y,aggregates:x,splitPrefixes:C,rowPaths:v,rowOffset:w};let L=[],T=x.length,F=C.length;for(let R=0;R<T;R++)for(let D=0;D<F;D++){let I=x[R],G=C[D],Y=G===""?I:`${G}${T>1?` | ${I}`:""}`,V=Ca(I,a,l),Z=_a(I,V,a),ce=va(I,V,a);L.push({seriesId:R*F+D,aggIdx:R,splitIdx:D,aggName:I,splitKey:G,label:Y,color:[.5,.5,.5],axis:0,chartType:V,stack:Z,start:-1,end:-1,interpolateMode:ce})}let W=[];for(let R=0;R<T;R++)W.push(b?{min:0,max:0}:{min:1/0,max:-1/0});let P=A,B=L.length,k=P*T,N=La(d??null,k),O=La(g??null,k);N.fill(0,0,k),O.fill(0,0,k);let U=new Float32Array(P*B),S=new Uint8Array(P*B+7>>3),X=null,H=null,z=1;if(h.mode==="numeric"&&P>0){let R=t.get("__ROW_PATH_0__"),D=ut(R?.values,P,w,i[0]??"",h.numericType==="date"||h.numericType==="datetime");D&&(X=D.categoryPositions,H=D.numericCategoryDomain,z=D.numericCategoryDomain.bandWidth)}let te=Yo(T,m,f),xe=te.slotWidth*z,Ce=te.halfWidth*z,_e=new Float64Array(T),Re=(T-1)/2;for(let R=0;R<T;R++)_e[R]=(R-Re)*xe;let Ne=new Array(T*F),kt=new Array(T*F);for(let R=0;R<T;R++){let D=x[R];for(let I=0;I<F;I++){let G=C[I],Y=G===""?D:`${G}|${D}`,V=t.get(Y),Z=R*F+I;Ne[Z]=V?.values??null,kt[Z]=V?.valid??null}}let dt=new Array(T),Cn=new Array(T),pe=!1;for(let R=0;R<T;R++){let D=x[R],I=C[0],G=I===""?D:`${I}|${D}`;dt[R]=t.get(G)?.type==="string",Cn[R]=fr(D,a)?1:0,dt[R]&&(pe=!0)}let ne=[],K=[],oe=[],Me=[];for(let R=0;R<T;R++){let D=x[R];for(let I=0;I<F;I++){let G=C[I],Y=G===""?D:`${G}|${D}`,V=R*F+I,Z={name:Y,type:dt[R]?"string":"numeric",data:t.get(Y)};Cn[R]===0?(ne.push(Z),oe.push(V)):(K.push(Z),Me.push(V))}}let tt=ne.map(R=>R.name).filter((R,D,I)=>I.indexOf(R)===D).join(", "),Wr=K.map(R=>R.name).filter((R,D,I)=>I.indexOf(R)===D).join(", "),Fe=ne.length>0?nr(ne,n,w,tt):null,Se=K.length>0?nr(K,n,w,Wr):null,ie=new Array(T*F).fill(null);if(Fe)for(let R=0;R<oe.length;R++)ie[oe[R]]=Fe.perColumnSlots[R];if(Se)for(let R=0;R<Me.length;R++)ie[Me[R]]=Se.perColumnSlots[R];let _n=P*T*F,$=Tm(p??null,_n),J=0;for(let R=0;R<P;R++){let D=R+w;for(let I=0;I<T;I++)for(let G=0;G<F;G++){let Y=I*F+G,V=ie[Y];if(V){let re=I*F+G,be=R*B+re;U[be]=V[R],Ta(S,be);continue}let Z=Ne[Y];if(!Z)continue;let ce=kt[Y];if(ce&&!(ce[D>>3]>>(D&7)&1))continue;let Q=Z[D];if(!isFinite(Q))continue;let bt=I*F+G,ot=R*B+bt;U[ot]=Q,Ta(S,ot)}}for(let R=0;R<B;R++){let D=-1,I=-1;for(let G=0;G<P;G++){let Y=G*B+R;S[Y>>3]>>(Y&7)&1&&(D===-1&&(D=G),I=G)}L[R].start=D,L[R].end=I}for(let R=0;R<B;R++){let D=L[R];if(!(D.start<0)&&D.interpolateMode!=="skip"){if(D.chartType==="line"){let I=D.start;for(let G=D.start+1;G<=D.end;G++){let Y=G*B+R;if(S[Y>>3]>>(Y&7)&1){if(G-I>1){let Z=I*B+R,ce=U[Z],Q=U[Y],bt=X?X[I]:I,re=(X?X[G]:G)-bt;for(let be=1;be<G-I;be++){let me=I+be,ge=X?X[me]:me,wl=re===0?0:(ge-bt)/re;U[me*B+R]=ce+(Q-ce)*wl}}I=G}}}else if(D.chartType==="area"){for(let I=0;I<D.start;I++)U[I*B+R]=0;for(let I=D.end+1;I<P;I++)U[I*B+R]=0;D.start=0,D.end=P-1}}}for(let R=0;R<P;R++){let D=X?X[R]:R;for(let I=0;I<T;I++){let G=_e[I],Y=D+G,V=W[I];for(let Z=0;Z<F;Z++){let ce=I*F+Z,Q=L[ce];if(R<Q.start||R>Q.end)continue;let bt=Q.chartType==="line"||Q.chartType==="area"&&Q.interpolateMode!=="skip",ot=R*B+ce;if(!bt&&!(S[ot>>3]>>(ot&7)&1))continue;let re=U[ot];if((Q.chartType==="bar"||Q.chartType==="area")&&Q.stack){if(re===0&&(Q.chartType!=="area"||Q.interpolateMode==="skip"))continue;let be=R*T+I,me,ge;re>=0?(me=N[be],ge=me+re,N[be]=ge):(me=O[be],ge=me+re,O[be]=ge),me<V.min&&(V.min=me),ge<V.min&&(V.min=ge),me>V.max&&(V.max=me),ge>V.max&&(V.max=ge),$.catIdx[J]=R,$.seriesId[J]=ce,$.axis[J]=0,$.chartType[J]=Q.chartType==="bar"?ft:zo,$.xCenter[J]=Y,$.halfWidth[J]=Ce,$.y0[J]=me,$.y1[J]=ge,J++}else if(re<V.min&&(V.min=re),re>V.max&&(V.max=re),b&&(0<V.min&&(V.min=0),0>V.max&&(V.max=0)),Q.chartType==="bar"||Q.chartType==="area"){if(re===0)continue;$.catIdx[J]=R,$.seriesId[J]=ce,$.axis[J]=0,$.chartType[J]=Q.chartType==="bar"?ft:zo,$.xCenter[J]=Y,$.halfWidth[J]=Ce,$.y0[J]=0,$.y1[J]=re,J++}}}}$.count=J;let pt=!1;if(u&&T>=2&&!pe){let R=new Array(T),D=0,I=1/0;for(let G=0;G<T;G++){let Y=W[G],V=Math.max(Math.abs(Y.min),Math.abs(Y.max),1e-12);R[G]=V,V>D&&(D=V),V<I&&(I=V)}if(D/I>Aa){let G=D/Math.sqrt(Aa);for(let Y=0;Y<T;Y++)if(R[Y]<G)for(let Z of L)Z.aggIdx===Y&&(Z.axis=1);for(let Y=0;Y<$.count;Y++)$.axis[Y]=L[$.seriesId[Y]].axis;pt=L.some(Y=>Y.axis===1)}}let Gr=!1;for(let R=0;R<T;R++)if(fr(x[R],a))for(let D of L)D.aggIdx===R&&(D.axis=1,Gr=!0);if(Gr){for(let R=0;R<$.count;R++)$.axis[R]=L[$.seriesId[R]].axis;pt=!0}let De=b?{min:0,max:0}:{min:1/0,max:-1/0},nt=b?{min:0,max:0}:{min:1/0,max:-1/0};for(let R=0;R<$.count;R++){let D=$.axis[R]===0?De:nt,I=$.y0[R],G=$.y1[R];I<D.min&&(D.min=I),G<D.min&&(D.min=G),I>D.max&&(D.max=I),G>D.max&&(D.max=G)}for(let R=0;R<B;R++){let D=L[R];if(D.stack&&(D.chartType==="bar"||D.chartType==="area")||D.start<0)continue;let I=D.chartType==="line"||D.chartType==="area"&&D.interpolateMode!=="skip",G=D.axis===0?De:nt;for(let Y=D.start;Y<=D.end;Y++){let V=Y*B+R;if(!I&&!(S[V>>3]>>(V&7)&1))continue;let Z=U[V];Z<G.min&&(G.min=Z),Z>G.max&&(G.max=Z)}}(!isFinite(De.min)||!isFinite(De.max)||De.min===0&&De.max===0)&&(De.min=0,De.max=1);let Cl=!isFinite(nt.min)||!isFinite(nt.max)||nt.min===0&&nt.max===0,_l=pt?Cl?{min:0,max:1}:nt:null,vl=Fe?"category":"numeric",Al=pt?Se?"category":"numeric":null,Ll=Fe&&Fe.domain.numRows>0?{min:0,max:Math.max(0,Fe.domain.numRows-1)}:De,Tl=Se&&Se.domain.numRows>0&&pt?{min:0,max:Math.max(0,Se.domain.numRows-1)}:_l;return{aggregates:x,splitPrefixes:C,rowPaths:v,numCategories:A,rowOffset:w,axisMode:h,numericCategoryDomain:H,categoryPositions:X,series:L,bars:$,posStack:N,negStack:O,samples:U,sampleValid:S,leftDomain:Ll,rightDomain:Tl,hasRightAxis:pt,leftValueAxisMode:vl,rightValueAxisMode:Al,leftValueCategoryDomain:Fe?.domain??null,rightValueCategoryDomain:Se?.domain??null}}He();jt();yt();we();var Ra=ft;function Ma(e,t,n){if(e.mn===0)return;let o=e.F,i=q(n),{setDivisor:r}=i;t.bindBuffer(t.ARRAY_BUFFER,e.G),t.enableVertexAttribArray(o.a_corner),t.vertexAttribPointer(o.a_corner,2,t.FLOAT,!1,0,0),r(o.a_corner,0),Ze(n,i,o.a_x_center,"bar_x",1)&&Ze(n,i,o.a_half_width,"bar_hw",1)&&Ze(n,i,o.a_y0,"bar_y0",1)&&Ze(n,i,o.a_y1,"bar_y1",1)&&Ze(n,i,o.a_color,"bar_color",3)&&Ze(n,i,o.a_series_id,"bar_sid",1)&&Ze(n,i,o.a_axis,"bar_axis",1)&&i.drawArraysInstanced(t.TRIANGLE_STRIP,0,4,e.mn),r(o.a_x_center,0),r(o.a_half_width,0),r(o.a_y0,0),r(o.a_y1,0),r(o.a_color,0),r(o.a_series_id,0),r(o.a_axis,0)}var $o=10;function jo(e){return e.Ue>=0?fn(e.ue,e.Ue,e.ze.length,e.Xe,e.p.length):e.Oe}function cr(e,t,n){if(!e.a)return;let o=e.a,i=o.t;if(t<i.x||t>i.x+i.width||n<i.y||n>i.y+i.height){Rm(e);return}let r=o.Z,s=o.ie,a=o.J,l=o.re,u,m,f,b;if(e.st){let y=r,x=s,C=Math.min(a,l),_=Math.max(a,l),v=y+(t-i.x)/i.width*(x-y);u=C+(n-i.y)/i.height*(_-C),m=v,f=i.height/(_-C),b=i.width/(x-y)}else u=r+(t-i.x)/i.width*(s-r),m=l-(n-i.y)/i.height*(l-a),f=i.width/(s-r),b=i.height/(l-a);let p=e.fn&&e.oe&&!e.st?e.oe.max-(n-i.y)/i.height*(e.oe.max-e.oe.min):m,d=e.fn&&e.oe&&!e.st?i.height/(e.oe.max-e.oe.min):b,g=-1,h=null;if(h=Fa(e,"scatter",u,m,p,f,b,d),h||(h=Fa(e,"line",u,m,p,f,b,d)),!h){let y=e.ue,x=y.chartType,C=y.seriesId,_=y.xCenter,v=y.halfWidth,A=y.y0,w=y.y1,L=y.axis,T=e.q;for(let F=0;F<y.count;F++){if(x[F]!==ft||T.has(C[F]))continue;let W=_[F],P=v[F];if(u<W-P||u>W+P)continue;let B=L[F]===0?m:p,k=A[F],N=w[F],O=k<N?k:N,U=k<N?N:k;if(B>=O&&B<=U){g=F;break}}}if(g<0&&!h){let y=wm(e,u,m,p);y&&(y.idx>=0?g=y.idx:h=y.bar)}Mm(e,g,h)}function Fa(e,t,n,o,i,r,s,a){let l=e.ne,u=e.p.length;if(l===0||u===0)return null;let m=e.Xe,f=e.Wt,p=$o*$o,d=null,g=e.$e;for(let h of e.p){if(h.chartType!==t||e.q.has(h.seriesId))continue;let y=h.axis===1?i:o,x=h.axis===1?a:s,C=g?0:Math.max(0,Math.floor(n-$o/r)),_=g?l-1:Math.min(l-1,Math.ceil(n+$o/r));for(let v=C;v<=_;v++){let A=v*u+h.seriesId;if(!(f[A>>3]>>(A&7)&1))continue;let w=m[A],L=g?g[v]:v,T=(L-n)*r,F=(w-y)*x,W=T*T+F*F;W<p&&(p=W,d={catIdx:v,aggIdx:h.aggIdx,splitIdx:h.splitIdx,seriesId:h.seriesId,xCenter:L,halfWidth:0,y0:0,y1:w,value:w,axis:h.axis,chartType:"bar"})}}return d}function wm(e,t,n,o){let i=Math.round(t);if(i<0||i>=e.ne||Math.abs(t-i)>.5)return null;let r=e.p.length,s=e.Xe,a=e.Wt,l=e.ue,u=l.chartType,m=l.catIdx,f=l.seriesId,b=l.axis,p=l.y0,d=l.y1;for(let g=0;g<l.count;g++){if(u[g]!==zo||m[g]!==i||e.q.has(f[g]))continue;let h=b[g]===0?n:o,y=p[g],x=d[g],C=y<x?y:x,_=y<x?x:y;if(h>=C&&h<=_)return{idx:g,bar:null}}for(let g of e.p){if(g.chartType!=="area"||g.stack||e.q.has(g.seriesId))continue;let h=i*r+g.seriesId;if(!(a[h>>3]>>(h&7)&1))continue;let y=s[h],x=g.axis===1?o:n,C=Math.min(0,y),_=Math.max(0,y);if(x>=C&&x<=_)return{idx:-1,bar:{catIdx:i,aggIdx:g.aggIdx,splitIdx:g.splitIdx,seriesId:g.seriesId,xCenter:i,halfWidth:.5,y0:0,y1:y,value:y,axis:g.axis,chartType:"area"}}}return null}function Rm(e){(e.Ue!==-1||e.Oe!==null)&&(e.Ue=-1,e.Oe=null,e.e&&Ke(e,e.e))}function Mm(e,t,n){let o=e.Ue===t,i=(e.Oe?.seriesId??-1)===(n?.seriesId??-1)&&(e.Oe?.catIdx??-1)===(n?.catIdx??-1);o&&i||(e.Ue=t,e.Oe=n,e.e&&Ke(e,e.e))}function Sa(e,t,n){if(e.Kn.length===0)return!1;for(let o of e.Kn){let i=o.rect;if(t>=i.x&&t<=i.x+i.width&&n>=i.y&&n<=i.y+i.height)return e.q.has(o.seriesId)?e.q.delete(o.seriesId):e.q.add(o.seriesId),e.yt=null,e.Jn=!1,e.Qn=null,e.e&&(Zo(e,e.e),qo(e,e.e),Ke(e,e.e)),!0}return!1}function dr(e,t){let n=[],o=e.p[t.seriesId],i=Fm(e,t.catIdx);i&&n.push(i);let r=e.getColumnFormatter(o.aggName,"value");return n.push(`${o.aggName}: ${r(t.value)}`),o.splitKey&&n.push(`Split: ${o.splitKey}`),t.y0!==0&&(n.push(`Base: ${r(t.y0)}`),n.push(`Top: ${r(t.y1)}`)),n}function Fm(e,t){if(e.lt==="numeric"&&e.$){let o=e.ue,i=null;for(let s=0;s<o.count;s++)if(o.catIdx[s]===t){i=o.xCenter[s];break}if(i==null)return"";let r=e.A[0];return e.getColumnFormatter(r,"value")(i)}if(e.Se.length===0)return"";let n=[];for(let o of e.Se){let i=o.labels[t];i!=null&&i!==""&&n.push(i)}return n.join(" / ")}function Da(e,t){t<0||t>=e.ue.count||(e.No=t,Ia(e,fn(e.ue,t,e.ze.length,e.Xe,e.p.length)))}function Ba(e,t){e.No=-1,Ia(e,t)}function Ia(e,t){if(e.L.dismiss(),!e.a)return;let n=e.a,i=(e.p[t.seriesId]?.chartType??"bar")==="bar"?(t.y0+t.y1)/2:t.y1,r=t.axis===0?e.st?n.E(i,t.xCenter):n.E(t.xCenter,i):pr(e,t.xCenter,i),s=dr(e,t);s.length!==0&&(e.L.pin(s,r,n),e.Ue=-1,e.Oe=null,e.e&&Ke(e,e.e))}ve();ve();Ct();Lt();Wi();function Pa(e,t,n){if(n)return n;if(!e.isDate)return ae;let o=t.length>1?t[1]-t[0]:0;return i=>he(i,o)}function br(e,t,n,o,i,r,s){let{xe:a,fontFamily:l}=r,{t:u}=t,m=i==="bottom"?u.y+u.height:u.y;e.fillStyle=a,e.font=`11px ${l}`,e.lineWidth=1,io(e,u,o,m,i,f=>t.E(f,0).px,Pa(n,o,s)),e.font=`13px ${l}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(n.label,u.x+u.width/2,i==="bottom"?t.cssHeight-2:10)}function gr(e,t,n,o,i,r,s){let{xe:a,fontFamily:l}=r,{t:u}=t,m=i==="left"?u.x:u.x+u.width;e.fillStyle=a,e.font=`11px ${l}`,e.lineWidth=1,ro(e,u,o,m,i,f=>t.E(0,f).py,Pa(n,o,s)),e.font=`13px ${l}`,e.save(),i==="left"?(e.translate(14,u.y+u.height/2),e.rotate(-Math.PI/2)):(e.translate(t.cssWidth-10,u.y+u.height/2),e.rotate(Math.PI/2)),e.textAlign="center",e.textBaseline="bottom",e.fillText(n.label,0,0),e.restore()}function Ko(e,t,n,o,i,r){br(e,t,n,o,"bottom",i,r)}function Jo(e,t,n,o,i,r){gr(e,t,n,o,"left",i,r)}function Qo(e,t,n,o,i,r,s,a=!1,l={}){let u=de(e,o,r);if(!u)return;let{t:m}=o;if(u.strokeStyle=i._o,u.lineWidth=1,u.beginPath(),u.moveTo(m.x,m.y),u.lineTo(m.x,m.y+m.height),u.lineTo(m.x+m.width,m.y+m.height),s&&(a?(u.moveTo(m.x,m.y),u.lineTo(m.x+m.width,m.y)):(u.moveTo(m.x+m.width,m.y),u.lineTo(m.x+m.width,m.y+m.height))),u.stroke(),a){if(t.mode==="category"?at(u,o,t.domain,i):Jo(u,o,t.domain,t.ticks,i,l.category),n.mode==="category"?Te(u,o,n.domain,i):br(u,o,n.domain,n.ticks,"bottom",i,l.value),s)if(s.mode==="category")Te(u,o,s.domain,i);else{let f=o.Z,b=o.ie;o.Z=s.domain.min,o.ie=s.domain.max,br(u,o,s.domain,s.ticks,"top",i,l.alt),o.Z=f,o.ie=b}}else if(t.mode==="category"?Te(u,o,t.domain,i):Ko(u,o,t.domain,t.ticks,i,l.category),n.mode==="category"?at(u,o,n.domain,i):gr(u,o,n.domain,n.ticks,"left",i,l.value),s)if(s.mode==="category")at(u,o,s.domain,i);else{let f=o.J,b=o.re;o.J=s.domain.min,o.re=s.domain.max,gr(u,o,s.domain,s.ticks,"right",i,l.alt),o.J=f,o.re=b}}function ei(e,t,n,o,i,r=!1){let s=de(e,t,i);s&&(s.strokeStyle=o.Pn,s.lineWidth=1,r?so(s,t.t,n,a=>t.E(a,0).px):ao(s,t.t,n,a=>t.E(0,a).py))}Lt();var Je=null;function Ea(e){if(Je&&Je.xCenters.length>=e&&Je.colors.length>=e*3)return Je;let t=Math.max(e,Je?.xCenters.length??0);return Je={xCenters:new Float32Array(t),halfWidths:new Float32Array(t),y0s:new Float32Array(t),y1s:new Float32Array(t),seriesIds:new Float32Array(t),axes:new Float32Array(t),colors:new Float32Array(t*3)},Je}function Zo(e,t){let n=e.ue,o=n.count,i=0;if(o>0){let s=Ea(o);(!e.cn||e.cn.length<o)&&(e.cn=new Int32Array(o));let a=e.cn,l=e._e,u=e.p,m=e.q,f=n.chartType,b=n.seriesId,p=n.xCenter,d=n.halfWidth,g=n.y0,h=n.y1,y=n.axis;for(let x=0;x<o;x++){if(f[x]!==Ra)continue;let C=b[x];if(m.has(C))continue;s.xCenters[i]=p[x]-l,s.halfWidths[i]=d[x],s.y0s[i]=g[x],s.y1s[i]=h[x],s.seriesIds[i]=C,s.axes[i]=y[x];let _=u[C].color;s.colors[i*3]=_[0],s.colors[i*3+1]=_[1],s.colors[i*3+2]=_[2],a[i]=x,i++}}if(e.mn=i,i===0){e.Ve=null;return}let r=Je;t.C.ensureCapacity(i),t.C.upload("bar_x",r.xCenters.subarray(0,i),0,1),t.C.upload("bar_hw",r.halfWidths.subarray(0,i),0,1),t.C.upload("bar_y0",r.y0s.subarray(0,i),0,1),t.C.upload("bar_y1",r.y1s.subarray(0,i),0,1),t.C.upload("bar_sid",r.seriesIds.subarray(0,i),0,1),t.C.upload("bar_axis",r.axes.subarray(0,i),0,1),t.C.upload("bar_color",r.colors.subarray(0,i*3),0,3),(!e.Ve||e.Ve.length<i*3)&&(e.Ve=new Float32Array(Math.max(i*3,e.Ve?.length??0))),e.Ve.set(r.colors.subarray(0,i*3))}function Sm(e,t){let n=e.mn;if(n===0)return;let o=e.cn,i=e.p,r=e.ue.seriesId,s=Ea(n);for(let l=0;l<n;l++){let u=i[r[o[l]]].color;s.colors[l*3]=u[0],s.colors[l*3+1]=u[1],s.colors[l*3+2]=u[2]}let a=e.Ve;if(a&&a.length>=n*3){let l=!0;for(let u=0;u<n*3;u++)if(a[u]!==s.colors[u]){l=!1;break}if(l)return}t.C.upload("bar_color",s.colors.subarray(0,n*3),0,3),(!a||a.length<n*3)&&(e.Ve=new Float32Array(n*3)),e.Ve.set(s.colors.subarray(0,n*3))}function Wa(e){e.k.lines.invalidateBuffers(e),e.k.scatter.invalidateBuffers(e),e.k.areas.invalidateBuffers(e)}function qo(e,t){e.k.lines.rebuildBuffers(e,t),e.k.scatter.rebuildBuffers(e,t),e.k.areas.rebuildBuffers(e,t)}function Ke(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0||e.ne===0)return;let s=e.T();hr(e)&&e.mn>0&&Sm(e,t);let a=e.st,l=e.lt==="numeric",u=l?e.$.min:-.5,m=l?e.$.max:e.ne-.5,f=e.Uo.min,b=e.Uo.max;e.b&&(a?e.b.setBaseDomain(f,b,u,m):e.b.setBaseDomain(u,m,f,b));let p=u,d=m,g=f,h=b,y=e.oe?.min??0,x=e.oe?.max??1;if(e.b){let S=e.b.getVisibleDomain();a?(g=S.xMin,h=S.xMax,p=S.yMin,d=S.yMax):(p=S.xMin,d=S.xMax,g=S.yMin,h=S.yMax)}let C=a?!e.b?.isYDefault():!e.b?.isXDefault();if(e.Nn&&e.b&&C){let S=Em(e,p,d);S.hasLeft&&(g=S.leftMin,h=S.leftMax),e.oe&&S.hasRight&&(y=S.rightMin,x=S.rightMax)}e.h.include_zero&&(g>0&&(g=0),h<0&&(h=0),e.oe&&(y>0&&(y=0),x<0&&(x=0)));let _=e.p.length>1,v=e.A.length>0,A={levels:e.Se,numRows:e.ne,levelLabels:e.A.slice()},w=e.eo,L=e.Oo==="category"&&w!==null&&w.numRows>0,T;if(a){let S=l?55:At(A),X=S+(v?16:0),H=_?80:16,z=Math.max(1,i-X-H),te=L?Ee(w,z):void 0;T=new ee(i,r,{hasXLabel:!0,hasYLabel:v,hasLegend:_,leftExtra:S,bottomExtra:te})}else if(l){let S=L?At(w):void 0;T=new ee(i,r,{hasXLabel:v,hasYLabel:!0,hasLegend:_,bottomExtra:24,leftExtra:S})}else{let S=L?At(w):55,X=S+16,H=_?80:16,z=Math.max(1,i-X-H),te=Ee(A,z);T=new ee(i,r,{hasXLabel:v,hasYLabel:!0,hasLegend:_,bottomExtra:te,leftExtra:L?S:void 0})}e.a=T,e.b&&e.b.updateLayout(T);let F=e.h.include_zero,W=a?T.buildProjectionMatrix(g,h,d,p,"x",F,void 0,0,e._e):T.buildProjectionMatrix(p,d,g,h,"y",F,void 0,e._e,0),P;if(e.fn&&e.oe&&!a){let S=T.Z,X=T.ie,H=T.J,z=T.re;P=T.buildProjectionMatrix(p,d,y,x,"y",F,void 0,e._e,0),T.Z=S,T.ie=X,T.J=H,T.re=z}else P=W;let B=se(g,h,6),k=e.fn&&e.oe&&!a?se(y,x,6):null,N=A,O={min:g,max:h,label:e.Ai},U=e.oe&&!a?{min:y,max:x,label:e.Li}:null;e.D&&ei(e.D,T,B,s,t.dpr,a),ze(n,T,t.dpr,()=>{a||e.k.areas.draw(e,n,t,W,P,s.Ao),n.useProgram(e.o);let S=e.F;n.uniformMatrix4fv(S.u_proj_left,!1,W),n.uniformMatrix4fv(S.u_proj_right,!1,P),n.uniform1f(S.u_horizontal,a?1:0);let X=e.p.length>1?jo(e):null;n.uniform1f(S.u_hover_series,X?X.seriesId:-1),Ma(e,n,t),a||(e.k.lines.draw(e,n,t,W,P),e.k.scatter.draw(e,n,t,W,P))}),e.Re=N,e.Me=O,e.Ge=B,e.Vo=U,e.Ho=k,e.Gt=l?se(p,d,6):null,Dm(e)}function Dm(e){if(!e.d||!e.a||!e.Me||!e.Ge)return;let t=e.T(),n;if(e.lt==="numeric"&&e.$&&e.Gt)n={mode:"numeric",domain:{min:e.$.min,max:e.$.max,isDate:e.$.isDate,label:e.$.label},ticks:e.Gt};else if(e.Re)n={mode:"category",domain:e.Re};else return;let o=e.p.find(l=>l.axis===0),i=e.p.find(l=>l.axis===1),r=e.A[0],s=e.Oo==="category"&&e.eo?{mode:"category",domain:e.eo}:{mode:"numeric",domain:e.Me,ticks:e.Ge},a;e.Vo&&e.Ho&&(a=e.Ti==="category"&&e.Yo?{mode:"category",domain:e.Yo}:{mode:"numeric",domain:e.Vo,ticks:e.Ho}),Qo(e.d,n,s,e.a,t,e.e?.dpr??1,a,e.st,{value:e.getColumnFormatter(o?.aggName??null,"tick"),alt:e.getColumnFormatter(i?.aggName??null,"tick"),category:e.getColumnFormatter(r,"tick")}),Im(e),jo(e)&&Pm(e)}var ti=new Float64Array(0);function Bm(e,t,n){if(e.Jn)return;let o=e.p;ti.length<o.length&&(ti=new Float64Array(o.length)),t.save(),t.font=`11px ${n}`;for(let i=0;i<o.length;i++)ti[i]=t.measureText(o[i].label).width;t.restore(),e.Jn=!0}function Im(e){if(e.Kn=[],!e.d||!e.a||e.p.length<=1)return;let t=e.d.getContext("2d");if(!t)return;t.save();let n=e.T(),o=n.vo,i=n.fontFamily;Bm(e,t,i);let r=e.a,s=10,a=18,l=r.t.x+r.t.width+12,u=r.margins.top+10;t.font=`11px ${i}`,t.textAlign="left",t.textBaseline="middle";let m=e.p,f=ti;for(let b=0;b<m.length;b++){let p=m[b],d=e.q.has(p.seriesId),g=Math.round(p.color[0]*255),h=Math.round(p.color[1]*255),y=Math.round(p.color[2]*255);t.globalAlpha=d?.3:1,t.fillStyle=`rgb(${g},${h},${y})`,t.fillRect(l,u-s/2,s,s),t.fillStyle=o,t.fillText(p.label,l+s+6,u);let x=f[b];d&&(t.strokeStyle=o,t.lineWidth=1,t.beginPath(),t.moveTo(l+s+6,u),t.lineTo(l+s+6+x,u),t.stroke()),t.globalAlpha=1;let C={x:l-2,y:u-a/2,width:s+6+x+4,height:a};e.Kn.push({seriesId:p.seriesId,rect:C}),u+=a}t.restore()}function Pm(e){if(!e.d||!e.a)return;let t=jo(e);if(!t)return;let n=e.a,i=(e.p[t.seriesId]?.chartType??"bar")==="bar"?(t.y0+t.y1)/2:t.y1,r=t.axis===0?e.st?n.E(i,t.xCenter):n.E(t.xCenter,i):pr(e,t.xCenter,i),s=dr(e,t),a=e.T();Be(e.d,r,s,n,a,e.e?.dpr??1)}function pr(e,t,n){let o=e.a,{x:i,y:r,width:s,height:a}=o.t,l=(t-o.Z)/(o.ie-o.Z),u=e.oe,m=(n-u.min)/(u.max-u.min);return{px:i+l*s,py:r+(1-m)*a}}function Em(e,t,n){let o=e.yt;if(o&&o.catMin===t&&o.catMax===n&&o.hidden===e.q)return o;let i=km(e),r=1/0,s=-1/0,a=!1,l=1/0,u=-1/0,m=!1;if(i.n>0){let b=e.$e,p,d;if(b){let v=Wm(b,i.n,t,n);p=v.lo,d=v.hi}else p=Math.max(0,Math.floor(t)),d=Math.min(i.n-1,Math.ceil(n));let g=i.leftMin,h=i.leftMax,y=i.rightMin,x=i.rightMax,C=i.hasLeft,_=i.hasRight;for(let v=p;v<=d;v++)C[v]&&(g[v]<r&&(r=g[v]),h[v]>s&&(s=h[v]),a=!0),_[v]&&(y[v]<l&&(l=y[v]),x[v]>u&&(u=x[v]),m=!0)}let f=o??Gm();return f.catMin=t,f.catMax=n,f.hidden=e.q,f.leftMin=r,f.leftMax=s,f.hasLeft=a,f.rightMin=l,f.rightMax=u,f.hasRight=m,e.yt=f,f}function Wm(e,t,n,o){if(t===0||n>o)return{lo:0,hi:-1};let i=0,r=t;for(;i<r;){let l=i+r>>>1;e[l]<n?i=l+1:r=l}let s=Math.max(0,i-1);for(i=0,r=t;i<r;){let l=i+r>>>1;e[l]<=o?i=l+1:r=l}let a=Math.min(t-1,i);return{lo:s,hi:a}}function Gm(){return{catMin:0,catMax:0,hidden:new Set,leftMin:0,leftMax:0,hasLeft:!1,rightMin:0,rightMax:0,hasRight:!1}}function km(e){let t=e.ne,n=e.wi,o=n&&n.leftMin.length>=t;if(n&&o&&e.Qn===e.q)return n;!n||!o?(n={leftMin:new Float64Array(t),leftMax:new Float64Array(t),rightMin:new Float64Array(t),rightMax:new Float64Array(t),hasLeft:new Uint8Array(t),hasRight:new Uint8Array(t),n:t},e.wi=n):n.n=t;for(let g=0;g<t;g++)n.leftMin[g]=1/0,n.leftMax[g]=-1/0,n.rightMin[g]=1/0,n.rightMax[g]=-1/0,n.hasLeft[g]=0,n.hasRight[g]=0;let i=e.ue,r=e.q,s=i.catIdx,a=i.seriesId,l=i.y0,u=i.y1,m=i.axis;for(let g=0;g<i.count;g++){if(r.has(a[g]))continue;let h=s[g];if(h<0||h>=t)continue;let y=l[g],x=u[g],C=y<x?y:x,_=y<x?x:y;m[g]===1?(C<n.rightMin[h]&&(n.rightMin[h]=C),_>n.rightMax[h]&&(n.rightMax[h]=_),n.hasRight[h]=1):(C<n.leftMin[h]&&(n.leftMin[h]=C),_>n.leftMax[h]&&(n.leftMax[h]=_),n.hasLeft[h]=1)}let f=[e.dn,e.pn],b=e.Xe,p=e.Wt,d=e.p.length;for(let g of f)for(let h of g){if(r.has(h.seriesId))continue;let y=h.axis===1,x=h.seriesId;for(let C=0;C<t;C++){let _=C*d+x;if(!(p[_>>3]>>(_&7)&1))continue;let v=b[_];y?(v<n.rightMin[C]&&(n.rightMin[C]=v),v>n.rightMax[C]&&(n.rightMax[C]=v),n.hasRight[C]=1):(v<n.leftMin[C]&&(n.leftMin[C]=v),v>n.leftMax[C]&&(n.leftMax[C]=v),n.hasLeft[C]=1)}}return e.Qn=r,n}zt();we();ue();var cn=new Float32Array(0),dn=new Uint8Array(0);function Nm(e){return cn.length>=e||(cn=new Float32Array(Math.max(e,cn.length*2))),cn}function Um(e){return dn.length>=e||(dn=new Uint8Array(Math.max(e,dn.length*2))),dn}function Om(e){return e==="solid"?1:e==="transparent"?.5:0}var ni=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=je(t.gl),o=j(t,"bar-line",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_start","a_end","a_corner","a_real_start","a_real_end"]);return this.o={...o,cornerBuffer:n},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;for(let i of n.series)o.deleteBuffer(i.gpuBuffer),o.deleteBuffer(i.gpuRealBuffer);this.i=null}rebuildBuffers(t,n){let o=t.dn;if(o.length===0){this.i=null;return}if(t.ne===0){this.i=null;return}this.ensureProgram(n);let r=n.gl,s=t.Xe,a=t.Wt,l=t._e,u=t.$e,m=t.p.length,f=[];for(let b of o){let p=t.p[b.seriesId],d=p.start,g=p.end;if(d<0||g<d)continue;let h=g-d+1;if(h<2)continue;let y=Nm(h*2),x=Um(h),C=0;for(let A=d;A<=g;A++){let w=u?u[A]-l:A,L=A*m+b.seriesId;y[C*2]=w,y[C*2+1]=s[L],x[C]=a[L>>3]>>(L&7)&1,C++}let _=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,_),r.bufferData(r.ARRAY_BUFFER,y.subarray(0,C*2),r.STATIC_DRAW);let v=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,v),r.bufferData(r.ARRAY_BUFFER,x.subarray(0,C),r.STATIC_DRAW),f.push({seriesId:b.seriesId,axis:b.axis,color:[b.color[0],b.color[1],b.color[2]],gpuBuffer:_,gpuRealBuffer:v,count:h,interpolateMode:p.interpolateMode})}this.i={series:f}}draw(t,n,o,i,r){let s=this.i,a=this.o;if(!s||!a||s.series.length===0)return;let l=o.dpr;n.useProgram(a.program),n.uniform2f(a.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(a.u_line_width,t.h.line_width_px*l);let u=q(o),{setDivisor:m,drawArraysInstanced:f}=u;n.bindBuffer(n.ARRAY_BUFFER,a.cornerBuffer),n.enableVertexAttribArray(a.a_corner),n.vertexAttribPointer(a.a_corner,1,n.FLOAT,!1,0,0),m(a.a_corner,0);let b=2*Float32Array.BYTES_PER_ELEMENT,p=Uint8Array.BYTES_PER_ELEMENT,d=t.q;for(let g of s.series){if(d.has(g.seriesId))continue;n.uniformMatrix4fv(a.u_projection,!1,g.axis===1?r:i);let h=t.p[g.seriesId].color;n.uniform4f(a.u_color,h[0],h[1],h[2],1),n.uniform1f(a.u_interp_alpha,Om(g.interpolateMode)),n.enableVertexAttribArray(a.a_start),m(a.a_start,1),n.enableVertexAttribArray(a.a_end),m(a.a_end,1),n.enableVertexAttribArray(a.a_real_start),m(a.a_real_start,1),n.enableVertexAttribArray(a.a_real_end),m(a.a_real_end,1),n.bindBuffer(n.ARRAY_BUFFER,g.gpuBuffer),n.vertexAttribPointer(a.a_start,2,n.FLOAT,!1,b,0),n.vertexAttribPointer(a.a_end,2,n.FLOAT,!1,b,b),n.bindBuffer(n.ARRAY_BUFFER,g.gpuRealBuffer),n.vertexAttribPointer(a.a_real_start,1,n.UNSIGNED_BYTE,!1,p,0),n.vertexAttribPointer(a.a_real_end,1,n.UNSIGNED_BYTE,!1,p,p),f(n.TRIANGLE_STRIP,0,4,g.count-1)}m(a.a_start,0),m(a.a_end,0),m(a.a_real_start,0),m(a.a_real_end,0)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&n.deleteBuffer(o.cornerBuffer)}this.o=null,this.i=null}};ue();var Ge=new Float32Array(0),ye=new Float32Array(0);function Vm(e){Ge.length<e*2&&(Ge=new Float32Array(Math.max(e*2,Ge.length*2))),ye.length<e*3&&(ye=new Float32Array(Math.max(e*3,ye.length*2)))}var oi=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=j(t,"bar-scatter",Sn,Dn,["u_projection","u_point_size"],["a_position","a_color"]);return this.o={...o,posLeftBuffer:n.createBuffer(),posRightBuffer:n.createBuffer(),colorLeftBuffer:n.createBuffer(),colorRightBuffer:n.createBuffer()},this.o}invalidateBuffers(t){this.i=null}rebuildBuffers(t,n){let o=t.pn;if(o.length===0){this.i=null;return}let i=t.ne,r=t.p.length;if(i===0||r===0){this.i=null;return}let s=this.ensureProgram(n),a=n.gl,l=t.Xe,u=t.Wt,m=t.$e,f=t._e,b=t.q,p=0,d=0;for(let x of o)if(!b.has(x.seriesId))for(let C=0;C<i;C++){let _=C*r+x.seriesId;u[_>>3]>>(_&7)&1&&(x.axis===1?d++:p++)}let g=p+d;if(g===0){this.i=null;return}Vm(g);let h=0,y=p;for(let x of o){if(b.has(x.seriesId))continue;let C=x.color[0],_=x.color[1],v=x.color[2];for(let A=0;A<i;A++){let w=A*r+x.seriesId;if(!(u[w>>3]>>(w&7)&1))continue;let L=m?m[A]-f:A,T=l[w];x.axis===1?(Ge[y*2]=L,Ge[y*2+1]=T,ye[y*3]=C,ye[y*3+1]=_,ye[y*3+2]=v,y++):(Ge[h*2]=L,Ge[h*2+1]=T,ye[h*3]=C,ye[h*3+1]=_,ye[h*3+2]=v,h++)}}p>0&&(a.bindBuffer(a.ARRAY_BUFFER,s.posLeftBuffer),a.bufferData(a.ARRAY_BUFFER,Ge.subarray(0,p*2),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,s.colorLeftBuffer),a.bufferData(a.ARRAY_BUFFER,ye.subarray(0,p*3),a.STATIC_DRAW)),d>0&&(a.bindBuffer(a.ARRAY_BUFFER,s.posRightBuffer),a.bufferData(a.ARRAY_BUFFER,Ge.subarray(p*2,g*2),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,s.colorRightBuffer),a.bufferData(a.ARRAY_BUFFER,ye.subarray(p*3,g*3),a.STATIC_DRAW)),this.i={leftCount:p,rightCount:d}}draw(t,n,o,i,r){let s=this.i,a=this.o;if(!s||!a||s.leftCount===0&&s.rightCount===0)return;let l=o.dpr;n.useProgram(a.program),n.uniform1f(a.u_point_size,t.h.point_size_px*l),Ga(n,a,a.posLeftBuffer,a.colorLeftBuffer,s.leftCount,i),Ga(n,a,a.posRightBuffer,a.colorRightBuffer,s.rightCount,r)}destroy(t){let n=t.e?.gl;if(n){let o=this.o;o&&(n.deleteBuffer(o.posLeftBuffer),n.deleteBuffer(o.posRightBuffer),n.deleteBuffer(o.colorLeftBuffer),n.deleteBuffer(o.colorRightBuffer))}this.o=null,this.i=null}};function Ga(e,t,n,o,i,r){i!==0&&(e.uniformMatrix4fv(t.u_projection,!1,r),e.bindBuffer(e.ARRAY_BUFFER,n),e.enableVertexAttribArray(t.a_position),e.vertexAttribPointer(t.a_position,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(t.a_color),e.vertexAttribPointer(t.a_color,3,e.FLOAT,!1,0,0),e.drawArrays(e.POINTS,0,i))}ue();var pn=new Float32Array(0);function Hm(e){return pn.length>=e||(pn=new Float32Array(Math.max(e,pn.length*2))),pn}var ii=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){return this.o?this.o:(this.o=j(t,"bar-area",Mn,Fn,["u_projection","u_color","u_opacity"],["a_position"]),this.o)}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;for(let i of n.series)o.deleteBuffer(i.gpuBuffer);this.i=null}rebuildBuffers(t,n){let o=t.to;if(o.length===0){this.i=null;return}let i=t.ne,r=t.p.length;if(i===0||r===0){this.i=null;return}this.ensureProgram(n);let s=n.gl,a=t.Xe,l=t.Wt,u=t.$e,m=t._e,f=t.zo,b=t.ue,p=[];for(let d of o){let g=t.p[d.seriesId],h=Ym(d,i,r,a,l,f,b.y0,b.y1,u,m,g.start,g.end,g.interpolateMode);if(h.totalVertices===0)continue;let y=s.createBuffer();s.bindBuffer(s.ARRAY_BUFFER,y),s.bufferData(s.ARRAY_BUFFER,h.scratch.subarray(0,h.totalVertices*2),s.STATIC_DRAW),p.push({seriesId:d.seriesId,axis:d.axis,color:[d.color[0],d.color[1],d.color[2]],gpuBuffer:y,strips:h.descriptors})}this.i={series:p}}draw(t,n,o,i,r,s){let a=this.i,l=this.o;if(!a||!l||a.series.length===0)return;n.useProgram(l.program),n.uniform1f(l.u_opacity,s);let u=t.q;for(let m of a.series){if(u.has(m.seriesId))continue;n.uniformMatrix4fv(l.u_projection,!1,m.axis===1?r:i);let f=t.p[m.seriesId].color;n.uniform3f(l.u_color,f[0],f[1],f[2]),n.bindBuffer(n.ARRAY_BUFFER,m.gpuBuffer),n.enableVertexAttribArray(l.a_position),n.vertexAttribPointer(l.a_position,2,n.FLOAT,!1,0,0);for(let b of m.strips)n.bindBuffer(n.ARRAY_BUFFER,m.gpuBuffer),n.vertexAttribPointer(l.a_position,2,n.FLOAT,!1,0,b.offsetBytes),n.drawArrays(n.TRIANGLE_STRIP,0,b.vertexCount)}}destroy(t){this.invalidateBuffers(t),this.o=null}};function Ym(e,t,n,o,i,r,s,a,l,u,m,f,b){let p=Hm(t*4),d=[],g=e.seriesId*1e9,h=b!=="skip",y=0,x=0;for(let C=0;C<t;C++){let _=0,v=0,A=!1;if(e.stack){let w=r?.get(g+C);w!==void 0&&(_=s[w],v=a[w],A=!0)}else{let w=C*n+e.seriesId;h?C>=m&&C<=f&&(v=o[w],A=!0):i[w>>3]>>(w&7)&1&&(v=o[w],A=!0)}if(A){let w=l?l[C]-u:C;p[y++]=w,p[y++]=_,p[y++]=w,p[y++]=v}else if(y>x){let w=(y-x)/2;w>=4&&d.push({offsetBytes:x*4,vertexCount:w}),x=y}}if(y>x){let C=(y-x)/2;C>=4&&d.push({offsetBytes:x*4,vertexCount:C})}return{descriptors:d,totalVertices:y/2,scratch:p}}we();ue();function ct(e,t){return e&&(t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max)),{min:t.min,max:t.max}}var Qe=class extends Pt{constructor(n="vertical"){super();c(this,"st");c(this,"F",null);c(this,"Xo",[]);c(this,"ze",[]);c(this,"p",[]);c(this,"ue",Xo());c(this,"$o",[]);c(this,"dn",[]);c(this,"pn",[]);c(this,"to",[]);c(this,"Ai","");c(this,"Li","");c(this,"Oo","numeric");c(this,"Ti",null);c(this,"eo",null);c(this,"Yo",null);c(this,"zo",null);c(this,"Ve",null);c(this,"no",null);c(this,"oo",null);c(this,"jo",null);c(this,"Zo",null);c(this,"Uo",{min:0,max:1});c(this,"oe",null);c(this,"fn",!1);c(this,"io",null);c(this,"ro",null);c(this,"ut",null);c(this,"lt","category");c(this,"$",null);c(this,"_e",0);c(this,"Gt",null);c(this,"$e",null);c(this,"q",new Set);c(this,"Ue",-1);c(this,"No",-1);c(this,"Oe",null);c(this,"Xe",new Float32Array(0));c(this,"Wt",new Uint8Array(0));c(this,"k",{lines:new ni,scatter:new oi,areas:new ii});c(this,"Vo",null);c(this,"Ho",null);c(this,"mn",0);c(this,"cn",new Int32Array(0));c(this,"Kn",[]);c(this,"Jn",!1);c(this,"yt",null);c(this,"wi",null);c(this,"Qn",null);this.st=n==="horizontal"}getZoomConfig(){return{lockAxis:this.st?"x":"y"}}tooltipCallbacks(){return{onHover:(n,o)=>cr(this,n,o),onLeave:()=>{(this.Ue!==-1||this.Oe)&&(this.Ue=-1,this.Oe=null,this.e&&Ke(this,this.e))},onClickPre:(n,o)=>Sa(this,n,o),onPin:(n,o)=>{if(cr(this,n,o),this.Ue>=0){let i=this.Ue;Da(this,i);let r=fn(this.ue,i,this.ze.length,this.Xe,this.p.length);this.Ri(r)}else if(this.Oe){let i=this.Oe;Ba(this,i),this.Ri(i)}},onUnpin:()=>{this.emitUnselect()}}}async Ri(n){if(!this.Xo[n.aggIdx])return;let o=this.Se.map(s=>s.labels[n.catIdx]??null),i=this.ze[n.splitIdx]??"",r=this.P.length>0&&i!==""?i.split("|"):[];await this.emitClickAndSelect({rowIdx:n.catIdx+this.rt,columnName:this.Xo[n.aggIdx],groupByValues:o,splitByValues:r})}async uploadAndRender(n,o,i,r){this.e=n;let s=n.gl;if(i!==0)return;if(!this.o){let l=j(n,"bar",vn,An,["u_proj_left","u_proj_right","u_hover_series","u_horizontal"],["a_corner","a_x_center","a_half_width","a_y0","a_y1","a_color","a_series_id","a_axis"]);this.o=l.program,this.F=l,this.G=yo(s)}let a=wa({columns:o,numRows:r,columnSlots:this.B,groupBy:this.A,splitBy:this.P,groupByTypes:this.pt,columnsConfig:this.Lo,defaultChartType:this.Gn,autoAltYAxis:this.h.auto_alt_y_axis,bandInnerFrac:this.h.band_inner_frac,barInnerPad:this.h.bar_inner_pad,includeZero:this.h.include_zero,scratchBars:this.ue,scratchPosStack:this.jo,scratchNegStack:this.Zo});this.h.domain_mode==="expand"?(this.io=ct(this.io,a.leftDomain),a.rightDomain&&(this.ro=ct(this.ro,a.rightDomain)),a.numericCategoryDomain&&(this.ut=ct(this.ut,a.numericCategoryDomain))):(this.io=null,this.ro=null,this.ut=null),this.Xo=a.aggregates,this.ze=a.splitPrefixes,this.Se=a.rowPaths,this.ne=a.numCategories,this.rt=a.rowOffset,this.lt=a.axisMode.mode,this.$=a.numericCategoryDomain,this.$e=a.categoryPositions,this._e=a.numericCategoryDomain?.min??0,this.p=a.series,this.ue=a.bars,this.jo=a.posStack,this.Zo=a.negStack,this.Xe=a.samples,this.$o.length=0,this.dn.length=0,this.pn.length=0,this.to.length=0;for(let l of a.series)switch(l.chartType){case"bar":this.$o.push(l);break;case"line":this.dn.push(l);break;case"scatter":this.pn.push(l);break;case"area":this.to.push(l);break}this.Ai=ka(a.series,0),this.Li=ka(a.series,1),this.zo=zm(this.ue),this.yt=null,this.Jn=!1,this.no=null,this.oo=null,this.Qn=null,this.Ve=null,this.Wt=a.sampleValid,this.Uo=a.leftDomain,this.oe=a.rightDomain,this.fn=a.hasRightAxis,this.Oo=a.leftValueAxisMode,this.Ti=a.rightValueAxisMode,this.eo=a.leftValueCategoryDomain,this.Yo=a.rightValueCategoryDomain,hr(this),Zo(this,n),Wa(this),qo(this,n),await this.requestRender(n)}Ft(n){this.o&&(this.e=n,Ke(this,n))}resetExpandedDomain(){this.io=null,this.ro=null,this.ut=null}destroyInternal(){if(this.e){let n=this.e.gl;this.G&&n.deleteBuffer(this.G),$m(this)}this.o=null,this.F=null,this.G=null,this.ue=Xo(),this.p=[],this.$o=[],this.dn=[],this.pn=[],this.to=[],this.zo=null,this.no=null,this.oo=null,this.Ve=null,this.jo=null,this.Zo=null,this.Se=[],this.ne=0,this.q.clear()}};function zm(e){let t=new Map;for(let n=0;n<e.count;n++)e.chartType[n]===1&&t.set(e.seriesId[n]*1e9+e.catIdx[n],n);return t}function ka(e,t){let n=new Set,o=[];for(let i of e)i.axis===t&&(n.has(i.aggName)||(n.add(i.aggName),o.push(i.aggName)));return o.join(", ")}function hr(e){let t=e.T(),n=t.Ie,o=t.H,i=e.p.length,r=e.oo;if(e.no&&r&&r.Ie===n&&r.H===o&&r.seriesLength===i)return!1;let s=Xm(n,o,i);e.no=s,e.oo={Ie:n,H:o,seriesLength:i};for(let a=0;a<e.p.length;a++)e.p[a].color=s[a];return!0}function Xm(e,t,n){return fe(e,t,n)}function $m(e){e.k.lines.destroy(e),e.k.scatter.destroy(e),e.k.areas.destroy(e)}var ri=class extends Qe{constructor(){super("horizontal")}};Vt();He();Kt();function yr(e){let{columns:t,numRows:n,groupBy:o,splitBy:i,groupByTypes:r}=e,s=Dt(o,r),a={xLevels:[],yColumnNames:[],yLevels:[],numX:0,numY:0,rowOffset:0,cells:[],cells2D:[],colorMin:0,colorMax:1,xAxisMode:s,yAxisMode:{mode:"category"},xPositions:null,yPositions:null,xNumericDomain:null,yNumericDomain:null},l=o.map(T=>r[T]??"string"),{rowPaths:u,numCategories:m,rowOffset:f}=Bt(t,n,o.length,l),b=null,p=null;if(s.mode==="numeric"&&m>0){let T=t.get("__ROW_PATH_0__"),F=ut(T?.values,m,f,o[0]??"",s.numericType==="date"||s.numericType==="datetime");F&&(b=F.categoryPositions,p=F.numericCategoryDomain)}let d=[];for(let T of t.keys())T.startsWith("__")||!t.get(T)?.values||d.push(T);let g=d.length;if(m===0||g===0)return{...a,xLevels:u,rowOffset:f};let h=qm(d),y=jm(i,r),x={mode:"category"},C=null,_=null;if(y.mode==="numeric"){let T=Zm(d,y.numericType);if(T){let F=ut(T,g,0,i[0]??"",y.numericType==="date"||y.numericType==="datetime");F&&(x=y,C=F.categoryPositions,_=F.numericCategoryDomain)}}let v=[],A=new Array(m*g).fill(null),w=1/0,L=-1/0;for(let T=0;T<g;T++){let F=t.get(d[T]),W=F.values,P=F.valid;for(let B=0;B<m;B++){let k=B+f;if(P&&!(P[k>>3]>>(k&7)&1))continue;let N=W[k];if(!isFinite(N))continue;let O={xIdx:B,yIdx:T,value:N};v.push(O),A[T*m+B]=O,N<w&&(w=N),N>L&&(L=N)}}return!isFinite(w)||!isFinite(L)?(w=0,L=1):w===L&&(L=w+1),{xLevels:u,yColumnNames:d,yLevels:h,numX:m,numY:g,rowOffset:f,cells:v,cells2D:A,colorMin:w,colorMax:L,xAxisMode:s,yAxisMode:x,xPositions:b,yPositions:C,xNumericDomain:p,yNumericDomain:_}}function jm(e,t){if(e.length!==1)return{mode:"category"};let n=t[e[0]];return n==="date"||n==="datetime"||n==="integer"||n==="float"?{mode:"numeric",numericType:n}:{mode:"category"}}function Zm(e,t){let n=new Float64Array(e.length);for(let o=0;o<e.length;o++){let i=e[o],r=i.indexOf("|"),s=r===-1?i:i.slice(0,r),a;if(t==="date"||t==="datetime"?(a=Date.parse(s),isFinite(a)||(a=Date.parse(s.replace(" ","T")))):a=Number(s),!isFinite(a))return null;n[o]=a}return n}function Na(e,t){return t.map(n=>{let o=new Map;for(let[i,r]of e){if(i.startsWith("__ROW_PATH_")||i==="__GROUPING_ID__"){o.set(i,r);continue}let s=i.lastIndexOf("|");(s===-1?i:i.slice(s+1))===n&&o.set(i,r)}return{label:n,columns:o}})}function qm(e){if(e.length===0)return[];let t=0,n=e.map(i=>i.split("|"));for(let i of n)i.length>t&&(t=i.length);if(t===0)return[];let o=[];for(let i=0;i<t;i++){let r=[],s=new Map,a=new Int32Array(e.length),l=new Array(e.length),u=0;for(let b=0;b<e.length;b++){let p=n[b][i]??"",d=s.get(p);d===void 0&&(d=r.length,r.push(p),s.set(p,d)),a[b]=d,l[b]=p,p.length>u&&(u=p.length)}let f=i===t-1?[]:uo(a,r,0,e.length);o.push({labels:l,runs:f,maxLabelChars:u})}return o}He();Ei();jt();we();ue();Ct();Yt();Lt();Kt();lo();function Cr(e,t){return t?.skipLeafLevel&&e.length>0?e.slice(0,-1):e}var Km=80,Jm=20,xr=5,_r=11;function Et(e,t){return e.E(0,t).py}function Ua(e,t){let n=Cr(e.levels,t),o=n.length,i=[];for(let r=0;r<o;r++){let s=n[r].maxLabelChars;if(r===o-1){let a=Math.max(Km,s*6.5+16);i.push({size:a})}else{let a=Math.max(Jm,s*6.5+16);i.push({size:a})}}return i}function Oa(e,t){let n=Cr(e.levels,t);if(e.numRows===0||n.length===0)return 55;let o=Ua(e,t),i=0;for(let r of o)i+=r.size;return i}function Qm(e,t){return e.labels[t]??""}function vr(e,t,n,o,i){let r=Cr(n.levels,i);if(n.numRows===0||r.length===0)return;let{Mt:s,xe:a,fontFamily:l}=o,{t:u}=t;e.strokeStyle=s,e.fillStyle=s,e.lineWidth=1,e.font=`${_r}px ${l}`;let m=Ua(n,i),f=Math.max(0,Math.ceil(t.J)),b=Math.min(n.numRows-1,Math.floor(t.re));if(b<f)return;let p=r.length,d=u.x;for(let h=p-1;h>=0;h--){let y=r[h],x=m[h],C=d,_=d-x.size;d=_,h===p-1?ef(e,t,y,f,b,C,_,l,s):tf(e,t,y,f,b,_,C,l,s)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=a,e.font=`13px ${l}`,e.save(),e.translate(14,u.y+u.height/2),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="top",e.fillText(g,0,0),e.restore())}function ef(e,t,n,o,i,r,s,a,l){let u=t.t;e.strokeStyle=l,e.fillStyle=l,e.beginPath();for(let f=o;f<=i;f++){let b=Et(t,f);b<u.y-1||b>u.y+u.height+1||(e.moveTo(r,b),e.lineTo(r-xr,b))}e.stroke(),e.font=`${_r}px ${a}`,e.textAlign="right",e.textBaseline="middle";let m=r-xr-4-s-4;for(let f=o;f<=i;f++){let b=Et(t,f);if(b<u.y-1||b>u.y+u.height+1)continue;let p=Qm(n,f);if(!p)continue;let d=st(e,p,m);d&&e.fillText(d,r-xr-4,b)}}function tf(e,t,n,o,i,r,s,a,l){let u=t.t,m=qt(n.runs,o,i);if(m.length===0)return;e.strokeStyle=l,e.fillStyle=l;let f=s-3;e.beginPath();for(let b of m){let p=Et(t,b.endIdx+.5),d=Et(t,b.startIdx-.5),g=Math.min(p,d),h=Math.max(p,d),y=Math.max(u.y,g),x=Math.min(u.y+u.height,h);x<=y||(e.moveTo(f,y),e.lineTo(f,x),e.moveTo(f,y),e.lineTo(f+3,y),e.moveTo(f,x),e.lineTo(f+3,x))}e.stroke(),e.font=`${_r}px ${a}`;for(let b of m){let p=Et(t,b.endIdx+.5),d=Et(t,b.startIdx-.5),g=Math.min(p,d),h=Math.max(p,d),y=Math.max(u.y,g),x=Math.min(u.y+u.height,h);if(x<=y)continue;let C=(y+x)/2,_=r+(s-r-3)/2,v=b.label;if(!v)continue;let A=x-y-4,w=st(e,v,Math.max(0,A));w&&(e.save(),e.translate(_,C),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="middle",e.fillText(w,0,0),e.restore())}}ve();co();Ie();xt();yt();function Lr(e,t,n){if(e.Mi=t,e.Fi=n,e.l.length>0){for(let i=0;i<e.l.length;i++){let r=e.l[i],s=r.layout.t;if(t<s.x||t>s.x+s.width||n<s.y||n>s.y+s.height)continue;let a=Ha(r.layout,r.pipeline.numX,r.pipeline.numY,r.pipeline.cells2D,r.pipeline.xPositions,r.pipeline.yPositions,r.pipeline.xNumericDomain?.bandWidth??1,r.pipeline.yNumericDomain?.bandWidth??1,t,n);Ar(e,a,i);return}Ar(e,null,-1);return}if(!e.a)return;let o=Ha(e.a,e.xt,e.Ct,e.so,e.bn,e.gn,e.mt?.bandWidth??1,e.ft?.bandWidth??1,t,n);Ar(e,o,-1)}function Va(e,t,n){if(e.length===0)return-1;let o=0,i=e.length-1;for(;o<i;){let s=o+i>>1;e[s]<t?o=s+1:i=s}let r=o;return r>0&&Math.abs(e[r-1]-t)<Math.abs(e[r]-t)&&(r-=1),Math.abs(e[r]-t)>n*.5?-1:r}function Ha(e,t,n,o,i,r,s,a,l,u){let m=e.t;if(l<m.x||l>m.x+m.width||u<m.y||u>m.y+m.height)return null;let f=e.Z,b=e.ie,p=e.J,d=e.re,g=f+(l-m.x)/m.width*(b-f),h=d-(u-m.y)/m.height*(d-p),y=i?Va(i,g,s):Math.round(g),x=r?Va(r,h,a):Math.round(h);return y<0||y>=t||x<0||x>=n?null:o[x*t+y]??null}function Ar(e,t,n){let o=e.De;(o?.xIdx??-1)===(t?.xIdx??-1)&&(o?.yIdx??-1)===(t?.yIdx??-1)&&e.hn===n||(e.De=t,e.hn=n,e.e&&e.qo&&e.qo())}function Ya(e,t){let n=[];for(let o of e){let i=o.labels[t];i!=null&&i!==""&&n.push(i)}return n.join(" / ")}function Tr(e){if(!e.d||!e.De)return;let t,n,o,i=null;if(e.hn>=0){let b=e.l[e.hn];if(!b)return;t=b.layout,n=b.pipeline.xLevels,o=b.pipeline.yLevels,i=b.label}else{if(!e.a)return;t=e.a,n=e.kt,o=e.Nt}let r=e.De,s={px:e.Mi,py:e.Fi},a=[];i&&a.push(i);let l=Ya(n,r.xIdx),u=Ya(o,r.yIdx);l&&a.push(l),u&&a.push(u);let m=e.getColumnFormatter(e.B[0],"value");a.push(`Value: ${m(r.value)}`);let f=e.T();Be(e.d,s,a,t,f,e.e?.dpr??1)}var wr={skipLeafLevel:!0};function za(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0)return;if(e.l.length>0){nf(e,t,i,r);return}if(e.xt===0||e.Ct===0)return;let s=e.T(),a={levels:e.kt,numRows:e.xt,levelLabels:e.A.slice()},l={levels:e.Nt,numRows:e.Ct,levelLabels:[]},u=e.yn.mode==="numeric",m=e.xn.mode==="numeric",f=m?55:Oa(l,wr),b=u?24:Ee(a,Math.max(1,i-f-110)),p=new ee(i,r,{hasXLabel:e.A.length>0,hasYLabel:!1,hasLegend:!0,bottomExtra:b,leftExtra:f});e.a=p,e.b&&e.b.updateLayout(p);let d=u?e.mt.min:-.5,g=u?e.mt.max:e.xt-.5,h=m?e.ft.min:-.5,y=m?e.ft.max:e.Ct-.5;e.b&&e.b.setBaseDomain(d,g,h,y);let x=e.b?e.b.getVisibleDomain():{xMin:d,xMax:g,yMin:h,yMax:y},C=p.buildProjectionMatrix(x.xMin,x.xMax,x.yMin,x.yMax,void 0,void 0,0,e.R,e.M),_=p.t,v=_.width/(x.xMax-x.xMin),A=_.height/(x.yMax-x.yMin),w=s.mi*.5,L=u?e.mt.bandWidth:1,T=m?e.ft.bandWidth:1,F=Math.min(L*.5,v>0?w/v:0),W=Math.min(T*.5,A>0?w/A:0);if(e.D){let P=de(e.D,p,t.dpr)}Xa(e,t),$a(e,t),e.Q=Zt(t,e.Q,s.H),ze(n,p,t.dpr,()=>{n.useProgram(e.o);let P=e.F;n.uniformMatrix4fv(P.u_projection,!1,C),n.uniform2f(P.u_cell_inset,F,W),n.uniform2f(P.u_cell_size,L,T),Pe(t,e.Q.texture,P.u_gradient_lut,0),ja(e,n,t,0,e.Si)}),si(e)}function Xa(e,t){if(e.o)return;let n=t.gl,o=j(t,"heatmap",Pn,En,["u_projection","u_cell_inset","u_cell_size","u_gradient_lut"],["a_corner","a_cell","a_color_t"]);e.o=o.program,e.F=o;let i=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,i),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),n.STATIC_DRAW),e.G=i}function $a(e,t){let n=e.Ze.length;if(e.Si=n,n===0)return;let o=new Float32Array(n*2),i=new Float32Array(n);if(e.l.length>0){let r=0;for(let s of e.l){let a=s.pipeline.xPositions,l=s.pipeline.yPositions,u=s.xOrigin,m=s.yOrigin;for(let f of s.pipeline.cells)o[r*2]=a?a[f.xIdx]-u:f.xIdx,o[r*2+1]=l?l[f.yIdx]-m:f.yIdx,i[r]=rt(f.value,e.c,e.f),r++}}else{let r=e.bn,s=e.gn,a=e.R,l=e.M;for(let u=0;u<n;u++){let m=e.Ze[u];o[u*2]=r?r[m.xIdx]-a:m.xIdx,o[u*2+1]=s?s[m.yIdx]-l:m.yIdx,i[u]=rt(m.value,e.c,e.f)}}t.C.ensureCapacity(n),t.C.upload("heatmap_cell",o,0,2),t.C.upload("heatmap_t",i,0,1)}function ja(e,t,n,o,i){if(i===0)return;let r=e.F,s=q(n),{setDivisor:a}=s,l=Float32Array.BYTES_PER_ELEMENT;t.bindBuffer(t.ARRAY_BUFFER,e.G),t.enableVertexAttribArray(r.a_corner),t.vertexAttribPointer(r.a_corner,2,t.FLOAT,!1,0,0),a(r.a_corner,0);let u=n.C.peek("heatmap_cell"),m=n.C.peek("heatmap_t");!u||!m||(t.bindBuffer(t.ARRAY_BUFFER,u.buffer),t.enableVertexAttribArray(r.a_cell),t.vertexAttribPointer(r.a_cell,2,t.FLOAT,!1,0,o*2*l),a(r.a_cell,1),t.bindBuffer(t.ARRAY_BUFFER,m.buffer),t.enableVertexAttribArray(r.a_color_t),t.vertexAttribPointer(r.a_color_t,1,t.FLOAT,!1,0,o*l),a(r.a_color_t,1),s.drawArraysInstanced(t.TRIANGLE_STRIP,0,4,i),a(r.a_cell,0),a(r.a_color_t,0))}function si(e){if(!e.d)return;if(e.l.length>0){of(e);return}if(!e.a)return;let t=e.a,n=e.T(),o=e.e?.dpr??1,i=de(e.d,t,o);if(!i)return;i.strokeStyle=n.Pn,i.lineWidth=1,i.beginPath(),i.moveTo(t.t.x,t.t.y),i.lineTo(t.t.x,t.t.y+t.t.height),i.lineTo(t.t.x+t.t.width,t.t.y+t.t.height),i.stroke();let r={levels:e.kt,numRows:e.xt,levelLabels:e.A.slice()},s={levels:e.Nt,numRows:e.Ct,levelLabels:[]},a=e.A[0],l=e.A[1]??e.P[0];if(e.yn.mode==="numeric"&&e.mt){let u=se(t.Z,t.ie,6);Ko(i,t,e.mt,u,n,e.getColumnFormatter(a,"tick"))}else Te(i,t,r,n);if(e.xn.mode==="numeric"&&e.ft){let u=se(t.J,t.re,6);Jo(i,t,e.ft,u,n,e.getColumnFormatter(l,"tick"))}else vr(i,t,s,n,wr);Tt(e.d,t,{min:e.c,max:e.f,label:e.Ko},n.H,n,e.getColumnFormatter(e.B[0],"value")),e.De&&Tr(e)}function nf(e,t,n,o){let i=t.gl,r=e.T(),{effectiveSharedX:s,effectiveSharedY:a}=e.computeEffectiveFacetFlags(),l=Ye(e.l.map(m=>m.label),{cssWidth:n,cssHeight:o,xAxis:s?"outer":"cell",yAxis:a?"outer":"cell",hasLegend:!0,hasXLabel:e.A.length>0,hasYLabel:!1,gap:8});e.v=l;for(let m=0;m<e.l.length;m++){let f=l.cells[m];f&&(e.l[m].layout=f.layout)}e.syncFacetZoomLayouts(l.cells),Xa(e,t),$a(e,t),e.Q=Zt(t,e.Q,r.H),i.useProgram(e.o);let u=e.F;Pe(t,e.Q.texture,u.u_gradient_lut,0),Xt(i);for(let m=0;m<e.l.length;m++){let f=e.l[m];if(f.instanceCount===0)continue;let{numX:b,numY:p}=f.pipeline;if(b===0||p===0)continue;let d=f.layout,g=f.pipeline.xAxisMode.mode==="numeric",h=f.pipeline.yAxisMode.mode==="numeric",y=g?f.pipeline.xNumericDomain.min:-.5,x=g?f.pipeline.xNumericDomain.max:b-.5,C=h?f.pipeline.yNumericDomain.min:-.5,_=h?f.pipeline.yNumericDomain.max:p-.5,v=e.getZoomControllerForFacet(m);v&&v.setBaseDomain(y,x,C,_);let A=v?v.getVisibleDomain():{xMin:y,xMax:x,yMin:C,yMax:_},w=d.buildProjectionMatrix(A.xMin,A.xMax,A.yMin,A.yMax,void 0,void 0,0,f.xOrigin,f.yOrigin),L=d.t,T=L.width/(A.xMax-A.xMin),F=L.height/(A.yMax-A.yMin),W=r.mi*.5,P=g?f.pipeline.xNumericDomain.bandWidth:1,B=h?f.pipeline.yNumericDomain.bandWidth:1,k=Math.min(P*.5,T>0?W/T:0),N=Math.min(B*.5,F>0?W/F:0);$t(i,d,t.dpr,()=>{i.uniformMatrix4fv(u.u_projection,!1,w),i.uniform2f(u.u_cell_inset,k,N),i.uniform2f(u.u_cell_size,P,B),ja(e,i,t,f.instanceStart,f.instanceCount)})}si(e)}function of(e){if(!e.d||!e.v)return;let t=e.T(),n=e.e?.dpr??1,o=de(e.d,e.l[0].layout,n);if(!o)return;let i=e.En,r=e.Wn,s=e.v;for(let a=0;a<e.l.length;a++){let l=e.l[a],u=s.cells[a],m=l.layout,f=m.t;o.strokeStyle=t.Pn,o.lineWidth=1,o.beginPath(),o.moveTo(f.x,f.y),o.lineTo(f.x,f.y+f.height),o.lineTo(f.x+f.width,f.y+f.height),o.stroke();let b={levels:l.pipeline.xLevels,numRows:l.pipeline.numX,levelLabels:e.A.slice()},p={levels:l.pipeline.yLevels,numRows:l.pipeline.numY,levelLabels:[]},d=e.A[0],g=e.A[1]??e.P[0];if(!i||u.isBottomEdge)if(l.pipeline.xAxisMode.mode==="numeric"&&l.pipeline.xNumericDomain){let h=se(m.Z,m.ie,6);Ko(o,m,l.pipeline.xNumericDomain,h,t,e.getColumnFormatter(d,"tick"))}else Te(o,m,b,t);if(!r||u.isLeftEdge)if(l.pipeline.yAxisMode.mode==="numeric"&&l.pipeline.yNumericDomain){let h=se(m.J,m.re,6);Jo(o,m,l.pipeline.yNumericDomain,h,t,e.getColumnFormatter(g,"tick"))}else vr(o,m,p,t,wr)}for(let a=0;a<s.cells.length;a++){let l=s.cells[a],u=e.l[a];!u||!l.titleRect||oo(e.d,u.label,l.titleRect,t,n)}s.legendRect&&Jt(e.d,{x:s.legendRect.x,y:s.legendRect.y+20,width:s.legendRect.width,height:Math.max(1,s.legendRect.height-20)},{min:e.c,max:e.f,label:""},t.H,t,e.getColumnFormatter(e.B[0],"value")),e.De&&Tr(e)}var ai=class extends Le{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"G",null);c(this,"Q",null);c(this,"kt",[]);c(this,"Nt",[]);c(this,"Jo",[]);c(this,"xt",0);c(this,"Ct",0);c(this,"rt",0);c(this,"yn",{mode:"category"});c(this,"xn",{mode:"category"});c(this,"bn",null);c(this,"gn",null);c(this,"mt",null);c(this,"ft",null);c(this,"R",0);c(this,"M",0);c(this,"Ze",[]);c(this,"so",[]);c(this,"Si",0);c(this,"c",0);c(this,"f",1);c(this,"Ko","");c(this,"De",null);c(this,"a",null);c(this,"Mi",0);c(this,"Fi",0);c(this,"l",[]);c(this,"v",null);c(this,"hn",-1);c(this,"qo",()=>si(this))}tooltipCallbacks(){return{onHover:(n,o)=>Lr(this,n,o),onLeave:()=>{this.De&&(this.De=null,this.qo())},onPin:(n,o)=>{Lr(this,n,o),this.De&&this.Vi(this.De.xIdx,this.De.yIdx)},onUnpin:()=>{this.emitUnselect()}}}async Vi(n,o){let i=this.kt.map(a=>a.labels[n]??null),r=this.Nt.slice(0,this.P.length).map(a=>a.labels[o]??null),s=this.B[0]??"";await this.emitClickAndSelect({rowIdx:n+this.rt,columnName:s,groupByValues:i,splitByValues:r})}async uploadAndRender(n,o,i,r){if(this.e=n,i!==0)return;let s=this.B.filter(a=>!!a);if(s.length>1){let a=Na(o,s),l=[],u=[],m=1/0,f=-1/0;for(let b of a){let p=yr({columns:b.columns,numRows:r,groupBy:this.A,splitBy:this.P,groupByTypes:this.pt}),d=u.length;for(let g of p.cells)u.push({xIdx:g.xIdx,yIdx:g.yIdx,value:g.value});l.push({label:b.label,pipeline:p,layout:new ee(1,1,{hasXLabel:!1,hasYLabel:!1,hasLegend:!1}),instanceStart:d,instanceCount:p.cells.length,xOrigin:p.xNumericDomain?.min??0,yOrigin:p.yNumericDomain?.min??0}),isFinite(p.colorMin)&&p.colorMin<m&&(m=p.colorMin),isFinite(p.colorMax)&&p.colorMax>f&&(f=p.colorMax)}!isFinite(m)||!isFinite(f)?(m=0,f=1):m===f&&(f=m+1),this.kt=[],this.Nt=[],this.Jo=[],this.xt=0,this.Ct=0,this.rt=0,this.so=[],this.a=null,this.yn={mode:"category"},this.xn={mode:"category"},this.bn=null,this.gn=null,this.mt=null,this.ft=null,this.R=0,this.M=0,this.l=l,this.Ze=u,this.c=m,this.f=f,this.Ko=s.join(", ")}else{let a=yr({columns:o,numRows:r,groupBy:this.A,splitBy:this.P,groupByTypes:this.pt});this.l=[],this.v=null,this.kt=a.xLevels,this.Nt=a.yLevels,this.Jo=a.yColumnNames,this.xt=a.numX,this.Ct=a.numY,this.rt=a.rowOffset,this.Ze=a.cells,this.so=a.cells2D,this.c=a.colorMin,this.f=a.colorMax,this.Ko=s[0]??"Color",this.yn=a.xAxisMode,this.xn=a.yAxisMode,this.bn=a.xPositions,this.gn=a.yPositions,this.mt=a.xNumericDomain,this.ft=a.yNumericDomain,this.R=a.xNumericDomain?.min??0,this.M=a.yNumericDomain?.min??0}await this.requestRender(n)}Ft(n){this.e=n;let o=this.xt>0&&this.Ct>0,i=this.l.length>0;!o&&!i||za(this,n)}destroyInternal(){this.G&&this.e&&this.e.gl.deleteBuffer(this.G),this.o=null,this.F=null,this.G=null,this.kt=[],this.Nt=[],this.Jo=[],this.Ze=[],this.so=[],this.De=null,this.l=[],this.v=null,this.hn=-1,this.yn={mode:"category"},this.xn={mode:"category"},this.bn=null,this.gn=null,this.mt=null,this.ft=null}};Ht();function bn(){return{count:0,catIdx:new Int32Array(0),splitIdx:new Int32Array(0),seriesId:new Int32Array(0),xCenter:new Float64Array(0),halfWidth:new Float64Array(0),open:new Float64Array(0),close:new Float64Array(0),high:new Float64Array(0),low:new Float64Array(0),isUp:new Uint8Array(0)}}function rf(e,t){return e&&e.catIdx.length>=t?(e.count=0,e):{count:0,catIdx:new Int32Array(t),splitIdx:new Int32Array(t),seriesId:new Int32Array(t),xCenter:new Float64Array(t),halfWidth:new Float64Array(t),open:new Float64Array(t),close:new Float64Array(t),high:new Float64Array(t),low:new Float64Array(t),isUp:new Uint8Array(t)}}var Za={splitPrefixes:[],rowPaths:[],numCategories:0,rowOffset:0,axisMode:{mode:"category"},numericCategoryDomain:null,categoryPositions:null,series:[],yDomain:{min:0,max:1}};function qa(e){let{columns:t,numRows:n,columnSlots:o,groupBy:i,splitBy:r,groupByTypes:s,bandInnerFrac:a,barInnerPad:l,scratchCandles:u}=e,m=Dt(i,s),f=o[0]||"";if(!f)return{...Za,candles:bn()};let b=o[1]||"",p=o[2]||"",d=o[3]||"",g=[];if(r.length>0){let H=[f];b&&H.push(b),p&&H.push(p),d&&H.push(d);for(let z of Ve(t,[f],H))z.colNames.has(f)&&g.push(z.prefix);g.length===0&&g.push("")}else g.push("");let h=i.map(H=>s[H]??"string"),{rowPaths:y,numCategories:x,rowOffset:C}=Bt(t,n,i.length,h);if(x===0)return{...Za,axisMode:m,splitPrefixes:g,rowPaths:y,rowOffset:C,candles:bn()};let _=g.length,v=[];for(let H=0;H<_;H++){let z=g[H];v.push({seriesId:H,splitIdx:H,splitKey:z,label:z===""?f:z})}let A=null,w=null,L=1;if(m.mode==="numeric"&&x>0){let H=t.get("__ROW_PATH_0__"),z=ut(H?.values,x,C,i[0]??"",m.numericType==="date"||m.numericType==="datetime");z&&(A=z.categoryPositions,w=z.numericCategoryDomain,L=z.numericCategoryDomain.bandWidth)}let T=Yo(_,a,l),F=T.slotWidth*L,W=T.halfWidth*L,P=(_-1)/2,B=[];for(let H=0;H<_;H++){let z=g[H],te=Ne=>z===""?Ne:`${z}|${Ne}`,xe=t.get(te(f));if(!xe?.values){B.push({openCol:null,closeCol:null,highCol:null,lowCol:null,openValid:null,closeValid:null,highValid:null,lowValid:null});continue}let Ce=b?t.get(te(b)):null,_e=p?t.get(te(p)):null,Re=d?t.get(te(d)):null;B.push({openCol:xe.values,closeCol:Ce?.values??null,highCol:_e?.values??null,lowCol:Re?.values??null,openValid:xe.valid??null,closeValid:Ce?.valid??null,highValid:_e?.valid??null,lowValid:Re?.valid??null})}let k=x*_,N=rf(u??null,k),O=0,U=1/0,S=-1/0,X=x;for(let H=0;H<_;H++){let z=B[H],te=z.openCol;if(!te)continue;let xe=z.closeCol,Ce=z.highCol,_e=z.lowCol,Re=z.openValid,Ne=z.closeValid,kt=z.highValid,dt=z.lowValid,Cn=(H-P)*F;for(let pe=0;pe<X;pe++){let ne=pe+C;if(Re&&!(Re[ne>>3]>>(ne&7)&1))continue;let K=te[ne];if(!isFinite(K))continue;let oe;if(xe&&(!Ne||(Ne[ne>>3]>>(ne&7)&1)!==0)){let ie=xe[ne];oe=isFinite(ie)?ie:K}else{let ie=pe<X-1?pe+1+C:ne;if(!Re||(Re[ie>>3]>>(ie&7)&1)!==0){let _n=te[ie];oe=isFinite(_n)?_n:K}else oe=K}let Me;if(Ce&&(!kt||(kt[ne>>3]>>(ne&7)&1)!==0)){let ie=Ce[ne];Me=isFinite(ie)?ie:K>oe?K:oe}else Me=K>oe?K:oe;let tt;if(_e&&(!dt||(dt[ne>>3]>>(ne&7)&1)!==0)){let ie=_e[ne];tt=isFinite(ie)?ie:K<oe?K:oe}else tt=K<oe?K:oe;let Fe=(A?A[pe]:pe)+Cn,Se=oe>=K?1:0;N.catIdx[O]=pe,N.splitIdx[O]=H,N.seriesId[O]=H,N.xCenter[O]=Fe,N.halfWidth[O]=W,N.open[O]=K,N.close[O]=oe,N.high[O]=Me,N.low[O]=tt,N.isUp[O]=Se,O++,tt<U&&(U=tt),Me>S&&(S=Me)}}if(N.count=O,!isFinite(U)||!isFinite(S))U=0,S=1;else if(U===S){let H=Math.max(Math.abs(U),1)*.05;U-=H,S+=H}return{splitPrefixes:g,rowPaths:y,numCategories:x,rowOffset:C,axisMode:m,numericCategoryDomain:w,categoryPositions:A,series:v,candles:N,yDomain:{min:U,max:S}}}He();Ie();jt();yt();ve();Lt();var sf=3;function Ka(e,t,n){let o=0,i=t;for(;o<i;){let r=o+i>>>1;e[r]<n?o=r+1:i=r}return o}function Rr(e,t,n){if(e.Qo!==-1)return;let o=e.a;if(!o)return;let i=e.be;if(i.count===0){e.ge!==-1&&(e.ge=-1,et(e));return}let r=o.t,s=o.Z,a=o.ie,l=o.J,u=o.re;if(t<r.x||t>r.x+r.width||n<r.y||n>r.y+r.height){e.ge!==-1&&(e.ge=-1,et(e));return}let m=s+(t-r.x)/r.width*(a-s),f=u-(n-r.y)/r.height*(u-l),b=r.width/(a-s),p=sf/b,d=i.xCenter,g=i.halfWidth,h=i.open,y=i.close,x=i.high,C=i.low,_=i.count>0?g[0]:0,v=Math.max(_,p),A=Ka(d,i.count,m-v),w=Ka(d,i.count,m+v+1e-12),L=-1;for(let T=w-1;T>=A;T--){let F=d[T],W=g[T],P=m>=F-W&&m<=F+W,B=Math.abs(m-F)<=p;if(!P&&!B)continue;let k=h[T],N=y[T],O=k<N?k:N,U=k<N?N:k,S=P&&f>=O&&f<=U,X=f>=C[T]&&f<=x[T];if(S||X){L=T;break}}L!==e.ge&&(e.ge=L,et(e))}function Ja(e,t){e.L.dismiss(),e.Qo=t;let n=e.be;if(t<0||t>=n.count||!e.a)return;let o=Mr(e,t);if(o.length===0)return;let i=n.xCenter[t],r=(n.high[t]+n.low[t])/2,s=e.a.E(i,r),a=e.a.cssWidth,l=e.a.cssHeight;e.L.pin(o,s,{cssWidth:a,cssHeight:l}),e.ge=-1,et(e)}function Mr(e,t){let n=[],o=e.be;if(t<0||t>=o.count)return n;let i=o.catIdx[t],r=o.splitIdx[t],s=o.open[t],a=o.close[t],l=o.high[t],u=o.low[t];if(e.lt==="numeric"&&e.$&&e.$e){let d=e.$e[i],g=e.A[0];n.push(e.getColumnFormatter(g,"value")(d))}else if(e.Se.length>0){let d=[];for(let g of e.Se){let h=g.labels[i]??"";h&&d.push(h)}d.length>0&&n.push(d.join(" \\u203A "))}else n.push(`Row ${i+e.rt}`);if(r>=0&&e.ze.length>1){let d=e.ze[r];d&&n.push(d)}let m=e.getColumnFormatter(e.B[0],"value"),f=e.getColumnFormatter(e.B[1],"value"),b=e.getColumnFormatter(e.B[2],"value"),p=e.getColumnFormatter(e.B[3],"value");return n.push(`Open: ${m(s)}`),n.push(`Close: ${f(a)}`),n.push(`High: ${b(l)}`),n.push(`Low: ${p(u)}`),n}function Qa(e,t,n,o,i){let r=1/0,s=-1/0,a={cat:0,lo:0,hi:0,skip:!1};for(let u=0;u<e.length;u++)a.skip=!1,o(e[u],a),!a.skip&&(a.cat<t||a.cat>n||(a.lo<r&&(r=a.lo),a.hi>s&&(s=a.hi)));let l=isFinite(r)&&isFinite(s);if(l&&r===s){let u=Math.abs(r)||1;r-=u,s+=u}return i.min=r,i.max=s,i.hasFit=l,i}function Fr(e){let n=e.T().H;if(e.ao===n)return;let o=Ae(n,1),i=Ae(n,0);e.uo=[o[0],o[1],o[2]],e.mo=[i[0],i[1],i[2]],e.ao=n}function el(e){e.k.bodyWick.invalidateBuffers(e),e.k.ohlc.invalidateBuffers(e)}function tl(e,t){e.k.bodyWick.rebuildBuffers(e,t),e.k.ohlc.rebuildBuffers(e,t)}function nl(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0||e.ne===0)return;let s=e.T();Fr(e);let a=e.lt==="numeric",l=a?e.$.min:-.5,u=a?e.$.max:e.ne-.5;e.b&&e.b.setBaseDomain(l,u,e.Cn.min,e.Cn.max);let m=e.b?e.b.getVisibleDomain():{xMin:l,xMax:u,yMin:e.Cn.min,yMax:e.Cn.max};if(e.Nn&&e.b&&!e.b.isXDefault()){let C=lf(e,m.xMin,m.xMax);C.hasFit&&(m.yMin=C.min,m.yMax=C.max)}let f=e.A.length>0,b={levels:e.Se,numRows:e.ne,levelLabels:e.A.slice()},p;if(a)p=new ee(i,r,{hasXLabel:f,hasYLabel:!0,hasLegend:!1,bottomExtra:24});else{let v=Math.max(1,i-71-16),A=Ee(b,v);p=new ee(i,r,{hasXLabel:f,hasYLabel:!0,hasLegend:!1,bottomExtra:A})}e.a=p,e.b&&e.b.updateLayout(p);let d=p.buildProjectionMatrix(m.xMin,m.xMax,m.yMin,m.yMax,"y",void 0,void 0,e._e,0),g=se(m.yMin,m.yMax,6),h=e.B[0]||"",y=b,x={min:m.yMin,max:m.yMax,label:h};e.D&&ei(e.D,p,g,s,t.dpr),ze(n,p,t.dpr,()=>{e.Gn==="ohlc"?e.k.ohlc.draw(e,n,t,d):e.k.bodyWick.draw(e,n,t,d)}),e.Re=y,e.Me=x,e.Ge=g,e.Gt=a?se(m.xMin,m.xMax,6):null,et(e)}function et(e){if(!e.d||!e.a||!e.Me||!e.Ge)return;let t=e.T(),n;if(e.lt==="numeric"&&e.$&&e.Gt)n={mode:"numeric",domain:{min:e.$.min,max:e.$.max,isDate:e.$.isDate,label:e.$.label},ticks:e.Gt};else if(e.Re)n={mode:"category",domain:e.Re};else return;let o=e.B[0]??e.B[1]??e.B[2]??e.B[3],i=e.A[0];Qo(e.d,n,{mode:"numeric",domain:e.Me,ticks:e.Ge},e.a,t,e.e?.dpr??1,void 0,!1,{value:e.getColumnFormatter(o,"tick"),category:e.getColumnFormatter(i,"tick")}),e.ge>=0&&e.ge<e.be.count&&af(e)}function af(e){if(!e.d||!e.a)return;let t=e.ge,n=e.be;if(t<0||t>=n.count)return;let o=e.a,i=n.xCenter[t],r=(n.high[t]+n.low[t])/2,s=o.E(i,r),a=Mr(e,t),l=e.T();Be(e.d,s,a,o,l,e.e?.dpr??1,{crosshair:!1,highlightRadius:0})}function lf(e,t,n){let o=e.yt;if(o&&o.xMin===t&&o.xMax===n)return o;let i=o??uf();i.xMin=t,i.xMax=n;let r=e.be,s=1/0,a=-1/0,l=!1,u=r.xCenter,m=r.low,f=r.high;for(let b=0;b<r.count;b++){let p=u[b];p<t||p>n||(m[b]<s&&(s=m[b]),f[b]>a&&(a=f[b]),l=!0)}return i.min=l?s:0,i.max=l?a:1,i.hasFit=l,e.yt=i,i}function uf(){return{xMin:0,xMax:0,min:0,max:1,hasFit:!1}}we();ue();var li=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=yo(n),r={...j(t,"candlestick-body",Bn,In,["u_projection"],["a_corner","a_x_center","a_half_width","a_y0","a_y1","a_color"]),quadBuffer:o,instanceBuffer:n.createBuffer()},s=je(n),l={...j(t,"line-uniform",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_corner","a_start","a_end","a_real_start","a_real_end"]),cornerBuffer:s,segmentBuffer:n.createBuffer()};return this.o={body:r,wick:l},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;o.deleteBuffer(n.upWickBuffer),o.deleteBuffer(n.downWickBuffer),this.i=null}rebuildBuffers(t,n){let o=t.be,i=this.ensureProgram(n),r=n.gl,s=t._e;if(o.count===0){let F=r.createBuffer(),W=r.createBuffer();this.i={bodyCount:0,upWickCount:0,downWickCount:0,upWickBuffer:F,downWickBuffer:W};return}let a=new Float32Array(o.count*7),l=0,u=0,m=o.xCenter,f=o.halfWidth,b=o.open,p=o.close,d=o.isUp,g=t.uo,h=t.mo;for(let F=0;F<o.count;F++){let W=b[F],P=p[F],B=W<P?W:P,k=W<P?P:W,N=d[F]!==0,O=N?g:h,U=F*7;a[U+0]=m[F]-s,a[U+1]=f[F]*.7,a[U+2]=B,a[U+3]=k,a[U+4]=O[0],a[U+5]=O[1],a[U+6]=O[2],N?l++:u++}r.bindBuffer(r.ARRAY_BUFFER,i.body.instanceBuffer),r.bufferData(r.ARRAY_BUFFER,a,r.STATIC_DRAW);let y=new Float32Array(l*4),x=new Float32Array(u*4),C=0,_=0,v=o.low,A=o.high;for(let F=0;F<o.count;F++){let W=m[F]-s,P=v[F],B=A[F];d[F]!==0?(y[C+0]=W,y[C+1]=P,y[C+2]=W,y[C+3]=B,C+=4):(x[_+0]=W,x[_+1]=P,x[_+2]=W,x[_+3]=B,_+=4)}let w=this.i,L=w?.upWickBuffer??r.createBuffer(),T=w?.downWickBuffer??r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,L),r.bufferData(r.ARRAY_BUFFER,y,r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,T),r.bufferData(r.ARRAY_BUFFER,x,r.STATIC_DRAW),this.i={bodyCount:o.count,upWickCount:l,downWickCount:u,upWickBuffer:L,downWickBuffer:T}}draw(t,n,o,i){let r=this.i;if(!r||r.bodyCount===0)return;let s=this.ensureProgram(o);mf(n,o,s.body,r.bodyCount,i),ff(t,n,o,s.wick,r,i)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&(n.deleteBuffer(o.body.quadBuffer),n.deleteBuffer(o.body.instanceBuffer),n.deleteBuffer(o.wick.cornerBuffer),n.deleteBuffer(o.wick.segmentBuffer))}this.o=null,this.i=null}};function mf(e,t,n,o,i){if(o===0)return;let r=7*Float32Array.BYTES_PER_ELEMENT;e.useProgram(n.program),e.uniformMatrix4fv(n.u_projection,!1,i);let s=q(t),{setDivisor:a}=s;e.bindBuffer(e.ARRAY_BUFFER,n.quadBuffer),e.enableVertexAttribArray(n.a_corner),e.vertexAttribPointer(n.a_corner,2,e.FLOAT,!1,0,0),a(n.a_corner,0),e.bindBuffer(e.ARRAY_BUFFER,n.instanceBuffer);let l=Float32Array.BYTES_PER_ELEMENT,u=(m,f,b)=>{e.enableVertexAttribArray(m),e.vertexAttribPointer(m,f,e.FLOAT,!1,r,b),a(m,1)};u(n.a_x_center,1,0),u(n.a_half_width,1,1*l),u(n.a_y0,1,2*l),u(n.a_y1,1,3*l),u(n.a_color,3,4*l),s.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,o),a(n.a_x_center,0),a(n.a_half_width,0),a(n.a_y0,0),a(n.a_y1,0),a(n.a_color,0)}function ff(e,t,n,o,i,r){if(i.upWickCount===0&&i.downWickCount===0)return;let s=n.dpr;t.useProgram(o.program),t.uniformMatrix4fv(o.u_projection,!1,r),t.uniform2f(o.u_resolution,t.canvas.width,t.canvas.height),t.uniform1f(o.u_line_width,e.h.wick_width_px*s),t.disableVertexAttribArray(o.a_real_start),t.disableVertexAttribArray(o.a_real_end),t.vertexAttrib1f(o.a_real_start,1),t.vertexAttrib1f(o.a_real_end,1),t.uniform1f(o.u_interp_alpha,1);let a=q(n),{setDivisor:l}=a;t.bindBuffer(t.ARRAY_BUFFER,o.cornerBuffer),t.enableVertexAttribArray(o.a_corner),t.vertexAttribPointer(o.a_corner,1,t.FLOAT,!1,0,0),l(o.a_corner,0),ol(t,a,o,i.upWickBuffer,i.upWickCount,e.uo),ol(t,a,o,i.downWickBuffer,i.downWickCount,e.mo),l(o.a_start,0),l(o.a_end,0)}function ol(e,t,n,o,i,r){if(i===0)return;let s=2*Float32Array.BYTES_PER_ELEMENT,{setDivisor:a}=t;e.uniform4f(n.u_color,r[0],r[1],r[2],1),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(n.a_start),e.vertexAttribPointer(n.a_start,2,e.FLOAT,!1,2*s,0),a(n.a_start,1),e.enableVertexAttribArray(n.a_end),e.vertexAttribPointer(n.a_end,2,e.FLOAT,!1,2*s,s),a(n.a_end,1),t.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,i)}we();ue();var ui=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=je(n),i=j(t,"line-uniform",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_corner","a_start","a_end","a_real_start","a_real_end"]);return this.o={...i,cornerBuffer:o,segmentBuffer:n.createBuffer()},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;o.deleteBuffer(n.upBuffer),o.deleteBuffer(n.downBuffer),this.i=null}rebuildBuffers(t,n){if(t.Gn!=="ohlc")return;let o=t.be,i=n.gl;this.ensureProgram(n);let r=t._e,s=o.xCenter,a=o.halfWidth,l=o.open,u=o.close,m=o.high,f=o.low,b=o.isUp,p=0,d=0;for(let A=0;A<o.count;A++)b[A]!==0?p++:d++;let g=new Float32Array(p*3*4),h=new Float32Array(d*3*4),y=0,x=0;for(let A=0;A<o.count;A++){let w=s[A]-r,L=l[A],T=u[A],F=f[A],W=m[A],P=a[A],B=b[A]!==0?g:h,k=b[A]!==0?y:x;B[k++]=w,B[k++]=F,B[k++]=w,B[k++]=W,B[k++]=w-P,B[k++]=L,B[k++]=w,B[k++]=L,B[k++]=w,B[k++]=T,B[k++]=w+P,B[k++]=T,b[A]!==0?y=k:x=k}let C=this.i,_=C?.upBuffer??i.createBuffer(),v=C?.downBuffer??i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,_),i.bufferData(i.ARRAY_BUFFER,g,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,v),i.bufferData(i.ARRAY_BUFFER,h,i.STATIC_DRAW),this.i={upBuffer:_,downBuffer:v,upInstanceCount:p*3,downInstanceCount:d*3}}draw(t,n,o,i){let r=this.i;if(!r||r.upInstanceCount===0&&r.downInstanceCount===0)return;let s=this.ensureProgram(o),a=o.dpr;n.useProgram(s.program),n.uniformMatrix4fv(s.u_projection,!1,i),n.uniform2f(s.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(s.u_line_width,t.h.ohlc_line_width_px*a),n.disableVertexAttribArray(s.a_real_start),n.disableVertexAttribArray(s.a_real_end),n.vertexAttrib1f(s.a_real_start,1),n.vertexAttrib1f(s.a_real_end,1),n.uniform1f(s.u_interp_alpha,1);let l=q(o),{setDivisor:u}=l;n.bindBuffer(n.ARRAY_BUFFER,s.cornerBuffer),n.enableVertexAttribArray(s.a_corner),n.vertexAttribPointer(s.a_corner,1,n.FLOAT,!1,0,0),u(s.a_corner,0),il(n,l,s,r.upBuffer,r.upInstanceCount,t.uo),il(n,l,s,r.downBuffer,r.downInstanceCount,t.mo),u(s.a_start,0),u(s.a_end,0)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&(n.deleteBuffer(o.cornerBuffer),n.deleteBuffer(o.segmentBuffer))}this.o=null,this.i=null}};function il(e,t,n,o,i,r){if(i===0)return;let s=4*Float32Array.BYTES_PER_ELEMENT,a=2*Float32Array.BYTES_PER_ELEMENT,{setDivisor:l}=t;e.uniform4f(n.u_color,r[0],r[1],r[2],1),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(n.a_start),e.vertexAttribPointer(n.a_start,2,e.FLOAT,!1,s,0),l(n.a_start,1),e.enableVertexAttribArray(n.a_end),e.vertexAttribPointer(n.a_end,2,e.FLOAT,!1,s,a),l(n.a_end,1),t.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,i)}var gn=class extends Pt{constructor(){super(...arguments);c(this,"F",null);c(this,"ze",[]);c(this,"p",[]);c(this,"be",bn());c(this,"Cn",{min:0,max:1});c(this,"fo",null);c(this,"ut",null);c(this,"lt","category");c(this,"$",null);c(this,"$e",null);c(this,"Gt",null);c(this,"_e",0);c(this,"uo",[0,.8,.4]);c(this,"mo",[.8,.2,.2]);c(this,"ao",null);c(this,"ge",-1);c(this,"Qo",-1);c(this,"k",{bodyWick:new li,ohlc:new ui});c(this,"Nn",!0);c(this,"yt",null)}tooltipCallbacks(){return{onHover:(n,o)=>Rr(this,n,o),onLeave:()=>{this.ge!==-1&&(this.ge=-1,et(this))},onPin:(n,o)=>{if(Rr(this,n,o),this.ge>=0){let i=this.ge;Ja(this,i),this.Hi(i)}},onUnpin:()=>{this.emitUnselect()}}}async Hi(n){if(n<0||n>=this.be.count)return;let o=this.be.catIdx[n],i=this.be.splitIdx[n],r=this.Se.map(u=>u.labels[o]??null),s=this.ze[i]??"",a=this.P.length>0&&s!==""?s.split("|"):[],l=this.B[1]||this.B.find(u=>!!u)||"";await this.emitClickAndSelect({rowIdx:o+this.rt,columnName:l,groupByValues:r,splitByValues:a})}invalidateTheme(){super.invalidateTheme(),this.ao=null}async uploadAndRender(n,o,i,r){if(this.e=n,i!==0)return;let s=qa({columns:o,numRows:r,columnSlots:this.B,groupBy:this.A,splitBy:this.P,groupByTypes:this.pt,bandInnerFrac:this.h.band_inner_frac,barInnerPad:this.h.bar_inner_pad,scratchCandles:this.be});this.h.domain_mode==="expand"?(this.fo=ct(this.fo,s.yDomain),s.numericCategoryDomain&&(this.ut=ct(this.ut,s.numericCategoryDomain))):(this.fo=null,this.ut=null),this.Se=s.rowPaths,this.ne=s.numCategories,this.rt=s.rowOffset,this.ze=s.splitPrefixes,this.p=s.series,this.be=s.candles,this.Cn=s.yDomain,this.lt=s.axisMode.mode,this.$=s.numericCategoryDomain,this.$e=s.categoryPositions,this._e=s.numericCategoryDomain?.min??0,this.yt=null,Fr(this),el(this),tl(this,n),await this.requestRender(n)}Ft(n){this.e=n,nl(this,n)}resetExpandedDomain(){this.fo=null,this.ut=null}destroyInternal(){if(this.e){let n=this.e.gl;this.G&&n.deleteBuffer(this.G),this.k.bodyWick.destroy(this),this.k.ohlc.destroy(this)}this.o=null,this.F=null,this.G=null,this.be=bn(),this.p=[],this.Se=[],this.ne=0,this.ao=null}};var pl={scatter:async()=>xo,line:async()=>Co,density:async()=>_o,treemap:async()=>No,sunburst:async()=>Ho,heatmap:async()=>ai,"y-bar":async()=>Qe,"y-line":async()=>Qe,"y-scatter":async()=>Qe,"y-area":async()=>Qe,"x-bar":async()=>ri,candlestick:async()=>gn,ohlc:async()=>gn,"map-scatter":async()=>(await Promise.resolve().then(()=>(pi(),di))).MapScatterChart,"map-line":async()=>(await Promise.resolve().then(()=>(pi(),di))).MapLineChart,"map-density":async()=>(await Promise.resolve().then(()=>(pi(),di))).MapDensityChart};async function bl(e,t,n){let o=new Map;await e.with_typed_arrays(n??{},async(i,r,s,a)=>{for(let l=0;l<i.length;l++){let u=i[l],m=r[l],f=s[l]??void 0,b=a[l];b!==null?o.set(u,{type:"string",indices:m,dictionary:b,valid:f}):m instanceof Float32Array?o.set(u,{type:"float32",values:m,valid:f}):m instanceof Int32Array?o.set(u,{type:"int32",values:m,valid:f}):m instanceof Float64Array?o.set(u,{type:"float64",values:m,valid:f}):o.set(u,{type:"float32",values:new Float32Array(m),valid:f})}await t(o)})}var gl=new Map;async function hl(e){let t=[e.family,e.src,e.weight??"",e.style??""].join("|"),n=gl.get(t);if(n){await n;return}n=(async()=>{try{let o={};e.style&&(o.style=e.style),e.weight&&(o.weight=e.weight),e.stretch&&(o.stretch=e.stretch);let i=new FontFace(e.family,e.src,o);await i.load(),self.fonts.add(i)}catch(o){console.warn(`Failed to load font ${e.family}:`,o)}})(),gl.set(t,n),await n}function yn(e,t){switch(t.kind){case"setViewByName":e.setViewByName(t.name);break;case"setColumnsConfig":e.chartImpl.setColumnsConfig?.(t.cfg);break;case"setPluginConfig":e.chartImpl.setPluginConfig?.(t.cfg),e.redraw();break;case"setBufferMaxCapacity":e.glManager.C.maxCapacity=t.n;break;case"loadAndRender":e.loadAndRender(t);break;case"redraw":e.redraw();break;case"resize":e.resize(t.cssWidth,t.cssHeight,t.dpr),e.redraw();break;case"clear":e.clear();break;case"invalidateTheme":e.chartImpl.setTheme?.(t.themeVars),e.chartImpl.invalidateTheme?.(),e.resize(e.cssWidth,e.cssHeight,e.dpr);break;case"restoreZoom":e.restoreZoom(t.state);break;case"resetAllZooms":e.resetAllZooms(),e.redraw(),e.post({kind:"zoomChanged",isDefault:e.allZoomsDefault()});break;case"resetExpandedDomain":e.resetExpandedDomain();break;case"interaction":e.onInteraction(t.event);break;case"saveZoom":e.post({kind:"saveZoomReply",requestId:t.requestId,state:e.saveZoom()});break;case"destroy":e.destroy();break;case"init":break;case"snapshotPng":{let n=t.requestId;e.snapshotPng().then(o=>{e.post({kind:"snapshotPngReply",requestId:n,blob:o})}).catch(o=>{e.post({kind:"error",message:String(o)})});break}}}var xn=new Map;function Er(e,t,n){let o={sessionId:e,msg:t};n&&n.length>0?self.postMessage(o,n):self.postMessage(o)}function bf(e){return{postMessage:(t,n)=>Er(e,t,n),addEventListener:()=>{},removeEventListener:()=>{},start:()=>{},close:()=>{},dispatchEvent:()=>!1,onmessage:null,onmessageerror:null}}function yl(e){self.addEventListener("message",function(t){let n=t.data,{sessionId:o,msg:i}=n;if(i.kind==="init"){if(xn.has(o)){Er(o,{kind:"error",message:`sessionId ${o} already initialized`});return}e(i,bf(o)).then(s=>{xn.set(o,s)}).catch(s=>{Er(o,{kind:"error",message:String(s)})});return}if(i.kind==="destroy"){let s=xn.get(o);s&&(yn(s,i),xn.delete(o));return}let r=xn.get(o);r&&yn(r,i)})}Pi();var bi=class extends Error{constructor(){super("StaleGenerationError")}};async function xl(e){let t=pl[e];if(!t)throw new Error(`Unknown chart tag: ${e}`);return await t()}var gi=class{constructor(t,n,o,i,r,s){c(this,"chartImpl");c(this,"glManager");c(this,"zoomController",null);c(this,"gridlines");c(this,"chrome");c(this,"cssWidth");c(this,"cssHeight");c(this,"dpr");c(this,"client");c(this,"view");c(this,"table");c(this,"controlPort");c(this,"ei",0);c(this,"co",null);c(this,"ti",0);c(this,"ni",0);this.client=n,this.view=o,this.table=i,this.controlPort=r,this.chartImpl=new s;let a=t.glCanvas??new OffscreenCanvas(Math.max(1,Math.round(t.cssWidth*t.dpr)),Math.max(1,Math.round(t.cssHeight*t.dpr)));this.glManager=new Xn(a,{precompile:t.precompileShaders??!1}),t.renderMode==="blit"&&this.glManager.setFrameCallback(l=>{this.post({kind:"frameBitmap",bitmap:l},[l])}),this.gridlines=t.gridlinesCanvas,this.chrome=t.chromeCanvas,this.cssWidth=t.cssWidth,this.cssHeight=t.cssHeight,this.dpr=t.dpr,this.chartImpl.setGridlineCanvas?.(t.gridlinesCanvas),this.chartImpl.setChromeCanvas?.(t.chromeCanvas),this.chartImpl.setTheme?.(t.themeVars),t.defaultChartType&&this.chartImpl.setDefaultChartType?.(t.defaultChartType),this.chartImpl.setFacetConfig?.(t.facetConfig),this.chartImpl.setPluginConfig?.(t.pluginConfig),this.chartImpl.setZoomController&&(this.zoomController=new ht,this.chartImpl.setZoomController(this.zoomController)),this.chartImpl.setView?.(o),this.glManager.C.maxCapacity=t.bufferMaxCapacity,this.glManager.resize(t.cssWidth,t.cssHeight,t.dpr),this.chartImpl.attachTooltip?.(new jn(l=>this.post(l)))}setViewByName(t){this.view=this.client.__unsafe_open_view(t),this.chartImpl.setView?.(this.view)}async loadAndRender(t){let n=++this.ei;try{let[o,i,r,s]=await Promise.all([this.view.num_rows(),this.view.schema(),this.view.expression_schema(),this.table?.schema()??Promise.resolve({})]);if(this.ei!==n)return;this.chartImpl.setViewPivots?.(t.viewerConfig.group_by,t.viewerConfig.split_by),this.chartImpl.setColumnTypes?.(i),this.chartImpl.setGroupByTypes?.({...s,...r}),this.chartImpl.setColumnSlots?.(t.viewerConfig.columns);let a=Object.keys(i).length||1,l=Math.floor(this.glManager.C.maxCapacity/a),u=Math.min(o,l);this.glManager.ensureBufferCapacity(u);try{await bl(this.view,async m=>{if(this.ei!==n)throw new bi;await this.chartImpl.uploadAndRender(this.glManager,m,0,u)},{end_row:u,float32:t.options.float32})}catch(m){if(!(m instanceof bi))throw m}}catch(o){(o+"").indexOf("View not found")===-1&&console.error("loadAndRender failed",o)}finally{this.post({kind:"loadAndRenderAck",msgId:t.msgId})}}redraw(){this.chartImpl.requestRender(this.glManager)}resize(t,n,o){this.cssWidth=t,this.cssHeight=n,this.dpr=o,this.glManager.requestResize(t,n,o),this.chartImpl.requestRender(this.glManager)}clear(){ls(this.glManager,()=>{this.glManager.clear(),this.gridlines.getContext("2d")?.clearRect(0,0,this.gridlines.width,this.gridlines.height)})}saveZoom(){return this.zoomController?.serialize()}restoreZoom(t){t&&this.zoomController?.restore(t)}allZoomsDefault(){if(this.zoomController&&!this.zoomController.isDefault())return!1;let t=this.chartImpl?.Jt;if(t){for(let n of t)if(n&&!n.isDefault())return!1}return!0}resetAllZooms(){this.zoomController?.reset();let t=this.chartImpl?.Jt;if(t)for(let n of t)n?.reset();this.resetExpandedDomain()}resetExpandedDomain(){this.chartImpl.resetExpandedDomain?.()}Wi(t,n){let o=this.chartImpl,i=o?.v;if(i){for(let a=0;a<i.cells.length;a++){let l=i.cells[a],u=l.layout.t;if(t>=u.x&&t<=u.x+u.width&&n>=u.y&&n<=u.y+u.height){let m=o.getZoomControllerForFacet?.(a)??this.zoomController;return m?{controller:m,layout:l.layout}:null}}return null}if(!this.zoomController)return null;let r=o?.a;if(!r)return null;let s=r.t;return t<s.x||t>s.x+s.width||n<s.y||n>s.y+s.height?null:{controller:this.zoomController,layout:r}}onInteraction(t){switch(t.type){case"wheel":{let n=this.Wi(t.mx,t.my);if(!n)return;zr(n,t.mx,t.my,t.deltaY),this.chartImpl.requestRender(this.glManager),this.post({kind:"zoomChanged",isDefault:this.allZoomsDefault()});break}case"pointerdown":{let n=this.Wi(t.mx,t.my);if(!n)return;this.co=n,this.ti=t.mx,this.ni=t.my;break}case"pointermove":{if(this.co){let n=t.mx-this.ti,o=t.my-this.ni;this.ti=t.mx,this.ni=t.my,Xr(this.co,n,o),this.chartImpl.requestRender(this.glManager),this.post({kind:"zoomChanged",isDefault:this.allZoomsDefault()})}else this.L()?.dispatchHover(t.mx,t.my);break}case"pointerup":{this.co=null;break}case"pointerleave":{this.L()?.dispatchLeave();break}case"click":{this.L()?.dispatchClick(t.mx,t.my);break}case"dblclick":{this.L()?.dispatchDblClick(t.mx,t.my);break}}}L(){return this.chartImpl?.L??null}async snapshotPng(){this.glManager.applyPendingResize(),this.chartImpl.Ft(this.glManager);let t=this.glManager.gl,n=t.canvas,o=n.width,i=n.height,r=new Uint8ClampedArray(o*i*4);t.readPixels(0,0,o,i,t.RGBA,t.UNSIGNED_BYTE,r);let s=new OffscreenCanvas(o,i),a=s.getContext("2d");if(!a)throw new Error("snapshotPng: 2D context unavailable");let u=this.chartImpl.T?.()?.backgroundColor??"transparent";u!=="transparent"&&(a.fillStyle=u,a.fillRect(0,0,o,i)),a.drawImage(this.gridlines,0,0);let m=new OffscreenCanvas(o,i),f=m.getContext("2d");if(!f)throw new Error("snapshotPng: 2D context unavailable for GL blit");return f.putImageData(new ImageData(r,o,i),0,0),a.save(),a.scale(1,-1),a.drawImage(m,0,-i),a.restore(),a.drawImage(this.chrome,0,0),await s.convertToBlob({type:"image/png"})}destroy(){this.chartImpl.destroy(),this.glManager.destroy()}post(t,n){n&&n.length>0?this.controlPort.postMessage(t,n):this.controlPort.postMessage(t)}},gf=typeof globalThis.importScripts=="function";async function hf(e,t){if(!e.clientWorkerURL||!e.clientWasm||!e.proxyPort)throw new Error("Init error");let n=await import(e.clientWorkerURL.toString());await n.initSync({module:e.clientWasm}),e.fontFaces?.length&&await Promise.all(e.fontFaces.map(hl));let o=e.proxyPort,i=new n.Client(async u=>{let m=u.slice().buffer;o.postMessage(m,[m])},async()=>o.close());o.addEventListener("message",u=>{i.handle_response(new Uint8Array(u.data))}),o.start();let r=i.__unsafe_open_view(e.viewName),s=e.tableName?await i.open_table(e.tableName):null,a=await xl(e.chartTag),l=new gi(e,i,r,s,t,a);return l.post({kind:"ready"}),l}async function Hx(e){let t=e.client.__unsafe_open_view(e.msg.viewName),n=e.msg.tableName?await e.client.open_table(e.msg.tableName):null,o=await xl(e.msg.chartTag),i=new gi(e.msg,e.client,t,n,e.controlPort,o);return e.controlPort.addEventListener("message",r=>{let s=r.data;s?.kind!=="init"&&yn(i,s)}),e.controlPort.start(),i.post({kind:"ready"}),i}gf&&yl(hf);export{gi as WorkerRenderer,Hx as bootstrapInProcess};\n';var A=null;async function he(){if(A)return A;let o=new Blob([J],{type:"application/javascript"});return A=URL.createObjectURL(o),A}var D=he;var T=null,N=new Map,ce=0;async function fe(){return T||(T=(async()=>{let o=await D(),e=new Worker(o,{type:"module",name:"viewer-charts"});return e.addEventListener("message",t=>{let i=t.data;N.get(i.sessionId)?.(i.msg)}),e})(),T)}var R=class{_handle=null;_proxyChannel=null;_proxySession=null;_client;_view;_tableName;_clientWorkerURL;_clientWasm;_chartTag;_maxCells;_precompileShaders;_ready;_resolveReady;_rejectReady;_pending=new Map;_pendingCounter=0;_onZoomChanged=null;_allZoomsDefault=!0;_hostGlCanvas=null;_displayCtx=null;_hostSink=null;_lastInsertConfig=void 0;constructor(e){this._client=e.client,this._view=e.view,this._tableName=e.tableName,this._clientWorkerURL=e.clientWorkerURL,this._clientWasm=e.clientWasm,this._chartTag=e.chartTag,this._maxCells=e.maxCells,this._precompileShaders=e.precompileShaders??!1,this._onZoomChanged=e.onZoomChanged??null,this._ready=new Promise((t,i)=>{this._resolveReady=t,this._rejectReady=i})}async init(e){this._hostGlCanvas=e.gl;let t=await D();d==="worker"&&(this._proxyChannel=new MessageChannel,this._proxySession=this._client.new_proxy_session(h=>{let W=h.slice().buffer;this._proxyChannel.port1.postMessage(W,[W])}),this._proxyChannel.port1.addEventListener("message",h=>{this._proxySession.handle_request(new Uint8Array(h.data))}),this._proxyChannel.port1.start());let i;e.renderBlitMode==="blit"?this._displayCtx=e.gl.getContext("2d"):i=e.gl.transferControlToOffscreen();let n=e.gridlines.transferControlToOffscreen(),r=e.chrome.transferControlToOffscreen(),l=e.gl.getBoundingClientRect(),a=window.devicePixelRatio||1,s=k(e.gl),m=d==="worker"?Z():[],_=d==="worker"?this._clientWasm:void 0,v=d==="worker"?this._clientWorkerURL:void 0,E=d==="worker"?this._proxyChannel.port2:void 0,U={kind:"init",renderMode:e.renderBlitMode,glCanvas:i,gridlinesCanvas:n,chromeCanvas:r,proxyPort:E,clientWorkerURL:v,clientWasm:_,chartTag:this._chartTag,viewName:this._view.__unsafe_get_name(),tableName:this._tableName,facetConfig:e.facetConfig,pluginConfig:e.pluginConfig,defaultChartType:e.defaultChartType,themeVars:s,fontFaces:m,cssWidth:l.width,cssHeight:l.height,dpr:a,bufferMaxCapacity:0,precompileShaders:this._precompileShaders};if(this._handle=await this._createHandle(t,U),this._handle.addMessageListener(h=>this._handleRendererMsg(h)),d==="worker"){let h=[n,r,this._proxyChannel.port2];i&&h.unshift(i),this._handle.post(U,h)}await this._ready}async _createHandle(e,t){if(d==="worker"){let r=await fe(),l=++ce;return{post:(a,s)=>r.postMessage({sessionId:l,msg:a},s),addMessageListener:a=>{N.set(l,a)},terminate:()=>{N.delete(l)}}}let i=await import(e),n=new MessageChannel;return await i.bootstrapInProcess({msg:t,client:this._client,controlPort:n.port2}),{post:(r,l)=>n.port1.postMessage(r,l),addMessageListener:r=>{n.port1.addEventListener("message",l=>r(l.data)),n.port1.start()},terminate:()=>{n.port1.close(),n.port2.close()}}}setView(e){this._view=e,this._post({kind:"setViewByName",name:this._view.__unsafe_get_name()})}setColumnsConfig(e){this._post({kind:"setColumnsConfig",cfg:e})}setPluginConfig(e){this._post({kind:"setPluginConfig",cfg:e})}setBufferMaxCapacity(e){this._post({kind:"setBufferMaxCapacity",n:e})}loadAndRender(e){let{id:t,promise:i}=this._allocPending("loadAndRender"),n={kind:"loadAndRender",msgId:t,viewerConfig:e.viewerConfig,options:{float32:e.options?.float32??!0}};return this._post(n),i}redraw(){this._post({kind:"redraw"})}resize(){if(!this._hostGlCanvas)return;let e=this._hostGlCanvas.getBoundingClientRect(),t=window.devicePixelRatio||1;this._post({kind:"resize",cssWidth:e.width,cssHeight:e.height,dpr:t})}clear(){this._post({kind:"clear"})}invalidateTheme(){if(!this._hostGlCanvas)return;let e=k(this._hostGlCanvas);this._post({kind:"invalidateTheme",themeVars:e})}async saveZoom(){let{id:e}=this._allocPending("saveZoom");this._post({kind:"saveZoom",requestId:e})}_allocPending(e){let t=++this._pendingCounter,i=new Promise((n,r)=>{this._pending.set(t,{kind:e,resolve:n,reject:r})});return{id:t,promise:i}}restoreZoom(e){this._post({kind:"restoreZoom",state:e})}allZoomsDefault(){return this._allZoomsDefault}resetAllZooms(){this._post({kind:"resetAllZooms"})}resetExpandedDomain(){this._post({kind:"resetExpandedDomain"})}snapshotPng(){let{id:e,promise:t}=this._allocPending("snapshotPng");return this._post({kind:"snapshotPng",requestId:e}),t}forwardInteraction(e){this._post({kind:"interaction",event:e})}destroy(){this._post({kind:"destroy"}),this._proxySession&&this._proxySession.close().catch(()=>{}),this._proxyChannel&&(this._proxyChannel.port1.close(),this._proxyChannel=null),this._handle&&(this._handle.terminate(),this._handle=null),this._hostSink?.dismiss(),this._hostSink=null,this._hostGlCanvas=null,this._displayCtx=null;let e=new Error("RendererTransport destroyed");for(let t of this._pending.values())t.kind==="loadAndRender"?t.resolve(void 0):t.reject(e);this._pending.clear()}_post(e){this._postRaw(e,[])}_postRaw(e,t){this._handle&&this._handle.post(e,t)}_handleRendererMsg(e){switch(e.kind){case"ready":this._resolveReady();break;case"zoomChanged":this._allZoomsDefault=e.isDefault,this._onZoomChanged?.(e.isDefault);break;case"saveZoomReply":this._resolvePending(e.requestId,"saveZoom",e.state);break;case"pinTooltip":this._ensureHostSink()?.pin(e.lines,e.pos,e.bounds);break;case"dismissTooltip":this._hostSink?.dismiss();break;case"setCursor":this._ensureHostSink()?.setCursor(e.cursor);break;case"userClick":this._dispatchOnViewer(new CustomEvent("perspective-click",{bubbles:!0,composed:!0,detail:e.detail}));break;case"userSelect":{let t=this._lastInsertConfig?[this._lastInsertConfig]:[],i=e.selected?[e.insertConfig]:[];this._lastInsertConfig=e.selected?e.insertConfig:void 0;let n=new g(e.selected,e.row,e.column_names,t,i);this._dispatchOnViewer(new CustomEvent("perspective-global-filter",{bubbles:!0,composed:!0,detail:n}));break}case"frameBitmap":this._drawFrameBitmap(e.bitmap);break;case"error":this._rejectReady(new Error(e.message));break;case"loadAndRenderAck":this._resolvePending(e.msgId,"loadAndRender",void 0);break;case"snapshotPngReply":this._resolvePending(e.requestId,"snapshotPng",e.blob);break}}_resolvePending(e,t,i){let n=this._pending.get(e);!n||n.kind!==t||(this._pending.delete(e),n.resolve(i))}_drawFrameBitmap(e){if(this._displayCtx&&this._hostGlCanvas){let t=e.width,i=e.height;this._hostGlCanvas.width!==t&&(this._hostGlCanvas.width=t),this._hostGlCanvas.height!==i&&(this._hostGlCanvas.height=i),this._displayCtx.globalCompositeOperation="copy",this._displayCtx.drawImage(e,0,0)}e.close()}_dispatchOnViewer(e){if(!this._hostGlCanvas)return;let t=this._hostGlCanvas;for(;t;){if(t instanceof HTMLElement&&t.tagName==="PERSPECTIVE-VIEWER"){t.dispatchEvent(e);return}t=t.host??t.parentNode??null}}_ensureHostSink(){if(this._hostSink)return this._hostSink;let e=this._hostGlCanvas?.parentElement;return!e||!this._hostGlCanvas?null:(this._hostSink=new w(this._hostGlCanvas,e),this._hostSink)}};var de={...G},me={auto_alt_y_axis:{kind:"Bool"},include_zero:{kind:"Bool"},domain_mode:{kind:"Enum",variants:[{value:"fit",label:"Fit"},{value:"expand",label:"Expand"}]},facet_mode:{kind:"Enum",variants:[{value:"grid",label:"Grid"},{value:"overlay",label:"Overlay"}]},facet_zoom_mode:{kind:"Enum",variants:[{value:"shared",label:"Shared"},{value:"independent",label:"Independent"}]},series_zoom_mode:{kind:"Enum",variants:[{value:"dynamic",label:"Dynamic"},{value:"fixed",label:"Fixed"}]},line_width_px:{kind:"Number",min:.5,step:.5,max:16},point_size_px:{kind:"Number",min:1,max:32},band_inner_frac:{kind:"Number",min:.1,max:1,step:.01},bar_inner_pad:{kind:"Number",min:0,max:.9,step:.01},wick_width_px:{kind:"Number",min:.5,step:.5,max:8},ohlc_line_width_px:{kind:"Number",min:.5,step:.5,max:8},gradient_radius_px:{kind:"Number",min:2,step:1,max:256},gradient_intensity:{kind:"Number",min:.05,step:.05,max:4},gradient_heat_max:{kind:"Number",min:.1,step:.1,max:64},gradient_color_mode:{kind:"Enum",variants:[{value:"mean",label:"Mean (density-weighted)"},{value:"density",label:"Density only"},{value:"extreme",label:"Extremes"},{value:"signed",label:"Signed sum"}]},map_tile_provider:{kind:"Enum",variants:[{value:"carto-positron",label:"Light (Positron)"},{value:"carto-dark-matter",label:"Dark Matter"},{value:"carto-voyager",label:"Voyager"}]},map_tile_alpha:{kind:"Number",min:0,max:1,step:.05}};function pe(o,e){return{...me[o],key:o,default:e[o]}}var ge=(()=>{let o=new CSSStyleSheet;return o.replaceSync($),[o]})(),M=class extends HTMLElement{_initialized=!1;_glCanvas;_gridlineCanvas;_chromeCanvas;_renderer=null;_rendererPromise=null;_rawEventForwarder=null;_generation=0;_renderBlitMode=q;_resetClickAbort=null;_pluginConfigStore=null;get _pluginConfig(){return this._pluginConfigStore||(this._pluginConfigStore=this._effectiveDefaults()),this._pluginConfigStore}set _pluginConfig(e){this._pluginConfigStore=e}_effectiveDefaults(){return{...j,...this._chartType.plugin_field_defaults??{}}}connectedCallback(){if(!this._initialized){this.attachShadow({mode:"open"});for(let e of ge)this.shadowRoot.adoptedStyleSheets.push(e);this.shadowRoot.innerHTML='<div class="webgl-container"><div class="zoom-controls"><button class="zoom-reset">Reset Zoom</button></div></div>',this._initialized=!0}this._glCanvas?.isConnected||this._buildCanvasStack()}_buildCanvasStack(){let e=this.shadowRoot.querySelector(".webgl-container");e.insertAdjacentHTML("afterbegin",'<canvas class="webgl-gridlines"></canvas><canvas class="webgl-canvas"></canvas><canvas class="webgl-chrome"></canvas>'),this._glCanvas=e.querySelector(".webgl-canvas"),this._gridlineCanvas=e.querySelector(".webgl-gridlines"),this._chromeCanvas=e.querySelector(".webgl-chrome")}_clearCanvasStack(){let e=this.shadowRoot?.querySelector(".webgl-container");if(e)for(let t of Array.from(e.querySelectorAll("canvas")))t.remove();this._glCanvas=null,this._gridlineCanvas=null,this._chromeCanvas=null}disconnectedCallback(){this.delete(),this._clearCanvasStack()}_ensureRenderer(e){return this._initialized||this.connectedCallback(),this._rendererPromise?this._rendererPromise:(this._rendererPromise=this._buildRenderer(e).then(t=>(this._renderer=t,this._setupInteraction(t),t)),this._rendererPromise)}_setupInteraction(e){if(this._rawEventForwarder)return;let t=this.shadowRoot.querySelector(".zoom-controls");this._rawEventForwarder=new C,this._rawEventForwarder.attach(this._glCanvas,n=>{e.forwardInteraction(n)});let i=this.shadowRoot.querySelector(".zoom-reset");i&&(this._resetClickAbort=new AbortController,i.addEventListener("click",()=>{e.resetAllZooms(),t&&t.classList.remove("visible")},{signal:this._resetClickAbort.signal}))}async _buildRenderer(e){let t=this.parentElement,i=await t.getClient(),n=customElements.get("perspective-viewer"),r=n.get_wasm_module(),l=n.get_worker_url(),a=await t?.getTable?.(),s=a?await a.get_name():void 0,m=this.shadowRoot.querySelector(".zoom-controls"),_=new R({client:i,view:e,tableName:s,clientWorkerURL:l,clientWasm:r,chartTag:this._chartType.tag,maxCells:this._chartType.max_cells,precompileShaders:!0,onZoomChanged:v=>{m&&m.classList.toggle("visible",!v)}});return await _.init({gl:this._glCanvas,gridlines:this._gridlineCanvas,chrome:this._chromeCanvas,facetConfig:{...de,facet_mode:this._pluginConfig.facet_mode,zoom_mode:this._pluginConfig.facet_zoom_mode},pluginConfig:this._pluginConfig,defaultChartType:this._chartType.default_chart_type,renderBlitMode:this._renderBlitMode}),_}setBlitMode(e){console.assert(this._initialized,"Already initialized"),this._renderBlitMode=e}get_static_config(){return{name:this._chartType.name,category:this._chartType.category,select_mode:this._chartType.selectMode,min_config_columns:this._chartType.initial.count,config_column_names:this._chartType.initial.names,max_cells:this._chartType.max_cells,max_columns:this._chartType.max_columns,group_rollup_modes:["flat"],priority:0,can_render_column_styles:!!this._chartType.default_chart_type||this._chartType.category==="Cartesian Charts"}}column_config_schema(e,t,i,n,r){let l=[],a=this._chartType.default_chart_type;if(a&&(e==="integer"||e==="float")){l.push({kind:"Enum",key:"chart_type",default:a,variants:[{value:"bar",label:"Bar"},{value:"line",label:"Line"},{value:"scatter",label:"Scatter"},{value:"area",label:"Area"}]});let s=n?.chart_type??a,m=s==="bar"||s==="area";if(m&&l.push({kind:"Bool",key:"stack",default:m}),(a==="bar"||a==="line"||a==="scatter"||a==="area")&&l.push({kind:"Bool",key:"alt_axis",default:!1}),s==="line"||s==="area"){let E=s==="area"?[{value:"skip",label:"Skip"},{value:"solid",label:"Solid"}]:[{value:"skip",label:"Skip"},{value:"solid",label:"Solid"},{value:"transparent",label:"Transparent"}];l.push({kind:"Enum",key:"interpolate",default:"solid",variants:E})}}return e==="integer"||e==="float"?l.push({kind:"NumberFormat"}):(e==="date"||e==="datetime")&&l.push({kind:"DatetimeFormat"}),{fields:l}}plugin_config_schema(e){let t=this._effectiveDefaults();return{fields:this._chartType.applicable_plugin_fields.map(n=>pe(n,t))}}async draw(e){return this._renderer?.resetExpandedDomain(),this._renderer?.resetAllZooms(),this._drawImpl(e)}async update(e){return this._drawImpl(e)}async _drawImpl(e){let t=++this._generation,i=await this._ensureRenderer(e);if(this._generation!==t)return;i.setView(e),i.setBufferMaxCapacity(this._chartType.max_cells);let r=await this.parentElement?.getViewConfig?.()??{};this._generation===t&&await i.loadAndRender({viewerConfig:{group_by:r?.group_by??[],split_by:r?.split_by??[],columns:r?.columns??[]},options:{float32:!0}})}async clear(){this._generation++,this._renderer?.clear()}async resize(){this._renderer?.resize()}restyle(){return this._renderer?.invalidateTheme(),5}async render(e){return await this._ensureRenderer(e),await this.draw(e),this._renderer.snapshotPng()}restore(e,t){e?.zoom&&this._renderer?.restoreZoom(e.zoom),this._pluginConfig={...this._effectiveDefaults(),...e},this._renderer?.setPluginConfig(this._pluginConfig),this._renderer?.setColumnsConfig(t??{})}delete(){this._generation++,this._rawEventForwarder&&(this._rawEventForwarder.detach(),this._rawEventForwarder=null),this._resetClickAbort&&(this._resetClickAbort.abort(),this._resetClickAbort=null),this._renderer&&(this._renderer.destroy(),this._renderer=null),this._rendererPromise=null}};function _e(...o){let e=new Set(o.length>0?o:P.map(t=>t.name));P.forEach(t=>{if(e.has(t.name)){let i=`perspective-viewer-charts-${t.tag}`;customElements.define(i,class extends M{_chartType=t;static _chartType=t}),customElements.whenDefined("perspective-viewer").then(async()=>{await customElements.get("perspective-viewer").registerPlugin(i)})}})}_e();export{g as PerspectiveSelectDetail,_e as register};
|
|
1
|
+
var y="Series Charts",F="Cartesian Charts",L="Hierarchical Charts",O="Financial Charts",B="Map Charts",Q=["X Axis"],b=["Y Axis"],c="select",f="toggle";var x=["auto_alt_y_axis","facet_mode","series_zoom_mode","include_zero","domain_mode","line_width_px","point_size_px","band_inner_frac","bar_inner_pad"],I={include_zero:!0},H=["facet_mode","facet_zoom_mode","domain_mode","line_width_px","point_size_px"],Y=["facet_mode","series_zoom_mode","domain_mode","band_inner_frac","bar_inner_pad","wick_width_px","ohlc_line_width_px"],z=[],ee=["facet_zoom_mode"],S=["facet_mode","facet_zoom_mode","domain_mode","map_tile_provider","map_tile_alpha"],te=[...S,"point_size_px"],ie=[...S,"line_width_px"],ne=[...S,"gradient_color_mode","gradient_radius_px","gradient_intensity","gradient_heat_max"],re=["facet_mode","facet_zoom_mode","domain_mode","gradient_color_mode","gradient_radius_px","gradient_intensity","gradient_heat_max"];function u(o,e,t,i,n,r,l,a){return{name:o,tag:e,category:t,selectMode:i,initial:{count:n,names:r},max_cells:a?.max_cells??2e6,max_columns:a?.max_columns??1e4,applicable_plugin_fields:l,...a?.default_chart_type?{default_chart_type:a.default_chart_type}:{},...a?.plugin_field_defaults?{plugin_field_defaults:a.plugin_field_defaults}:{}}}var V=["Open","Close","High","Low","Tooltip"],X=["Size","Color","Tooltip"],oe=[u("X Bar","x-bar",y,c,1,Q,x,{default_chart_type:"bar",plugin_field_defaults:I}),u("Y Bar","y-bar",y,c,1,b,x,{default_chart_type:"bar",plugin_field_defaults:I}),u("Y Line","y-line",y,c,1,b,x,{default_chart_type:"line"}),u("Y Scatter","y-scatter",y,c,1,b,x,{default_chart_type:"scatter"}),u("Y Area","y-area",y,c,1,b,x,{default_chart_type:"area",plugin_field_defaults:I}),u("X/Y Scatter","scatter",F,f,2,["X Axis","Y Axis","Color","Size","Label","Tooltip"],H),u("X/Y Line","line",F,c,2,["X Axis","Y Axis","Tooltip"],H),u("Density","density",F,f,2,["X Axis","Y Axis","Color","Tooltip"],re),u("Treemap","treemap",L,f,1,X,z),u("Sunburst","sunburst",L,f,1,X,z),u("Heatmap","heatmap",L,c,1,["Color"],ee),u("Candlestick","candlestick",O,f,1,V,Y,{default_chart_type:"candlestick"}),u("OHLC","ohlc",O,f,1,V,Y,{default_chart_type:"ohlc"}),u("Map Scatter","map-scatter",B,f,2,["Longitude","Latitude","Color","Size","Label","Tooltip"],te),u("Map Line","map-line",B,c,2,["Longitude","Latitude","Tooltip"],ie),u("Map Density","map-density",B,f,2,["Longitude","Latitude","Color","Tooltip"],ne)],P=oe;var $=":host{--psp-charts--tooltip--color:var(--psp--color);--psp-charts--tooltip--background:var(--psp--background-color);--psp-charts--tooltip--border-color:var(--psp-inactive--border-color);width:100%;height:100%;font-family:inherit;display:block;position:relative;overflow:hidden}.webgl-container{position:absolute;inset:6px}.webgl-canvas{width:100%;height:100%;position:absolute;top:0;left:0}.webgl-gridlines,.webgl-chrome{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.zoom-controls{z-index:2;pointer-events:auto;display:none;position:absolute;top:8px;left:50%;transform:translate(-50%)}.zoom-controls.visible{gap:6px;display:flex}.zoom-reset{background:var(--psp-charts--tooltip--background);color:var(--psp-charts--tooltip--color);border:1px solid var(--psp-charts--tooltip--border-color);font:11px var(--psp-charts--font-family);cursor:pointer;opacity:.7;border-radius:4px;padding:4px 12px;transition:opacity .15s}.zoom-reset:hover{opacity:1}.webgl-tooltip{pointer-events:auto;font:11px var(--psp-charts--font-family);background:var(--psp-charts--tooltip--background);color:var(--psp-charts--tooltip--color);border:1px solid var(--psp-charts--tooltip--border-color);white-space:pre;z-index:10;border-radius:3px;padding:3px;line-height:16px;position:absolute;overflow-y:auto}";var G={facet_mode:"grid",shared_x_axis:!0,shared_y_axis:!0,coordinated_tooltip:!1,zoom_mode:"shared",facet_padding:6},j={auto_alt_y_axis:!1,facet_mode:"grid",facet_zoom_mode:"shared",series_zoom_mode:"dynamic",include_zero:!1,domain_mode:"expand",line_width_px:2,point_size_px:8,band_inner_frac:.5,bar_inner_pad:.1,wick_width_px:1,ohlc_line_width_px:1,gradient_radius_px:32,gradient_intensity:.6,gradient_heat_max:4,gradient_color_mode:"mean",map_tile_provider:"carto-positron",map_tile_alpha:1};var C=class{_element=null;_emit=null;_pointerId=null;_onWheel=null;_onPointerDown=null;_onPointerMove=null;_onPointerUp=null;_onPointerLeave=null;_onClick=null;_onDblClick=null;attach(e,t){this.detach(),this._element=e,this._emit=t,this._onWheel=i=>{let n=e.getBoundingClientRect(),r=i.clientX-n.left,l=i.clientY-n.top;i.preventDefault(),t({type:"wheel",mx:r,my:l,deltaY:i.deltaY})},this._onPointerDown=i=>{let n=e.getBoundingClientRect(),r=i.clientX-n.left,l=i.clientY-n.top;e.setPointerCapture(i.pointerId),this._pointerId=i.pointerId,t({type:"pointerdown",mx:r,my:l,pointerId:i.pointerId})},this._onPointerMove=i=>{let n=e.getBoundingClientRect(),r=i.clientX-n.left,l=i.clientY-n.top;t({type:"pointermove",mx:r,my:l})},this._onPointerUp=i=>{if(this._pointerId!==null){try{e.releasePointerCapture(this._pointerId)}catch{}this._pointerId=null}t({type:"pointerup"})},this._onPointerLeave=()=>{t({type:"pointerleave"})},this._onClick=i=>{let n=e.getBoundingClientRect();t({type:"click",mx:i.clientX-n.left,my:i.clientY-n.top})},this._onDblClick=i=>{let n=e.getBoundingClientRect();t({type:"dblclick",mx:i.clientX-n.left,my:i.clientY-n.top})},e.addEventListener("wheel",this._onWheel,{passive:!1}),e.addEventListener("pointerdown",this._onPointerDown),e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerup",this._onPointerUp),e.addEventListener("pointerleave",this._onPointerLeave),e.addEventListener("click",this._onClick),e.addEventListener("dblclick",this._onDblClick)}detach(){this._element&&(this._onWheel&&this._element.removeEventListener("wheel",this._onWheel),this._onPointerDown&&this._element.removeEventListener("pointerdown",this._onPointerDown),this._onPointerMove&&this._element.removeEventListener("pointermove",this._onPointerMove),this._onPointerUp&&this._element.removeEventListener("pointerup",this._onPointerUp),this._onPointerLeave&&this._element.removeEventListener("pointerleave",this._onPointerLeave),this._onClick&&this._element.removeEventListener("click",this._onClick),this._onDblClick&&this._element.removeEventListener("dblclick",this._onDblClick)),this._element=null,this._emit=null,this._pointerId=null,this._onPointerLeave=null,this._onClick=null,this._onDblClick=null}};var g=class{selected;row;column_names;removeConfigs;insertConfigs;constructor(e,t,i,n,r){this.selected=e,this.row=t,this.column_names=i,this.removeConfigs=n,this.insertConfigs=r}get removeFilters(){return this.removeConfigs.flatMap(e=>e.filter??[])}get insertFilters(){return this.insertConfigs.flatMap(e=>e.filter??[])}};var ae=["--psp-charts--font-family","font-family","--psp--background-color","--psp-charts--axis-ticks--color","--psp--color","--psp-charts--axis-lines--color","--psp-charts--gridline--color","--psp-charts--gradient--background","--psp-charts--full-gradient--background","--psp-charts--legend--color","--psp-charts--legend-border--color","--psp-charts--tooltip--background","--psp-charts--tooltip--color","--psp-charts--tooltip--border-color","--psp-charts--area--opacity","--psp-charts--heatmap-gap--px","--psp-charts--sunburst-gap--px"];function D(o){let e=getComputedStyle(o),t={};for(let i of ae){let n=e.getPropertyValue(i).trim();n&&(t[i]=n)}for(let i=1;;i++){let n=`--psp-charts--series-${i}--color`,r=e.getPropertyValue(n).trim();if(!r)break;t[n]=r}return t}function Z(){let o=[];for(let e of Array.from(document.styleSheets)){let t;try{t=e.cssRules}catch{continue}let i=e.href??document.baseURI;for(let n of Array.from(t)){if(!(n instanceof CSSFontFaceRule))continue;let r=n.style,l=r.getPropertyValue("font-family").trim(),a=r.getPropertyValue("src").trim();!l||!a||o.push({family:se(l),src:ue(a,i),style:p(r,"font-style"),weight:p(r,"font-weight"),stretch:p(r,"font-stretch"),unicodeRange:p(r,"unicode-range"),variant:p(r,"font-variant"),featureSettings:p(r,"font-feature-settings"),display:p(r,"font-display")})}}return o}function p(o,e){return o.getPropertyValue(e).trim()||void 0}function se(o){if(o.length>=2){let e=o.charCodeAt(0),t=o.charCodeAt(o.length-1);if(e===t&&(e===34||e===39))return o.slice(1,-1)}return o}function ue(o,e){return o.replace(/url\(\s*(['"]?)([^'")]+)\1\s*\)/g,(t,i,n)=>{try{return`url(${new URL(n,e).href})`}catch{return t}})}var w=class{_glCanvas;_parent;_div=null;constructor(e,t){this._glCanvas=e,this._parent=t}pin(e,t,i){this.dismiss();let n=document.createElement("div");n.className="webgl-tooltip",n.style.maxHeight=`${Math.round(i.cssHeight*.6)}px`,n.textContent=e.join(`
|
|
2
|
+
`),getComputedStyle(this._parent).position==="static"&&(this._parent.style.position="relative"),n.style.left="-9999px",n.style.top="0px",this._parent.appendChild(n),this._div=n;let r=n.getBoundingClientRect().width,l=n.getBoundingClientRect().height,a=t.px+12,s=t.py-l-8;a+r>i.cssWidth&&(a=t.px-r-12),a<0&&(a=4),s<0&&(s=t.py+12),s+l>i.cssHeight&&(s=i.cssHeight-l-4),n.style.left=`${a}px`,n.style.top=`${s}px`}dismiss(){this._div&&(this._div.remove(),this._div=null)}setCursor(e){this._glCanvas.style.cursor=e}};var d="worker",q="blit";var J='var Vr=Object.defineProperty;var El=(e,t,n)=>t in e?Vr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var P=(e,t)=>()=>(e&&(t=e(e=0)),t);var Pl=(e,t)=>{for(var n in t)Vr(e,n,{get:t[n],enumerable:!0})};var c=(e,t,n)=>El(e,typeof t!="symbol"?t+"":t,n);var Rn,Ci=P(()=>{Rn="attribute vec2 a_start;attribute vec2 a_end;attribute float a_color_start;attribute float a_color_end;attribute float a_corner;uniform mat4 u_projection;uniform vec2 u_resolution;uniform float u_line_width;uniform vec2 u_color_range;uniform sampler2D u_gradient_lut;varying float v_edge_dist;varying vec3 v_color;float A(float B,float C,float D){if(D<=C){return 0.5;}else if(C<0.&&D>0.){float E=max(-C,D);return clamp(0.5+0.5*(B/E),0.,1.);}return clamp((B-C)/(D-C),0.,1.);}void main(){float C=u_color_range.x;float D=u_color_range.y;float F=0.5*(a_color_start+a_color_end);float G=A(F,C,D);v_color=texture2D(u_gradient_lut,vec2(G,0.5)).rgb;vec4 H=u_projection*vec4(a_start,0.,1.);vec4 I=u_projection*vec4(a_end,0.,1.);vec2 J=H.xy*u_resolution*0.5;vec2 K=I.xy*u_resolution*0.5;vec2 L=K-J;float M=length(L);L=M>0.001?L/M:vec2(1.,0.);vec2 N=vec2(-L.y,L.x);float O=step(1.5,a_corner);float P=1.-mod(a_corner,2.)*2.;vec4 Q=mix(H,I,O);float R=(u_line_width+1.5)*0.5;vec2 S=(N*P*R)/(u_resolution*0.5);gl_Position=Q+vec4(S,0.,0.);v_edge_dist=P;}"});var Mn,_i=P(()=>{Mn="precision highp float;uniform float u_line_width;varying float v_edge_dist;varying vec3 v_color;void main(){float A=abs(v_edge_dist);float B=u_line_width/(u_line_width+1.5);float C=1.-smoothstep(B,1.,A);gl_FragColor=vec4(v_color,C);}"});var Fn,vi=P(()=>{Fn="attribute vec2 a_position;attribute float a_color_value;attribute float a_size_value;uniform mat4 u_projection;uniform float u_point_size;uniform vec2 u_color_range;uniform vec2 u_size_range;uniform vec2 u_point_size_range;varying float v_color_t;varying float v_point_size;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);float A=u_size_range.y-u_size_range.x;if(A>0.){float B=clamp((a_size_value-u_size_range.x)/A,0.,1.);gl_PointSize=mix(u_point_size_range.x,u_point_size_range.y,B);}else{gl_PointSize=u_point_size;}v_point_size=gl_PointSize;float C=u_color_range.x;float D=u_color_range.y;if(D<=C){v_color_t=0.5;}else if(C<0.&&D>0.){float E=max(-C,D);v_color_t=clamp(0.5+0.5*(a_color_value/E),0.,1.);}else{v_color_t=clamp((a_color_value-C)/(D-C),0.,1.);}}"});var Sn,Ai=P(()=>{Sn="precision highp float;varying float v_color_t;varying float v_point_size;uniform sampler2D u_gradient_lut;void main(){vec2 A=gl_PointCoord-vec2(0.5);float B=length(A);if(B>0.5){discard;}float C=1.5/max(v_point_size,1.);float D=1.-smoothstep(0.5-C,0.5,B);vec4 E=texture2D(u_gradient_lut,vec2(clamp(v_color_t,0.,1.),0.5));gl_FragColor=vec4(E.rgb,E.a*D);}"});var yt,Li=P(()=>{yt="attribute vec2 a_corner;attribute vec2 a_position;attribute float a_color_value;uniform vec2 u_radius_ndc;uniform mat4 u_projection;uniform vec2 u_color_range;varying vec2 v_uv;varying float v_color_t;void main(){vec4 A=u_projection*vec4(a_position,0.,1.);gl_Position=A+vec4(a_corner*u_radius_ndc*A.w,0.,0.);v_uv=a_corner;float B=u_color_range.x;float C=u_color_range.y;if(C<=B){v_color_t=0.5;}else if(B<0.&&C>0.){float D=max(-B,C);v_color_t=clamp(0.5+0.5*(a_color_value/D),0.,1.);}else{v_color_t=clamp((a_color_value-B)/(C-B),0.,1.);}}"});var Hn,Ti=P(()=>{Hn="precision highp float;uniform float u_intensity;varying vec2 v_uv;varying float v_color_t;void main(){float A=length(v_uv);float B=max(0.,1.-A);B=B*B*u_intensity;if(B<=0.){discard;}gl_FragColor=vec4(B,B*v_color_t,0.,0.);}"});var Yn,wi=P(()=>{Yn="precision highp float;varying vec2 v_uv;varying float v_color_t;void main(){float A=length(v_uv);if(A>=1.){discard;}float B=(v_color_t-0.5)*2.;gl_FragColor=vec4(max(0.,B),max(0.,-B),0.,0.);}"});var Yr,Hr=P(()=>{Yr=`#version 300 es\nin vec2 a_corner;in vec2 a_position;in float a_color_value;uniform mat4 u_projection;uniform vec2 u_radius_ndc;uniform vec2 u_color_range;out vec2 v_uv;out float v_color_t;void main(){vec4 A=u_projection*vec4(a_position,0.,1.);gl_Position=A+vec4(a_corner*u_radius_ndc*A.w,0.,0.);v_uv=a_corner;float B=u_color_range.x;float C=u_color_range.y;if(C<=B){v_color_t=0.5;}else if(B<0.&&C>0.){float D=max(-B,C);v_color_t=clamp(0.5+0.5*(a_color_value/D),0.,1.);}else{v_color_t=clamp((a_color_value-B)/(C-B),0.,1.);}}`});var Xr,zr=P(()=>{Xr=`#version 300 es\nprecision highp float;uniform float u_intensity;in vec2 v_uv;in float v_color_t;layout(location=0)out vec4 A;layout(location=1)out vec4 B;void main(){float C=length(v_uv);float D=max(0.0f,1.0f-C);D=D*D*u_intensity;if(D<=0.0f){discard;}A=vec4(D,D*v_color_t,0.0f,0.0f);float E=(v_color_t-0.5f)*2.0f;B=vec4(max(0.0f,E),max(0.0f,-E),0.0f,0.0f);}`});var zn,Ri=P(()=>{zn="attribute vec2 a_corner;varying vec2 v_uv;void main(){v_uv=a_corner*0.5+0.5;gl_Position=vec4(a_corner,0.,1.);}"});var Xn,Mi=P(()=>{Xn="precision highp float;uniform sampler2D u_heat;uniform sampler2D u_extreme;uniform sampler2D u_gradient_lut;uniform float u_heat_max;uniform int u_color_mode;varying vec2 v_uv;void main(){vec4 A=texture2D(u_heat,v_uv);float B=A.r;float C=A.g;if(B<=0.){discard;}float D;float E;float F=clamp(B/max(u_heat_max,1e-4),0.,1.);if(u_color_mode==0){D=pow(F,0.6);E=clamp(B,0.,1.);}else if(u_color_mode==2){vec4 G=texture2D(u_extreme,v_uv);float H=G.r;float I=G.g;float J=max(H,I);if(J<=0.){D=0.5;}else if(H>=I){D=clamp(0.5+H*0.5,0.5,1.);}else{D=clamp(0.5-I*0.5,0.,0.5);}E=F;}else if(u_color_mode==3){float K=C-0.5*B;float L=clamp(abs(K)/max(u_heat_max,1e-4),0.,1.);float M=K>=0.?1.:-1.;D=clamp(0.5+0.5*M*L,0.,1.);E=L;}else{D=clamp(C/B,0.,1.);E=F;}vec4 N=texture2D(u_gradient_lut,vec2(D,0.5));gl_FragColor=vec4(N.rgb,N.a*E);}"});var $n,Fi=P(()=>{$n="attribute vec2 a_corner;uniform mat4 u_projection;uniform vec2 u_extent_min;uniform vec2 u_extent_max;uniform vec2 u_uv_min;uniform vec2 u_uv_max;varying vec2 v_uv;void main(){vec2 A=mix(u_extent_min,u_extent_max,a_corner);vec2 B=mix(u_uv_min,u_uv_max,vec2(a_corner.x,1.-a_corner.y));v_uv=B;gl_Position=u_projection*vec4(A,0.,1.);}"});var jn,Si=P(()=>{jn="precision highp float;varying vec2 v_uv;uniform sampler2D u_tile;uniform float u_alpha;void main(){vec4 A=texture2D(u_tile,v_uv);gl_FragColor=vec4(A.rgb,A.a*u_alpha);}"});function du(e,t){if(t.width<=0||t.height<=0)return e;let n=e.xMax-e.xMin,o=e.yMax-e.yMin;if(n<=0||o<=0)return e;let i=t.width/t.height;if(n/o<i){let s=(e.xMin+e.xMax)/2,a=o*i/2;return{xMin:s-a,xMax:s+a,yMin:e.yMin,yMax:e.yMax}}else{let s=(e.yMin+e.yMax)/2,a=n/i/2;return{xMin:e.xMin,xMax:e.xMax,yMin:s-a,yMax:s+a}}}var xt,qn=P(()=>{"use strict";xt=class{constructor(){c(this,"me",1);c(this,"fe",1);c(this,"ve",0);c(this,"Ae",0);c(this,"At",0);c(this,"Lt",1);c(this,"Tt",0);c(this,"wt",1);c(this,"He",null);c(this,"bi",!1);c(this,"vo",!1);c(this,"Ao",!1);c(this,"Rt",null);c(this,"Mt",null);c(this,"Bn",null);c(this,"Lo",!1);c(this,"To",0);c(this,"wo",0);c(this,"En",null);c(this,"Pn",null);c(this,"Gn",null);c(this,"Wn",null)}get lockedAxis(){return this.He}get scaleX(){return this.me}get scaleY(){return this.fe}set scaleX(t){this.me=t}set scaleY(t){this.fe=t}get normTranslateX(){return this.ve}get normTranslateY(){return this.Ae}set normTranslateX(t){this.ve=t}set normTranslateY(t){this.Ae=t}get baseXRange(){return this.Lt-this.At}get baseYRange(){return this.wt-this.Tt}setBaseDomain(t,n,o,i){let r=n-t;if(this.isXDefault()||!this.vo)this.At=t,this.Lt=n;else{let a=this.Lt-this.At,l=(this.At+this.Lt)/2+this.ve*a;this.At=t,this.Lt=n,this.ve=r>0?(l-(t+n)/2)/r:0}let s=i-o;if(this.isYDefault()||!this.Ao)this.Tt=o,this.wt=i;else{let a=this.wt-this.Tt,l=(this.Tt+this.wt)/2+this.Ae*a;this.Tt=o,this.wt=i,this.Ae=s>0?(l-(o+i)/2)/s:0}}pinAxis(t){t==="x"?this.vo=!0:this.Ao=!0}unpinAxis(t){t==="x"?this.vo=!1:this.Ao=!1}configure(t){this.He=t.lockAxis??null,this.bi=t.lockAspect??!1,this.He==="x"?(this.me=1,this.ve=0):this.He==="y"&&(this.fe=1,this.Ae=0)}isXDefault(){return this.me===1&&this.ve===0}isYDefault(){return this.fe===1&&this.Ae===0}isDefault(){return this.isXDefault()&&this.isYDefault()}getVisibleDomain(){let t=this.Lt-this.At,n=this.wt-this.Tt,o=t/this.me,i=n/this.fe,r=(this.At+this.Lt)/2+this.ve*t,s=(this.Tt+this.wt)/2+this.Ae*n,a={xMin:r-o/2,xMax:r+o/2,yMin:s-i/2,yMax:s+i/2};return this.bi&&this.Mt?du(a,this.Mt.t):a}attach(t,n,o){this.detach(),this.Rt=t,this.Mt=n,this.Bn=o,this.En=i=>{i.preventDefault();let r=t.getBoundingClientRect(),s=i.clientX-r.left,a=i.clientY-r.top,l=this.Mt.t;if(s<l.x||s>l.x+l.width||a<l.y||a>l.y+l.height)return;let u=(s-l.x)/l.width,m=(a-l.y)/l.height,f=this.me,b=this.fe,p=Math.pow(1.1,-i.deltaY/100);this.He!=="x"&&(this.me=Math.max(1,Math.min(1e5,this.me*p))),this.He!=="y"&&(this.fe=Math.max(1,Math.min(1e5,this.fe*p))),this.He!=="x"&&f!==this.me&&(this.ve+=(u-.5)*(1/f-1/this.me)),this.He!=="y"&&b!==this.fe&&(this.Ae+=(.5-m)*(1/b-1/this.fe)),this.Bn()},this.Pn=i=>{let r=t.getBoundingClientRect(),s=i.clientX-r.left,a=i.clientY-r.top,l=this.Mt.t;s>=l.x&&s<=l.x+l.width&&a>=l.y&&a<=l.y+l.height&&(this.Lo=!0,this.To=i.clientX,this.wo=i.clientY,t.setPointerCapture(i.pointerId))},this.Gn=i=>{if(!this.Lo)return;let r=i.clientX-this.To,s=i.clientY-this.wo;this.To=i.clientX,this.wo=i.clientY;let a=this.Mt.t;this.He!=="x"&&a.width>0&&(this.ve-=r/(a.width*this.me)),this.He!=="y"&&a.height>0&&(this.Ae+=s/(a.height*this.fe)),this.Bn()},this.Wn=()=>{this.Lo=!1},t.addEventListener("wheel",this.En,{passive:!1}),t.addEventListener("pointerdown",this.Pn),t.addEventListener("pointermove",this.Gn),t.addEventListener("pointerup",this.Wn)}updateLayout(t){this.Mt=t}detach(){this.Rt&&(this.En&&this.Rt.removeEventListener("wheel",this.En),this.Pn&&this.Rt.removeEventListener("pointerdown",this.Pn),this.Gn&&this.Rt.removeEventListener("pointermove",this.Gn),this.Wn&&this.Rt.removeEventListener("pointerup",this.Wn)),this.Rt=null,this.Bn=null}reset(){this.me=1,this.fe=1,this.ve=0,this.Ae=0}serialize(){return{scaleX:this.me,scaleY:this.fe,normTranslateX:this.ve,normTranslateY:this.Ae}}restore(t){this.me=t.scaleX,this.fe=t.scaleY,this.ve=t.normTranslateX,this.Ae=t.normTranslateY}}});function Ii(e,t){let n=t??pu[e]??{};return new Intl.NumberFormat(navigator.languages,n)}function Bi(e){if(!e||e.format!=="custom"){let n={timeZone:e?.timeZone,dateStyle:e?.dateStyle==="disabled"?void 0:e?.dateStyle??Kr.dateStyle,timeStyle:e?.timeStyle==="disabled"?void 0:e?.timeStyle??Kr.timeStyle};return new Intl.DateTimeFormat(navigator.languages,n)}let t={timeZone:e.timeZone,hour12:e.hour12??!0,fractionalSecondDigits:e.fractionalSecondDigits};return e.year!=="disabled"&&(t.year=e.year??"2-digit"),e.month!=="disabled"&&(t.month=e.month??"numeric"),e.day!=="disabled"&&(t.day=e.day??"numeric"),e.weekday&&e.weekday!=="disabled"&&(t.weekday=e.weekday),e.hour!=="disabled"&&(t.hour=e.hour??"numeric"),e.minute!=="disabled"&&(t.minute=e.minute??"numeric"),e.second!=="disabled"&&(t.second=e.second??"numeric"),new Intl.DateTimeFormat(navigator.languages,t)}function Jr(e){let t={timeZone:"utc",dateStyle:e?.dateStyle==="disabled"?void 0:e?.dateStyle??bu.dateStyle};return new Intl.DateTimeFormat(navigator.languages,t)}function Ei(e){return e.split("|").at(-1)??e}var pu,Kr,bu,Qr=P(()=>{"use strict";pu={float:{style:"decimal",minimumFractionDigits:2,maximumFractionDigits:2}},Kr={dateStyle:"short",timeStyle:"medium"},bu={dateStyle:"short"}});var Jn,es=P(()=>{"use strict";Jn=class{constructor(t,n=128){c(this,"zt");c(this,"m",new Map);c(this,"ye",new Map);c(this,"gi");this.zt=t,this.gi=n}async fetchRow(t){if(!this.zt)throw new Error("LazyRowFetcher disposed");let n=this.m.get(t);if(n)return this.m.delete(t),this.m.set(t,n),n;let o=this.ye.get(t);if(o)return o;let i=this.$i(t);this.ye.set(t,i);try{let r=await i;if(!this.zt)return r;if(this.m.set(t,r),this.m.size>this.gi){let s=this.m.keys().next().value;s!==void 0&&this.m.delete(s)}return r}finally{this.ye.delete(t)}}async $i(t){let n=this.zt;if(!n)throw new Error("LazyRowFetcher disposed");let o=new Map;return await n.with_typed_arrays({start_row:t,end_row:t+1,float32:!0},(i,r,s,a)=>{for(let l=0;l<i.length;l++){let u=i[l];if(u.startsWith("__"))continue;let m=r[l],f=s[l],b=a[l];(f?!(f[0]>>0&1):!1)?o.set(u,null):b?o.set(u,b[m[0]]):o.set(u,m[0])}}),o}dispose(){this.zt=null,this.m.clear(),this.ye.clear()}get isDisposed(){return this.zt===null}}});function ts(e,t){let n=Math.floor(Math.log10(e)),o=e/Math.pow(10,n),i;return t?o<1.5?i=1:o<3?i=2:o<7?i=5:i=10:o<=1?i=1:o<=2?i=2:o<=5?i=5:i=10,i*Math.pow(10,n)}function se(e,t,n){n<1&&(n=1);let o=ts(t-e,!1),i=ts(o/n,!0),r=Math.ceil(e/i)*i,s=Math.floor(t/i)*i,a=[];for(let l=r;l<=s+i*.001;l+=i)a.push(l);return a}function ae(e){let t=Math.abs(e);return t===0?"0":t>=1e9?(e/1e9).toFixed(1)+"B":t>=1e6?(e/1e6).toFixed(1)+"M":t>=1e3?(e/1e3).toFixed(1)+"K":Number.isInteger(e)?e.toString():t>=1?e.toFixed(1):e.toFixed(2)}function he(e,t){let n=new Date(e);return isNaN(n.getTime())?ae(e):t!==void 0&&t>0?t>=864e5*28?n.toLocaleDateString(void 0,{year:"numeric",month:"short"}):t>=864e5?n.toLocaleDateString(void 0,{month:"short",day:"numeric"}):t>=36e5?n.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric"}):t>=6e4?n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit",second:"2-digit"}):n.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}var ve=P(()=>{"use strict"});var ns,os,is=P(()=>{"use strict";ns={facet_mode:"grid",shared_x_axis:!0,shared_y_axis:!0,coordinated_tooltip:!1,zoom_mode:"shared",facet_padding:6},os={auto_alt_y_axis:!1,facet_mode:"grid",facet_zoom_mode:"shared",series_zoom_mode:"dynamic",include_zero:!1,domain_mode:"expand",line_width_px:2,point_size_px:8,band_inner_frac:.5,bar_inner_pad:.1,wick_width_px:1,ohlc_line_width_px:1,gradient_radius_px:32,gradient_intensity:.6,gradient_heat_max:4,gradient_color_mode:"mean",map_tile_provider:"carto-positron",map_tile_alpha:1}});function Ie(e,t,n,o,i,r,s={}){if(!e)return;let a=e.getContext("2d");if(!a)return;a.save(),a.setTransform(1,0,0,1,0,0),a.scale(r,r),a.font=`11px ${i.fontFamily}`;let l=16,u=8,m=0;for(let h of n){let y=a.measureText(h).width;y>m&&(m=y)}let f=m+u*2,b=n.length*l+u*2-4,p=t.px+12,d=t.py-b-8;p+f>o.cssWidth&&(p=t.px-f-12),d<0&&(d=t.py+12),d+b>o.cssHeight&&(d=o.cssHeight-b-4);let g=n.length>0;if(s.crosshair&&(a.strokeStyle=i.Ft,a.globalAlpha=.3,a.lineWidth=1,a.setLineDash([4,4]),a.beginPath(),a.moveTo(t.px,o.t.y),a.lineTo(t.px,o.t.y+o.t.height),a.moveTo(o.t.x,t.py),a.lineTo(o.t.x+o.t.width,t.py),a.stroke(),a.setLineDash([]),a.globalAlpha=1),s.highlightRadius&&s.highlightRadius>0&&(a.strokeStyle=i.Ft,a.globalAlpha=.8,a.lineWidth=2,a.beginPath(),a.arc(t.px,t.py,s.highlightRadius,0,Math.PI*2),a.stroke(),a.globalAlpha=1),g){a.fillStyle=i.kn,a.strokeStyle=i.yi,a.lineWidth=1,a.beginPath(),a.roundRect(p,d,f,b,4),a.fill(),a.stroke(),a.fillStyle=i.xi,a.textAlign="left",a.textBaseline="top";for(let h=0;h<n.length;h++)a.fillText(n[h],p+u,d+u+h*l)}a.restore()}var Qn,Ct=P(()=>{"use strict";Qn=class{constructor(){c(this,"Ie",null);c(this,"Xt",0);c(this,"$t",null);c(this,"tn",null);c(this,"bt",!1)}get isPinned(){return this.bt}setHost(t){this.bt&&(this.tn?.dismiss(),this.bt=!1),this.tn=t}setCursor(t){this.tn?.setCursor(t)}attach(t){this.detach(),this.Ie=t}detach(){this.Xt&&(cancelAnimationFrame(this.Xt),this.Xt=0),this.$t!==null&&(clearTimeout(this.$t),this.$t=null),this.Ie=null}dispatchHover(t,n){if(this.bt||!this.Ie||this.Xt||this.$t!==null)return;let o=()=>{this.Xt=0,this.$t=null,this.Ie?.onHover(t,n)};typeof requestAnimationFrame=="function"?this.Xt=requestAnimationFrame(o):this.$t=setTimeout(o,16)}dispatchLeave(){this.bt||!this.Ie||this.Ie.onLeave()}dispatchClick(t,n){if(this.Ie&&!this.Ie.onClickPre?.(t,n)){if(this.bt){let o=this.Ie;this.dismiss(),o.onUnpin?.();return}this.Ie.onPin?.(t,n)}}dispatchDblClick(t,n){this.Ie?.onDblClick?.(t,n)}pin(t,n,o){t.length!==0&&(this.tn?.pin(t,n,o),this.bt=!0)}dismiss(){this.tn?.dismiss(),this.bt=!1}}});function eo(e){let t=e.trim();if(t.startsWith("#")){let o=t.slice(1);return o.length===3&&(o=o[0]+o[0]+o[1]+o[1]+o[2]+o[2]),[parseInt(o.slice(0,2),16)/255,parseInt(o.slice(2,4),16)/255,parseInt(o.slice(4,6),16)/255]}let n=t.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);return n?[+n[1]/255,+n[2]/255,+n[3]/255]:[.5,.5,.5]}var Pi=P(()=>{"use strict"});function rs(e){if(!e)return rt.slice();let t=e.trim();if(!t)return rt.slice();let n=t.indexOf("(");if(n<0||!/^linear-gradient\\s*\\(/i.test(t))return rt.slice();let o=t.lastIndexOf(")");if(o<=n)return rt.slice();let i=t.substring(n+1,o),r=[],s=0,a=0;for(let b=0;b<i.length;b++){let p=i[b];p==="("?s++:p===")"?s--:p===","&&s===0&&(r.push(i.substring(a,b)),a=b+1)}r.push(i.substring(a));let l=[],u=0;if(r.length>0){let b=r[0].trim().toLowerCase();(b.startsWith("to ")||/^[-\\d.]+(deg|rad|grad|turn)/.test(b))&&(u=1)}for(let b=u;b<r.length;b++){let p=r[b].trim();if(!p)continue;let d=p.match(/\\s([\\-\\d.]+)%\\s*$/),g=d?p.substring(0,d.index).trim():p,h=d?parseFloat(d[1])/100:null;try{let y=eo(g);l.push({color:y,offset:h})}catch{}}if(l.length===0)return rt.slice();if(l.length===1){let[b,p,d]=l[0].color;return[{offset:0,color:[b,p,d,1]},{offset:1,color:[b,p,d,1]}]}l[0].offset===null&&(l[0].offset=0),l[l.length-1].offset===null&&(l[l.length-1].offset=1);for(let b=1;b<l.length-1;b++){if(l[b].offset!==null)continue;let p=b+1;for(;p<l.length&&l[p].offset===null;)p++;let d=l[b-1].offset,g=l[p].offset,h=p-(b-1);for(let y=b;y<p;y++)l[y].offset=d+(y-(b-1))/h*(g-d);b=p-1}let m=0;return l.map(b=>{let p=Math.max(m,Math.min(1,b.offset));return m=p,{offset:p,color:[b.color[0],b.color[1],b.color[2],1]}})}function Ae(e,t){if(e.length===0)return[0,0,0,1];if(t<=e[0].offset)return e[0].color.slice();let n=e[e.length-1];if(t>=n.offset)return n.color.slice();let o=0,i=e.length-1;for(;i-o>1;){let u=o+i>>1;e[u].offset<=t?o=u:i=u}let r=e[o],s=e[i],a=s.offset-r.offset,l=a>0?(t-r.offset)/a:0;return[r.color[0]+(s.color[0]-r.color[0])*l,r.color[1]+(s.color[1]-r.color[1])*l,r.color[2]+(s.color[2]-r.color[2])*l,r.color[3]+(s.color[3]-r.color[3])*l]}function st(e,t,n){if(!isFinite(e)||t===n)return .5;let o;if(t>=0?o=n:n<=0?o=-t:o=Math.max(-t,n),o<=0)return .5;let i=.5+.5*(e/o);return i<0?0:i>1?1:i}function ss(e){if(e.length===0)return rt.slice();if(e.length===1){let[n,o,i]=e[0];return[{offset:0,color:[n,o,i,1]},{offset:1,color:[n,o,i,1]}]}let t=e.length-1;return e.map(([n,o,i],r)=>({offset:r/t,color:[n,o,i,1]}))}function as(e,t=256){let n=new Uint8Array(t*4);for(let o=0;o<t;o++){let i=t===1?0:o/(t-1),r=Ae(e,i);n[o*4]=Math.round(r[0]*255),n[o*4+1]=Math.round(r[1]*255),n[o*4+2]=Math.round(r[2]*255),n[o*4+3]=Math.round(r[3]*255)}return n}var rt,Be=P(()=>{"use strict";Pi();rt=[{offset:0,color:[3/255,102/255,214/255,1]},{offset:1,color:[255/255,127/255,14/255,1]}]});function gu(e){return isFinite(e)?e<0?0:e>1?1:e:.5}function ls(e){return!isFinite(e)||e<0?1:e}function us(e){let t=(r,s)=>e[r]||s,n=e["--psp-charts--gradient--background"]||e["--psp-charts--full-gradient--background"]||"linear-gradient(#0366d6 0%, #ff7f0e 100%)",o=rs(n),i=[];for(let r=1;;r++){let s=e[`--psp-charts--series-${r}--color`];if(!s)break;i.push(eo(s))}return{fontFamily:t("--psp-charts--font-family",t("font-family","monospace")),backgroundColor:t("--psp--background-color","rgba(255, 255, 255, 1)"),Ft:t("--psp-charts--axis-ticks--color","rgba(160, 0, 0, 0.8)"),xe:t("--psp--color","rgba(180, 0, 0, 0.9)"),Ro:t("--psp-charts--axis-lines--color","rgba(160, 0, 0, 0.4)"),Nn:t("--psp-charts--gridline--color","rgba(255, 0, 0, 1)"),H:o,Mo:t("--psp-charts--legend--color","rgba(180, 180, 180, 0.9)"),ji:t("--psp-charts--legend-border--color","rgba(128,128,128,0.3)"),kn:t("--psp-charts--tooltip--background","rgba(155,155,155,0.8)"),xi:t("--psp-charts--tooltip--color","#161616"),yi:t("--psp-charts--tooltip--border-color","#fff"),Fo:gu(parseFloat(t("--psp-charts--area--opacity","0.85"))),Ci:ls(parseFloat(t("--psp-charts--heatmap-gap--px","0"))),_i:ls(parseFloat(t("--psp-charts--sunburst-gap--px","1"))),Be:i}}var ms=P(()=>{"use strict";Pi();Be()});function cs(e,t){let n=at.get(e);n?n.fullRender=t:(n={glManager:e,fullRender:t,waiters:[]},at.set(e,n));let o=Promise.withResolvers();return n.waiters.push(o),to||(to=gs(bs)),o.promise}function ds(e,t){if(!no.has(e)){t();return}let n=zt.get(e);n||(n=[],zt.set(e,n)),n.push(t)}function ps(e){let t=at.get(e);if(t){at.delete(e);for(let n of t.waiters)n.resolve()}zt.delete(e),no.delete(e)}async function bs(){let e=Array.from(at.values());at.clear();let t=new Map;for(let n of e){if(n.glManager.isContextLost()){for(let r of n.waiters)r.resolve();continue}let o=n.glManager.backendId,i=t.get(o);i?i.push(n):t.set(o,[n])}await Promise.all(Array.from(t.values()).map(hu)),to=0,at.size>0&&(to=gs(bs))}async function hu(e){for(let t of e)await yu(t)}async function yu(e){no.add(e.glManager);try{e.glManager.beginFrame(),e.fullRender()}catch(t){console.error("scheduler: fullRender threw",t);for(let n of e.waiters)n.reject(t);fs(e.glManager);return}try{await e.glManager.awaitGpuFence(),e.glManager.endFrame();for(let t of e.waiters)t.resolve()}catch(t){console.error("scheduler: present failed",t);try{e.glManager.endFrame()}catch{}for(let n of e.waiters)n.reject(t)}finally{fs(e.glManager)}}function fs(e){no.delete(e);let t=zt.get(e);if(t){zt.delete(e);for(let n of t)try{n()}catch(o){console.error("scheduler: deferred op threw",o)}}}function gs(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,16)}var at,to,no,zt,Gi=P(()=>{"use strict";at=new Map,to=0,no=new Set,zt=new Map});var hs,xu,Cu,Le,Xt=P(()=>{"use strict";Qr();es();ve();qn();is();Ct();ms();Gi();hs=!0,xu=(()=>{if(hs)return ae;{let e=Ii("float");return t=>e.format(t)}})(),Cu=(()=>{if(hs)return he;{let e=Bi();return t=>e.format(t)}})(),Le=class{constructor(){c(this,"e",null);c(this,"D",null);c(this,"d",null);c(this,"vi",{});c(this,"b",null);c(this,"nn",[]);c(this,"I",[]);c(this,"A",[]);c(this,"E",[]);c(this,"Ee",{});c(this,"Un",!1);c(this,"On",!1);c(this,"gt",{});c(this,"So",{});c(this,"Do",new Map);c(this,"Vn");c(this,"N",{...ns});c(this,"h",{...os});c(this,"L",new Qn);c(this,"Io",null);c(this,"Hn",Promise.resolve());c(this,"on",null);c(this,"Le",null)}setGridlineCanvas(t){this.D=t}setChromeCanvas(t){this.d=t}setTheme(t){this.vi=t,this.on=null}setZoomController(t){this.b=t,t.configure(this.getZoomConfig())}getZoomControllerForFacet(t){if(this.N.zoom_mode==="shared")return this.b;if(!this.b)return null;let n=this.nn[t];return n||(n=new xt,n.configure(this.getZoomConfig()),this.nn[t]=n),n}computeEffectiveFacetFlags(){let t=this.N.zoom_mode==="independent",n=!t&&this.N.shared_x_axis,o=!t&&this.N.shared_y_axis;return this.Un=n,this.On=o,{independentZoom:t,effectiveSharedX:n,effectiveSharedY:o}}syncFacetZoomLayouts(t){let n=this.N.zoom_mode==="independent";for(let o=0;o<t.length;o++)if(this.getZoomControllerForFacet(o)?.updateLayout(t[o].layout),!n)return}setZoomBaseDomain(t,n,o,i){this.b&&this.b.setBaseDomain(t,n,o,i);for(let r of this.nn)r&&r.setBaseDomain(t,n,o,i)}getZoomConfig(){return{}}setColumnSlots(t){this.I=t}setViewPivots(t,n){this.A=t,this.E=n}setColumnTypes(t){this.Ee=t,this.Ai()}resetExpandedDomain(){}setGroupByTypes(t){this.gt=t}setColumnsConfig(t){this.So=t??{},this.Ai()}Ai(){this.Do=new Map;for(let[t,n]of Object.entries(this.So)){let o=this.Ee[t]??this.gt[t],i=this.Zi(o,n);i&&this.Do.set(t,i)}}Zi(t,n){if(!(!t||!n)){if(t==="integer"||t==="float"){let o=n.number_format;if(!o)return;let i=Ii(t,o);return r=>i.format(r)}if(t==="datetime"){let o=n.date_format;if(!o)return;let i=Bi(o);return r=>i.format(r)}if(t==="date"){let o=n.date_format;if(!o)return;let i=Jr(o);return r=>i.format(r)}}}getColumnFormatter(t,n="value"){if(t){let r=this.Do.get(Ei(t));if(r)return r}if(n==="tick")return;let o=t?Ei(t):void 0,i=o?this.Ee[o]??this.gt[o]:void 0;return i==="date"||i==="datetime"?Cu:xu}setDefaultChartType(t){this.Vn=t}setFacetConfig(t){this.N={...t}}setPluginConfig(t){this.h={...t},this.N={...this.N,facet_mode:t.facet_mode,zoom_mode:t.facet_zoom_mode},this.Yn=t.series_zoom_mode==="dynamic"}T(){return this.on||(this.on=us(this.vi)),this.on}invalidateTheme(){this.on=null}setView(t){this.Le&&this.Le.dispose(),this.Le=new Jn(t);let n=this.L.isPinned;this.L.dismiss(),n&&this.emitUnselect()}tooltipCallbacks(){return{onHover:()=>{},onLeave:()=>{}}}attachTooltip(t){this.L.attach(this.tooltipCallbacks()),this.L.setHost(t),this.Io=t}async buildClickDetail(t){let n={};if(t.rowIdx!=null&&t.rowIdx>=0&&this.Le)try{let i=await this.Le.fetchRow(t.rowIdx);n=Object.fromEntries(i)}catch{n={}}let o=[];for(let i=0;i<this.A.length;i++){let r=t.groupByValues[i];r!=null&&r!==""&&o.push([this.A[i],"==",r])}for(let i=0;i<this.E.length;i++){let r=t.splitByValues[i];r!=null&&r!==""&&o.push([this.E[i],"==",r])}return{row:n,column_names:[t.columnName],config:{filter:o}}}emitUserClick(t){let n={row:t.row,column_names:t.column_names,config:t.config};this.Io?.emitUserClick?.(n)}emitUserSelect(t){let n={selected:t.selected,row:t.row,column_names:t.column_names,insertConfig:t.insertConfig};this.Io?.emitUserSelect?.(n)}emitClickAndSelect(t){let n=this.Hn.then(async()=>{let o=await this.buildClickDetail(t);this.emitUserClick(o),this.emitUserSelect({selected:!0,row:o.row,column_names:o.column_names,insertConfig:o.config})});return this.Hn=n.catch(o=>{console.error("emitClickAndSelect failed",o)}),n}emitUnselect(t={}){let n=this.Hn.then(()=>{this.emitUserSelect({selected:!1,row:t.row??{},column_names:t.column_names??[],insertConfig:{filter:[]}})});this.Hn=n.catch(o=>{console.error("emitUnselect failed",o)})}requestRender(t){return cs(t,()=>this.St(t))}destroy(){this.L.detach(),this.L.dismiss(),this.Le&&(this.Le.dispose(),this.Le=null),this.destroyInternal()}}});var oo,ys=P(()=>{"use strict";oo=class{constructor(t,n,o,i,r){c(this,"Ze",new Map);c(this,"ce");c(this,"Ce");c(this,"Dt");c(this,"Li");this.ce=t,this.Ce=o,this.Dt=r,this.Li=Math.max(1,Math.ceil((n-t)/r))}Ti(t,n){return n*this.Li+t}insert(t,n,o){let i=Math.floor((n-this.ce)/this.Dt),r=Math.floor((o-this.Ce)/this.Dt),s=this.Ti(i,r),a=this.Ze.get(s);a||(a=[],this.Ze.set(s,a)),a.push(t)}query(t,n,o,i,r,s,a){let l=Math.ceil(o/i/this.Dt),u=Math.ceil(o/r/this.Dt),m=Math.floor((t-this.ce)/this.Dt),f=Math.floor((n-this.Ce)/this.Dt),b=-1,p=o*o;for(let d=f-u;d<=f+u;d++)for(let g=m-l;g<=m+l;g++){let h=this.Ze.get(this.Ti(g,d));if(h)for(let y of h){let x=(s[y]-t)*i,C=(a[y]-n)*r,_=x*x+C*C;_<p&&(p=_,b=y)}}return b}}});var io,xs=P(()=>{"use strict";ys();io=class{constructor(){c(this,"rn",null);c(this,"sn",!0)}markDirty(){this.sn=!0}get isDirty(){return this.sn}rebuild(t,n,o){if(n===0){this.rn=null,this.sn=!1;return}let i=t.xMax-t.xMin||1,r=t.yMax-t.yMin||1,a=(i+r)/2/Math.max(1,Math.sqrt(n)),l=new oo(t.xMin,t.xMax,t.yMin,t.yMax,a);o((u,m,f)=>l.insert(u,m,f)),this.rn=l,this.sn=!1}query(t,n,o,i,r,s,a){return!this.rn||!s||!a?-1:this.rn.query(t,n,o,i,r,s,a)}clear(){this.rn=null,this.sn=!0}}});function Ve(e,t,n=[]){let o=new Map;for(let r of e.keys()){if(r.startsWith("__"))continue;let s=r.lastIndexOf("|");if(s===-1)continue;let a=r.substring(0,s);o.has(a)||o.set(a,new Set),o.get(a).add(r)}let i=[];for(let[r,s]of o){let a=new Map,l=!0;for(let u of t){if(!u)continue;let m=`${r}|${u}`,f=e.get(m);if(!s.has(m)||!f?.values){l=!1;break}a.set(u,m)}if(l){for(let u of n){if(!u)continue;let m=`${r}|${u}`;s.has(m)&&e.get(m)?.values&&a.set(u,m)}i.push({prefix:r,colNames:a})}}return i}var $t=P(()=>{"use strict"});var ro,Cs=P(()=>{"use strict";ro=class{constructor(t){c(this,"data");c(this,"dictionary",[]);c(this,"dictMap",new Map);this.data=new Int32Array(t),this.data.fill(-1)}set(t,n){let o=this.dictMap.get(n);return o===void 0&&(o=this.dictionary.length,this.dictionary.push(n),this.dictMap.set(n,o)),this.data[t]=o,o}get(t){let n=this.data[t];return n<0?null:this.dictionary[n]}}});function _s(e,t,n,o){let i;if(!e)i="(null)";else{let s=e.valid;if(!(s?!!(s[t>>3]>>(t&7)&1):!0))i="(null)";else if(e.indices&&e.dictionary)i=e.dictionary[e.indices[t]]??"(null)";else if(e.values){let l=e.values[t];i=l==null?"(null)":String(l)}else i="(null)"}let r=o.get(i);return r===void 0&&(r=n.length,n.push(i),o.set(i,r)),r}function _u(e,t,n,o,i,r){let s=t?[t,n]:[n],a=[];return o&&a.push(o),i&&a.push(i),r&&a.push(r),Ve(e,s,a).map(l=>({prefix:l.prefix,xColName:t?l.colNames.get(t):"",yColName:l.colNames.get(n),colorColName:o?`${l.prefix}|${o}`:"",sizeColName:i?`${l.prefix}|${i}`:"",labelColName:r?`${l.prefix}|${r}`:""}))}function vs(e,t,n,o){e.glyph.ensureProgram(e,t);let i=e.s,r=e.j;e.h.domain_mode==="expand"?(e.ce=e.an,e.qe=e.ln,e.Ce=e.un,e.Ke=e.mn,e.c=e.zn,e.f=e.Xn,e.Je=e.$n,e.Qe=e.jn):(e.ce=1/0,e.qe=-1/0,e.Ce=1/0,e.Ke=-1/0,e.c=1/0,e.f=-1/0,e.Je=1/0,e.Qe=-1/0,e.an=1/0,e.ln=-1/0,e.un=1/0,e.mn=-1/0,e.zn=1/0,e.Xn=-1/0,e.$n=1/0,e.jn=-1/0),e.R=NaN,e.M=NaN,e.ht=0,e.jt.clear(),e.Bo=0;let a=e.I,l=a[0]||"",u=a[1]||"",m=a[2]||"",f=a[3]||"",b=a[4]||"";e.Pe=l,e.Te=u,e.wi=!l,e.we=!!l&&e.Ee[l]==="string",e.de=!!u&&e.Ee[u]==="string",e.Zt=[],e.qt=[],e.Ri=new Map,e.Mi=new Map,e.et=null,e.tt=null,e.we&&(e.R=0,e.ce=0,e.qe=0,e.an=1/0,e.ln=-1/0),e.de&&(e.M=0,e.Ce=0,e.Ke=0,e.un=1/0,e.mn=-1/0);let p=t.C.totalCapacity||o;if(e.E.length>0){if(e._=_u(n,l,u,m,f,b),e._.length===0){e.w=0,e.U=[];return}if(e.Ye=e._[0].xColName,e.Ge=e._[0].yColName,e.s=m,e.K=f,e.Zn=b,e.j=!1,m){let h=n.get(e._[0].colorColName);e.j=h?.type==="string"}t.ensureBufferCapacity(p*e._.length)}else if(e._=[],e.Ye=l,e.Ge=u,e.s=m,e.K=f,e.Zn=b,e.j=!1,e.s){let h=n.get(e.s);e.j=h?.type==="string"}(e.s!==i||e.j!==r)&&(e.u=new Map);let d=Math.max(1,e._.length);e.w=p,e.U=new Array(d).fill(0);let g=d*p;e.O=new Float32Array(g),e.V=new Float32Array(g),e.yt=new Float32Array(g),e.It=new Int32Array(g),e.Bt=b?new ro(g):null}function As(e,t,n,o,i,r){if(!e.Ge)return;let s=i;if(s===0||e.w===0)return;let a=e._.length>0,l=[];if(a)for(let d of e._){let g=d.xColName?n.get(d.xColName):null,h=n.get(d.yColName);if(!h||!e.de&&!h.values)continue;let y=d.sizeColName?n.get(d.sizeColName):null,x=d.colorColName?n.get(d.colorColName)??null:null,C=d.labelColName?n.get(d.labelColName)??null:null;l.push({xCol:g?.values??null,yCol:h.values??null,xColData:g??null,yColData:h,xValid:g?.valid,yValid:h.valid,colorCol:x,sizeCol:y?.values??null,labelCol:C})}else{let d=e.Ye?n.get(e.Ye):null,g=e.Ge?n.get(e.Ge):null;if(!g||!e.de&&!g.values)return;let h=e.s?n.get(e.s)??null:null,y=e.Zn?n.get(e.Zn)??null:null;l.push({xCol:d?.values??null,yCol:g.values??null,xColData:d??null,yColData:g,xValid:d?.valid,yValid:g?.valid,colorCol:h,sizeCol:null,labelCol:y})}if(l.length===0)return;e.Fi<s&&(e.Eo=new Float32Array(s*2),e.Po=new Float32Array(s),e.Go=new Float32Array(s),e.Fi=s);let u=e.Eo,m=e.Po,f=e.Go,b=!a&&e.K?n.get(e.K)?.values??null:null;if(e.j&&e.s){for(let d of l){let g=d.colorCol?.dictionary;if(g)for(let h=0;h<g.length;h++){let y=g[h];e.u.has(y)||e.u.set(y,e.u.size)}}e.u.size>0&&(e.c=0,e.f=e.u.size-1)}!e.s&&e._.length>1&&(e.c=0,e.f=e._.length-1);for(let d=0;d<l.length;d++){let g=l[d],h=e.U[d]??0,y=d*e.w,x=e.w-h;if(x<=0)continue;let C=g.colorCol?.valid,_=0;for(let w=0;w<s&&_<x;w++){let L=w;if(!e.de&&g.yValid&&!(g.yValid[L>>3]>>(L&7)&1)||!e.we&&g.xCol&&g.xValid&&!(g.xValid[L>>3]>>(L&7)&1))continue;let T=C!==void 0&&!(C[L>>3]>>(L&7)&1),F;if(e.de)F=_s(g.yColData,L,e.qt,e.Mi);else if(g.yCol){if(F=g.yCol[L],isNaN(F))continue}else continue;let G;if(e.we)G=_s(g.xColData,L,e.Zt,e.Ri);else if(g.xCol){if(G=g.xCol[L],isNaN(G))continue}else G=o+L;let[E,I]=e.projectPoint(G,F);if(isNaN(E)||isNaN(I))continue;E<e.ce&&(e.ce=E),E>e.qe&&(e.qe=E),I<e.Ce&&(e.Ce=I),I>e.Ke&&(e.Ke=I),isNaN(e.R)&&(e.R=E),isNaN(e.M)&&(e.M=I);let k=E-e.R,N=I-e.M,O=y+h+_;e.O[O]=k,e.V[O]=N,e.It[O]=o+L,u[_*2]=k,u[_*2+1]=N;let U=g.colorCol;if(T)m[_]=.5,e.yt[O]=.5;else if(U&&!e.j&&U.values){let S=U.values[L];m[_]=S,e.yt[O]=S,S<e.c&&(e.c=S),S>e.f&&(e.f=S)}else if(U&&e.j&&U.indices&&U.dictionary){let S=U.dictionary[U.indices[L]];e.u.has(S)||(e.u.set(S,e.u.size),e.f=e.u.size-1);let X=e.u.get(S);m[_]=X,e.yt[O]=X}else m[_]=d,e.yt[O]=d;if(e.Bt&&g.labelCol){let S=g.labelCol,X=S.valid;!(X!==void 0&&!(X[L>>3]>>(L&7)&1))&&S.indices&&S.dictionary&&e.Bt.set(O,S.dictionary[S.indices[L]])}if(g.sizeCol){let S=g.sizeCol[L];f[_]=S,S<e.Je&&(e.Je=S),S>e.Qe&&(e.Qe=S)}else if(b){let S=b[L];f[_]=S,S<e.Je&&(e.Je=S),S>e.Qe&&(e.Qe=S)}else f[_]=0;_++}if(_===0)continue;let v=(y+h)*2*Float32Array.BYTES_PER_ELEMENT;t.C.upload("a_position",u.subarray(0,_*2),v,2);let A=(y+h)*Float32Array.BYTES_PER_ELEMENT;t.C.upload("a_color_value",m.subarray(0,_),A),t.C.upload("a_size_value",f.subarray(0,_),A),e.U[d]=h+_,e.U[d]>e.Bo&&(e.Bo=e.U[d])}let p=0;for(let d of e.U)p+=d;e.ht=p,t.uploadedCount=p,e.jt.markDirty(),isFinite(e.ce)&&e.setZoomBaseDomain(e.ce,e.qe,e.Ce,e.Ke)}var Ls=P(()=>{"use strict";$t();Cs()});function so(e,t,n,o,i){let r=e.getContext("2d");r&&(r.save(),r.setTransform(1,0,0,1,0,0),r.scale(i,i),r.font=`11px ${o.fontFamily}`,r.fillStyle=o.xe,r.textAlign="center",r.textBaseline="middle",r.fillText(t,n.x+n.width/2,n.y+n.height/2),r.restore())}var Wi=P(()=>{"use strict"});var ee,He=P(()=>{"use strict";ee=class{constructor(t,n,o){c(this,"margins");c(this,"t");c(this,"cssWidth");c(this,"cssHeight");c(this,"Z",0);c(this,"ie",1);c(this,"J",0);c(this,"re",1);this.cssWidth=t,this.cssHeight=n;let r=(o.leftExtra??55)+(o.hasYLabel?16:0),a=(o.bottomExtra??24)+(o.hasXLabel?18:0),l=0,u=o.rightExtra??(o.hasLegend?80:16),m=o.originX??0,f=o.originY??0,b=o.cellWidth??t,p=o.cellHeight??n,d=m+r,g=f+l,h=Math.max(1,b-r-u),y=Math.max(1,p-l-a),x=t-(d+h),C=n-(g+y);this.margins={top:g,right:x,bottom:C,left:d},this.t={x:d,y:g,width:h,height:y}}buildProjectionMatrix(t,n,o,i,r,s,a=.02,l=0,u=0){let m=n-t,f=i-o;m===0&&(m=1),f===0&&(f=1);let b=m*a,p=f*a,d=s&&r==="y"&&o>=0,g=s&&r==="y"&&i<=0,h=s&&r==="x"&&t>=0,y=s&&r==="x"&&n<=0;t-=b,n+=b,o-=p,i+=p,d?(o=0,i+=p):g&&(i=0,o-=p),h?(t=0,n+=b):y&&(n=0,t-=b),this.Z=t,this.ie=n,this.J=o,this.re=i;let x=2*this.margins.left/this.cssWidth-1,C=1-2*this.margins.right/this.cssWidth,_=2*this.margins.bottom/this.cssHeight-1,v=1-2*this.margins.top/this.cssHeight,A=(C-x)/(n-t),w=(v-_)/(i-o),L=x-A*(t-l),T=_-w*(o-u);return new Float32Array([A,0,0,0,0,w,0,0,0,0,-1,0,L,T,0,1])}P(t,n){let{x:o,y:i,width:r,height:s}=this.t,a=(t-this.Z)/(this.ie-this.Z),l=(n-this.J)/(this.re-this.J);return{px:o+a*r,py:i+(1-l)*s}}}});function Ts(e){return e.cells.filter(t=>t.isBottomEdge).map(t=>t.layout)}function ws(e){return e.cells.filter(t=>t.isLeftEdge).map(t=>t.layout)}function Mu(e,t,n,o){if(e<=1)return{cols:1,rows:1};let i=1,r=e,s=1/0,a=e;for(let l=1;l<=e;l++){let u=Math.ceil(e/l),m=Math.max(1,(t-(l-1)*o)/l),f=Math.max(1,(n-(u-1)*o)/u),b=m/f,p=Math.max(b,1/b),d=l*u;(p<s||p===s&&d<a)&&(i=l,r=u,s=p,a=d)}return{cols:i,rows:r}}function Ye(e,t){let n=e.length,{cssWidth:o,cssHeight:i}=t;if(n<=0||o<=0||i<=0)return{cells:[]};let r=t.titleBand??wu,s=t.hasLegend?Ru:0,a=t.xAxis??"cell",l=t.yAxis??"cell",u=a==="none"&&l==="none",m=l==="outer"?vu+(t.hasYLabel?Lu:0):0,f=a==="outer"?Au+(t.hasXLabel?Tu:0):0,b=0,p=s,d=m,g=b,h=Math.max(1,o-m-p),y=Math.max(1,i-b-f),x=Math.max(0,t.gap??0),{cols:C,rows:_}=Mu(n,h,y,x),v=Math.max(0,C-1)*x,A=Math.max(0,_-1)*x,w=Math.max(1,(h-v)/C),L=Math.max(1,(y-A)/_),T=[];for(let I=0;I<n;I++){let k=Math.floor(I/C),N=I-k*C,O=k===_-1||I+C>=n,U=N===0,S=d+N*(w+x),X=g+k*(L+x),H=X+r,z=S,te=w,xe=Math.max(1,L-r),Ce=new ee(o,i,{hasXLabel:a==="cell"&&t.hasXLabel===!0,hasYLabel:l==="cell"&&t.hasYLabel===!0,hasLegend:!1,leftExtra:l==="cell"?void 0:0,bottomExtra:a==="cell"?void 0:0,rightExtra:u?0:void 0,originX:z,originY:H,cellWidth:te,cellHeight:xe}),_e=r>0?{x:z,y:X,width:te,height:r}:void 0;T.push({index:I,label:e[I],layout:Ce,titleRect:_e,isLeftEdge:U,isBottomEdge:O})}let F=t.hasLegend?{x:d+h,y:b,width:s,height:y}:void 0,G=a==="outer"?{x:d,y:g+y,width:h,height:f}:void 0;return{cells:T,legendRect:F,outerXAxisRect:G,outerYAxisRect:l==="outer"?{x:0,y:g,width:m,height:y}:void 0}}var vu,Au,Lu,Tu,wu,Ru,jt=P(()=>{"use strict";He();vu=55,Au=24,Lu=16,Tu=18,wu=18,Ru=96});function Fu(e,t){if(t<=0)return[];let n=new Array(t);for(let o=0;o<t;o++){let i=t===1?.5:o/(t-1),r=Ae(e,i);n[o]=[r[0],r[1],r[2]]}return n}function fe(e,t,n){if(e.length>0){if(e.length>=n)return e.slice(0,n);let o=new Array(n);for(let i=0;i<n;i++)o[i]=e[i%e.length];return o}return Fu(t,n)}var Zt=P(()=>{"use strict";Be()});function qt(e){e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA)}function Kt(e,t,n,o){e.enable(e.SCISSOR_TEST),e.scissor(Math.round(t.margins.left*n),Math.round(t.margins.bottom*n),Math.round(t.t.width*n),Math.round(t.t.height*n));try{o()}finally{e.disable(e.SCISSOR_TEST)}}function ze(e,t,n,o){qt(e),Kt(e,t,n,o)}var Jt=P(()=>{"use strict"});function Qt(e,t,n){let o=e.gl,i;if(t?.texture){if(i=t.texture,t.lastStops===n)return t}else i=o.createTexture();let r=as(n,Rs);return o.bindTexture(o.TEXTURE_2D,i),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,Rs,1,0,o.RGBA,o.UNSIGNED_BYTE,r),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),{texture:i,lastStops:n}}function Ee(e,t,n,o=0){let i=e.gl;i.activeTexture(i.TEXTURE0+o),i.bindTexture(i.TEXTURE_2D,t),i.uniform1i(n,o)}var Rs,_t=P(()=>{"use strict";Be();Rs=256});function de(e,t,n){e.width=Math.round(t.cssWidth*n),e.height=Math.round(t.cssHeight*n);let o=e.getContext("2d");return o?(o.scale(n,n),o.clearRect(0,0,t.cssWidth,t.cssHeight),o):null}function le(e,t){let n=e.getContext("2d");return n?(n.setTransform(t,0,0,t,0,0),n):null}var vt=P(()=>{"use strict"});function ao(e,t,n,o,i,r,s){let a=i==="bottom"?1:-1;e.textAlign="center",e.textBaseline=i==="bottom"?"top":"bottom";let l=a*8;for(let u of n){let m=r(u);m<t.x-1||m>t.x+t.width+1||(e.beginPath(),e.moveTo(m,o),e.lineTo(m,o+a*5),e.stroke(),e.fillText(s(u),m,o+l))}}function lo(e,t,n,o,i,r,s){let a=i==="left"?-1:1;e.textAlign=i==="left"?"right":"left",e.textBaseline="middle";let l=a*8;for(let u of n){let m=r(u);m<t.y-1||m>t.y+t.height+1||(e.beginPath(),e.moveTo(o,m),e.lineTo(o+a*5,m),e.stroke(),e.fillText(s(u),o+l,m))}}function uo(e,t,n,o){for(let i of n){let r=Math.round(o(i))+.5;r<t.x||r>t.x+t.width||(e.beginPath(),e.moveTo(r,t.y),e.lineTo(r,t.y+t.height),e.stroke())}}function mo(e,t,n,o){for(let i of n){let r=Math.round(o(i))+.5;r<t.y||r>t.y+t.height||(e.beginPath(),e.moveTo(t.x,r),e.lineTo(t.x+t.width,r),e.stroke())}}var ki=P(()=>{"use strict"});function At(e,t,n){let{t:o}=n,i=Math.max(2,Math.floor(o.width/90)),r=Math.max(2,Math.floor(o.height/60));return{xTicks:se(e.min,e.max,i),yTicks:se(t.min,t.max,r)}}function Ni(e,t,n,o,i,r){let s=le(e,r);if(!s)return;let{t:a}=t;s.strokeStyle=i.Nn,s.lineWidth=1,uo(s,a,n,l=>t.P(l,0).px),mo(s,a,o,l=>t.P(0,l).py)}function Ms(e,t,n){if(n)return n;let o=t.length>1?t[1]-t[0]:0;return e.isDate?i=>he(i,o):ae}function Fs(e,t,n,o,i,r,s,a,l){let{Ft:u,xe:m,Ro:f,fontFamily:b}=s,p=Ms(t,n,l);e.strokeStyle=f,e.lineWidth=1,e.beginPath(),e.moveTo(r.x,i),e.lineTo(r.x+r.width,i),e.stroke(),e.fillStyle=u,e.strokeStyle=u,e.font=`11px ${b}`;for(let d of o)ao(e,d.t,n,i,"bottom",g=>d.P(g,0).px,p);a&&t.label&&(e.fillStyle=m,e.font=`13px ${b}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(t.label,a.cx,a.baselineY))}function Ss(e,t,n,o,i,r,s,a,l){let{Ft:u,xe:m,Ro:f,fontFamily:b}=s,p=Ms(t,n,l);e.strokeStyle=f,e.lineWidth=1,e.beginPath(),e.moveTo(i,r.y),e.lineTo(i,r.y+r.height),e.stroke(),e.fillStyle=u,e.strokeStyle=u,e.font=`11px ${b}`;for(let d of o)lo(e,d.t,n,i,"left",g=>d.P(0,g).py,p);a&&t.label&&(e.fillStyle=m,e.font=`13px ${b}`,e.save(),e.translate(14,a.pivotY),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="bottom",e.fillText(t.label,0,0),e.restore())}function Ui(e,t,n,o,i,r,s,a){let l=le(e,s);if(!l)return;let{t:u}=n;Fs(l,t,o,[n],u.y+u.height,u,i,r?{cx:u.x+u.width/2,baselineY:n.cssHeight-2}:null,a)}function Oi(e,t,n,o,i,r,s,a){let l=le(e,s);if(!l)return;let{t:u}=n;Ss(l,t,o,[n],u.x,u,i,r?{pivotY:u.y+u.height/2}:null,a)}function Ds(e,t,n,o,i,r,s,a,l){let u=le(e,a);u&&Fs(u,n,o,i,t.y,t,r,s?{cx:t.x+t.width/2,baselineY:t.y+t.height-2}:null,l)}function Is(e,t,n,o,i,r,s,a,l){let u=le(e,a);u&&Ss(u,n,o,i,t.x+t.width,t,r,s?{pivotY:t.y+t.height/2}:null,l)}var Bs=P(()=>{"use strict";ve();vt();ki()});function Vi(e,t,n,o,i){if(i===0)return{x:e-n/2,y:t,width:n,height:o};if(i===90)return{x:e-o/2,y:t,width:o,height:n};let r=(n+o)/Math.SQRT2;return{x:e-r,y:t,width:r,height:r}}function Hi(e,t){return e.x<=t.x+t.width&&t.x<=e.x+e.width&&e.y<=t.y+t.height&&t.y<=e.y+e.height}function Es(e,t){return e.x+e.width+14>t.x+t.width}function Yi(e,t){return e.x>=t.x&&e.x+e.width<=t.x+t.width&&e.y>=t.y&&e.y+e.height<=t.y+t.height}function lt(e,t,n){if(n<=0)return"";if(e.measureText(t).width<=n)return t;let o=0,i=t.length;for(;o<i;){let r=o+i+1>>1,s=t.slice(0,r)+"\\u2026";e.measureText(s).width<=n?o=r:i=r-1}return o===0?"":t.slice(0,o)+"\\u2026"}function Ps(e,t,n,o){if(o<=0||n<=0)return[];if(e.measureText(t).width<=n)return[t];let i=[],r=t;for(;r.length>0&&i.length<o;){let s=i.length===o-1,a=r.length;for(;a>0&&e.measureText(r.slice(0,a)).width>n;)a--;if(a===0&&(a=1),a===r.length){i.push(r);break}let l=a,u=r.lastIndexOf(" ",a);if(u>0&&(l=u),s){i.push(lt(e,r,n));break}i.push(r.slice(0,l)),r=r.slice(l).trimStart()}return i.length===1&&i[0].length<=2?[]:i}var fo=P(()=>{"use strict"});function co(e,t,n,o){let i=[];if(o<=n)return i;let r=n,s=e[n];for(let a=n+1;a<o;a++){let l=e[a];l!==s&&(i.push({startIdx:r,endIdx:a-1,label:t[s]??""}),r=a,s=l)}return i.push({startIdx:r,endIdx:o-1,label:t[s]??""}),i}function en(e,t,n){if(n<t)return[];let o=[];for(let i of e){if(i.endIdx<t||i.startIdx>n)continue;let r=i.startIdx<t?t:i.startIdx,s=i.endIdx>n?n:i.endIdx;r===i.startIdx&&s===i.endIdx?o.push(i):o.push({startIdx:r,endIdx:s,label:i.label})}return o}var tn=P(()=>{"use strict"});function zi(e,t){return e.P(t,0).px}function Xi(e,t){return e.P(0,t).py}function Pu(e,t,n){let o=Math.max(0,n-100);return e*16>o?{size:t*6.62+10,rotation:90}:e*(t*6+10)>o?{size:t*4+20,rotation:45}:{size:Su,rotation:0}}function Gs(e,t){let n=e.levels.length,o=[];for(let i=0;i<n;i++){let r=e.levels[i];i===n-1?o.push(Pu(e.numRows,r.maxLabelChars,t)):o.push({size:Du,rotation:0})}return o}function Ws(e){let t=e.levels.length,n=[],o=6.2;for(let i=0;i<t;i++)if(i===t-1){let r=e.levels[i].maxLabelChars;n.push(Math.max(Iu,r*o+Eu))}else n.push(Bu);return n}function ks(e){let t=0;for(let n of e)t+=n;return t}function Pe(e,t){return e.numRows===0||e.levels.length===0?24:ks(Gs(e,t).map(n=>n.size))}function Tt(e){return e.numRows===0||e.levels.length===0?55:ks(Ws(e))}function Gu(e,t,n,o){let i=t-e+1;if(i<=0)return[];let r=Math.max(1,Math.floor(n/o));if(i<=r){let l=[];for(let u=e;u<=t;u++)l.push(u);return l}let s=Math.ceil(i/r),a=[];for(let l=e;l<=t;l+=s)a.push(l);return a}function Ns(e,t){return e.labels[t]??""}function Us(e,t,n,o){let i=o?Math.min(t,n):t,r=o?Math.max(t,n):n,s=Math.max(0,Math.ceil(i)),a=Math.min(e-1,Math.floor(r));return a<s?null:[s,a]}function Os(e,t,n,o){let i=[];for(let r of e){let s=t(r.startIdx-.5),a=t(r.endIdx+.5),l=Math.max(n,Math.min(s,a)),u=Math.min(o,Math.max(s,a));u>l&&i.push({run:r,nearEdge:s,farEdge:a,nearClip:l,farClip:u})}return i}function Te(e,t,n,o){if(n.numRows===0||n.levels.length===0)return;let{Ft:i,xe:r,fontFamily:s}=o,{t:a}=t,l=a.y+a.height;e.strokeStyle=i,e.fillStyle=i,e.lineWidth=1,e.font=`${Lt}px ${s}`;let u=Gs(n,a.width),m=Us(n.numRows,t.Z,t.ie,!1);if(!m)return;let[f,b]=m,p=n.levels.length,d=l;for(let h=p-1;h>=0;h--){let y=n.levels[h],x=u[h],C=d;d+=x.size,h===p-1?Wu(e,t,y,f,b,C,x,s,i):ku(e,t,y,f,b,C,s,i)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=r,e.font=`13px ${s}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(g,a.x+a.width/2,t.cssHeight-2))}function Wu(e,t,n,o,i,r,s,a,l){let{t:u}=t,f=Math.max(40,Math.min(n.maxLabelChars*6.2+8,u.width/2)),b=s.rotation===0?Gu(o,i,u.width,f):Nu(o,i);e.strokeStyle=l,e.fillStyle=l,e.beginPath();for(let h of b){let y=zi(t,h);y<u.x-1||y>u.x+u.width+1||(e.moveTo(y,r),e.lineTo(y,r+po))}e.stroke(),e.font=`${Lt}px ${a}`;let p=r+po+3,d={x:u.x,width:u.width,y:r,height:9999},g=[];for(let h of b){let y=zi(t,h);if(y<u.x-1||y>u.x+u.width+1)continue;let x=Ns(n,h);if(!x)continue;let C=e.measureText(x).width,_=Vi(y,p,C,$i,s.rotation);if(Yi(_,d)){if(s.rotation===0){if(g.some(v=>Hi(v,_)))continue}else if(g.some(v=>Es(v,_)))continue;g.push(_),Vs(e,x,y,p,s.rotation,"center")}}}function ku(e,t,n,o,i,r,s,a){let{t:l}=t,u=en(n.runs,o,i);if(u.length===0)return;let m=Os(u,d=>zi(t,d),l.x,l.x+l.width);if(m.length===0)return;e.strokeStyle=a,e.fillStyle=a,e.beginPath();for(let d of m)e.moveTo(d.nearClip,r+3),e.lineTo(d.farClip,r+3),e.moveTo(d.nearEdge,r),e.lineTo(d.nearEdge,r+3),e.moveTo(d.farEdge,r),e.lineTo(d.farEdge,r+3);e.stroke(),e.font=`${Lt}px ${s}`;let f=r+3+4,b=[],p={x:l.x,width:l.width,y:r,height:9999};for(let d of m){let g=(d.nearClip+d.farClip)/2,h=d.run.label;if(!h)continue;let y=d.farClip-d.nearClip-4,x=lt(e,h,y);if(!x)continue;let C=e.measureText(x).width,_=Vi(g,f,C,$i,0);Yi(_,p)&&(b.some(v=>Hi(v,_))||(b.push(_),Vs(e,x,g,f,0,"center")))}}function Nu(e,t){let n=[];for(let o=e;o<=t;o++)n.push(o);return n}function ut(e,t,n,o){if(n.numRows===0||n.levels.length===0)return;let{Ft:i,xe:r,fontFamily:s}=o,{t:a}=t,l=a.x;e.strokeStyle=i,e.fillStyle=i,e.lineWidth=1,e.font=`${Lt}px ${s}`;let u=Ws(n),m=Us(n.numRows,t.J,t.re,!0);if(!m)return;let[f,b]=m,p=n.levels.length,d=l;for(let h=p-1;h>=0;h--){let y=n.levels[h],x=u[h],C=d;d-=x,h===p-1?Uu(e,t,y,f,b,C,s,i):Ou(e,t,y,f,b,C,x,s,i)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=r,e.font=`13px ${s}`,e.save(),e.translate(14,a.y+a.height/2),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="bottom",e.fillText(g,0,0),e.restore())}function Uu(e,t,n,o,i,r,s,a){let{t:l}=t,u=$i+4,m=i-o+1,f=Math.max(1,Math.floor(l.height/u)),b=m<=f?1:Math.ceil(m/f);e.strokeStyle=a,e.fillStyle=a,e.beginPath();for(let p=o;p<=i;p+=b){let d=Xi(t,p);d<l.y-1||d>l.y+l.height+1||(e.moveTo(r-po,d),e.lineTo(r,d))}e.stroke(),e.font=`${Lt}px ${s}`,e.textAlign="right",e.textBaseline="middle";for(let p=o;p<=i;p+=b){let d=Xi(t,p);if(d<l.y-1||d>l.y+l.height+1)continue;let g=Ns(n,p);g&&e.fillText(g,r-po-3,d)}}function Ou(e,t,n,o,i,r,s,a,l){let{t:u}=t,m=en(n.runs,o,i);if(m.length===0)return;let f=Os(m,p=>Xi(t,p),u.y,u.y+u.height);if(f.length===0)return;e.strokeStyle=l,e.fillStyle=l;let b=r-3;e.beginPath();for(let p of f)e.moveTo(b,p.nearClip),e.lineTo(b,p.farClip),e.moveTo(b,p.nearEdge),e.lineTo(r,p.nearEdge),e.moveTo(b,p.farEdge),e.lineTo(r,p.farEdge);e.stroke(),e.font=`${Lt}px ${a}`,e.textAlign="right",e.textBaseline="middle";for(let p of f){let d=(p.nearClip+p.farClip)/2,g=p.run.label;if(!g)continue;let h=s-6,y=lt(e,g,h);y&&e.fillText(y,b-3,d)}}function Vs(e,t,n,o,i,r){if(i===0){e.textAlign=r==="end"?"right":"center",e.textBaseline="top",e.fillText(t,n,o);return}e.save(),e.translate(n,o),e.rotate(-i*Math.PI/180),e.textAlign="right",e.textBaseline="middle",e.fillText(t,-2,0),e.restore()}var Su,Du,po,Lt,$i,Iu,Bu,Eu,wt=P(()=>{"use strict";fo();tn();Su=25,Du=22,po=5,Lt=11,$i=14,Iu=55,Bu=60,Eu=10});function Vu(e){return`rgb(${Math.round(e[0]*255)},${Math.round(e[1]*255)},${Math.round(e[2]*255)})`}function Rt(e,t,n,o,i,r){let s={x:t.t.x+t.t.width+12,y:t.margins.top+20,width:Math.max(1,t.cssWidth-t.t.x-t.t.width-12),height:Math.max(1,t.t.height)};nn(e,s,n,o,i,r)}function nn(e,t,n,o,i,r=ae){let s=e.getContext("2d");if(!s)return;let a=i.Mo,l=i.ji,u=i.fontFamily,m=16,f=Math.min(120,t.height*.4),b=t.x,p=t.y;s.fillStyle=a,s.font=`9px ${u}`,s.textAlign="left",s.textBaseline="bottom",s.fillText(n.label,b,p-4);let d=n.max,g=n.min,h=s.createLinearGradient(0,p,0,p+f),y=16;for(let C=0;C<=y;C++){let _=C/y,v=d+_*(g-d),A=st(v,n.min,n.max),w=Ae(o,A);h.addColorStop(_,Vu(w))}s.fillStyle=h,s.fillRect(b,p,m,f),s.strokeStyle=l,s.lineWidth=1,s.strokeRect(b,p,m,f),s.fillStyle=a,s.font=`10px ${u}`,s.textAlign="left",s.textBaseline="middle";let x=b+m+5;if(s.fillText(r(n.max),x,p+2),s.fillText(r((n.min+n.max)/2),x,p+f/2),s.fillText(r(n.min),x,p+f-2),n.min<0&&n.max>0){let C=(n.max-0)/(n.max-n.min),_=p+C*f;s.strokeStyle=a,s.lineWidth=1,s.beginPath(),s.moveTo(b+m,_),s.lineTo(b+m+4,_),s.stroke(),s.fillStyle=a,s.fillText("0",x,_)}}function bo(e,t,n,o,i){let r={x:t.t.x+t.t.width+12,y:t.margins.top+10,width:Math.max(1,t.cssWidth-t.t.x-t.t.width-12),height:Math.max(1,t.t.height)};on(e,r,n,o,i)}function on(e,t,n,o,i){let r=e.getContext("2d");if(!r||n.size===0)return;let s=i.Mo,a=i.fontFamily,l=10,u=18,m=t.x,f=t.y+u/2;r.font=`11px ${a}`,r.textAlign="left",r.textBaseline="middle";for(let[b,p]of n){if(f+l/2>t.y+t.height)break;let d=o[p]??o[p%o.length]??[0,0,0];r.fillStyle=`rgb(${Math.round(d[0]*255)},${Math.round(d[1]*255)},${Math.round(d[2]*255)})`,r.fillRect(m,f-l/2,l,l),r.fillStyle=s,r.fillText(b,m+l+6,f),f+=u}}var go=P(()=>{"use strict";ve();Be()});function Xe(e){return isNaN(e)?0:e}function Hs(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0)return;let s=e._.length>0,a=e.N.facet_mode,l=s&&a==="grid";e.computeEffectiveFacetFlags();let u=e.s!==""&&e.c<e.f,m=l&&e.N.zoom_mode==="independent",f;if(e.b&&!m?f=e.b.getVisibleDomain():f={xMin:e.ce,xMax:e.qe,yMin:e.Ce,yMax:e.Ke},!isFinite(f.xMin)||!isFinite(f.yMin))return;let b=e.T(),p=b.Be,d=e.Ee[e.Pe]||"",g=e.Ee[e.Te]||"",h=d==="date"||d==="datetime",y=g==="date"||g==="datetime",x=e.j,C=!x&&!e.s,_=b.H;if(x||C){let v=C?Math.max(1,e._.length):Math.max(1,e.u.size);if(e.qn&&e.Wo===p&&e.ko===v)_=e.qn;else{let A=fe(p,b.H,v);_=ss(A),e.qn=_,e.Wo=p,e.ko=v}}else e.qn=null,e.Wo=null,e.ko=-1;e.Q=Qt(t,e.Q,_),l?zu(e,t,f,b,{xIsDate:h,yIsDate:y,cssWidth:i,cssHeight:r}):(e.v=null,Yu(e,t,f,b,{xIsDate:h,yIsDate:y,cssWidth:i,cssHeight:r,hasColorCol:u})),$e(e)}function ho(e,t,n,o){return{min:t,max:n,label:e.Pe||(e.wi?"Row":e.Ye||""),isDate:o}}function yo(e,t,n,o){return{min:t,max:n,label:e.Te||e.Ge,isDate:o}}function xo(e,t){let n=0;for(let i of e)i.length>n&&(n=i.length);return{levels:[{labels:e.slice(),runs:[],maxLabelChars:n}],numRows:e.length,levelLabels:[t]}}function Hu(e,t,n,o,i,r,s,a,l){if(e.we&&e.et){let u=le(t,l);u&&Te(u,n,e.et,a)}else Ui(t,o,n,r,a,!0,l,e.getColumnFormatter(e.Ye,"tick"));if(e.de&&e.tt){let u=le(t,l);u&&ut(u,n,e.tt,a)}else Oi(t,i,n,s,a,!0,l,e.getColumnFormatter(e.Ge,"tick"))}function Yu(e,t,n,o,i){let r=t.gl,{cssWidth:s,cssHeight:a,xIsDate:l,yIsDate:u,hasColorCol:m}=i;e.et=e.we&&e.Zt.length>0?xo(e.Zt,e.Pe||e.Ye||""):null,e.tt=e.de&&e.qt.length>0?xo(e.qt,e.Te||e.Ge||""):null;let f=m?80:16,b=55+(e.Te?16:0),p=Math.max(1,s-b-f),d=e.tt?Tt(e.tt):void 0,g=e.et?Pe(e.et,p):void 0,h=new ee(s,a,{hasXLabel:!!e.Pe,hasYLabel:!!e.Te,hasLegend:m,leftExtra:d,bottomExtra:g});e.a=h,e.b&&e.b.updateLayout(h);let y=h.buildProjectionMatrix(n.xMin,n.xMax,n.yMin,n.yMax,void 0,void 0,void 0,Xe(e.R),Xe(e.M)),x=ho(e,n.xMin,n.xMax,l),C=yo(e,n.yMin,n.yMax,u),_=At(x,C,h),v=e.we?[]:_.xTicks,A=e.de?[]:_.yTicks,w=e.fn==="map";if(e.D&&!w){let L=t.dpr;de(e.D,h,L),Ni(e.D,h,v,A,o,L)}else e.D&&w&&de(e.D,h,t.dpr);ze(r,h,t.dpr,()=>{w&&e.renderBackground(t,h,y,n,Xe(e.R),Xe(e.M)),e.glyph.draw(e,t,y)}),e.Re=x,e.Me=C,e.Kn=v,e.We=A,e.Jn=o.H,e.Qn=m}function zu(e,t,n,o,i){let r=t.gl,{cssWidth:s,cssHeight:a,xIsDate:l,yIsDate:u}=i;e.et=e.we&&e.Zt.length>0?xo(e.Zt,e.Pe||e.Ye||""):null,e.tt=e.de&&e.qt.length>0?xo(e.qt,e.Te||e.Ge||""):null;let m=e._.map(A=>A.prefix),f=e.j&&e.u.size>1,b=!!e.s&&!e.j&&e.c<e.f,p=f||b,d=Ye(m,{cssWidth:s,cssHeight:a,xAxis:e.Un?"outer":"cell",yAxis:e.On?"outer":"cell",hasLegend:p,hasXLabel:!!e.Pe,hasYLabel:!!e.Te,gap:e.N.facet_padding});if(e.v=d,d.cells.length>1){let A=d.cells[0].layout.t;for(let w=1;w<d.cells.length;w++){let L=d.cells[w].layout.t;if(L.width!==A.width||L.height!==A.height){console.warn(`facet-grid: cell ${w} size (${L.width}\\xD7${L.height}) differs from cell 0 (${A.width}\\xD7${A.height})`);break}}}e.a=d.cells[0]?.layout??null,e.syncFacetZoomLayouts(d.cells);let g=e.N.zoom_mode==="independent",h=ho(e,n.xMin,n.xMax,l),y=yo(e,n.yMin,n.yMax,u),x=d.cells[0]?.layout,C=x?At(h,y,x):{xTicks:[],yTicks:[]},_=e.we?[]:C.xTicks,v=e.de?[]:C.yTicks;e.D&&x&&de(e.D,x,t.dpr),qt(r);for(let A=0;A<d.cells.length;A++){let w=d.cells[A],L=e.getZoomControllerForFacet(A),T=g&&L?L.getVisibleDomain():n,F=w.layout.buildProjectionMatrix(T.xMin,T.xMax,T.yMin,T.yMax,void 0,void 0,void 0,Xe(e.R),Xe(e.M)),G=e.fn==="map";if(e.D&&!G){let E=g?At(ho(e,T.xMin,T.xMax,l),yo(e,T.yMin,T.yMax,u),w.layout).xTicks:_,I=g?At(ho(e,T.xMin,T.xMax,l),yo(e,T.yMin,T.yMax,u),w.layout).yTicks:v;Ni(e.D,w.layout,E,I,o,t.dpr)}Kt(r,w.layout,t.dpr,()=>{G&&e.renderBackground(t,w.layout,F,T,Xe(e.R),Xe(e.M)),e.glyph.drawSeries(e,t,F,A)})}e.Re=h,e.Me=y,e.Kn=_,e.We=v,e.Jn=o.H,e.Qn=p}function $e(e){!e.d||!e.a||!e.Re||!e.Me||!e.e||(de(e.d,e.a,e.e.dpr),e.v?$u(e):Xu(e))}function Xu(e){let t=e.a,n=e.T(),o=e.e?.dpr??1;if(e.fn==="map"?e.renderMapChrome(e.d,t,n,o):Hu(e,e.d,t,e.Re,e.Me,e.Kn,e.We,n,o),e.Qn){let r=e.Jn??n.H;if(e.j&&e.u.size>0){let s=fe(n.Be,r,e.u.size);bo(e.d,t,e.u,s,n)}else e.s&&Rt(e.d,t,{min:e.c,max:e.f,label:e.s},r,n,e.getColumnFormatter(e.s,"value"))}Ys(e,e.d,t,0,1),e.se>=0&&e.O&&e.V&&qu(e,e.d,t)}function $u(e){let t=e.v,n=e.d,o=e.T(),i=e.e?.dpr??1,r=e.Kn,s=e.We,a=e.Re,l=e.Me,u=e.fn==="map",m=e.Un&&!e.we,f=e.On&&!e.de,b=e.N.zoom_mode==="independent";u&&e.renderMapChrome(n,e.a,o,i),!u&&m&&t.outerXAxisRect&&Ds(n,t.outerXAxisRect,a,r,Ts(t),o,!!e.Pe,i,e.getColumnFormatter(e.Ye,"tick")),!u&&f&&t.outerYAxisRect&&Is(n,t.outerYAxisRect,l,s,ws(t),o,!!e.Te,i,e.getColumnFormatter(e.Ge,"tick"));for(let p=0;p<t.cells.length;p++){let d=t.cells[p],g=b?e.getZoomControllerForFacet(p):null,h=g?g.getVisibleDomain():null,y=h?{...a,min:h.xMin,max:h.xMax}:a,x=h?{...l,min:h.yMin,max:h.yMax}:l,C=b?At(y,x,d.layout):{xTicks:r,yTicks:s};if(!u&&!m)if(e.we&&e.et){let _=le(n,i);_&&Te(_,d.layout,e.et,o)}else Ui(n,y,d.layout,C.xTicks,o,!!e.Pe,i,e.getColumnFormatter(e.Ye,"tick"));if(!u&&!f)if(e.de&&e.tt){let _=le(n,i);_&&ut(_,d.layout,e.tt,o)}else Oi(n,x,d.layout,C.yTicks,o,!!e.Te,i,e.getColumnFormatter(e.Ge,"tick"));d.titleRect&&so(n,d.label,d.titleRect,o,i),Ys(e,n,d.layout,p,p+1)}if(e.Qn&&t.legendRect){let p=e.Jn??o.H;if(e.j&&e.u.size>0){let d=fe(o.Be,p,Math.max(1,e.u.size));on(n,t.legendRect,e.u,d,o)}else e.s&&nn(n,{x:t.legendRect.x,y:t.legendRect.y+20,width:t.legendRect.width,height:t.legendRect.height-20},{min:e.c,max:e.f,label:e.s},p,o,e.getColumnFormatter(e.s,"value"))}if(e.se>=0&&e.O&&e.V){let p=isNaN(e.R)?0:e.R,d=isNaN(e.M)?0:e.M,g=e.O[e.se]+p,h=e.V[e.se]+d,y=ju(e,e.se),x=e.glyph.tooltipOptions(),C=e.G.lines??[];for(let _=0;_<t.cells.length;_++){let v=t.cells[_],A=_===y,w=v.layout.P(g,h),L=v.layout.t;if(w.px<L.x||w.px>L.x+L.width||w.py<L.y||w.py>L.y+L.height)continue;let T=e.N.coordinated_tooltip;Ie(n,w,A||T?C:[],v.layout,o,i,{crosshair:x.crosshair,highlightRadius:A?x.highlightRadius:0})}}}function ju(e,t){return e.w<=0?0:Math.floor(t/e.w)}function Ys(e,t,n,o,i){if(!e.Bt||!e.O||!e.V)return;let r=e.Bt.dictionary,s=e.Bt.data,a=e.O,l=e.V,u=isNaN(e.R)?0:e.R,m=isNaN(e.M)?0:e.M,f=e.w;if(f<=0)return;let b=0;for(let x=o;x<i;x++)b+=e.U[x]??0;if(b===0)return;let p=e.e?.dpr??1,d=le(t,p);if(!d)return;let g=e.T(),h=n.t,y=Math.max(1,Math.ceil(b/Zu));d.save(),d.font=`11px ${g.fontFamily}`,d.fillStyle=g.xe,d.textAlign="left",d.textBaseline="middle";for(let x=o;x<i;x++){let C=e.U[x]??0,_=x*f;for(let v=0;v<C;v+=y){let A=_+v,w=s[A];if(w<0)continue;let{px:L,py:T}=n.P(a[A]+u,l[A]+m);L<h.x||L>h.x+h.width||T<h.y||T>h.y+h.height||d.fillText(r[w],L+8,T-4)}}d.restore()}function qu(e,t,n){let o=e.se;if(o<0||!e.O||!e.V)return;let i=isNaN(e.R)?0:e.R,r=isNaN(e.M)?0:e.M,s=n.P(e.O[o]+i,e.V[o]+r),a=e.G.lines??[],l=e.T();Ie(t,s,a,n,l,e.e?.dpr??1,e.glyph.tooltipOptions())}var Zu,ji=P(()=>{"use strict";Wi();He();jt();Zt();Be();Jt();_t();Ct();Bs();vt();wt();go();Zu=5e3});function Ku(e){if(!e.jt.isDirty||!e.O||!e.V)return;let t=e.O,n=e.V,o=Math.max(1,e._.length),i=e.w,r=isNaN(e.R)?0:e.R,s=isNaN(e.M)?0:e.M;e.jt.rebuild({xMin:e.ce-r,xMax:e.qe-r,yMin:e.Ce-s,yMax:e.Ke-s},e.ht,a=>{for(let l=0;l<o;l++){let u=e.U[l]??0,m=l*i;for(let f=0;f<u;f++)a(m+f,t[m+f],n[m+f])}})}function Zi(e,t,n){if(!e.O||!e.V)return;let{layout:o,facetIdx:i}=Ju(e,t,n);if(!o){zs(e);return}let r=o.t;if(t<r.x||t>r.x+r.width||n<r.y||n>r.y+r.height){zs(e);return}let s=o.Z,a=o.ie,l=o.J,u=o.re,m=s+(t-r.x)/r.width*(a-s),f=u-(n-r.y)/r.height*(u-l),b=r.width/(a-s),p=r.height/(u-l),d=isNaN(e.R)?0:e.R,g=isNaN(e.M)?0:e.M,h=m-d,y=f-g,x=i<0?Qu(e,h,y,b,p):em(e,i,h,y,b,p);if(x!==e.se||i!==e.cn){if(e.se=x,e.cn=i,x>=0){let C=e.G.beginHover(x);e.glyph.buildTooltipLines(e,x).then(_=>{e.G.commitHover(C,_)&&$e(e)})}else e.G.clearHover();$e(e)}}function zs(e){(e.se!==-1||e.cn!==-1)&&(e.se=-1,e.cn=-1,$e(e))}function Ju(e,t,n){if(e.v){let o=e.v.cells;for(let i=0;i<o.length;i++){let r=o[i].layout.t;if(t>=r.x&&t<=r.x+r.width&&n>=r.y&&n<=r.y+r.height)return{layout:o[i].layout,facetIdx:i}}return{layout:null,facetIdx:-1}}return{layout:e.a,facetIdx:-1}}function Qu(e,t,n,o,i){Ku(e);let r=e.jt.query(t,n,rn,o,i,e.O,e.V);if(r>=0)return r;let s=rn*rn,a=Math.max(1,e._.length),l=e.w,u=e.O,m=e.V;for(let f=0;f<a;f++){let b=e.U[f]??0,p=f*l;for(let d=0;d<b;d++){let g=p+d,h=(u[g]-t)*o,y=(m[g]-n)*i,x=h*h+y*y;x<s&&(s=x,r=g)}}return r}function em(e,t,n,o,i,r){let s=e.U[t]??0;if(s===0)return-1;let a=e.w,l=t*a,u=e.O,m=e.V,f=rn*rn,b=-1;for(let p=0;p<s;p++){let d=l+p,g=(u[d]-n)*i,h=(m[d]-o)*r,y=g*g+h*h;y<f&&(f=y,b=d)}return b}function Xs(e,t){if(e.L.dismiss(),e.No=t,t<0||!e.O||!e.V)return;let n=tm(e,t);if(!n)return;let o=isNaN(e.R)?0:e.R,i=isNaN(e.M)?0:e.M,r=n.P(e.O[t]+o,e.V[t]+i),s=e.G.beginPin();e.glyph.buildTooltipLines(e,t).then(a=>{e.G.isPinFresh(s)&&e.No===t&&a.length!==0&&e.L.pin(a,r,n)}),e.se=-1,e.cn=-1,$e(e)}function tm(e,t){if(e.v&&e.w>0){let n=Math.floor(t/e.w),o=e.v.cells[n];if(o)return o.layout}return e.a}function $s(e){e.L.dismiss(),e.No=-1}var rn,js=P(()=>{"use strict";ji();rn=24});var Mt,qi=P(()=>{"use strict";Mt=class{constructor(){c(this,"lines",null);c(this,"hoveredTarget",null);c(this,"Uo",0);c(this,"Oo",0)}beginHover(t){return this.lines=null,this.hoveredTarget=t,++this.Uo}commitHover(t,n){return t!==this.Uo?!1:(this.lines=n,!0)}clearHover(){this.lines=null,this.hoveredTarget=null,this.Uo++}beginPin(){return++this.Oo}isPinFresh(t){return t===this.Oo}invalidatePin(){this.Oo++}}});function j(e,t,n,o,i,r){let s=e.shaders.getOrCreate(t,n,o),a=e.gl,l={program:s};for(let u of i)l[u]=a.getUniformLocation(s,u);for(let u of r)l[u]=a.getAttribLocation(s,u);return l}var ue=P(()=>{"use strict"});async function Co(e,t){let n=[];if(!e.It||!e.Le)return n;let o=e.It[t];if(o<0)return n;if(e._.length>0&&e.w>0){let s=Math.floor(t/e.w),a=e._[s];a?.prefix&&n.push(a.prefix)}let i=await e.Le.fetchRow(o),r=e._.length>0&&e.w>0?e._[Math.floor(t/e.w)]?.prefix??null:null;for(let[s,a]of i){if(a==null)continue;let l=s;if(r!==null){let u=`${r}|`;if(!s.startsWith(u))continue;l=s.substring(u.length)}else if(s.includes("|"))continue;if(typeof a=="number"){let u=e.getColumnFormatter(s,"value")(a);n.push(`${l}: ${u}`)}else n.push(`${l}: ${a}`)}return n}var Ki=P(()=>{"use strict"});function nm(e,t,n,o,i){t.uniformMatrix4fv(e.u_projection,!1,n),t.uniform1f(e.u_point_size,o.h.point_size_px*i),o.c<o.f?t.uniform2f(e.u_color_range,o.c,o.f):t.uniform2f(e.u_color_range,0,0),o.Je<o.Qe?t.uniform2f(e.u_size_range,o.Je,o.Qe):t.uniform2f(e.u_size_range,0,0);let r=Math.min(o.h.point_size_px,3);t.uniform2f(e.u_point_size_range,Math.max(2*i,o.h.point_size_px/r*i),o.h.point_size_px*r*i)}function Zs(e,t,n,o){let i=n.gl;if(!t.Q)return!1;i.useProgram(e.program),nm(e,i,o,t,n.dpr),Ee(n,t.Q.texture,e.u_gradient_lut,0);let r=n.C.peek("a_position"),s=n.C.peek("a_color_value"),a=n.C.peek("a_size_value");return!r||!s||!a?!1:(i.bindBuffer(i.ARRAY_BUFFER,r.buffer),i.enableVertexAttribArray(e.a_position),i.vertexAttribPointer(e.a_position,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,s.buffer),i.enableVertexAttribArray(e.a_color_value),i.vertexAttribPointer(e.a_color_value,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,a.buffer),i.enableVertexAttribArray(e.a_size_value),i.vertexAttribPointer(e.a_size_value,1,i.FLOAT,!1,0,0),!0)}var Ft,Ji=P(()=>{"use strict";_t();ue();Ki();vi();Ai();Ft=class{constructor(){c(this,"name","point");c(this,"m",null)}ensureProgram(t,n){this.m||(this.m=j(n,"scatter",Fn,Sn,["u_projection","u_point_size","u_color_range","u_gradient_lut","u_size_range","u_point_size_range"],["a_position","a_color_value","a_size_value"]))}draw(t,n,o){let i=this.m;if(!i||!Zs(i,t,n,o))return;let r=n.gl,s=Math.max(1,t._.length),a=t.w;for(let l=0;l<s;l++){let u=t.U[l]??0;u<=0||r.drawArrays(r.POINTS,l*a,u)}}drawSeries(t,n,o,i){let r=this.m;if(!r||!Zs(r,t,n,o))return;let s=t.U[i]??0;if(s<=0)return;let a=n.gl,l=t.w;a.drawArrays(a.POINTS,i*l,s)}buildTooltipLines(t,n){return Co(t,n)}tooltipOptions(){return{crosshair:!0,highlightRadius:6}}destroy(t){this.m=null}}});function q(e){let t=e.gl;if(e.isWebGL2){let o=t;return{setDivisor(i,r){i<0||o.vertexAttribDivisor(i,r)},drawArraysInstanced(i,r,s,a){o.drawArraysInstanced(i,r,s,a)}}}let n=t.getExtension("ANGLE_instanced_arrays");return{setDivisor(o,i){o<0||n?.vertexAttribDivisorANGLE(o,i)},drawArraysInstanced(o,i,r,s){n?.drawArraysInstancedANGLE(o,i,r,s)}}}function je(e){let t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,1,2,3]),e.STATIC_DRAW),t}function _o(e){let t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW),t}function Ze(e,t,n,o,i){if(n<0)return!0;let r=e.C.peek(o);if(!r)return!1;let s=e.gl;return s.bindBuffer(s.ARRAY_BUFFER,r.buffer),s.enableVertexAttribArray(n),s.vertexAttribPointer(n,i,s.FLOAT,!1,0,0),t.setDivisor(n,1),!0}var we=P(()=>{"use strict"});function qs(e,t,n,o){let i=n.gl;if(!t.Q)return!1;let r=n.dpr;i.useProgram(e.program),i.uniformMatrix4fv(e.u_projection,!1,o),i.uniform2f(e.u_resolution,i.canvas.width,i.canvas.height),i.uniform1f(e.u_line_width,t.h.line_width_px*r),t.c<t.f?i.uniform2f(e.u_color_range,t.c,t.f):i.uniform2f(e.u_color_range,0,0),Ee(n,t.Q.texture,e.u_gradient_lut,0);let s=q(n),{setDivisor:a}=s;return i.bindBuffer(i.ARRAY_BUFFER,e.cornerBuffer),i.enableVertexAttribArray(e.a_corner),i.vertexAttribPointer(e.a_corner,1,i.FLOAT,!1,0,0),a(e.a_corner,0),i.enableVertexAttribArray(e.a_start),a(e.a_start,1),i.enableVertexAttribArray(e.a_end),a(e.a_end,1),i.enableVertexAttribArray(e.a_color_start),a(e.a_color_start,1),i.enableVertexAttribArray(e.a_color_end),a(e.a_color_end,1),!0}function Ks(e,t,n,o){let i=t.U[o]??0;if(i<2)return;let r=n.gl,s=t.w,a=2*Float32Array.BYTES_PER_ELEMENT,l=Float32Array.BYTES_PER_ELEMENT,u=n.C.peek("a_position"),m=n.C.peek("a_color_value");if(!u||!m)return;let f=o*s*a;r.bindBuffer(r.ARRAY_BUFFER,u.buffer),r.vertexAttribPointer(e.a_start,2,r.FLOAT,!1,a,f),r.vertexAttribPointer(e.a_end,2,r.FLOAT,!1,a,f+a);let b=o*s*l;r.bindBuffer(r.ARRAY_BUFFER,m.buffer),r.vertexAttribPointer(e.a_color_start,1,r.FLOAT,!1,l,b),r.vertexAttribPointer(e.a_color_end,1,r.FLOAT,!1,l,b+l),q(n).drawArraysInstanced(r.TRIANGLE_STRIP,0,4,i-1)}function Js(e,t){let{setDivisor:n}=q(t);n(e.a_start,0),n(e.a_end,0),n(e.a_color_start,0),n(e.a_color_end,0)}var St,Qi=P(()=>{"use strict";_t();we();ue();ve();Ci();_i();St=class{constructor(){c(this,"name","line");c(this,"m",null)}ensureProgram(t,n){if(this.m)return;let o=j(n,"line",Rn,Mn,["u_projection","u_resolution","u_line_width","u_color_range","u_gradient_lut"],["a_start","a_end","a_color_start","a_color_end","a_corner"]);this.m={...o,cornerBuffer:je(n.gl)}}draw(t,n,o){let i=this.m;if(!i||!qs(i,t,n,o))return;let s=Math.max(1,t._.length);for(let a=0;a<s;a++)Ks(i,t,n,a);Js(i,n)}drawSeries(t,n,o,i){let r=this.m;r&&qs(r,t,n,o)&&(Ks(r,t,n,i),Js(r,n))}async buildTooltipLines(t,n){let o=[];if(!t.O||!t.V)return o;if(t._.length>0&&t.w>0){let b=Math.floor(n/t.w),p=t._[b];p&&o.push(p.prefix)}let i=t.O[n],r=t.V[n],s=t.Ee[t.Pe]||"",l=s==="date"||s==="datetime"?he(i):ae(i);o.push(`${t.Pe||"Row"}: ${l}`);let u=t.Ee[t.Te]||"",f=u==="date"||u==="datetime"?he(r):ae(r);return o.push(`${t.Te}: ${f}`),o}tooltipOptions(){return{crosshair:!0,highlightRadius:5}}destroy(t){let n=this.m;n?.cornerBuffer&&t.e&&t.e.gl.deleteBuffer(n.cornerBuffer),this.m=null}}});function am(e){switch(e){case"density":return om;case"extreme":return rm;case"signed":return sm;case"mean":default:return im}}function Qs(e){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}function er(e,t,n,o){return j(e,t,n,o,["u_projection","u_radius_ndc","u_intensity","u_color_range"],["a_corner","a_position","a_color_value"])}function lm(e){let t=e.gl;if(e.isWebGL2){let n=t;if(n.getExtension("EXT_color_buffer_float"))return{internalFormat:n.RGBA16F,format:n.RGBA,type:n.HALF_FLOAT,isFloat:!0}}return{internalFormat:t.RGBA,format:t.RGBA,type:t.UNSIGNED_BYTE,isFloat:!1}}function ea(e){let t=e.C.peek("a_position"),n=e.C.peek("a_color_value");return!!t&&!!n}function mm(e,t){if(!e.s||e.j)return t.robustBounds=null,null;let n=t.robustBounds;if(n&&n.dataCount===e.ht&&n.colorName===e.s&&n.colorIsString===e.j)return{lo:n.lo,hi:n.hi};let o=fm(e);return o?(t.robustBounds={lo:o.lo,hi:o.hi,dataCount:e.ht,colorName:e.s,colorIsString:e.j},o):(t.robustBounds=null,null)}function fm(e){if(!e.yt||e.ht<2)return null;let t=e.w,n=Math.max(1,e._.length),o=Math.max(1,Math.ceil(e.ht/um)),i=[],r=e.yt;for(let m=0;m<n;m++){let f=e.U[m]??0,b=m*t;for(let p=0;p<f;p+=o){let d=r[b+p];Number.isFinite(d)&&i.push(d)}}if(i.length<2)return null;i.sort((m,f)=>m-f);let s=Math.floor(i.length*.05),a=Math.min(i.length-1,Math.ceil(i.length*.95)),l=i[s],u=i[a];return u>l?{lo:l,hi:u}:e.f>e.c?{lo:e.c,hi:e.f}:null}var om,im,rm,sm,Dt,um,tr=P(()=>{"use strict";_t();we();ue();Ki();Li();Ti();wi();Hr();zr();Ri();Mi();om=0,im=1,rm=2,sm=3,Dt=class{constructor(){c(this,"name","density");c(this,"m",null)}ensureProgram(t,n){if(this.m){this.ensureHeatTarget(t,n);return}let o=n.gl,i=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,i),o.bufferData(o.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),o.STATIC_DRAW);let r=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,r),o.bufferData(o.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),o.STATIC_DRAW);let{internalFormat:s,format:a,type:l,isFloat:u}=lm(n),m=Qs(o),f=o.createFramebuffer();this.m={splat:er(n,"density-splat",yt,Hn),extremeSplat:null,mrtSplat:null,resolve:j(n,"density-resolve",zn,Xn,["u_heat","u_extreme","u_gradient_lut","u_heat_max","u_color_mode"],["a_corner"]),quadCornerBuffer:i,tripleCornerBuffer:r,heatTexture:m,heatFramebuffer:f,extremeTexture:null,extremeFramebuffer:null,mrtFramebuffer:null,heatWidth:0,heatHeight:0,heatType:l,heatInternalFormat:s,heatFormat:a,floatFbo:u,indexedBlend:null,signedDowngradeWarned:!1,robustBounds:null},this.ensureHeatTarget(t,n)}draw(t,n,o){let i=this.m;if(!i||!ea(n))return;let r=Math.max(1,t._.length),s=t.w,a=0;for(let l=0;l<r;l++)a+=t.U[l]??0;a!==0&&this.runSplatAndResolve(t,n,i,o,l=>{for(let u=0;u<r;u++){let m=t.U[u]??0;m<=0||l(u*s,m)}})}drawSeries(t,n,o,i){let r=this.m;if(!r||!ea(n))return;let s=t.U[i]??0;if(s<=0)return;let a=t.w;this.runSplatAndResolve(t,n,r,o,l=>l(i*a,s))}buildTooltipLines(t,n){return Co(t,n)}tooltipOptions(){return{crosshair:!0,highlightRadius:0}}destroy(t){let n=this.m;if(!n||!t.e){this.m=null;return}let o=t.e.gl;o.deleteBuffer(n.quadCornerBuffer),o.deleteBuffer(n.tripleCornerBuffer),o.deleteTexture(n.heatTexture),o.deleteFramebuffer(n.heatFramebuffer),n.extremeTexture&&o.deleteTexture(n.extremeTexture),n.extremeFramebuffer&&o.deleteFramebuffer(n.extremeFramebuffer),n.mrtFramebuffer&&o.deleteFramebuffer(n.mrtFramebuffer),this.m=null}ensureHeatTarget(t,n){let o=this.m;if(!o)return;let i=n.gl,r=i.canvas.width,s=i.canvas.height;if(!(r===o.heatWidth&&s===o.heatHeight)&&!(r<=0||s<=0)){if(this.allocAccumTexture(i,o,o.heatTexture,r,s),i.bindFramebuffer(i.FRAMEBUFFER,o.heatFramebuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.heatTexture,0),o.extremeTexture&&(this.allocAccumTexture(i,o,o.extremeTexture,r,s),o.extremeFramebuffer&&(i.bindFramebuffer(i.FRAMEBUFFER,o.extremeFramebuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.extremeTexture,0)),o.mrtFramebuffer)){let a=i;a.bindFramebuffer(a.FRAMEBUFFER,o.mrtFramebuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.heatTexture,0),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT1,a.TEXTURE_2D,o.extremeTexture,0)}i.bindFramebuffer(i.FRAMEBUFFER,null),o.heatWidth=r,o.heatHeight=s}}allocAccumTexture(t,n,o,i,r){t.bindTexture(t.TEXTURE_2D,o),t.texImage2D(t.TEXTURE_2D,0,n.heatInternalFormat,i,r,0,n.heatFormat,n.heatType,null)}ensureExtremeTarget(t,n){let o=t.gl;if(n.extremeTexture)return;let i=Qs(o);if(n.extremeTexture=i,n.extremeFramebuffer=o.createFramebuffer(),this.allocAccumTexture(o,n,i,n.heatWidth,n.heatHeight),o.bindFramebuffer(o.FRAMEBUFFER,n.extremeFramebuffer),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,i,0),n.indexedBlend===null){let r=t.isWebGL2?o.getExtension("OES_draw_buffers_indexed"):null;n.indexedBlend=r??!1}if(n.indexedBlend){let r=o;n.mrtFramebuffer=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,n.mrtFramebuffer),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n.heatTexture,0),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT1,r.TEXTURE_2D,i,0)}o.bindFramebuffer(o.FRAMEBUFFER,null)}ensureExtremeSplatProgram(t,n){return n.extremeSplat||(n.extremeSplat=er(t,"density-extreme",yt,Yn)),n.extremeSplat}ensureMrtSplatProgram(t,n){return n.mrtSplat||(n.mrtSplat=er(t,"density-mrt",Yr,Xr)),n.mrtSplat}activeMode(t,n,o){let i=n.h.gradient_color_mode;return i==="signed"&&!o.floatFbo?(this.warnDowngradeOnce(o,"signed mode requires a float framebuffer (EXT_color_buffer_float); falling back to mean."),"mean"):i==="extreme"&&!t.isWebGL2?(this.warnDowngradeOnce(o,"extreme mode requires WebGL2 (for MAX blend and a second color attachment); falling back to mean."),"mean"):i}warnDowngradeOnce(t,n){t.signedDowngradeWarned||(t.signedDowngradeWarned=!0,console.warn(`Density: ${n}`))}runSplatAndResolve(t,n,o,i,r){if(this.ensureHeatTarget(t,n),o.heatWidth===0||o.heatHeight===0||!t.Q)return;let s=this.activeMode(n,t,o),a=t.c<t.f&&(!!t.s||t._.length>1),l=0,u=0;if(s!=="density"&&a&&(l=t.c,u=t.f,!t.j&&(s==="mean"||s==="extreme"))){let f=mm(t,o);f&&(l=f.lo,u=f.hi)}s==="extreme"&&this.ensureExtremeTarget(n,o),s==="extreme"&&o.indexedBlend?this.runMrtExtremePass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r):(this.runHeatPass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r),s==="extreme"&&this.runExtremePass(n,o,i,t.h.gradient_intensity,n.dpr*t.h.gradient_radius_px,l,u,r)),this.runResolvePass(n,o,t,s)}runHeatPass(t,n,o,i,r,s,a,l){let u=t.gl,m=!!u.getParameter(u.SCISSOR_TEST);u.bindFramebuffer(u.FRAMEBUFFER,n.heatFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),this.clearTarget(u,m),u.blendFunc(u.ONE,u.ONE),u.blendEquation(u.FUNC_ADD),this.bindSplatProgram(u,n.splat,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,n.splat,l),this.unbindSplatInstancing(t,n.splat)}runExtremePass(t,n,o,i,r,s,a,l){let u=t.gl,m=!!u.getParameter(u.SCISSOR_TEST),f=this.ensureExtremeSplatProgram(t,n);u.bindFramebuffer(u.FRAMEBUFFER,n.extremeFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),this.clearTarget(u,m),u.blendFunc(u.ONE,u.ONE);let b=u;b.blendEquation(b.MAX),this.bindSplatProgram(u,f,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,f,l),this.unbindSplatInstancing(t,f),u.blendEquation(u.FUNC_ADD)}runMrtExtremePass(t,n,o,i,r,s,a,l){let u=t.gl,m=n.indexedBlend,f=!!u.getParameter(u.SCISSOR_TEST),b=this.ensureMrtSplatProgram(t,n);u.bindFramebuffer(u.FRAMEBUFFER,n.mrtFramebuffer),u.viewport(0,0,n.heatWidth,n.heatHeight),u.drawBuffers([u.COLOR_ATTACHMENT0,u.COLOR_ATTACHMENT1]),this.clearTarget(u,f),m.enableiOES(u.BLEND,0),m.enableiOES(u.BLEND,1),m.blendEquationiOES(0,u.FUNC_ADD),m.blendFunciOES(0,u.ONE,u.ONE),m.blendEquationiOES(1,u.MAX),m.blendFunciOES(1,u.ONE,u.ONE),this.bindSplatProgram(u,b,o,i,r,n.heatWidth,n.heatHeight,s,a),this.bindAndDispatchInstanced(t,n,b,l),this.unbindSplatInstancing(t,b),m.blendEquationiOES(0,u.FUNC_ADD),m.blendEquationiOES(1,u.FUNC_ADD),m.blendFunciOES(0,u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA),m.blendFunciOES(1,u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA),u.drawBuffers([u.COLOR_ATTACHMENT0])}clearTarget(t,n){n&&t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),n&&t.enable(t.SCISSOR_TEST)}bindSplatProgram(t,n,o,i,r,s,a,l,u){t.useProgram(n.program),t.uniformMatrix4fv(n.u_projection,!1,o),t.uniform1f(n.u_intensity,i);let m=2*r/Math.max(1,s),f=2*r/Math.max(1,a);t.uniform2f(n.u_radius_ndc,m,f),t.uniform2f(n.u_color_range,l,u)}bindAndDispatchInstanced(t,n,o,i){let r=t.gl;r.bindBuffer(r.ARRAY_BUFFER,n.quadCornerBuffer),r.enableVertexAttribArray(o.a_corner),r.vertexAttribPointer(o.a_corner,2,r.FLOAT,!1,0,0);let s=q(t);s.setDivisor(o.a_corner,0),s.setDivisor(o.a_position,1),s.setDivisor(o.a_color_value,1);let a=t.C.peek("a_position"),l=t.C.peek("a_color_value");i((u,m)=>{let f=2*Float32Array.BYTES_PER_ELEMENT,b=Float32Array.BYTES_PER_ELEMENT;r.bindBuffer(r.ARRAY_BUFFER,a.buffer),r.enableVertexAttribArray(o.a_position),r.vertexAttribPointer(o.a_position,2,r.FLOAT,!1,f,u*f),r.bindBuffer(r.ARRAY_BUFFER,l.buffer),r.enableVertexAttribArray(o.a_color_value),r.vertexAttribPointer(o.a_color_value,1,r.FLOAT,!1,b,u*b),s.drawArraysInstanced(r.TRIANGLE_STRIP,0,4,m)})}unbindSplatInstancing(t,n){let o=q(t);o.setDivisor(n.a_position,0),o.setDivisor(n.a_color_value,0)}runResolvePass(t,n,o,i){let r=t.gl;r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,r.canvas.width,r.canvas.height),r.blendEquation(r.FUNC_ADD),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA);let s=n.resolve;r.useProgram(s.program),r.uniform1f(s.u_heat_max,o.h.gradient_heat_max),r.uniform1i(s.u_color_mode,am(i)),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,n.heatTexture),r.uniform1i(s.u_heat,0),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,n.extremeTexture??n.heatTexture),r.uniform1i(s.u_extreme,1),Ee(t,o.Q.texture,s.u_gradient_lut,2),r.bindBuffer(r.ARRAY_BUFFER,n.tripleCornerBuffer),r.enableVertexAttribArray(s.a_corner),r.vertexAttribPointer(s.a_corner,2,r.FLOAT,!1,0,0),r.drawArrays(r.TRIANGLES,0,3)}};um=5e4});var mt,vo,Ao,Lo,nr=P(()=>{"use strict";Xt();xs();Ls();ji();js();qi();Ji();Qi();tr();mt=class extends Le{constructor(n){super();c(this,"glyph");c(this,"fn","cartesian");c(this,"Q",null);c(this,"Ye","");c(this,"Ge","");c(this,"Pe","");c(this,"Te","");c(this,"wi",!1);c(this,"s","");c(this,"K","");c(this,"Zn","");c(this,"j",!1);c(this,"we",!1);c(this,"de",!1);c(this,"Zt",[]);c(this,"qt",[]);c(this,"Ri",new Map);c(this,"Mi",new Map);c(this,"et",null);c(this,"tt",null);c(this,"_",[]);c(this,"ce",1/0);c(this,"qe",-1/0);c(this,"Ce",1/0);c(this,"Ke",-1/0);c(this,"R",NaN);c(this,"M",NaN);c(this,"c",1/0);c(this,"f",-1/0);c(this,"Je",1/0);c(this,"Qe",-1/0);c(this,"an",1/0);c(this,"ln",-1/0);c(this,"un",1/0);c(this,"mn",-1/0);c(this,"zn",1/0);c(this,"Xn",-1/0);c(this,"$n",1/0);c(this,"jn",-1/0);c(this,"w",0);c(this,"U",[]);c(this,"Bo",0);c(this,"O",null);c(this,"V",null);c(this,"yt",null);c(this,"It",null);c(this,"Bt",null);c(this,"ht",0);c(this,"u",new Map);c(this,"G",new Mt);c(this,"Eo",null);c(this,"Po",null);c(this,"Go",null);c(this,"Fi",0);c(this,"jt",new io);c(this,"a",null);c(this,"se",-1);c(this,"No",-1);c(this,"cn",-1);c(this,"v",null);c(this,"Re",null);c(this,"Me",null);c(this,"Kn",null);c(this,"We",null);c(this,"Jn",null);c(this,"Qn",!1);c(this,"qn",null);c(this,"Wo",null);c(this,"ko",-1);this.glyph=n}projectPoint(n,o){return[n,o]}renderBackground(n,o,i,r,s,a){}renderMapChrome(n,o,i,r){}tooltipCallbacks(){return{onHover:(n,o)=>Zi(this,n,o),onLeave:()=>{this.se!==-1&&(this.se=-1,$e(this))},onPin:(n,o)=>{if(Zi(this,n,o),this.se>=0){let i=this.se;Xs(this,i),this.qi(i)}},onUnpin:()=>{this.emitUnselect()}}}async qi(n){if(!this.It)return;let o=this.It[n],i=this.I[1]||this.I[0]||"",r=[];if(this._.length>0&&this.w>0){let s=Math.floor(n/this.w),a=this._[s];a?.prefix&&this.E.length>0&&(r=a.prefix.split("|"))}await this.emitClickAndSelect({rowIdx:o!=null&&o>=0?o:null,columnName:i,groupByValues:[],splitByValues:r})}async uploadAndRender(n,o,i,r){let s=r-i;this.e=n,i===0&&vs(this,n,o,r),s!==0&&(As(this,n,o,i,s,r),this.h.domain_mode==="expand"&&(this.we||(this.an=this.ce,this.ln=this.qe),this.de||(this.un=this.Ce,this.mn=this.Ke),this.zn=this.c,this.Xn=this.f,this.$n=this.Je,this.jn=this.Qe),await this.requestRender(n))}resetExpandedDomain(){this.an=1/0,this.ln=-1/0,this.un=1/0,this.mn=-1/0,this.zn=1/0,this.Xn=-1/0,this.$n=1/0,this.jn=-1/0}St(n){n.uploadedCount===0&&this.ht===0||(this.e=n,Hs(this,n))}destroyInternal(){this.glyph.destroy(this),this.Q=null,this.O=null,this.V=null,this.yt=null,this.It=null,this.Bt=null,this.G.clearHover(),this.u.clear(),this.jt.clear(),this.Eo=null,this.Po=null,this.Go=null,this._=[],this.U=[],$s(this)}},vo=class extends mt{constructor(){super(new Ft)}},Ao=class extends mt{constructor(){super(new St)}},Lo=class extends mt{constructor(){super(new Dt)}}});function cl(e,t){if(t>fl||t<-fl)return[NaN,NaN];let n=e*Math.PI*6378137/180,o=t*Math.PI/180,i=6378137*Math.log(Math.tan(Math.PI/4+o/2));return[n,i]}function dl(e,t,n){let o=1<<e,i=2*ke/o,r=-ke+t*i,s=r+i,a=ke-n*i,l=a-i;return{xMin:r,yMin:l,xMax:s,yMax:a}}function pl(e,t=256,n=19){if(!isFinite(e)||e<=0)return 0;let o=Math.log2(2*ke/(t*e));return Math.max(0,Math.min(n,Math.floor(o)))}function bl(e,t){let n=1<<t,o=2*ke/n,i=Math.floor((e.xMin+ke)/o),r=Math.floor((e.xMax+ke)/o),s=Math.floor((ke-e.yMax)/o),a=Math.floor((ke-e.yMin)/o),l=[];for(let u=s;u<=a;u++)if(!(u<0||u>=n))for(let m=i;m<=r;m++)m<0||m>=n||l.push({z:t,x:m,y:u});return l}var ke,fl,Ir=P(()=>{"use strict";ke=Math.PI*6378137,fl=85.0511287798066});var di,gl=P(()=>{"use strict";di=class{constructor(t=256){c(this,"he",new Map);c(this,"Ui");this.Ui=t}get(t){let n=this.he.get(t);return n!==void 0&&(this.he.delete(t),this.he.set(t,n)),n}set(t,n,o){if(this.he.has(n)){let i=this.he.get(n);t.deleteTexture(i),this.he.delete(n)}for(this.he.set(n,o);this.he.size>this.Ui;){let i=this.he.keys().next().value;if(i===void 0)break;let r=this.he.get(i);t.deleteTexture(r),this.he.delete(i)}}has(t){return this.he.has(t)}dispose(t){for(let n of this.he.values())t.deleteTexture(n);this.he.clear()}}});function kt(e,t,n,o){return`${e}/${t}/${n}/${o}`}var pi,hl=P(()=>{"use strict";pi=class{constructor(){c(this,"ye",new Map);c(this,"Oi",()=>{})}setOnLoad(t){this.Oi=t}load(t,n,o,i){let r=kt(t.id,n,o,i),s=this.ye.get(r);if(s)return s.promise;let a=new AbortController,l=t.urlFor(n,o,i),u=this.Qi(l,a.signal).then(m=>(this.ye.delete(r),m&&this.Oi(),m)).catch(()=>(this.ye.delete(r),null));return this.ye.set(r,{promise:u,abort:a}),u}cancelAll(){for(let t of this.ye.values())t.abort.abort();this.ye.clear()}cancelExcept(t){for(let[n,o]of this.ye)t.has(n)||(o.abort.abort(),this.ye.delete(n))}async Qi(t,n){let o=await fetch(t,{signal:n});if(!o.ok)return null;let i=await o.blob();return await createImageBitmap(i)}}});var bi,yl=P(()=>{"use strict";Ir();gl();hl();Fi();Si();ue();bi=class{constructor(){c(this,"o",null);c(this,"W",null);c(this,"m",new di);c(this,"Tn",new pi);c(this,"wn",null);c(this,"Vi",1);c(this,"Hi",()=>{})}setOnTileLoad(t){this.Hi=t,this.Tn.setOnLoad(t)}setSource(t,n){this.wn?.id!==n.id&&(this.m.dispose(t),this.Tn.cancelAll(),this.wn=n)}setAlpha(t){this.Vi=Math.max(0,Math.min(1,t))}get source(){return this.wn}render(t,n,o,i,r,s){let a=this.wn;if(!a)return;this.er(t);let l=this.o,u=this.W;if(!l||!u)return;let m=t.gl,f=t.dpr,b=Math.max(1,n.t.width*f),p=i.xMax-i.xMin;if(!isFinite(p)||p<=0)return;let d=p/b,g=pl(d,a.tileSize,a.maxZoom),h=bl(i,g),y=new Set;for(let C of h)y.add(kt(a.id,C.z,C.x,C.y));this.Tn.cancelExcept(y),m.useProgram(l.program),m.uniformMatrix4fv(l.u_projection,!1,o),m.uniform1f(l.u_alpha,this.Vi),m.bindBuffer(m.ARRAY_BUFFER,u),m.enableVertexAttribArray(l.a_corner),m.vertexAttribPointer(l.a_corner,2,m.FLOAT,!1,0,0),m.activeTexture(m.TEXTURE0),m.uniform1i(l.u_tile,0);let x=m.isEnabled(m.BLEND);m.enable(m.BLEND),m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);for(let C of h)this.tr(m,l,a,C,r,s);x||m.disable(m.BLEND)}destroy(t){this.Tn.cancelAll(),this.m.dispose(t),this.W&&(t.deleteBuffer(this.W),this.W=null),this.o=null}tr(t,n,o,i,r,s){let a=dl(i.z,i.x,i.y),l={xMin:a.xMin-r,xMax:a.xMax-r,yMin:a.yMin-s,yMax:a.yMax-s},u=kt(o.id,i.z,i.x,i.y),m=this.m.get(u);if(m){this.Yi(t,n,m,l,[0,0],[1,1]);return}this.nr(t,o,i);for(let f=1;f<=6;f++){let b=i.z-f;if(b<0)return;let p=i.x>>f,d=i.y>>f,g=kt(o.id,b,p,d),h=this.m.get(g);if(!h)continue;let y=1<<f,x=i.x-p*y,C=i.y-d*y,_=1/y,v=[x*_,C*_],A=[v[0]+_,v[1]+_];this.Yi(t,n,h,l,v,A);return}}Yi(t,n,o,i,r,s){t.bindTexture(t.TEXTURE_2D,o),t.uniform2f(n.u_extent_min,i.xMin,i.yMin),t.uniform2f(n.u_extent_max,i.xMax,i.yMax),t.uniform2f(n.u_uv_min,r[0],r[1]),t.uniform2f(n.u_uv_max,s[0],s[1]),t.drawArrays(t.TRIANGLE_STRIP,0,4)}nr(t,n,o){let i=kt(n.id,o.z,o.x,o.y);this.m.has(i)||this.Tn.load(n,o.z,o.x,o.y).then(r=>{if(!r)return;if(this.wn?.id!==n.id){r.close();return}let s=t.createTexture();if(!s){r.close();return}t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,s),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r),this.m.set(t,i,s),this.Hi()})}er(t){if(this.o&&this.W)return;let n=t.gl;this.o=j(t,"map-tile",$n,jn,["u_projection","u_extent_min","u_extent_max","u_uv_min","u_uv_max","u_tile","u_alpha"],["a_corner"]);let o=n.createBuffer();o&&(n.bindBuffer(n.ARRAY_BUFFER,o),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),n.STATIC_DRAW),this.W=o)}}});function _f(){return new _n("carto-positron","https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function vf(){return new _n("carto-dark-matter","https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function Af(){return new _n("carto-voyager","https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png","\\xA9 OpenStreetMap contributors \\xA9 CARTO",256,19,["a","b","c","d"])}function Br(e){switch(e){case"carto-dark-matter":return vf();case"carto-voyager":return Af();case"carto-positron":default:return _f()}}var _n,xl=P(()=>{"use strict";_n=class{constructor(t,n,o,i=256,r=19,s=[]){this.id=t;this.template=n;this.attribution=o;this.tileSize=i;this.maxZoom=r;this.subdomains=s}urlFor(t,n,o){let i=this.template.replace("{z}",String(t)).replace("{x}",String(n)).replace("{y}",String(o));if(this.subdomains.length>0){let r=(n+o)%this.subdomains.length;i=i.replace("{s}",this.subdomains[r])}return i}}});var gi={};Pl(gi,{MapChart:()=>Nt,MapDensityChart:()=>Gr,MapLineChart:()=>Pr,MapScatterChart:()=>Er});var Nt,Er,Pr,Gr,hi=P(()=>{"use strict";nr();Ji();Qi();tr();yl();xl();Ir();vt();Nt=class extends mt{constructor(n){super(n);c(this,"fn","map");c(this,"je");this.je=new bi,this.je.setOnTileLoad(()=>{this.e&&this.requestRender(this.e)})}projectPoint(n,o){return cl(n,o)}getZoomConfig(){return{lockAspect:!0}}setPluginConfig(n){super.setPluginConfig(n),this.e&&this.je.setSource(this.e.gl,Br(n.map_tile_provider)),this.je.setAlpha(n.map_tile_alpha)}renderBackground(n,o,i,r,s,a){this.je.source||(this.je.setSource(n.gl,Br(this.h.map_tile_provider)),this.je.setAlpha(this.h.map_tile_alpha)),this.je.render(n,o,i,r,s,a)}renderMapChrome(n,o,i,r){if(!n)return;let s=le(n,r);if(!s)return;let a=this.je.source?.attribution??"";if(!a)return;let l=o.t;s.save(),s.font=`10px ${i.fontFamily}`,s.textAlign="right",s.textBaseline="bottom";let u=4,f=s.measureText(a).width,b=12,p=l.x+l.width-4,d=l.y+l.height-4;s.fillStyle="rgba(255, 255, 255, 0.75)",s.fillRect(p-f-u*2,d-b-u,f+u*2,b+u),s.fillStyle=i.xe,s.fillText(a,p-u,d-u/2),s.restore()}destroyInternal(){this.e&&this.je.destroy(this.e.gl),super.destroyInternal()}},Er=class extends Nt{constructor(){super(new Ft)}},Pr=class extends Nt{constructor(){super(new St)}},Gr=class extends Nt{constructor(){super(new Dt)}}});typeof window>"u"&&(globalThis.window={});var Vt=class{constructor(t){c(this,"ct");c(this,"i",new Map);c(this,"Qt",0);c(this,"Rn",0);this.ct=t}get totalCapacity(){return this.Qt}get maxCapacity(){return this.Rn}set maxCapacity(t){this.Rn=t}ensureCapacity(t){this.Qt=this.Rn>0?Math.min(t,this.Rn):t}peek(t){return this.i.get(t)}getOrCreate(t,n,o){let i=this.Qt*n*o,r=this.i.get(t);if(r&&r.byteCapacity>=i)return r;let s=this.ct;r&&s.deleteBuffer(r.buffer);let a=s.createBuffer();return s.bindBuffer(s.ARRAY_BUFFER,a),s.bufferData(s.ARRAY_BUFFER,i,s.DYNAMIC_DRAW),r={buffer:a,byteCapacity:i},this.i.set(t,r),r}upload(t,n,o,i=1){let r=this.ct,s=this.getOrCreate(t,i,n.BYTES_PER_ELEMENT);if(!1){let a=o+n.byteLength;if(a>s.byteCapacity)throw new Error(`BufferPool.upload("${t}"): write ${o}..${a} exceeds capacity ${s.byteCapacity} (_totalCapacity=${this.Qt}, components=${i}, bytes=${n.BYTES_PER_ELEMENT}). Did you pass the full scratch buffer instead of a subarray(0, n)?`)}return r.bindBuffer(r.ARRAY_BUFFER,s.buffer),r.bufferSubData(r.ARRAY_BUFFER,o,n),s.buffer}releaseAll(){for(let t of this.i.values())this.ct.deleteBuffer(t.buffer);this.i.clear(),this.Qt=0}};var Ht=class{constructor(t){c(this,"ct");c(this,"Mn",new Map);this.ct=t}precompile(t){for(let n of t)this.getOrCreate(n.name,n.vert,n.frag)}getOrCreate(t,n,o){let i=this.Mn.get(t);if(i)return i;let r=this.ct,s=r.createShader(r.VERTEX_SHADER);if(r.shaderSource(s,n),r.compileShader(s),!r.getShaderParameter(s,r.COMPILE_STATUS)){let l=r.getShaderInfoLog(s);throw r.deleteShader(s),new Error(`Vertex shader compile error [${t}]: ${l}`)}let a=r.createShader(r.FRAGMENT_SHADER);if(r.shaderSource(a,o),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS)){let l=r.getShaderInfoLog(a);throw r.deleteShader(s),r.deleteShader(a),new Error(`Fragment shader compile error [${t}]: ${l}`)}if(i=r.createProgram(),r.attachShader(i,s),r.attachShader(i,a),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS)){let l=r.getProgramInfoLog(i);throw r.deleteProgram(i),r.deleteShader(s),r.deleteShader(a),new Error(`Shader link error [${t}]: ${l}`)}return r.deleteShader(s),r.deleteShader(a),this.Mn.set(t,i),i}releaseAll(){for(let t of this.Mn.values())this.ct.deleteProgram(t);this.Mn.clear()}};var Tn="attribute vec2 a_corner;attribute float a_x_center;attribute float a_half_width;attribute float a_y0;attribute float a_y1;attribute vec3 a_color;attribute float a_series_id;attribute float a_axis;uniform mat4 u_proj_left;uniform mat4 u_proj_right;uniform float u_hover_series;uniform float u_horizontal;varying vec3 v_color;varying float v_hover;varying vec2 v_local;void main(){vec2 A;if(u_horizontal>0.5){A=vec2(mix(a_y0,a_y1,a_corner.x),a_x_center+(a_corner.y-0.5)*2.*a_half_width);}else{A=vec2(a_x_center+(a_corner.x-0.5)*2.*a_half_width,mix(a_y0,a_y1,a_corner.y));}mat4 B=a_axis<0.5?u_proj_left:u_proj_right;gl_Position=B*vec4(A,0.,1.);v_color=a_color;v_hover=abs(a_series_id-u_hover_series)<0.5?1.:0.;v_local=a_corner;}";var wn="precision highp float;varying vec3 v_color;varying float v_hover;varying vec2 v_local;void main(){vec3 A=v_color;if(v_hover>0.5){A=mix(A,vec3(1.),0.25);}gl_FragColor=vec4(A,1.);}";Ci();_i();vi();Ai();var Dn="attribute vec2 a_position;uniform mat4 u_projection;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);}";var In="precision highp float;uniform vec3 u_color;uniform float u_opacity;void main(){gl_FragColor=vec4(u_color,u_opacity);}";var Ue="attribute vec2 a_start;attribute vec2 a_end;attribute float a_corner;attribute float a_real_start;attribute float a_real_end;uniform mat4 u_projection;uniform vec2 u_resolution;uniform float u_line_width;uniform float u_interp_alpha;varying float v_edge_dist;varying float v_seg_alpha;void main(){vec4 A=u_projection*vec4(a_start,0.,1.);vec4 B=u_projection*vec4(a_end,0.,1.);vec2 C=A.xy*u_resolution*0.5;vec2 D=B.xy*u_resolution*0.5;vec2 E=D-C;float F=length(E);E=F>0.001?E/F:vec2(1.,0.);vec2 G=vec2(-E.y,E.x);float H=step(1.5,a_corner);float I=1.-mod(a_corner,2.)*2.;vec4 J=mix(A,B,H);float K=(u_line_width+1.5)*0.5;vec2 L=(G*I*K)/(u_resolution*0.5);gl_Position=J+vec4(L,0.,0.);v_edge_dist=I;float M=a_real_start*a_real_end;v_seg_alpha=mix(u_interp_alpha,1.,step(0.5,M));}";var Oe="precision highp float;uniform vec4 u_color;uniform float u_line_width;varying float v_edge_dist;varying float v_seg_alpha;void main(){float A=abs(v_edge_dist);float B=u_line_width/(u_line_width+1.5);float C=1.-smoothstep(B,1.,A);gl_FragColor=vec4(u_color.rgb,u_color.a*C*v_seg_alpha);}";var Bn="attribute vec2 a_position;attribute vec3 a_color;uniform mat4 u_projection;uniform float u_point_size;varying vec3 v_color;varying float v_point_size;void main(){gl_Position=u_projection*vec4(a_position,0.,1.);gl_PointSize=u_point_size;v_point_size=u_point_size;v_color=a_color;}";var En="precision highp float;varying vec3 v_color;varying float v_point_size;void main(){vec2 A=gl_PointCoord-vec2(0.5);float B=length(A);if(B>0.5)discard;float C=1.5/max(v_point_size,1.);float D=1.-smoothstep(0.5-C,0.5,B);gl_FragColor=vec4(v_color,D);}";var Pn="attribute vec2 a_corner;attribute float a_x_center;attribute float a_half_width;attribute float a_y0;attribute float a_y1;attribute vec3 a_color;uniform mat4 u_projection;varying vec3 v_color;void main(){float A=a_x_center+(a_corner.x-0.5)*2.*a_half_width;float B=mix(a_y0,a_y1,a_corner.y);gl_Position=u_projection*vec4(A,B,0.,1.);v_color=a_color;}";var Gn="precision highp float;varying vec3 v_color;void main(){gl_FragColor=vec4(v_color,1.);}";var Wn="attribute vec2 a_corner;attribute vec2 a_cell;attribute float a_color_t;uniform mat4 u_projection;uniform vec2 u_cell_inset;uniform vec2 u_cell_size;varying float v_color_t;void main(){vec2 A=0.5*u_cell_size;vec2 B=u_cell_size-2.*u_cell_inset;float C=a_cell.x-A.x+u_cell_inset.x+a_corner.x*B.x;float D=a_cell.y-A.y+u_cell_inset.y+a_corner.y*B.y;gl_Position=u_projection*vec4(C,D,0.,1.);v_color_t=a_color_t;}";var kn="precision highp float;uniform sampler2D u_gradient_lut;varying float v_color_t;void main(){float A=clamp(v_color_t,0.,1.);vec4 B=texture2D(u_gradient_lut,vec2(A,0.5));gl_FragColor=vec4(B.rgb,1.);}";var Nn="attribute float a_strip_t;attribute float a_side;attribute vec2 a_angles;attribute vec2 a_radii;attribute vec4 a_color;uniform vec2 u_center;uniform vec2 u_resolution;uniform float u_border_px;varying vec4 v_color;varying vec2 v_edge;void main(){float A=u_border_px*0.5;float B=a_radii.x+A;float C=a_radii.y-A;if(C<=B){gl_Position=vec4(2.,2.,2.,1.);v_color=vec4(0.);v_edge=vec2(0.);return;}float D=mix(B,C,a_side);float E=A/max(D,1.);float F=a_angles.y-a_angles.x;E=min(E,F*0.5);float G=mix(a_angles.x+E,a_angles.y-E,a_strip_t);vec2 H=u_center+vec2(cos(G),sin(G))*D;vec2 I=(H/u_resolution)*2.-1.;gl_Position=vec4(I.x,-I.y,0.,1.);v_color=a_color;v_edge=vec2(a_strip_t,a_side);}";var Un="precision highp float;varying vec4 v_color;void main(){gl_FragColor=v_color;}";var On="attribute vec2 a_position;attribute vec4 a_color;uniform vec2 u_resolution;varying vec4 v_color;void main(){vec2 A=(a_position/u_resolution)*2.-1.;A.y=-A.y;gl_Position=vec4(A,0.,1.);v_color=a_color;}";var Vn="precision highp float;varying vec4 v_color;void main(){gl_FragColor=v_color;}";Li();Ti();wi();Ri();Mi();Fi();Si();var Di=[{name:"bar",vert:Tn,frag:wn},{name:"line",vert:Rn,frag:Mn},{name:"scatter",vert:Fn,frag:Sn},{name:"bar-area",vert:Dn,frag:In},{name:"bar-scatter",vert:Bn,frag:En},{name:"line-uniform",vert:Ue,frag:Oe},{name:"candlestick-body",vert:Pn,frag:Gn},{name:"heatmap",vert:Wn,frag:kn},{name:"sunburst-arc",vert:Nn,frag:Un},{name:"treemap",vert:On,frag:Vn},{name:"density-splat",vert:yt,frag:Hn},{name:"density-extreme",vert:yt,frag:Yn},{name:"density-resolve",vert:zn,frag:Xn},{name:"map-tile",vert:$n,frag:jn}];var cu=1,it=class{constructor(t,n={}){c(this,"id");c(this,"canvas");c(this,"gl");c(this,"isWebGL2");c(this,"shaders");c(this,"ui");c(this,"mi",null);c(this,"Ot");c(this,"dt",!1);c(this,"Fn",new Set);this.id=cu++,this.canvas=t,this.Ot=n.precompile??!1;let o=t.getContext("webgl2",{antialias:!0,alpha:!0,premultipliedAlpha:!1});if(o)this.gl=o,this.isWebGL2=!0;else{let i=t.getContext("webgl",{antialias:!0,alpha:!0,premultipliedAlpha:!1});if(!i)throw new Error("WebGL is not supported");this.gl=i,this.isWebGL2=!1}this.shaders=new Ht(this.gl),this.Ot&&this.shaders.precompile(Di),this.ui=this.gl.getParameter(this.gl.MAX_VERTEX_ATTRIBS),this.isWebGL2||(this.mi=this.gl.getExtension("ANGLE_instanced_arrays")),t.addEventListener("webglcontextlost",i=>{this.dt||i.preventDefault()}),t.addEventListener("webglcontextrestored",()=>{this.shaders.releaseAll(),this.shaders=new Ht(this.gl),this.Ot&&this.shaders.precompile(Di);for(let i of this.Fn)i()})}resetVertexArrayState(){let t=this.gl;for(let n=0;n<this.ui;n++)t.disableVertexAttribArray(n),this.isWebGL2?t.vertexAttribDivisor(n,0):this.mi?.vertexAttribDivisorANGLE(n,0)}onRestore(t){return this.Fn.add(t),()=>this.Fn.delete(t)}isContextLost(){return this.dt||this.gl.isContextLost()}get destroyed(){return this.dt}destroy(){this.dt=!0,this.Fn.clear(),this.shaders.releaseAll();let t=this.gl.getExtension("WEBGL_lose_context");t&&t.loseContext()}};var Yt=class{constructor(t,n={}){c(this,"S");c(this,"Sn");c(this,"fi");c(this,"i");c(this,"Dn",0);c(this,"xo",0);c(this,"Co",0);c(this,"_o",1);c(this,"dt",!1);c(this,"In",null);c(this,"pt",null);c(this,"en",null);c(this,"Vt",null);t instanceof it?(this.S=t,this.Sn=!1):(this.S=new it(t,{precompile:n.precompile??!1}),this.Sn=!0),this.i=new Vt(this.S.gl),this.fi=this.S.onRestore(()=>{this.i.releaseAll(),this.i=new Vt(this.S.gl),this.Dn=0})}get gl(){return this.S.gl}get backendId(){return this.S.id}isContextLost(){return this.dt||this.S.isContextLost()}get isWebGL2(){return this.S.isWebGL2}get shaders(){return this.S.shaders}get C(){return this.i}get uploadedCount(){return this.Dn}set uploadedCount(t){this.Dn=t}resize(t,n,o){this.xo=t,this.Co=n,this._o=o;let i=Math.round(t*o),r=Math.round(n*o),s=this.S.canvas;(s.width!==i||s.height!==r)&&(s.width=i,s.height=r,this.S.gl.viewport(0,0,i,r))}requestResize(t,n,o){this.Vt={cssWidth:t,cssHeight:n,dpr:o}}applyPendingResize(){if(!this.Vt)return!1;let{cssWidth:t,cssHeight:n,dpr:o}=this.Vt;return this.Vt=null,this.resize(t,n,o),!0}beginFrame(){if(this.Sn){this.applyPendingResize();return}let t=this.Vt;this.Vt=null,t?this.resize(t.cssWidth,t.cssHeight,t.dpr):this.resize(this.xo,this.Co,this._o);let n=this.S.gl,o=this.S.canvas;n.bindFramebuffer(n.FRAMEBUFFER,null),n.viewport(0,0,o.width,o.height),n.disable(n.SCISSOR_TEST),n.disable(n.DEPTH_TEST),this.S.resetVertexArrayState()}get cssWidth(){return this.xo}get cssHeight(){return this.Co}get dpr(){return this._o}clear(){this.S.gl.clearColor(0,0,0,0),this.S.gl.clear(this.S.gl.COLOR_BUFFER_BIT|this.S.gl.DEPTH_BUFFER_BIT),this.Dn=0}setFrameCallback(t){this.In=t}endFrame(){if(!this.In||this.isContextLost())return;let t=this.S.canvas;if(typeof t.transferToImageBitmap!="function")return;let n=t.transferToImageBitmap();this.In(n)}async awaitGpuFence(){if(!this.S.isWebGL2){this.S.gl.finish();return}let t=this.S.gl,n=t.fenceSync(t.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n){t.finish();return}try{let o=t.SYNC_FLUSH_COMMANDS_BIT;for(;;){let i=t.clientWaitSync(n,o,0);if(i===t.ALREADY_SIGNALED||i===t.CONDITION_SATISFIED)return;if(i===t.WAIT_FAILED){t.finish();return}if(o=0,await this.Xi(),this.dt)return}}finally{t.deleteSync(n)}}ensureBufferCapacity(t){this.i.ensureCapacity(t)}Xi(){return this.pt||(this.pt=new MessageChannel,this.pt.port1.start()),new Promise(t=>{let n=this.pt;this.en=t,n.port1.addEventListener("message",()=>{this.en=null,t()},{once:!0}),n.port2.postMessage(null)})}destroy(){if(this.dt=!0,this.In=null,this.fi(),this.i.releaseAll(),this.en){let t=this.en;this.en=null,t()}this.pt&&(this.pt.port1.close(),this.pt.port2.close(),this.pt=null),this.Sn&&this.S.destroy()}};var Zn=class{constructor(t,n={}){c(this,"ci");c(this,"Ot");c(this,"Ht",[]);c(this,"di",0);this.ci=Math.max(1,t),this.Ot=n.precompile??!1}acquire(){let t;if(this.Ht.length<this.ci)t=this.pi(),this.Ht.push(t);else{let n=this.di%this.Ht.length;this.di++,this.Ht[n].isContextLost()&&(this.Ht[n]=this.pi()),t=this.Ht[n]}return t}pi(){let t=new OffscreenCanvas(1,1);return new it(t,{precompile:this.Ot})}};qn();qn();function Zr(e,t,n,o){let{controller:i,layout:r}=e,s=r.t,a=i.getVisibleDomain(),l=a.xMin+(t-s.x)/s.width*(a.xMax-a.xMin),u=a.yMax-(n-s.y)/s.height*(a.yMax-a.yMin),m=Math.pow(1.1,-o/100),f=i.lockedAxis;f!=="x"&&(i.scaleX=Math.max(1,Math.min(1e5,i.scaleX*m))),f!=="y"&&(i.scaleY=Math.max(1,Math.min(1e5,i.scaleY*m)));let b=i.getVisibleDomain(),p=b.xMin+(t-s.x)/s.width*(b.xMax-b.xMin),d=b.yMax-(n-s.y)/s.height*(b.yMax-b.yMin),g=i.baseXRange,h=i.baseYRange;f!=="x"&&g>0&&(i.normTranslateX+=(l-p)/g),f!=="y"&&h>0&&(i.normTranslateY+=(u-d)/h)}function qr(e,t,n){let{controller:o,layout:i}=e,r=o.getVisibleDomain(),s=i.t,a=(r.xMax-r.xMin)/s.width,l=(r.yMax-r.yMin)/s.height,u=o.lockedAxis,m=o.baseXRange,f=o.baseYRange;u!=="x"&&m>0&&(o.normTranslateX-=t*a/m),u!=="y"&&f>0&&(o.normTranslateY+=n*l/f)}var Kn=class{constructor(t){c(this,"Yt");this.Yt=t}pin(t,n,o){this.Yt({kind:"pinTooltip",lines:t,pos:n,bounds:o})}dismiss(){this.Yt({kind:"dismissTooltip"})}setCursor(t){this.Yt({kind:"setCursor",cursor:t})}emitUserClick(t){this.Yt({kind:"userClick",detail:t})}emitUserSelect(t){this.Yt({kind:"userSelect",selected:t.selected,row:t.row,column_names:t.column_names,insertConfig:t.insertConfig})}};nr();Xt();var To=class{constructor(t=1024){c(this,"size");c(this,"value");c(this,"colorValue");c(this,"sizeSign");c(this,"x0");c(this,"y0");c(this,"x1");c(this,"y1");c(this,"a0");c(this,"a1");c(this,"r0");c(this,"r1");c(this,"depth");c(this,"parent");c(this,"firstChild");c(this,"nextSibling");c(this,"lastChild");c(this,"childCount");c(this,"leafRowIdx");c(this,"name");c(this,"colorLabel");c(this,"count",0);c(this,"capacity",0);this.Si(t)}reset(){this.count>0&&(this.x0.fill(0,0,this.count),this.y0.fill(0,0,this.count),this.x1.fill(0,0,this.count),this.y1.fill(0,0,this.count),this.a0.fill(0,0,this.count),this.a1.fill(0,0,this.count),this.r0.fill(0,0,this.count),this.r1.fill(0,0,this.count)),this.count=0}allocate(){this.count===this.capacity&&this.Si(this.capacity*2);let t=this.count++;return this.firstChild[t]=-1,this.nextSibling[t]=-1,this.lastChild[t]=-1,this.childCount[t]=0,this.leafRowIdx[t]=-1,this.size[t]=0,this.value[t]=0,this.colorValue[t]=NaN,this.sizeSign[t]=1,this.name[t]="",this.colorLabel[t]="",t}appendChild(t,n){this.parent[n]=t,this.depth[n]=this.depth[t]+1,this.nextSibling[n]=-1;let o=this.lastChild[t];o===-1?this.firstChild[t]=n:this.nextSibling[o]=n,this.lastChild[t]=n,this.childCount[t]++}isLeaf(t){return this.firstChild[t]===-1}Si(t){let n=Math.max(t,1024),o=(i,r)=>{let s=new r(n);return i&&i.length>0&&s.set(i),s};this.size=o(this.size,Float32Array),this.value=o(this.value,Float32Array),this.colorValue=o(this.colorValue,Float32Array),this.sizeSign=o(this.sizeSign,Int8Array),this.x0=o(this.x0,Float32Array),this.y0=o(this.y0,Float32Array),this.x1=o(this.x1,Float32Array),this.y1=o(this.y1,Float32Array),this.a0=o(this.a0,Float32Array),this.a1=o(this.a1,Float32Array),this.r0=o(this.r0,Float32Array),this.r1=o(this.r1,Float32Array),this.depth=o(this.depth,Int32Array),this.parent=o(this.parent,Int32Array),this.firstChild=o(this.firstChild,Int32Array),this.nextSibling=o(this.nextSibling,Int32Array),this.lastChild=o(this.lastChild,Int32Array),this.childCount=o(this.childCount,Int32Array),this.leafRowIdx=o(this.leafRowIdx,Int32Array),this.name?this.name.length=n:this.name=new Array(n),this.colorLabel?this.colorLabel.length=n:this.colorLabel=new Array(n),this.capacity=n}};function ta(e,t){let n=[],o=t;for(;e.parent[o]!==-1;)n.push(e.name[o]),o=e.parent[o];return n.reverse()}qi();function wo(e){for(let t of e.keys())if(!t.startsWith("__"))return t;return""}var It=class extends Le{constructor(){super(...arguments);c(this,"K","");c(this,"s","");c(this,"pe","empty");c(this,"r",new To);c(this,"Y",-1);c(this,"g",-1);c(this,"ae",[]);c(this,"Et",new Map);c(this,"eo",0);c(this,"c",1/0);c(this,"f",-1/0);c(this,"u",new Map);c(this,"X",null);c(this,"ee",0);c(this,"G",new Mt)}};$t();tn();ve();function ft(e,t,n,o,i){if(!e||t<=0)return null;let r=new Float64Array(t),s=1/0,a=-1/0;for(let u=0;u<t;u++){let m=e[u+n];r[u]=m,m<s&&(s=m),m>a&&(a=m)}let l=1/0;for(let u=1;u<t;u++){let m=Math.abs(r[u]-r[u-1]);m>0&&m<l&&(l=m)}return(!isFinite(l)||l===0)&&(l=Math.max(1,a-s)),{categoryPositions:r,numericCategoryDomain:{min:s-l/2,max:a+l/2,isDate:i,label:o,bandWidth:l}}}function Bt(e,t){if(e.length!==1)return{mode:"category"};let n=t[e[0]];return n==="date"||n==="datetime"||n==="integer"||n==="float"?{mode:"numeric",numericType:n}:{mode:"category"}}function cm(e,t,n){return t?n==="boolean"?e?"true":"false":n==="date"||n==="datetime"?he(e):n==="integer"?String(e|0):n==="float"?ae(e):String(e):""}function or(e,t,n){let o=e.values,i=e.valid,r=new Int32Array(t),s=[""],a=new Map;a.set("",0);for(let l=0;l<t;l++){let u=i?!!(i[l>>3]>>(l&7)&1):!0,m=o[l],f=cm(m,u,n),b=a.get(f);b===void 0&&(b=s.length,s.push(f),a.set(f,b)),r[l]=b}return{indices:r,dictionary:s}}function Et(e,t,n,o=[]){let i=[];for(let u=0;;u++){let m=e.get(`__ROW_PATH_${u}__`);if(!m)break;if(m.type==="string"&&m.indices&&m.dictionary)i.push({indices:m.indices,dictionary:m.dictionary});else if(m.values){let f=o[u]??"string";i.push(or(m,t,f))}else break}let r=0;if(n>0&&i.length>0)for(;r<t;){let u=!1;for(let m of i){let f=m.dictionary[m.indices[r]];if(f!=null&&f!==""){u=!0;break}}if(u)break;r++}let s=Math.max(0,t-r),a=i.length;return{rowPaths:n>0&&a>0?i.map((u,m)=>{let f=new Array(s),b=0;for(let d=0;d<s;d++){let g=u.dictionary[u.indices[d+r]]??"";f[d]=g,g.length>b&&(b=g.length)}let p=m===a-1?[]:co(u.indices,u.dictionary,r,r+s).map(d=>({startIdx:d.startIdx-r,endIdx:d.endIdx-r,label:d.label}));return{labels:f,runs:p,maxLabelChars:b}}):[],numCategories:s,rowOffset:r}}function ir(e,t,n,o){if(e.length===0)return null;for(let b of e)if(b.type!=="string")return null;let i=Math.max(0,t-n),r=[],s=new Map,a=e.map(()=>new Int32Array(i)),l=b=>{let p=s.get(b);return p===void 0&&(p=r.length,r.push(b),s.set(b,p)),p};for(let b=0;b<e.length;b++){let p=e[b].data,d=a[b];for(let g=0;g<i;g++){let h=g+n,y;if(!p)y="(null)";else{let x=p.valid;if(!(x?!!(x[h>>3]>>(h&7)&1):!0))y="(null)";else if(p.indices&&p.dictionary)y=p.dictionary[p.indices[h]]??"(null)";else if(p.values){let _=p.values[h];y=_==null?"(null)":String(_)}else y="(null)"}d[g]=l(y)}}let u=0;for(let b of r)b.length>u&&(u=b.length);return{domain:{levels:[{labels:r.slice(),runs:[],maxLabelChars:u}],numRows:r.length,levelLabels:[o]},perColumnSlots:a}}function sn(e){e.r.reset(),e.Et.clear();let t=e.r.allocate();e.r.name[t]="Total",e.r.depth[t]=0,e.r.parent[t]=-1,e.Et.set(t,new Map),e.Y=t,e.g=t,e.ae=[t],e.eo=0,e.c=1/0,e.f=-1/0,e.u.clear(),e.X=null,e.ee=0}function dm(e,t,n){let o=e.Et.get(t);o||(o=new Map,e.Et.set(t,o));let i=o.get(n);if(i!==void 0)return i;let r=e.r.allocate();return e.r.name[r]=n,e.r.appendChild(t,r),o.set(n,r),r}function Ro(e,t,n,o,i,r,s){let a=e.Y,l=t.length;for(let u=0;u<l;u++){let m=dm(e,a,t[u]);u===l-1&&((s===0||l===s)&&(e.r.size[m]=Math.abs(n),e.r.sizeSign[m]=n<0?-1:1,e.r.leafRowIdx[m]=r),isNaN(o)||(e.r.colorValue[m]=o,o<e.c&&(e.c=o),o>e.f&&(e.f=o)),i&&(e.r.colorLabel[m]=i,e.u.has(i)||e.u.set(i,e.u.size))),a=m}}function Mo(e,t,n){let o=NaN,i="";return t?(e.pe==="numeric"&&t.values?o=t.values[n]:e.pe==="series"&&t.indices&&t.dictionary&&(i=t.dictionary[t.indices[n]]),{colorValue:o,colorLabel:i}):{colorValue:o,colorLabel:i}}function na(e,t){if(e.pe!=="series"||!t?.dictionary)return;let n=t.dictionary;for(let o=0;o<n.length;o++){let i=n[o];e.u.has(i)||e.u.set(i,e.u.size)}}function pm(e,t){if(e.E.length===0)return null;let n=e.K?[e.K]:[],o=e.s?[e.s]:[],i=Ve(t,n,o);return i.length===0?null:i.map(r=>({prefix:r.prefix,sizeCol:e.K?t.get(`${r.prefix}|${e.K}`)??null:null,colorCol:e.s?t.get(`${r.prefix}|${e.s}`)??null:null}))}function an(e,t){let n=[];for(let g=0;;g++){let h=t.get(`__ROW_PATH_${g}__`);if(!h)break;if(h.type==="string"&&h.indices&&h.dictionary)n.push({indices:h.indices,dictionary:h.dictionary});else if(h.values){let y=e.A[g],x=e.gt[y]??"string";n.push(or(h,h.values.length,x))}else break}let o=n.length>0,i=e.A.length,r=pm(e,t),s=r!==null,a=e.K?t.get(e.K):null,l=e.s?t.get(e.s):null,u=s?r[0].sizeCol:a,m=o?n[0].indices.length:u?.values?.length??0;if(m===0)return;if(s)for(let g of r)na(e,g.colorCol);else na(e,l);let f=e.eo,b=s&&o?i+1:i;if(!o){let g;for(let[y,x]of t){if(y.startsWith("__")||s&&y.includes("|"))continue;let C=y.lastIndexOf("|"),_=C===-1?y:y.substring(C+1);if(!(_===e.K||_===e.s)&&x.type==="string"&&x.indices&&x.dictionary){g=x;break}}let h=s?r:null;for(let y=0;y<m;y++){let x=g?.indices&&g?.dictionary?g.dictionary[g.indices[y]]:`Row ${f+y}`;if(h)for(let C of h){let _=C.sizeCol?.values?C.sizeCol.values[y]:1,{colorValue:v,colorLabel:A}=Mo(e,C.colorCol,y);Ro(e,[C.prefix,x],_,v,A,f+y,b)}else{let C=a?.values?a.values[y]:1,{colorValue:_,colorLabel:v}=Mo(e,l,y);Ro(e,[x],C,_,v,f+y,b)}}e.eo=f+m;return}let p=s?1:0,d=new Array(n.length+p);for(let g=0;g<m;g++){let h=0;for(let y=0;y<n.length;y++){let x=n[y],C=x.dictionary[x.indices[g]];if(!C&&C!=="0")break;d[p+h++]=C}if(h!==0)if(s)for(let y of r){d[0]=y.prefix;let x=d.slice(0,h+1),C=y.sizeCol?.values?y.sizeCol.values[g]:1,{colorValue:_,colorLabel:v}=Mo(e,y.colorCol,g);Ro(e,x,C,_,v,f+g,b)}else{let y=d.slice(0,h),x=a?.values?a.values[g]:1,{colorValue:C,colorLabel:_}=Mo(e,l,g);Ro(e,y,x,C,_,f+g,b)}}e.eo=f+m}function ln(e){let t=e.r,n=t.value,o=t.size,i=t.firstChild,r=t.nextSibling,s=new Int32Array(128);s[0]=e.Y,s[1]=0;let a=1;for(let l=0;l<t.count;l++)n[l]=0;for(;a>0;){a--;let l=s[a*2];if(s[a*2+1]===0){s[a*2+1]=1,a++;for(let m=i[l];m!==-1;m=r[m]){if((a+1)*2>s.length){let f=new Int32Array(s.length*2);f.set(s),s=f}s[a*2]=m,s[a*2+1]=0,a++}}else if(i[l]===-1)n[l]=Math.max(0,o[l]);else{let m=0;for(let f=i[l];f!==-1;f=r[f])m+=n[f];n[l]=m}}if(e.ae.length>1){let l=[];for(let f=1;f<e.ae.length;f++)l.push(t.name[e.ae[f]]);let u=e.Y,m=!0;for(let f of l){let p=e.Et.get(u)?.get(f);if(p===void 0){m=!1;break}u=p}if(m&&t.firstChild[u]!==-1){e.g=u,Fo(e,u);return}}e.g=e.Y,e.ae=[e.Y]}function Fo(e,t){let n=[],o=t;for(;o!==-1;)n.unshift(o),o=e.r.parent[o];e.ae=n}var bm=1,rr=14,oa=1,ia=4;function So(e,t,n,o,i,r,s,a,l){if(e.x0[t]=Math.round(n),e.y0[t]=Math.round(o),e.x1[t]=Math.round(i),e.y1[t]=Math.round(r),e.firstChild[t]===-1||(i-n)*(r-o)<ia)return;let m=e.depth[t]-s,f=l&&m===1&&e.firstChild[t]!==-1,b=f?rr:oa,p=f?bm:oa,d=e.x0[t]+p,g=e.y0[t]+b,h=e.x1[t]-p,y=e.y1[t]-p;if(h<=d||y<=g)return;let x=0;for(let C=e.firstChild[t];C!==-1;C=e.nextSibling[C])e.value[C]>0&&(a[x++]=C);x!==0&&un(e,a,0,x,d,g,h,y,s,a.subarray(x),l)}function un(e,t,n,o,i,r,s,a,l,u,m){let f=o-n;if(f===0)return;if(f===1){So(e,t[n],i,r,s,a,l,u,m);return}let b=0;for(let v=n;v<o;v++)b+=e.value[t[v]];let p=b/2,d=0,g=n+1,h=1/0;for(let v=n;v<o-1;v++){d+=e.value[t[v]];let A=Math.abs(d-p);A<h&&(h=A,g=v+1)}let y=0;for(let v=n;v<g;v++)y+=e.value[t[v]];let x=y/b,C=s-i,_=a-r;if(C>=_){let v=Math.round(i+C*x);un(e,t,n,g,i,r,v,a,l,u,m),un(e,t,g,o,v,r,s,a,l,u,m)}else{let v=Math.round(r+_*x);un(e,t,n,g,i,r,s,v,l,u,m),un(e,t,g,o,i,v,s,a,l,u,m)}}function ra(e,t,n,o){e.ee=sr(e,t,n,o,0)}function sr(e,t,n,o,i){let r=e.r,s=r.x0,a=r.y0,l=r.x1,u=r.y1,m=r.depth,f=r.firstChild,b=r.nextSibling,p=r.value;(!e.X||e.X.length<r.count)&&(e.X=new Int32Array(r.count));let d=e.X,g=i,h=new Int32Array(128);h[0]=t;let y=1;for(;y>0;){y--;let x=h[y];if(p[x]<=0||(m[x]>=o&&(d[g++]=x),m[x]-o>=n))continue;let C=l[x]-s[x],_=u[x]-a[x];if(!(C*_<ia))for(let v=f[x];v!==-1;v=b[v]){if(y>=h.length){let A=new Int32Array(h.length*2);A.set(h),h=A}h[y++]=v}}return g}Zt();jt();Be();function Do(e,t,n){return .299*e+.587*t+.114*n}function gm(e,t){let n=Ae(e,t);return[n[0],n[1],n[2]]}function mn(e,t,n,o){let i=e.r,r=i.colorValue[t];if(e.pe==="numeric"&&!isNaN(r)&&e.f>e.c)return gm(n,st(r,e.c,e.f));let s=e.u.get(i.colorLabel[t])??0;return o[s%o.length]??[0,0,0]}function Io(e,t,n,o,i){let r=mn(e,t,n,o),s=e.r.sizeSign[t]<0?i:1;return[r[0],r[1],r[2],s]}ue();function Bo(e,t,n,o,i,r,s){let a=Math.round(o*n),l=Math.round(i*n);(t.width!==a||t.height!==l)&&(t.width=a,t.height=l,e.xt=!0);let u=t.getContext("2d");if(u){if(e.xt){e.le?.close(),e.le=null,e.xt=!1;let m=++e.dn;r(u),createImageBitmap(t).then(f=>{e.dn===m?(e.le?.close(),e.le=f):f.close()})}else e.le&&(u.clearRect(0,0,t.width,t.height),u.drawImage(e.le,0,0));s&&(u.save(),u.scale(n,n),s(u),u.restore())}}fo();He();go();function sa(e,t,n,o,i,r,s,a){if(n.length===0)return;let{kn:l,xi:u,yi:m}=t;e.font=`11px ${a}`;let f=16,b=8,p=0;for(let x of n){let C=e.measureText(x).width;C>p&&(p=C)}let d=p+b*2,g=n.length*f+b*2-4,h=o+12,y=i-g-8;h+d>r&&(h=o-d-12),h<0&&(h=4),y<0&&(y=i+12),y+g>s&&(y=s-g-4),e.fillStyle=l,e.strokeStyle=m,e.lineWidth=1,e.beginPath(),e.roundRect(h,y,d,g,4),e.fill(),e.stroke(),e.fillStyle=u,e.textAlign="left",e.textBaseline="top";for(let x=0;x<n.length;x++)e.fillText(n[x],h+b,y+b+x*f)}var aa=24,hm=8,la=12,ua=2,ma=" \\u203A ";function Eo(e,t,n,o,i){e.ke=[];let r=e.T().kn;t.fillStyle=r,t.fillRect(0,0,n,aa),t.font=`11px ${o}`,t.textAlign="left",t.textBaseline="middle";let s=hm,a=e.r;for(let l=0;l<e.ae.length;l++){let u=e.ae[l],m=l===e.ae.length-1,f=a.name[u];t.fillStyle=i;let b=t.measureText(f).width;t.fillText(f,s,la),e.ke.push({nodeId:u,x0:s-ua,y0:0,x1:s+b+ua,y1:aa}),s+=b,m||(t.fillText(ma,s,la),s+=t.measureText(ma).width)}}function Po(e,t,n,o,i,r,s,a){let l=e.G.hoveredTarget===n?e.G.lines??[]:[];l.length!==0&&sa(t,e.T(),l,o,i,r,s,a)}function Go(e,t,n,o,i,r,s,a=null){e.pe==="series"&&e.u.size>1?a?on(t,a,e.u,n,i):bo(t,fa(r,s),e.u,n,i):e.pe==="numeric"&&e.c<e.f&&Rt(t,fa(r,s),{min:e.c,max:e.f,label:e.s},o,i,e.getColumnFormatter(e.s,"value"))}function fa(e,t){return new ee(e,t,{hasXLabel:!1,hasYLabel:!1,hasLegend:!0})}function fn(e,t){if(e.g===-1)return;let n=t.gl,o=t.cssWidth,i=t.cssHeight;if(o<=0||i<=0)return;let r=e.r,s=e.E.length>0&&e.N.facet_mode==="grid",a=e.ae.length>1?28:0,u=(e.pe==="series"?e.u.size>1:e.pe==="numeric"&&e.c<e.f)?90:0,m=new Int32Array(Math.max(r.count,64));if(s)ym(e,m,o,i,a,u);else{e.v=null;let d=r.depth[e.g];So(r,e.g,0,a,o-u,i,d,m,e.to),ra(e,e.g,100,d),lr(e);let g=e.Fe,h=e.Ne;for(let y=0;y<e.ee;y++)g[y]=d,h[y]=e.g}if(!e.o){let d=j(t,"treemap",On,Vn,["u_resolution"],["a_position","a_color"]);e.o=d.program,e.F=d}let f=e.T(),b=f.H,p=fe(f.Be,b,Math.max(1,e.u.size));if(e.D){let d=e.D.getContext("2d");d&&d.clearRect(0,0,e.D.width,e.D.height)}e.xt=!0,xm(e,n,b,p,f.Fo),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.useProgram(e.o),n.uniform2f(e.F.u_resolution,o,i),n.bindBuffer(n.ARRAY_BUFFER,e.Pt),n.enableVertexAttribArray(e.F.a_position),n.vertexAttribPointer(e.F.a_position,2,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,e.Gt),n.enableVertexAttribArray(e.F.a_color),n.vertexAttribPointer(e.F.a_color,4,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,e.Vo),Pt(e)}function ym(e,t,n,o,i,r){let s=e.r,a=[],l=[];for(let d=s.firstChild[e.Y];d!==-1;d=s.nextSibling[d])s.value[d]<=0||(a.push(d),l.push(s.name[d]));let u=Math.max(1,o-i),m=Math.max(1,n-r),f=Ye(l,{cssWidth:m,cssHeight:u,hasLegend:!1,xAxis:"none",yAxis:"none",gap:e.N.facet_padding});e.v=f,lr(e);let b=e.Fe,p=0;for(let d=0;d<a.length;d++){let g=a[d],h=f.cells[d];if(!h)continue;let y=s.name[g],x=e.nt.get(y)??g,C=s.depth[x],_=h.layout.t;So(s,x,_.x,_.y+i,_.x+_.width,_.y+i+_.height,C,t,e.to);let v=sr(e,x,100,C,p);b.length<v&&lr(e);let A=e.Fe,w=e.Ne;for(let L=p;L<v;L++)A[L]=C,w[L]=x;p=v}e.ee=p}function lr(e){let t=e.X?.length??e.r.count;(!e.Fe||e.Fe.length<t)&&(e.Fe=new Int32Array(t)),(!e.Ne||e.Ne.length<t)&&(e.Ne=new Int32Array(t))}function xm(e,t,n,o,i){let r=e.r,s=e.X,a=e.ee,l=e.Fe,u=e.Ne,m=h=>l?l[h]:r.depth[e.g],f=h=>u?u[h]:e.g,b=0;for(let h=0;h<a;h++){let y=s[h];if(y===f(h))continue;let x=r.x1[y]-r.x0[y],C=r.y1[y]-r.y0[y];x<1||C<1||(r.firstChild[y]===-1?b++:r.depth[y]-m(h)===1&&(b+=2))}let p=new Float32Array(b*6*2),d=new Float32Array(b*6*4),g=0;for(let h=0;h<a;h++){let y=s[h];if(y===f(h))continue;let x=r.x0[y],C=r.y0[y],_=r.x1[y],v=r.y1[y],A=_-x,w=v-C;if(!(A<1||w<1)){if(r.firstChild[y]===-1){let L=Io(e,y,n,o,i);g=ar(p,d,g,x,C,_-1,v-1,L)}else if(r.depth[y]-m(h)===1){let T=[.25,.25,.25,1];g=ar(p,d,g,x,v-1,_,v,T),g=ar(p,d,g,_-1,C,_,v,T)}}}e.Vo=g,e.Pt||(e.Pt=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,e.Pt),t.bufferData(t.ARRAY_BUFFER,p.subarray(0,g*2),t.DYNAMIC_DRAW),e.Gt||(e.Gt=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,e.Gt),t.bufferData(t.ARRAY_BUFFER,d.subarray(0,g*4),t.DYNAMIC_DRAW)}function ar(e,t,n,o,i,r,s,a){let l=n*2,u=n*4;e[l+0]=o,e[l+1]=i,e[l+2]=r,e[l+3]=i,e[l+4]=o,e[l+5]=s,e[l+6]=r,e[l+7]=i,e[l+8]=r,e[l+9]=s,e[l+10]=o,e[l+11]=s;for(let m=0;m<6;m++)t[u+m*4+0]=a[0],t[u+m*4+1]=a[1],t[u+m*4+2]=a[2],t[u+m*4+3]=a[3];return n+6}function Pt(e){if(!e.d||e.g===-1)return;let t=e.e;if(!t)return;let{dpr:n,cssWidth:o,cssHeight:i}=t,r=e.te!==-1?e.te:e.B;Bo(e,e.d,n,o,i,s=>Cm(e,s,n,o,i),r!==-1?s=>{let a=e.T(),{fontFamily:l}=a,u=e.r;_m(s,u,r);let m=e.X,f=e.ee,b=e.Fe,p=e.Ne;for(let d=0;d<f;d++){let g=m[d],h=p?p[d]:e.g;if(g===h||u.firstChild[g]===-1)continue;let y=u.x1[g]-u.x0[g],x=u.y1[g]-u.y0[g],C=b?b[d]:u.depth[e.g],_=u.depth[g]-C;_===1?Wo(s,u,g,y,x,a,!e.to):_===2&&Wo(s,u,g,y,x,a,!0)}if(u.firstChild[r]===-1){let d=a.H,g=fe(a.Be,d,Math.max(1,e.u.size)),h=u.x1[r]-u.x0[r],y=u.y1[r]-u.y0[r];ca(e,s,r,h,y,l,d,g,!0)}e.te===-1&&e.B!==-1&&vm(e,s,e.B,o,i,l)}:null)}function Cm(e,t,n,o,i){let r=e.d;t.clearRect(0,0,r.width,r.height),t.save(),t.scale(n,n);let s=e.T(),{fontFamily:a,xe:l}=s,u=s.H,m=fe(s.Be,u,Math.max(1,e.u.size)),f=e.r,b=e.X,p=e.ee,d=e.Fe,g=e.Ne;for(let h=0;h<p;h++){let y=b[h],x=g?g[h]:e.g;if(y===x||f.firstChild[y]!==-1)continue;let C=f.x1[y]-f.x0[y],_=f.y1[y]-f.y0[y];ca(e,t,y,C,_,a,u,m)}for(let h=0;h<p;h++){let y=b[h],x=g?g[h]:e.g;if(y===x||f.firstChild[y]===-1)continue;let C=f.x1[y]-f.x0[y],_=f.y1[y]-f.y0[y],v=d?d[h]:f.depth[e.g],A=f.depth[y]-v;A===1?Wo(t,f,y,C,_,s,!e.to):A===2&&Wo(t,f,y,C,_,s,!0)}if(e.ae.length>1&&Eo(e,t,o,a,l),Go(e,r,m,u,s,o,i),e.v){t.font=`11px ${a}`,t.fillStyle=l,t.textAlign="center",t.textBaseline="top";for(let h of e.v.cells){let y=h.layout.t;t.fillText(h.label,y.x+y.width/2,y.y-14)}}t.restore()}function ca(e,t,n,o,i,r,s,a,l=!1){if(o<30||i<14)return;let b=e.r,p=mn(e,n,s,a),d=Do(p[0],p[1],p[2]),g=l?d>.5?"rgba(0,0,0,0.85)":"rgba(255,255,255,0.9)":d>.5?"rgba(0,0,0,0.5)":"rgba(255,255,255,0.55)",h=Math.min(11,Math.floor(i/2));if(h<7)return;t.font=`${h}px ${r}`;let y=o-8,x=h*1.3,C=Math.max(1,Math.floor((i-8)/x)),_=Ps(t,b.name[n],y,C);if(_.length===0)return;let v=_.length*x,A=b.y0[n]+(i-v)/2+x/2;t.fillStyle=g,t.textAlign="center",t.textBaseline="middle";let w=b.x0[n]+o/2;for(let L=0;L<_.length;L++)t.fillText(_[L],w,A+L*x)}function Wo(e,t,n,o,i,{fontFamily:r,xe:s,backgroundColor:a},l){let u=t.x0[n],m=t.y0[n],f=t.name[n];if(l){if(o<60||i<30)return;let b=12;e.font=`${b}px ${r}`;let p=f,d=o-16;if(e.measureText(p).width>d){for(;p.length>1;)if(p=p.slice(0,-1),e.measureText(p+"\\u2026").width<=d){p+="\\u2026";break}}if(p.length<=3)return;e.save(),e.beginPath(),e.rect(u,m,o,i),e.clip();let h=u+o/2,y=m+i/2;e.textAlign="center",e.textBaseline="middle",e.lineWidth=2,e.strokeStyle=s,e.lineJoin="round",e.strokeText(p,h,y),e.fillStyle=a,e.fillText(p,h,y),e.restore()}else{if(o<40||i<22)return;let b=11;e.font=`${b}px ${r}`;let p=f,d=o-10;if(e.measureText(p).width>d){for(;p.length>1;)if(p=p.slice(0,-1),e.measureText(p+"\\u2026").width<=d){p+="\\u2026";break}}e.fillStyle=s,e.globalAlpha=.85,e.textAlign="left",e.textBaseline="top",e.fillText(p,u+5,m+4),e.globalAlpha=1}}function _m(e,t,n){e.strokeStyle="rgba(255,255,255,0.9)",e.lineWidth=2,e.strokeRect(t.x0[n],t.y0[n],t.x1[n]-t.x0[n],t.y1[n]-t.y0[n])}function vm(e,t,n,o,i,r){let s=e.r,a=(s.x0[n]+s.x1[n])/2,l=(s.y0[n]+s.y1[n])/2;Po(e,t,n,a,l,o,i,r)}async function Ge(e,t,n){let o=e.r,i=ta(o,t),r=e.E.length>0&&e.N.facet_mode==="grid",s=r?i.slice(0,e.E.length):[],a=r?i.slice(e.E.length,e.E.length+e.A.length):i.slice(0,e.A.length),l=n==="leaf"?o.leafRowIdx[t]??null:null;await e.emitClickAndSelect({rowIdx:l!=null&&l>=0?l:null,columnName:e.K,groupByValues:a,splitByValues:s})}async function ct(e,t){let n=e.r,o=[],i=[],r=t;for(;n.parent[r]!==-1;)i.push(n.name[r]),r=n.parent[r];i.reverse(),i.length>0?o.push(i.join(" \\u203A ")):o.push(n.name[t]);let s=e.getColumnFormatter(e.K,"value");if(o.push(`Value: ${s(n.value[t])}`),e.s&&!isNaN(n.colorValue[t])){let u=e.getColumnFormatter(e.s,"value");o.push(`${e.s}: ${u(n.colorValue[t])}`)}let a=n.leafRowIdx[t];if(n.firstChild[t]===-1&&a!==-1&&e.Le){let u=await e.Le.fetchRow(a);for(let[m,f]of u)f!=null&&(m===e.s&&!isNaN(n.colorValue[t])||(typeof f=="number"?o.push(`${m}: ${e.getColumnFormatter(m,"value")(f)}`):o.push(`${m}: ${f}`)))}return n.firstChild[t]!==-1&&o.push(`Children: ${n.childCount[t]}`),o}function ko(e,t,n,o){e.L.dismiss(),e.te=t;let i=e.e?.cssWidth??0,r=e.e?.cssHeight??0;ct(e,t).then(s=>{e.te===t&&s.length!==0&&e.L.pin(s,{px:n.cx,py:n.cy},{cssWidth:i,cssHeight:r})}),e.B=-1,o()}function No(e){e.L.dismiss(),e.te=-1}function Uo(e,t,n){let o=e.r;if(e.E.length>0&&e.N.facet_mode==="grid"){let i=t;for(;i!==-1&&o.parent[i]!==e.Y;)i=o.parent[i];i!==-1&&e.nt.set(o.name[i],t),e.B=-1,n();return}e.g=t,Fo(e,t),e.B=-1,n()}function ur(e,t,n){let o=e.r,i=o.x0,r=o.y0,s=o.x1,a=o.y1,l=o.depth,u=o.firstChild,m=e.X,f=e.ee,b=e.Fe,p=e.Ne,d=-1,g=1/0,h=-1,y=1/0,x=-1;if(!m)return{leafId:-1,branchId:-1,inHeader:!1};for(let C=0;C<f;C++){let _=m[C],v=p?p[C]:e.g;if(_===v||!(t>=i[_]&&t<=s[_]&&n>=r[_]&&n<=a[_]))continue;let A=(s[_]-i[_])*(a[_]-r[_]);if(u[_]!==-1){A<y&&(y=A,h=_);let w=b?b[C]:l[e.g],L=l[_]-w;if(L===1&&n<=r[_]+rr&&(x=_),L===2){let T=s[_]-i[_],F=a[_]-r[_];if(T>=60&&F>=30){let G=r[_]+F/2,E=i[_]+T/2;Math.abs(n-G)<10&&Math.abs(t-E)<T*.4&&(x=_)}}}else A<g&&(g=A,d=_)}return x!==-1?{leafId:-1,branchId:x,inHeader:!0}:{leafId:d,branchId:h,inHeader:!1}}function da(e,t,n){if(e.te!==-1)return;for(let a of e.ke)if(t>=a.x0&&t<=a.x1&&n>=a.y0&&n<=a.y1){e.L.setCursor("pointer"),e.B=-1,Pt(e);return}let{leafId:o,branchId:i,inHeader:r}=ur(e,t,n),s=r?i:o!==-1?o:i;if(s!==e.B){if(e.B=s,e.L.setCursor(i!==-1?"pointer":"default"),s!==-1){let a=e.G.beginHover(s);ct(e,s).then(l=>{e.G.commitHover(a,l)&&Pt(e)})}else e.G.clearHover();Pt(e)}}function pa(e,t,n){if(e.te!==-1){cn(e),e.emitUnselect();return}for(let s of e.ke)if(t>=s.x0&&t<=s.x1&&n>=s.y0&&n<=s.y1){s.nodeId!==e.g&&(Oo(e,s.nodeId),e.emitUnselect());return}let{leafId:o,branchId:i,inHeader:r}=ur(e,t,n);i!==-1&&r?(Oo(e,i),Ge(e,i,"branch")):o!==-1?(ga(e,o),Ge(e,o,"leaf")):i!==-1&&(Oo(e,i),Ge(e,i,"branch"))}function ba(e,t,n){let o=e.te!==-1;cn(e),o&&e.emitUnselect();let{leafId:i,branchId:r}=ur(e,t,n),s=e.r,a=r;if(a===-1&&i!==-1){let l=s.parent[i];l!==e.g&&l!==-1&&(a=l)}a!==-1&&a!==e.g&&s.firstChild[a]!==-1&&(Oo(e,a),Ge(e,a,"branch"),i!==-1&&s.firstChild[i]===-1&&(ga(e,i),Ge(e,i,"leaf")))}function Oo(e,t){Uo(e,t,()=>{e.e&&fn(e,e.e)})}function ga(e,t){let n=e.r,o=(n.x0[t]+n.x1[t])/2,i=(n.y0[t]+n.y1[t])/2;ko(e,t,{cx:o,cy:i},()=>Pt(e))}function cn(e){No(e)}var Vo=class extends It{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"Pt",null);c(this,"Gt",null);c(this,"Vo",0);c(this,"B",-1);c(this,"te",-1);c(this,"ke",[]);c(this,"le",null);c(this,"xt",!0);c(this,"dn",0);c(this,"nt",new Map);c(this,"v",null);c(this,"to",!1);c(this,"Fe",null);c(this,"Ne",null)}tooltipCallbacks(){return{onHover:(n,o)=>da(this,n,o),onLeave:()=>{this.B!==-1&&this.te===-1&&(this.B=-1,this.e&&fn(this,this.e))},onClickPre:(n,o)=>(pa(this,n,o),!0),onDblClick:(n,o)=>ba(this,n,o)}}async uploadAndRender(n,o,i,r){if(this.e=n,i===0){let s=this.I;if(this.K=s[0]||wo(o)||"",this.s=s[1]||"",!this.s)this.pe="empty";else{let a=this.Ee[this.s],l=a==="float"||a==="integer"||a==="date"||a==="datetime";this.pe=l?"numeric":"series"}this.B=-1,this.te=-1,this.ke=[],this.nt.clear(),this.v=null,this.Fe=null,this.Ne=null,this.Vo=0,this.G.clearHover(),this.G.invalidatePin(),cn(this),this.le?.close(),this.le=null,this.xt=!0,this.dn++,sn(this)}an(this,o),ln(this),this.Y!==-1&&await this.requestRender(n)}St(n){this.Y!==-1&&(this.e=n,fn(this,n))}destroyInternal(){cn(this),this.le?.close(),this.le=null;let n=this.e?.gl;n&&(this.Pt&&n.deleteBuffer(this.Pt),this.Gt&&n.deleteBuffer(this.Gt)),this.Pt=null,this.Gt=null,this.o=null,this.F=null,this.Y=-1,this.g=-1,this.ae=[],this.Et.clear(),this.X=null,this.ee=0,this.ke=[],this.nt.clear(),this.v=null,this.Fe=null,this.Ne=null}};Zt();we();ue();var ha=4,dn=30;function Am(e,t){let n=0,o=e.depth[t],i=new Int32Array(128);i[0]=t;let r=1;for(;r>0;){r--;let s=i[r],a=e.depth[s]-o;a>n&&(n=a);for(let l=e.firstChild[s];l!==-1;l=e.nextSibling[l]){if(r>=i.length){let u=new Int32Array(i.length*2);u.set(i),i=u}i[r++]=l}}return n}function mr(e,t,n){let o=e.depth[t],i=Math.max(1,Am(e,t)),s=Math.max(0,n-dn)/i;e.a0[t]=0,e.a1[t]=2*Math.PI,e.r0[t]=0,e.r1[t]=dn,ya(e,t,0,2*Math.PI,dn,s,o)}function ya(e,t,n,o,i,r,s){let a=e.value[t];if(a<=0)return;let l=o-n,u=n;for(let m=e.firstChild[t];m!==-1;m=e.nextSibling[m]){let f=e.value[m];if(f<=0)continue;let b=f/a,p=u,d=u+l*b;u=d;let g=i,h=i+r;e.a0[m]=p,e.a1[m]=d,e.r0[m]=g,e.r1[m]=h;let y=d-p,x=(g+h)/2;y*x*r<ha||e.firstChild[m]!==-1&&ya(e,m,p,d,h,r,s)}}function xa(e,t){e.ee=fr(e,t,0)}function fr(e,t,n){let o=e.r,i=o.a0,r=o.a1,s=o.r0,a=o.r1,l=o.firstChild,u=o.nextSibling,m=o.value;(!e.X||e.X.length<o.count)&&(e.X=new Int32Array(o.count));let f=e.X,b=n,p=new Int32Array(128);p[0]=t;let d=1;for(;d>0;){d--;let g=p[d];if(m[g]<=0)continue;f[b++]=g;let h=r[g]-i[g],y=(s[g]+a[g])/2,x=h*y,C=a[g]-s[g];if(!(x*C<ha))for(let _=l[g];_!==-1;_=u[_]){if(d>=p.length){let v=new Int32Array(p.length*2);v.set(p),p=v}p[d++]=_}}return b}jt();var Ho=32,Lm=28,Tm=90;function Yo(e,t){if(e.l.length===0)return{centerX:e.ot,centerY:e.it};let n=e.r;for(let o of e.l){let i=t;for(;i!==-1;){if(i===o.drillRoot)return{centerX:o.centerX,centerY:o.centerY};i=n.parent[i]}}return{centerX:e.ot,centerY:e.it}}function pn(e,t){if(e.g===-1)return;let n=t.gl,o=t.cssWidth,i=t.cssHeight;if(o<=0||i<=0)return;let r=e.E.length>0&&e.N.facet_mode==="grid",s=e.pe==="series"?e.u.size>1:e.pe==="numeric"&&e.c<e.f,a=!r&&e.ae.length>1?Lm:0,l=s?Tm:0;if(r)wm(e,o,i,l);else{e.v=null,e.l=[];let d=o-l,g=i-a;e.ot=d/2,e.it=a+g/2,e.Ho=Math.max(0,Math.min(d,g)/2-4),mr(e.r,e.g,e.Ho),xa(e,e.g)}Rm(e,t);let u=e.T(),m=u.H,f=fe(u.Be,m,Math.max(1,e.u.size));if(e.D){let d=e.D.getContext("2d");d&&d.clearRect(0,0,e.D.width,e.D.height)}let b=t.dpr;e.xt=!0,Mm(e,n,m,f,u.Fo,b),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.useProgram(e.o);let p=e.F;if(n.uniform2f(p.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(p.u_border_px,u._i*b),e.l.length>0)for(let d of e.l)d.instanceCount!==0&&(n.uniform2f(p.u_center,d.centerX*b,d.centerY*b),Ca(e,n,t,d.instanceStart,d.instanceCount));else n.uniform2f(p.u_center,e.ot*b,e.it*b),Ca(e,n,t,0,e.Yo);qe(e)}function wm(e,t,n,o){let i=e.r,r=[],s=[];for(let f=i.firstChild[e.Y];f!==-1;f=i.nextSibling[f])i.value[f]<=0||(r.push(f),s.push(i.name[f]));let a=Math.max(1,t-o),l=Ye(s,{cssWidth:a,cssHeight:n,hasLegend:!1,xAxis:"none",yAxis:"none",gap:e.N.facet_padding});e.v=l;let u=[],m=0;for(let f=0;f<r.length;f++){let b=r[f],p=l.cells[f];if(!p)continue;let d=i.name[b],g=e.nt.get(d)??b,h=p.layout.t,y=h.x+h.width/2,x=h.y+h.height/2,C=Math.max(0,Math.min(h.width,h.height)/2-4);mr(i,g,C);let _=fr(e,g,m),v=m,A=_-m;u.push({label:d,centerX:y,centerY:x,maxRadius:C,drillRoot:g,instanceStart:v,instanceCount:A,nodeStart:v,nodeCount:A}),m=_}e.ee=m,e.l=u,u.length>0&&(e.ot=u[0].centerX,e.it=u[0].centerY,e.Ho=u[0].maxRadius)}function Rm(e,t){if(e.o)return;let n=t.gl,o=j(t,"sunburst-arc",Nn,Un,["u_center","u_resolution","u_border_px"],["a_strip_t","a_side","a_angles","a_radii","a_color"]);e.o=o.program,e.F=o;let i=new Float32Array((Ho+1)*2*2);for(let r=0;r<=Ho;r++){let s=r/Ho,a=r*4;i[a+0]=s,i[a+1]=0,i[a+2]=s,i[a+3]=1}e.Kt=n.createBuffer(),n.bindBuffer(n.ARRAY_BUFFER,e.Kt),n.bufferData(n.ARRAY_BUFFER,i,n.STATIC_DRAW),e.Jt=n.createBuffer()}function Mm(e,t,n,o,i,r){let s=e.r,a=e.X,l=e.l.length>0,u=l?e.l.reduce((p,d)=>p+d.instanceCount,0):e.ee,m=new Float32Array(u*8),f=0,b=(p,d,g)=>{let h=f;for(let y=p;y<d;y++){let x=a[y];if(x===g)continue;let C=s.a0[x],_=s.a1[x],v=s.r0[x],A=s.r1[x];if(_<=C||A<=v)continue;let w=Io(e,x,n,o,i),L=f*8;m[L+0]=C,m[L+1]=_,m[L+2]=v*r,m[L+3]=A*r,m[L+4]=w[0],m[L+5]=w[1],m[L+6]=w[2],m[L+7]=w[3],f++}return{rangeStart:h,rangeCount:f-h}};if(l)for(let p of e.l){let d=p.instanceStart,g=d+p.instanceCount,{rangeStart:h,rangeCount:y}=b(d,g,p.drillRoot);p.instanceStart=h,p.instanceCount=y}else b(0,e.ee,e.g);e.Yo=f,t.bindBuffer(t.ARRAY_BUFFER,e.Jt),t.bufferData(t.ARRAY_BUFFER,m.subarray(0,f*8),t.DYNAMIC_DRAW)}function Ca(e,t,n,o,i){if(i===0)return;let r=e.F;t.bindBuffer(t.ARRAY_BUFFER,e.Kt);let s=2*Float32Array.BYTES_PER_ELEMENT;t.enableVertexAttribArray(r.a_strip_t),t.vertexAttribPointer(r.a_strip_t,1,t.FLOAT,!1,s,0),t.enableVertexAttribArray(r.a_side),t.vertexAttribPointer(r.a_side,1,t.FLOAT,!1,s,Float32Array.BYTES_PER_ELEMENT);let a=q(n),{setDivisor:l}=a;l(r.a_strip_t,0),l(r.a_side,0),t.bindBuffer(t.ARRAY_BUFFER,e.Jt);let u=8*Float32Array.BYTES_PER_ELEMENT,m=Float32Array.BYTES_PER_ELEMENT,f=o*u;t.enableVertexAttribArray(r.a_angles),t.vertexAttribPointer(r.a_angles,2,t.FLOAT,!1,u,f),l(r.a_angles,1),t.enableVertexAttribArray(r.a_radii),t.vertexAttribPointer(r.a_radii,2,t.FLOAT,!1,u,f+2*m),l(r.a_radii,1),t.enableVertexAttribArray(r.a_color),t.vertexAttribPointer(r.a_color,4,t.FLOAT,!1,u,f+4*m),l(r.a_color,1),a.drawArraysInstanced(t.TRIANGLE_STRIP,0,2*(Ho+1),i),l(r.a_angles,0),l(r.a_radii,0),l(r.a_color,0)}function qe(e){if(!e.d||e.g===-1)return;let t=e.e;if(!t)return;let{dpr:n,cssWidth:o,cssHeight:i}=t;Bo(e,e.d,n,o,i,r=>Fm(e,r,n,o,i),e.B!==-1?r=>{Sm(r,e,e.B),Dm(e,r,e.B,o,i,e.T().fontFamily)}:null)}function Fm(e,t,n,o,i){let r=e.d;t.clearRect(0,0,r.width,r.height),t.save(),t.scale(n,n);let s=e.T(),{fontFamily:a,xe:l,kn:u}=s,m=s.H,f=fe(s.Be,m,Math.max(1,e.u.size)),b=e.r,p=e.X,d=e.ee,g=e.l.length>0;if(g)for(let y of e.l){let x=y.nodeStart+y.nodeCount;for(let C=y.nodeStart;C<x;C++){let _=p[C];_!==y.drillRoot&&_a(e,t,_,a,m,f,y.centerX,y.centerY)}}else for(let y=0;y<d;y++){let x=p[y];x!==e.g&&_a(e,t,x,a,m,f,e.ot,e.it)}let h=Math.max(0,dn-s._i*.5);if(t.fillStyle=u,t.textAlign="center",t.textBaseline="middle",g){for(let y of e.l)if(t.beginPath(),t.fillStyle=u,t.arc(y.centerX,y.centerY,h,0,2*Math.PI),t.fill(),t.fillStyle=l,t.font=`11px ${a}`,t.fillText(b.name[y.drillRoot],y.centerX,y.centerY),e.v){let x=e.v.cells.find(C=>C.label===y.label);x?.titleRect&&(t.fillStyle=l,t.font=`11px ${a}`,t.textBaseline="middle",t.fillText(y.label,x.titleRect.x+x.titleRect.width/2,x.titleRect.y+x.titleRect.height/2))}}else t.beginPath(),t.arc(e.ot,e.it,h,0,2*Math.PI),t.fill(),t.fillStyle=l,t.font=`11px ${a}`,t.fillText(b.name[e.g],e.ot,e.it);!g&&e.ae.length>1&&Eo(e,t,o,a,l),Go(e,r,f,m,s,o,i,g?e.v?.legendRect??null:null),t.restore()}function _a(e,t,n,o,i,r,s,a){let l=e.r,u=l.a0[n],m=l.a1[n],f=l.r0[n],b=l.r1[n],p=b-f,d=(f+b)/2,h=(m-u)*d;if(p<16||h<8)return;let y=Math.min(11,Math.floor(h*.7));if(y<7)return;t.font=`${y}px ${o}`;let x=l.name[n],C=p-4,_=x;if(t.measureText(_).width>C){for(;_.length>1;)if(_=_.slice(0,-1),t.measureText(_+"\\u2026").width<=C){_+="\\u2026";break}}if(_.length<2)return;let v=(u+m)/2;t.save(),t.translate(s,a);let A=v,w=v>Math.PI/2&&v<3*Math.PI/2;e.Di==="upright"&&w&&(A+=Math.PI),t.rotate(A);let L=mn(e,n,i,r),T=Do(L[0],L[1],L[2]);t.fillStyle=T>.5?"rgba(0,0,0,0.85)":"rgba(255,255,255,0.9)",t.textAlign="center",t.textBaseline="middle";let F=e.Di==="upright"&&w?-d:d;t.fillText(_,F,0),t.restore()}function Sm(e,t,n){let o=t.r,i=o.a0[n],r=o.a1[n],s=o.r0[n],a=o.r1[n],{centerX:l,centerY:u}=Yo(t,n);e.strokeStyle="rgba(255,255,255,0.9)",e.lineWidth=2,e.beginPath(),e.arc(l,u,a,i,r),e.arc(l,u,s,r,i,!0),e.closePath(),e.stroke()}function Dm(e,t,n,o,i,r){let s=e.r,a=(s.a0[n]+s.a1[n])/2,l=(s.r0[n]+s.r1[n])/2,{centerX:u,centerY:m}=Yo(e,n),f=u+Math.cos(a)*l,b=m+Math.sin(a)*l;Po(e,t,n,f,b,o,i,r)}function va(e,t,n){if(e.l.length===0)return{centerX:e.ot,centerY:e.it,drillRoot:e.g};for(let o of e.l){let i=t-o.centerX,r=n-o.centerY;if(!(Math.sqrt(i*i+r*r)>o.maxRadius+4))return{centerX:o.centerX,centerY:o.centerY,drillRoot:o.drillRoot}}return null}function Im(e,t,n){let o=e.r,i=t;for(;i!==-1;){if(i===n)return!0;i=o.parent[i]}return!1}function Aa(e,t,n){let o=va(e,t,n);if(!o)return-1;let i=e.r,r=e.X,s=e.ee;if(!r)return-1;let a=t-o.centerX,l=n-o.centerY,u=Math.sqrt(a*a+l*l),m=Math.atan2(l,a);if(m<0&&(m+=2*Math.PI),u<i.r1[e.Y]+.001&&o.drillRoot!==e.Y)return o.drillRoot;let f=e.l.length>0;for(let b=0;b<s;b++){let p=r[b];if(p===o.drillRoot||f&&!Im(e,p,o.drillRoot))continue;let d=i.a0[p],g=i.a1[p],h=i.r0[p],y=i.r1[p];if(!(u<h||u>y)&&!(m<d||m>g))return p}return-1}function La(e,t,n){if(e.te!==-1)return;for(let r of e.ke)if(t>=r.x0&&t<=r.x1&&n>=r.y0&&n<=r.y1){e.L.setCursor("pointer"),e.B!==-1&&(e.B=-1,qe(e));return}let o=Aa(e,t,n),i=e.r;if(e.L.setCursor(o!==-1&&i.firstChild[o]!==-1?"pointer":"default"),o!==e.B){if(e.B=o,o!==-1){let r=e.G.beginHover(o);ct(e,o).then(s=>{e.G.commitHover(r,s)&&qe(e)})}else e.G.clearHover();qe(e)}}function Ta(e,t,n){if(e.te!==-1){zo(e),e.emitUnselect();return}for(let s of e.ke)if(t>=s.x0&&t<=s.x1&&n>=s.y0&&n<=s.y1){s.nodeId!==e.g&&(cr(e,s.nodeId),e.emitUnselect());return}let o=e.r,i=va(e,t,n);if(i){let s=t-i.centerX,a=n-i.centerY;if(Math.sqrt(s*s+a*a)<o.r1[e.Y]+.001){let u=o.parent[i.drillRoot];if(u!==-1&&u!==e.Y)cr(e,u),e.emitUnselect();else if(e.l.length>0){let m=e.l.find(f=>f.drillRoot===i.drillRoot);m&&(e.nt.delete(m.label),e.emitUnselect()),e.e&&pn(e,e.e)}return}}let r=Aa(e,t,n);r!==-1&&(o.firstChild[r]!==-1?(cr(e,r),Ge(e,r,"branch")):(Bm(e,r),Ge(e,r,"leaf")))}function cr(e,t){Uo(e,t,()=>{e.e&&pn(e,e.e)})}function Bm(e,t){let n=e.r,o=(n.a0[t]+n.a1[t])/2,i=(n.r0[t]+n.r1[t])/2,{centerX:r,centerY:s}=Yo(e,t),a=r+Math.cos(o)*i,l=s+Math.sin(o)*i;ko(e,t,{cx:a,cy:l},()=>qe(e))}function zo(e){No(e)}var Xo=class extends It{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"Kt",null);c(this,"Jt",null);c(this,"Yo",0);c(this,"Di","upright");c(this,"ot",0);c(this,"it",0);c(this,"Ho",0);c(this,"B",-1);c(this,"te",-1);c(this,"ke",[]);c(this,"le",null);c(this,"xt",!0);c(this,"dn",0);c(this,"v",null);c(this,"nt",new Map);c(this,"l",[])}tooltipCallbacks(){return{onHover:(n,o)=>La(this,n,o),onLeave:()=>{this.B!==-1&&this.te===-1&&(this.B=-1,qe(this))},onClickPre:(n,o)=>(Ta(this,n,o),!0)}}async uploadAndRender(n,o,i,r){if(this.e=n,i===0){let s=this.I;if(this.K=s[0]||wo(o)||"",this.s=s[1]||"",!this.s)this.pe="empty";else{let a=this.Ee[this.s],l=a==="float"||a==="integer"||a==="date"||a==="datetime";this.pe=l?"numeric":"series"}this.B=-1,this.te=-1,this.ke=[],this.nt.clear(),this.v=null,this.l=[],this.Yo=0,this.G.clearHover(),this.G.invalidatePin(),zo(this),this.le?.close(),this.le=null,this.xt=!0,this.dn++,sn(this)}an(this,o),ln(this),this.Y!==-1&&await this.requestRender(n)}St(n){this.Y!==-1&&(this.e=n,pn(this,n))}destroyInternal(){zo(this),this.le?.close(),this.le=null;let n=this.e?.gl;n&&(this.Kt&&n.deleteBuffer(this.Kt),this.Jt&&n.deleteBuffer(this.Jt)),this.Kt=null,this.Jt=null,this.o=null,this.F=null,this.Y=-1,this.g=-1,this.ae=[],this.Et.clear(),this.X=null,this.ee=0,this.ke=[],this.v=null,this.nt.clear(),this.l=[]}};Xt();var Gt=class extends Le{constructor(){super(...arguments);c(this,"Se",[]);c(this,"ne",0);c(this,"rt",0);c(this,"o",null);c(this,"W",null);c(this,"a",null);c(this,"Re",null);c(this,"Me",null);c(this,"We",null);c(this,"Yn",!0)}getZoomConfig(){return{lockAxis:"y"}}};$t();function $o(e,t=.5,n=.1){let o=t/Math.max(1,e),i=o*(1-n)/2;return{slotWidth:o,halfWidth:i}}function wa(e,t,n="bar"){let o=t?.[e]?.chart_type?.toLowerCase?.();return o==="bar"||o==="line"||o==="scatter"||o==="area"?o:n}function Ra(e,t,n){let o=n?.[e]?.stack;return typeof o=="boolean"?o:t==="bar"||t==="area"}function dr(e,t){return t?.[e]?.alt_axis===!0}function Ma(e,t,n){if(t!=="line"&&t!=="area")return"skip";let o=n?.[e]?.interpolate;return o===void 0||t==="area"?"solid":o}var Fa=50,dt=0,jo=1;function Zo(){return{count:0,catIdx:new Int32Array(0),seriesId:new Int32Array(0),axis:new Uint8Array(0),chartType:new Uint8Array(0),xCenter:new Float64Array(0),halfWidth:new Float64Array(0),y0:new Float64Array(0),y1:new Float64Array(0)}}function Em(e,t){return e&&e.catIdx.length>=t?(e.count=0,e):{count:0,catIdx:new Int32Array(t),seriesId:new Int32Array(t),axis:new Uint8Array(t),chartType:new Uint8Array(t),xCenter:new Float64Array(t),halfWidth:new Float64Array(t),y0:new Float64Array(t),y1:new Float64Array(t)}}function bn(e,t,n,o,i){let r=e.seriesId[t],s=e.catIdx[t];return{catIdx:s,aggIdx:Math.floor(r/n),splitIdx:r%n,seriesId:r,xCenter:e.xCenter[t],halfWidth:e.halfWidth[t],y0:e.y0[t],y1:e.y1[t],value:o[s*i+r],axis:e.axis[t],chartType:e.chartType[t]===dt?"bar":"area"}}function Sa(e,t){return e&&e.length>=t?e:new Float64Array(Math.max(t,e?.length??0))}function Da(e,t){e[t>>3]|=1<<(t&7)}function Ia(e){let{columns:t,numRows:n,columnSlots:o,groupBy:i,splitBy:r,groupByTypes:s,columnsConfig:a,defaultChartType:l,autoAltYAxis:u,bandInnerFrac:m,barInnerPad:f,includeZero:b,scratchBars:p,scratchPosStack:d,scratchNegStack:g}=e,h=Bt(i,s),y={aggregates:[],splitPrefixes:[],rowPaths:[],numCategories:0,rowOffset:0,axisMode:h,numericCategoryDomain:null,categoryPositions:null,series:[],bars:Zo(),posStack:d??null,negStack:g??null,samples:new Float32Array(0),sampleValid:new Uint8Array(0),leftDomain:{min:0,max:0},rightDomain:null,hasRightAxis:!1,leftValueAxisMode:"numeric",rightValueAxisMode:null,leftValueCategoryDomain:null,rightValueCategoryDomain:null},x=o.filter(R=>!!R);if(x.length===0)return y;let C=[];if(r.length>0){for(let R of Ve(t,[],x))R.colNames.size>0&&C.push(R.prefix);C.length===0&&C.push("")}else C.push("");let _=i.map(R=>s[R]??"string"),{rowPaths:v,numCategories:A,rowOffset:w}=Et(t,n,i.length,_);if(A===0)return{...y,aggregates:x,splitPrefixes:C,rowPaths:v,rowOffset:w};let L=[],T=x.length,F=C.length;for(let R=0;R<T;R++)for(let D=0;D<F;D++){let B=x[R],W=C[D],Y=W===""?B:`${W}${T>1?` | ${B}`:""}`,V=wa(B,a,l),Z=Ra(B,V,a),ce=Ma(B,V,a);L.push({seriesId:R*F+D,aggIdx:R,splitIdx:D,aggName:B,splitKey:W,label:Y,color:[.5,.5,.5],axis:0,chartType:V,stack:Z,start:-1,end:-1,interpolateMode:ce})}let G=[];for(let R=0;R<T;R++)G.push(b?{min:0,max:0}:{min:1/0,max:-1/0});let E=A,I=L.length,k=E*T,N=Sa(d??null,k),O=Sa(g??null,k);N.fill(0,0,k),O.fill(0,0,k);let U=new Float32Array(E*I),S=new Uint8Array(E*I+7>>3),X=null,H=null,z=1;if(h.mode==="numeric"&&E>0){let R=t.get("__ROW_PATH_0__"),D=ft(R?.values,E,w,i[0]??"",h.numericType==="date"||h.numericType==="datetime");D&&(X=D.categoryPositions,H=D.numericCategoryDomain,z=D.numericCategoryDomain.bandWidth)}let te=$o(T,m,f),xe=te.slotWidth*z,Ce=te.halfWidth*z,_e=new Float64Array(T),Re=(T-1)/2;for(let R=0;R<T;R++)_e[R]=(R-Re)*xe;let Ne=new Array(T*F),Ot=new Array(T*F);for(let R=0;R<T;R++){let D=x[R];for(let B=0;B<F;B++){let W=C[B],Y=W===""?D:`${W}|${D}`,V=t.get(Y),Z=R*F+B;Ne[Z]=V?.values??null,Ot[Z]=V?.valid??null}}let bt=new Array(T),An=new Array(T),pe=!1;for(let R=0;R<T;R++){let D=x[R],B=C[0],W=B===""?D:`${B}|${D}`;bt[R]=t.get(W)?.type==="string",An[R]=dr(D,a)?1:0,bt[R]&&(pe=!0)}let ne=[],K=[],oe=[],Me=[];for(let R=0;R<T;R++){let D=x[R];for(let B=0;B<F;B++){let W=C[B],Y=W===""?D:`${W}|${D}`,V=R*F+B,Z={name:Y,type:bt[R]?"string":"numeric",data:t.get(Y)};An[R]===0?(ne.push(Z),oe.push(V)):(K.push(Z),Me.push(V))}}let tt=ne.map(R=>R.name).filter((R,D,B)=>B.indexOf(R)===D).join(", "),Ur=K.map(R=>R.name).filter((R,D,B)=>B.indexOf(R)===D).join(", "),Fe=ne.length>0?ir(ne,n,w,tt):null,Se=K.length>0?ir(K,n,w,Ur):null,ie=new Array(T*F).fill(null);if(Fe)for(let R=0;R<oe.length;R++)ie[oe[R]]=Fe.perColumnSlots[R];if(Se)for(let R=0;R<Me.length;R++)ie[Me[R]]=Se.perColumnSlots[R];let Ln=E*T*F,$=Em(p??null,Ln),J=0;for(let R=0;R<E;R++){let D=R+w;for(let B=0;B<T;B++)for(let W=0;W<F;W++){let Y=B*F+W,V=ie[Y];if(V){let re=B*F+W,be=R*I+re;U[be]=V[R],Da(S,be);continue}let Z=Ne[Y];if(!Z)continue;let ce=Ot[Y];if(ce&&!(ce[D>>3]>>(D&7)&1))continue;let Q=Z[D];if(!isFinite(Q))continue;let ht=B*F+W,ot=R*I+ht;U[ot]=Q,Da(S,ot)}}for(let R=0;R<I;R++){let D=-1,B=-1;for(let W=0;W<E;W++){let Y=W*I+R;S[Y>>3]>>(Y&7)&1&&(D===-1&&(D=W),B=W)}L[R].start=D,L[R].end=B}for(let R=0;R<I;R++){let D=L[R];if(!(D.start<0)&&D.interpolateMode!=="skip"){if(D.chartType==="line"){let B=D.start;for(let W=D.start+1;W<=D.end;W++){let Y=W*I+R;if(S[Y>>3]>>(Y&7)&1){if(W-B>1){let Z=B*I+R,ce=U[Z],Q=U[Y],ht=X?X[B]:B,re=(X?X[W]:W)-ht;for(let be=1;be<W-B;be++){let me=B+be,ge=X?X[me]:me,Bl=re===0?0:(ge-ht)/re;U[me*I+R]=ce+(Q-ce)*Bl}}B=W}}}else if(D.chartType==="area"){for(let B=0;B<D.start;B++)U[B*I+R]=0;for(let B=D.end+1;B<E;B++)U[B*I+R]=0;D.start=0,D.end=E-1}}}for(let R=0;R<E;R++){let D=X?X[R]:R;for(let B=0;B<T;B++){let W=_e[B],Y=D+W,V=G[B];for(let Z=0;Z<F;Z++){let ce=B*F+Z,Q=L[ce];if(R<Q.start||R>Q.end)continue;let ht=Q.chartType==="line"||Q.chartType==="area"&&Q.interpolateMode!=="skip",ot=R*I+ce;if(!ht&&!(S[ot>>3]>>(ot&7)&1))continue;let re=U[ot];if((Q.chartType==="bar"||Q.chartType==="area")&&Q.stack){if(re===0&&(Q.chartType!=="area"||Q.interpolateMode==="skip"))continue;let be=R*T+B,me,ge;re>=0?(me=N[be],ge=me+re,N[be]=ge):(me=O[be],ge=me+re,O[be]=ge),me<V.min&&(V.min=me),ge<V.min&&(V.min=ge),me>V.max&&(V.max=me),ge>V.max&&(V.max=ge),$.catIdx[J]=R,$.seriesId[J]=ce,$.axis[J]=0,$.chartType[J]=Q.chartType==="bar"?dt:jo,$.xCenter[J]=Y,$.halfWidth[J]=Ce,$.y0[J]=me,$.y1[J]=ge,J++}else if(re<V.min&&(V.min=re),re>V.max&&(V.max=re),b&&(0<V.min&&(V.min=0),0>V.max&&(V.max=0)),Q.chartType==="bar"||Q.chartType==="area"){if(re===0)continue;$.catIdx[J]=R,$.seriesId[J]=ce,$.axis[J]=0,$.chartType[J]=Q.chartType==="bar"?dt:jo,$.xCenter[J]=Y,$.halfWidth[J]=Ce,$.y0[J]=0,$.y1[J]=re,J++}}}}$.count=J;let gt=!1;if(u&&T>=2&&!pe){let R=new Array(T),D=0,B=1/0;for(let W=0;W<T;W++){let Y=G[W],V=Math.max(Math.abs(Y.min),Math.abs(Y.max),1e-12);R[W]=V,V>D&&(D=V),V<B&&(B=V)}if(D/B>Fa){let W=D/Math.sqrt(Fa);for(let Y=0;Y<T;Y++)if(R[Y]<W)for(let Z of L)Z.aggIdx===Y&&(Z.axis=1);for(let Y=0;Y<$.count;Y++)$.axis[Y]=L[$.seriesId[Y]].axis;gt=L.some(Y=>Y.axis===1)}}let Or=!1;for(let R=0;R<T;R++)if(dr(x[R],a))for(let D of L)D.aggIdx===R&&(D.axis=1,Or=!0);if(Or){for(let R=0;R<$.count;R++)$.axis[R]=L[$.seriesId[R]].axis;gt=!0}let De=b?{min:0,max:0}:{min:1/0,max:-1/0},nt=b?{min:0,max:0}:{min:1/0,max:-1/0};for(let R=0;R<$.count;R++){let D=$.axis[R]===0?De:nt,B=$.y0[R],W=$.y1[R];B<D.min&&(D.min=B),W<D.min&&(D.min=W),B>D.max&&(D.max=B),W>D.max&&(D.max=W)}for(let R=0;R<I;R++){let D=L[R];if(D.stack&&(D.chartType==="bar"||D.chartType==="area")||D.start<0)continue;let B=D.chartType==="line"||D.chartType==="area"&&D.interpolateMode!=="skip",W=D.axis===0?De:nt;for(let Y=D.start;Y<=D.end;Y++){let V=Y*I+R;if(!B&&!(S[V>>3]>>(V&7)&1))continue;let Z=U[V];Z<W.min&&(W.min=Z),Z>W.max&&(W.max=Z)}}(!isFinite(De.min)||!isFinite(De.max)||De.min===0&&De.max===0)&&(De.min=0,De.max=1);let Rl=!isFinite(nt.min)||!isFinite(nt.max)||nt.min===0&&nt.max===0,Ml=gt?Rl?{min:0,max:1}:nt:null,Fl=Fe?"category":"numeric",Sl=gt?Se?"category":"numeric":null,Dl=Fe&&Fe.domain.numRows>0?{min:0,max:Math.max(0,Fe.domain.numRows-1)}:De,Il=Se&&Se.domain.numRows>0&>?{min:0,max:Math.max(0,Se.domain.numRows-1)}:Ml;return{aggregates:x,splitPrefixes:C,rowPaths:v,numCategories:A,rowOffset:w,axisMode:h,numericCategoryDomain:H,categoryPositions:X,series:L,bars:$,posStack:N,negStack:O,samples:U,sampleValid:S,leftDomain:Dl,rightDomain:Il,hasRightAxis:gt,leftValueAxisMode:Fl,rightValueAxisMode:Sl,leftValueCategoryDomain:Fe?.domain??null,rightValueCategoryDomain:Se?.domain??null}}He();Jt();Ct();we();var Ba=dt;function Ea(e,t,n){if(e.pn===0)return;let o=e.F,i=q(n),{setDivisor:r}=i;t.bindBuffer(t.ARRAY_BUFFER,e.W),t.enableVertexAttribArray(o.a_corner),t.vertexAttribPointer(o.a_corner,2,t.FLOAT,!1,0,0),r(o.a_corner,0),Ze(n,i,o.a_x_center,"bar_x",1)&&Ze(n,i,o.a_half_width,"bar_hw",1)&&Ze(n,i,o.a_y0,"bar_y0",1)&&Ze(n,i,o.a_y1,"bar_y1",1)&&Ze(n,i,o.a_color,"bar_color",3)&&Ze(n,i,o.a_series_id,"bar_sid",1)&&Ze(n,i,o.a_axis,"bar_axis",1)&&i.drawArraysInstanced(t.TRIANGLE_STRIP,0,4,e.pn),r(o.a_x_center,0),r(o.a_half_width,0),r(o.a_y0,0),r(o.a_y1,0),r(o.a_color,0),r(o.a_series_id,0),r(o.a_axis,0)}var qo=10;function Ko(e){return e.Ue>=0?bn(e.ue,e.Ue,e.ze.length,e.Xe,e.p.length):e.Oe}function pr(e,t,n){if(!e.a)return;let o=e.a,i=o.t;if(t<i.x||t>i.x+i.width||n<i.y||n>i.y+i.height){Gm(e);return}let r=o.Z,s=o.ie,a=o.J,l=o.re,u,m,f,b;if(e.st){let y=r,x=s,C=Math.min(a,l),_=Math.max(a,l),v=y+(t-i.x)/i.width*(x-y);u=C+(n-i.y)/i.height*(_-C),m=v,f=i.height/(_-C),b=i.width/(x-y)}else u=r+(t-i.x)/i.width*(s-r),m=l-(n-i.y)/i.height*(l-a),f=i.width/(s-r),b=i.height/(l-a);let p=e.bn&&e.oe&&!e.st?e.oe.max-(n-i.y)/i.height*(e.oe.max-e.oe.min):m,d=e.bn&&e.oe&&!e.st?i.height/(e.oe.max-e.oe.min):b,g=-1,h=null;if(h=Pa(e,"scatter",u,m,p,f,b,d),h||(h=Pa(e,"line",u,m,p,f,b,d)),!h){let y=e.ue,x=y.chartType,C=y.seriesId,_=y.xCenter,v=y.halfWidth,A=y.y0,w=y.y1,L=y.axis,T=e.q;for(let F=0;F<y.count;F++){if(x[F]!==dt||T.has(C[F]))continue;let G=_[F],E=v[F];if(u<G-E||u>G+E)continue;let I=L[F]===0?m:p,k=A[F],N=w[F],O=k<N?k:N,U=k<N?N:k;if(I>=O&&I<=U){g=F;break}}}if(g<0&&!h){let y=Pm(e,u,m,p);y&&(y.idx>=0?g=y.idx:h=y.bar)}Wm(e,g,h)}function Pa(e,t,n,o,i,r,s,a){let l=e.ne,u=e.p.length;if(l===0||u===0)return null;let m=e.Xe,f=e.Wt,p=qo*qo,d=null,g=e.$e;for(let h of e.p){if(h.chartType!==t||e.q.has(h.seriesId))continue;let y=h.axis===1?i:o,x=h.axis===1?a:s,C=g?0:Math.max(0,Math.floor(n-qo/r)),_=g?l-1:Math.min(l-1,Math.ceil(n+qo/r));for(let v=C;v<=_;v++){let A=v*u+h.seriesId;if(!(f[A>>3]>>(A&7)&1))continue;let w=m[A],L=g?g[v]:v,T=(L-n)*r,F=(w-y)*x,G=T*T+F*F;G<p&&(p=G,d={catIdx:v,aggIdx:h.aggIdx,splitIdx:h.splitIdx,seriesId:h.seriesId,xCenter:L,halfWidth:0,y0:0,y1:w,value:w,axis:h.axis,chartType:"bar"})}}return d}function Pm(e,t,n,o){let i=Math.round(t);if(i<0||i>=e.ne||Math.abs(t-i)>.5)return null;let r=e.p.length,s=e.Xe,a=e.Wt,l=e.ue,u=l.chartType,m=l.catIdx,f=l.seriesId,b=l.axis,p=l.y0,d=l.y1;for(let g=0;g<l.count;g++){if(u[g]!==jo||m[g]!==i||e.q.has(f[g]))continue;let h=b[g]===0?n:o,y=p[g],x=d[g],C=y<x?y:x,_=y<x?x:y;if(h>=C&&h<=_)return{idx:g,bar:null}}for(let g of e.p){if(g.chartType!=="area"||g.stack||e.q.has(g.seriesId))continue;let h=i*r+g.seriesId;if(!(a[h>>3]>>(h&7)&1))continue;let y=s[h],x=g.axis===1?o:n,C=Math.min(0,y),_=Math.max(0,y);if(x>=C&&x<=_)return{idx:-1,bar:{catIdx:i,aggIdx:g.aggIdx,splitIdx:g.splitIdx,seriesId:g.seriesId,xCenter:i,halfWidth:.5,y0:0,y1:y,value:y,axis:g.axis,chartType:"area"}}}return null}function Gm(e){(e.Ue!==-1||e.Oe!==null)&&(e.Ue=-1,e.Oe=null,e.e&&Ke(e,e.e))}function Wm(e,t,n){let o=e.Ue===t,i=(e.Oe?.seriesId??-1)===(n?.seriesId??-1)&&(e.Oe?.catIdx??-1)===(n?.catIdx??-1);o&&i||(e.Ue=t,e.Oe=n,e.e&&Ke(e,e.e))}function Ga(e,t,n){if(e.no.length===0)return!1;for(let o of e.no){let i=o.rect;if(t>=i.x&&t<=i.x+i.width&&n>=i.y&&n<=i.y+i.height)return e.q.has(o.seriesId)?e.q.delete(o.seriesId):e.q.add(o.seriesId),e.Ct=null,e.oo=!1,e.io=null,e.e&&(Jo(e,e.e),Qo(e,e.e),Ke(e,e.e)),!0}return!1}function br(e,t){let n=[],o=e.p[t.seriesId],i=km(e,t.catIdx);i&&n.push(i);let r=e.getColumnFormatter(o.aggName,"value");return n.push(`${o.aggName}: ${r(t.value)}`),o.splitKey&&n.push(`Split: ${o.splitKey}`),t.y0!==0&&(n.push(`Base: ${r(t.y0)}`),n.push(`Top: ${r(t.y1)}`)),n}function km(e,t){if(e.lt==="numeric"&&e.$){let o=e.ue,i=null;for(let s=0;s<o.count;s++)if(o.catIdx[s]===t){i=o.xCenter[s];break}if(i==null)return"";let r=e.A[0];return e.getColumnFormatter(r,"value")(i)}if(e.Se.length===0)return"";let n=[];for(let o of e.Se){let i=o.labels[t];i!=null&&i!==""&&n.push(i)}return n.join(" / ")}function Wa(e,t){t<0||t>=e.ue.count||(e.zo=t,Na(e,bn(e.ue,t,e.ze.length,e.Xe,e.p.length)))}function ka(e,t){e.zo=-1,Na(e,t)}function Na(e,t){if(e.L.dismiss(),!e.a)return;let n=e.a,i=(e.p[t.seriesId]?.chartType??"bar")==="bar"?(t.y0+t.y1)/2:t.y1,r=t.axis===0?e.st?n.P(i,t.xCenter):n.P(t.xCenter,i):gr(e,t.xCenter,i),s=br(e,t);s.length!==0&&(e.L.pin(s,r,n),e.Ue=-1,e.Oe=null,e.e&&Ke(e,e.e))}ve();ve();vt();wt();ki();function Ua(e,t,n){if(n)return n;if(!e.isDate)return ae;let o=t.length>1?t[1]-t[0]:0;return i=>he(i,o)}function hr(e,t,n,o,i,r,s){let{xe:a,fontFamily:l}=r,{t:u}=t,m=i==="bottom"?u.y+u.height:u.y;e.fillStyle=a,e.font=`11px ${l}`,e.lineWidth=1,ao(e,u,o,m,i,f=>t.P(f,0).px,Ua(n,o,s)),e.font=`13px ${l}`,e.textAlign="center",e.textBaseline="bottom",e.fillText(n.label,u.x+u.width/2,i==="bottom"?t.cssHeight-2:10)}function yr(e,t,n,o,i,r,s){let{xe:a,fontFamily:l}=r,{t:u}=t,m=i==="left"?u.x:u.x+u.width;e.fillStyle=a,e.font=`11px ${l}`,e.lineWidth=1,lo(e,u,o,m,i,f=>t.P(0,f).py,Ua(n,o,s)),e.font=`13px ${l}`,e.save(),i==="left"?(e.translate(14,u.y+u.height/2),e.rotate(-Math.PI/2)):(e.translate(t.cssWidth-10,u.y+u.height/2),e.rotate(Math.PI/2)),e.textAlign="center",e.textBaseline="bottom",e.fillText(n.label,0,0),e.restore()}function ei(e,t,n,o,i,r){hr(e,t,n,o,"bottom",i,r)}function ti(e,t,n,o,i,r){yr(e,t,n,o,"left",i,r)}function ni(e,t,n,o,i,r,s,a=!1,l={}){let u=de(e,o,r);if(!u)return;let{t:m}=o;if(u.strokeStyle=i.Ro,u.lineWidth=1,u.beginPath(),u.moveTo(m.x,m.y),u.lineTo(m.x,m.y+m.height),u.lineTo(m.x+m.width,m.y+m.height),s&&(a?(u.moveTo(m.x,m.y),u.lineTo(m.x+m.width,m.y)):(u.moveTo(m.x+m.width,m.y),u.lineTo(m.x+m.width,m.y+m.height))),u.stroke(),a){if(t.mode==="category"?ut(u,o,t.domain,i):ti(u,o,t.domain,t.ticks,i,l.category),n.mode==="category"?Te(u,o,n.domain,i):hr(u,o,n.domain,n.ticks,"bottom",i,l.value),s)if(s.mode==="category")Te(u,o,s.domain,i);else{let f=o.Z,b=o.ie;o.Z=s.domain.min,o.ie=s.domain.max,hr(u,o,s.domain,s.ticks,"top",i,l.alt),o.Z=f,o.ie=b}}else if(t.mode==="category"?Te(u,o,t.domain,i):ei(u,o,t.domain,t.ticks,i,l.category),n.mode==="category"?ut(u,o,n.domain,i):yr(u,o,n.domain,n.ticks,"left",i,l.value),s)if(s.mode==="category")ut(u,o,s.domain,i);else{let f=o.J,b=o.re;o.J=s.domain.min,o.re=s.domain.max,yr(u,o,s.domain,s.ticks,"right",i,l.alt),o.J=f,o.re=b}}function oi(e,t,n,o,i,r=!1){let s=de(e,t,i);s&&(s.strokeStyle=o.Nn,s.lineWidth=1,r?uo(s,t.t,n,a=>t.P(a,0).px):mo(s,t.t,n,a=>t.P(0,a).py))}wt();var Je=null;function Oa(e){if(Je&&Je.xCenters.length>=e&&Je.colors.length>=e*3)return Je;let t=Math.max(e,Je?.xCenters.length??0);return Je={xCenters:new Float32Array(t),halfWidths:new Float32Array(t),y0s:new Float32Array(t),y1s:new Float32Array(t),seriesIds:new Float32Array(t),axes:new Float32Array(t),colors:new Float32Array(t*3)},Je}function Jo(e,t){let n=e.ue,o=n.count,i=0;if(o>0){let s=Oa(o);(!e.gn||e.gn.length<o)&&(e.gn=new Int32Array(o));let a=e.gn,l=e._e,u=e.p,m=e.q,f=n.chartType,b=n.seriesId,p=n.xCenter,d=n.halfWidth,g=n.y0,h=n.y1,y=n.axis;for(let x=0;x<o;x++){if(f[x]!==Ba)continue;let C=b[x];if(m.has(C))continue;s.xCenters[i]=p[x]-l,s.halfWidths[i]=d[x],s.y0s[i]=g[x],s.y1s[i]=h[x],s.seriesIds[i]=C,s.axes[i]=y[x];let _=u[C].color;s.colors[i*3]=_[0],s.colors[i*3+1]=_[1],s.colors[i*3+2]=_[2],a[i]=x,i++}}if(e.pn=i,i===0){e.Ve=null;return}let r=Je;t.C.ensureCapacity(i),t.C.upload("bar_x",r.xCenters.subarray(0,i),0,1),t.C.upload("bar_hw",r.halfWidths.subarray(0,i),0,1),t.C.upload("bar_y0",r.y0s.subarray(0,i),0,1),t.C.upload("bar_y1",r.y1s.subarray(0,i),0,1),t.C.upload("bar_sid",r.seriesIds.subarray(0,i),0,1),t.C.upload("bar_axis",r.axes.subarray(0,i),0,1),t.C.upload("bar_color",r.colors.subarray(0,i*3),0,3),(!e.Ve||e.Ve.length<i*3)&&(e.Ve=new Float32Array(Math.max(i*3,e.Ve?.length??0))),e.Ve.set(r.colors.subarray(0,i*3))}function Nm(e,t){let n=e.pn;if(n===0)return;let o=e.gn,i=e.p,r=e.ue.seriesId,s=Oa(n);for(let l=0;l<n;l++){let u=i[r[o[l]]].color;s.colors[l*3]=u[0],s.colors[l*3+1]=u[1],s.colors[l*3+2]=u[2]}let a=e.Ve;if(a&&a.length>=n*3){let l=!0;for(let u=0;u<n*3;u++)if(a[u]!==s.colors[u]){l=!1;break}if(l)return}t.C.upload("bar_color",s.colors.subarray(0,n*3),0,3),(!a||a.length<n*3)&&(e.Ve=new Float32Array(n*3)),e.Ve.set(s.colors.subarray(0,n*3))}function Va(e){e.k.lines.invalidateBuffers(e),e.k.scatter.invalidateBuffers(e),e.k.areas.invalidateBuffers(e)}function Qo(e,t){e.k.lines.rebuildBuffers(e,t),e.k.scatter.rebuildBuffers(e,t),e.k.areas.rebuildBuffers(e,t)}function Ke(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0||e.ne===0)return;let s=e.T();xr(e)&&e.pn>0&&Nm(e,t);let a=e.st,l=e.lt==="numeric",u=l?e.$.min:-.5,m=l?e.$.max:e.ne-.5,f=e.Xo.min,b=e.Xo.max;e.b&&(a?e.b.setBaseDomain(f,b,u,m):e.b.setBaseDomain(u,m,f,b));let p=u,d=m,g=f,h=b,y=e.oe?.min??0,x=e.oe?.max??1;if(e.b){let S=e.b.getVisibleDomain();a?(g=S.xMin,h=S.xMax,p=S.yMin,d=S.yMax):(p=S.xMin,d=S.xMax,g=S.yMin,h=S.yMax)}let C=a?!e.b?.isYDefault():!e.b?.isXDefault();if(e.Yn&&e.b&&C){let S=Ym(e,p,d);S.hasLeft&&(g=S.leftMin,h=S.leftMax),e.oe&&S.hasRight&&(y=S.rightMin,x=S.rightMax)}e.h.include_zero&&(g>0&&(g=0),h<0&&(h=0),e.oe&&(y>0&&(y=0),x<0&&(x=0)));let _=e.p.length>1,v=e.A.length>0,A={levels:e.Se,numRows:e.ne,levelLabels:e.A.slice()},w=e.ro,L=e.$o==="category"&&w!==null&&w.numRows>0,T;if(a){let S=l?55:Tt(A),X=S+(v?16:0),H=_?80:16,z=Math.max(1,i-X-H),te=L?Pe(w,z):void 0;T=new ee(i,r,{hasXLabel:!0,hasYLabel:v,hasLegend:_,leftExtra:S,bottomExtra:te})}else if(l){let S=L?Tt(w):void 0;T=new ee(i,r,{hasXLabel:v,hasYLabel:!0,hasLegend:_,bottomExtra:24,leftExtra:S})}else{let S=L?Tt(w):55,X=S+16,H=_?80:16,z=Math.max(1,i-X-H),te=Pe(A,z);T=new ee(i,r,{hasXLabel:v,hasYLabel:!0,hasLegend:_,bottomExtra:te,leftExtra:L?S:void 0})}e.a=T,e.b&&e.b.updateLayout(T);let F=e.h.include_zero,G=a?T.buildProjectionMatrix(g,h,d,p,"x",F,void 0,0,e._e):T.buildProjectionMatrix(p,d,g,h,"y",F,void 0,e._e,0),E;if(e.bn&&e.oe&&!a){let S=T.Z,X=T.ie,H=T.J,z=T.re;E=T.buildProjectionMatrix(p,d,y,x,"y",F,void 0,e._e,0),T.Z=S,T.ie=X,T.J=H,T.re=z}else E=G;let I=se(g,h,6),k=e.bn&&e.oe&&!a?se(y,x,6):null,N=A,O={min:g,max:h,label:e.Ii},U=e.oe&&!a?{min:y,max:x,label:e.Bi}:null;e.D&&oi(e.D,T,I,s,t.dpr,a),ze(n,T,t.dpr,()=>{a||e.k.areas.draw(e,n,t,G,E,s.Fo),n.useProgram(e.o);let S=e.F;n.uniformMatrix4fv(S.u_proj_left,!1,G),n.uniformMatrix4fv(S.u_proj_right,!1,E),n.uniform1f(S.u_horizontal,a?1:0);let X=e.p.length>1?Ko(e):null;n.uniform1f(S.u_hover_series,X?X.seriesId:-1),Ea(e,n,t),a||(e.k.lines.draw(e,n,t,G,E),e.k.scatter.draw(e,n,t,G,E))}),e.Re=N,e.Me=O,e.We=I,e.jo=U,e.Zo=k,e.kt=l?se(p,d,6):null,Um(e)}function Um(e){if(!e.d||!e.a||!e.Me||!e.We)return;let t=e.T(),n;if(e.lt==="numeric"&&e.$&&e.kt)n={mode:"numeric",domain:{min:e.$.min,max:e.$.max,isDate:e.$.isDate,label:e.$.label},ticks:e.kt};else if(e.Re)n={mode:"category",domain:e.Re};else return;let o=e.p.find(l=>l.axis===0),i=e.p.find(l=>l.axis===1),r=e.A[0],s=e.$o==="category"&&e.ro?{mode:"category",domain:e.ro}:{mode:"numeric",domain:e.Me,ticks:e.We},a;e.jo&&e.Zo&&(a=e.Ei==="category"&&e.qo?{mode:"category",domain:e.qo}:{mode:"numeric",domain:e.jo,ticks:e.Zo}),ni(e.d,n,s,e.a,t,e.e?.dpr??1,a,e.st,{value:e.getColumnFormatter(o?.aggName??null,"tick"),alt:e.getColumnFormatter(i?.aggName??null,"tick"),category:e.getColumnFormatter(r,"tick")}),Vm(e),Ko(e)&&Hm(e)}var ii=new Float64Array(0);function Om(e,t,n){if(e.oo)return;let o=e.p;ii.length<o.length&&(ii=new Float64Array(o.length)),t.save(),t.font=`11px ${n}`;for(let i=0;i<o.length;i++)ii[i]=t.measureText(o[i].label).width;t.restore(),e.oo=!0}function Vm(e){if(e.no=[],!e.d||!e.a||e.p.length<=1)return;let t=e.d.getContext("2d");if(!t)return;t.save();let n=e.T(),o=n.Mo,i=n.fontFamily;Om(e,t,i);let r=e.a,s=10,a=18,l=r.t.x+r.t.width+12,u=r.margins.top+10;t.font=`11px ${i}`,t.textAlign="left",t.textBaseline="middle";let m=e.p,f=ii;for(let b=0;b<m.length;b++){let p=m[b],d=e.q.has(p.seriesId),g=Math.round(p.color[0]*255),h=Math.round(p.color[1]*255),y=Math.round(p.color[2]*255);t.globalAlpha=d?.3:1,t.fillStyle=`rgb(${g},${h},${y})`,t.fillRect(l,u-s/2,s,s),t.fillStyle=o,t.fillText(p.label,l+s+6,u);let x=f[b];d&&(t.strokeStyle=o,t.lineWidth=1,t.beginPath(),t.moveTo(l+s+6,u),t.lineTo(l+s+6+x,u),t.stroke()),t.globalAlpha=1;let C={x:l-2,y:u-a/2,width:s+6+x+4,height:a};e.no.push({seriesId:p.seriesId,rect:C}),u+=a}t.restore()}function Hm(e){if(!e.d||!e.a)return;let t=Ko(e);if(!t)return;let n=e.a,i=(e.p[t.seriesId]?.chartType??"bar")==="bar"?(t.y0+t.y1)/2:t.y1,r=t.axis===0?e.st?n.P(i,t.xCenter):n.P(t.xCenter,i):gr(e,t.xCenter,i),s=br(e,t),a=e.T();Ie(e.d,r,s,n,a,e.e?.dpr??1)}function gr(e,t,n){let o=e.a,{x:i,y:r,width:s,height:a}=o.t,l=(t-o.Z)/(o.ie-o.Z),u=e.oe,m=(n-u.min)/(u.max-u.min);return{px:i+l*s,py:r+(1-m)*a}}function Ym(e,t,n){let o=e.Ct;if(o&&o.catMin===t&&o.catMax===n&&o.hidden===e.q)return o;let i=$m(e),r=1/0,s=-1/0,a=!1,l=1/0,u=-1/0,m=!1;if(i.n>0){let b=e.$e,p,d;if(b){let v=zm(b,i.n,t,n);p=v.lo,d=v.hi}else p=Math.max(0,Math.floor(t)),d=Math.min(i.n-1,Math.ceil(n));let g=i.leftMin,h=i.leftMax,y=i.rightMin,x=i.rightMax,C=i.hasLeft,_=i.hasRight;for(let v=p;v<=d;v++)C[v]&&(g[v]<r&&(r=g[v]),h[v]>s&&(s=h[v]),a=!0),_[v]&&(y[v]<l&&(l=y[v]),x[v]>u&&(u=x[v]),m=!0)}let f=o??Xm();return f.catMin=t,f.catMax=n,f.hidden=e.q,f.leftMin=r,f.leftMax=s,f.hasLeft=a,f.rightMin=l,f.rightMax=u,f.hasRight=m,e.Ct=f,f}function zm(e,t,n,o){if(t===0||n>o)return{lo:0,hi:-1};let i=0,r=t;for(;i<r;){let l=i+r>>>1;e[l]<n?i=l+1:r=l}let s=Math.max(0,i-1);for(i=0,r=t;i<r;){let l=i+r>>>1;e[l]<=o?i=l+1:r=l}let a=Math.min(t-1,i);return{lo:s,hi:a}}function Xm(){return{catMin:0,catMax:0,hidden:new Set,leftMin:0,leftMax:0,hasLeft:!1,rightMin:0,rightMax:0,hasRight:!1}}function $m(e){let t=e.ne,n=e.Pi,o=n&&n.leftMin.length>=t;if(n&&o&&e.io===e.q)return n;!n||!o?(n={leftMin:new Float64Array(t),leftMax:new Float64Array(t),rightMin:new Float64Array(t),rightMax:new Float64Array(t),hasLeft:new Uint8Array(t),hasRight:new Uint8Array(t),n:t},e.Pi=n):n.n=t;for(let g=0;g<t;g++)n.leftMin[g]=1/0,n.leftMax[g]=-1/0,n.rightMin[g]=1/0,n.rightMax[g]=-1/0,n.hasLeft[g]=0,n.hasRight[g]=0;let i=e.ue,r=e.q,s=i.catIdx,a=i.seriesId,l=i.y0,u=i.y1,m=i.axis;for(let g=0;g<i.count;g++){if(r.has(a[g]))continue;let h=s[g];if(h<0||h>=t)continue;let y=l[g],x=u[g],C=y<x?y:x,_=y<x?x:y;m[g]===1?(C<n.rightMin[h]&&(n.rightMin[h]=C),_>n.rightMax[h]&&(n.rightMax[h]=_),n.hasRight[h]=1):(C<n.leftMin[h]&&(n.leftMin[h]=C),_>n.leftMax[h]&&(n.leftMax[h]=_),n.hasLeft[h]=1)}let f=[e.hn,e.yn],b=e.Xe,p=e.Wt,d=e.p.length;for(let g of f)for(let h of g){if(r.has(h.seriesId))continue;let y=h.axis===1,x=h.seriesId;for(let C=0;C<t;C++){let _=C*d+x;if(!(p[_>>3]>>(_&7)&1))continue;let v=b[_];y?(v<n.rightMin[C]&&(n.rightMin[C]=v),v>n.rightMax[C]&&(n.rightMax[C]=v),n.hasRight[C]=1):(v<n.leftMin[C]&&(n.leftMin[C]=v),v>n.leftMax[C]&&(n.leftMax[C]=v),n.hasLeft[C]=1)}}return e.io=r,n}Zt();we();ue();var gn=new Float32Array(0),hn=new Uint8Array(0);function jm(e){return gn.length>=e||(gn=new Float32Array(Math.max(e,gn.length*2))),gn}function Zm(e){return hn.length>=e||(hn=new Uint8Array(Math.max(e,hn.length*2))),hn}function qm(e){return e==="solid"?1:e==="transparent"?.5:0}var ri=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=je(t.gl),o=j(t,"bar-line",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_start","a_end","a_corner","a_real_start","a_real_end"]);return this.o={...o,cornerBuffer:n},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;for(let i of n.series)o.deleteBuffer(i.gpuBuffer),o.deleteBuffer(i.gpuRealBuffer);this.i=null}rebuildBuffers(t,n){let o=t.hn;if(o.length===0){this.i=null;return}if(t.ne===0){this.i=null;return}this.ensureProgram(n);let r=n.gl,s=t.Xe,a=t.Wt,l=t._e,u=t.$e,m=t.p.length,f=[];for(let b of o){let p=t.p[b.seriesId],d=p.start,g=p.end;if(d<0||g<d)continue;let h=g-d+1;if(h<2)continue;let y=jm(h*2),x=Zm(h),C=0;for(let A=d;A<=g;A++){let w=u?u[A]-l:A,L=A*m+b.seriesId;y[C*2]=w,y[C*2+1]=s[L],x[C]=a[L>>3]>>(L&7)&1,C++}let _=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,_),r.bufferData(r.ARRAY_BUFFER,y.subarray(0,C*2),r.STATIC_DRAW);let v=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,v),r.bufferData(r.ARRAY_BUFFER,x.subarray(0,C),r.STATIC_DRAW),f.push({seriesId:b.seriesId,axis:b.axis,color:[b.color[0],b.color[1],b.color[2]],gpuBuffer:_,gpuRealBuffer:v,count:h,interpolateMode:p.interpolateMode})}this.i={series:f}}draw(t,n,o,i,r){let s=this.i,a=this.o;if(!s||!a||s.series.length===0)return;let l=o.dpr;n.useProgram(a.program),n.uniform2f(a.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(a.u_line_width,t.h.line_width_px*l);let u=q(o),{setDivisor:m,drawArraysInstanced:f}=u;n.bindBuffer(n.ARRAY_BUFFER,a.cornerBuffer),n.enableVertexAttribArray(a.a_corner),n.vertexAttribPointer(a.a_corner,1,n.FLOAT,!1,0,0),m(a.a_corner,0);let b=2*Float32Array.BYTES_PER_ELEMENT,p=Uint8Array.BYTES_PER_ELEMENT,d=t.q;for(let g of s.series){if(d.has(g.seriesId))continue;n.uniformMatrix4fv(a.u_projection,!1,g.axis===1?r:i);let h=t.p[g.seriesId].color;n.uniform4f(a.u_color,h[0],h[1],h[2],1),n.uniform1f(a.u_interp_alpha,qm(g.interpolateMode)),n.enableVertexAttribArray(a.a_start),m(a.a_start,1),n.enableVertexAttribArray(a.a_end),m(a.a_end,1),n.enableVertexAttribArray(a.a_real_start),m(a.a_real_start,1),n.enableVertexAttribArray(a.a_real_end),m(a.a_real_end,1),n.bindBuffer(n.ARRAY_BUFFER,g.gpuBuffer),n.vertexAttribPointer(a.a_start,2,n.FLOAT,!1,b,0),n.vertexAttribPointer(a.a_end,2,n.FLOAT,!1,b,b),n.bindBuffer(n.ARRAY_BUFFER,g.gpuRealBuffer),n.vertexAttribPointer(a.a_real_start,1,n.UNSIGNED_BYTE,!1,p,0),n.vertexAttribPointer(a.a_real_end,1,n.UNSIGNED_BYTE,!1,p,p),f(n.TRIANGLE_STRIP,0,4,g.count-1)}m(a.a_start,0),m(a.a_end,0),m(a.a_real_start,0),m(a.a_real_end,0)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&n.deleteBuffer(o.cornerBuffer)}this.o=null,this.i=null}};ue();var We=new Float32Array(0),ye=new Float32Array(0);function Km(e){We.length<e*2&&(We=new Float32Array(Math.max(e*2,We.length*2))),ye.length<e*3&&(ye=new Float32Array(Math.max(e*3,ye.length*2)))}var si=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=j(t,"bar-scatter",Bn,En,["u_projection","u_point_size"],["a_position","a_color"]);return this.o={...o,posLeftBuffer:n.createBuffer(),posRightBuffer:n.createBuffer(),colorLeftBuffer:n.createBuffer(),colorRightBuffer:n.createBuffer()},this.o}invalidateBuffers(t){this.i=null}rebuildBuffers(t,n){let o=t.yn;if(o.length===0){this.i=null;return}let i=t.ne,r=t.p.length;if(i===0||r===0){this.i=null;return}let s=this.ensureProgram(n),a=n.gl,l=t.Xe,u=t.Wt,m=t.$e,f=t._e,b=t.q,p=0,d=0;for(let x of o)if(!b.has(x.seriesId))for(let C=0;C<i;C++){let _=C*r+x.seriesId;u[_>>3]>>(_&7)&1&&(x.axis===1?d++:p++)}let g=p+d;if(g===0){this.i=null;return}Km(g);let h=0,y=p;for(let x of o){if(b.has(x.seriesId))continue;let C=x.color[0],_=x.color[1],v=x.color[2];for(let A=0;A<i;A++){let w=A*r+x.seriesId;if(!(u[w>>3]>>(w&7)&1))continue;let L=m?m[A]-f:A,T=l[w];x.axis===1?(We[y*2]=L,We[y*2+1]=T,ye[y*3]=C,ye[y*3+1]=_,ye[y*3+2]=v,y++):(We[h*2]=L,We[h*2+1]=T,ye[h*3]=C,ye[h*3+1]=_,ye[h*3+2]=v,h++)}}p>0&&(a.bindBuffer(a.ARRAY_BUFFER,s.posLeftBuffer),a.bufferData(a.ARRAY_BUFFER,We.subarray(0,p*2),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,s.colorLeftBuffer),a.bufferData(a.ARRAY_BUFFER,ye.subarray(0,p*3),a.STATIC_DRAW)),d>0&&(a.bindBuffer(a.ARRAY_BUFFER,s.posRightBuffer),a.bufferData(a.ARRAY_BUFFER,We.subarray(p*2,g*2),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,s.colorRightBuffer),a.bufferData(a.ARRAY_BUFFER,ye.subarray(p*3,g*3),a.STATIC_DRAW)),this.i={leftCount:p,rightCount:d}}draw(t,n,o,i,r){let s=this.i,a=this.o;if(!s||!a||s.leftCount===0&&s.rightCount===0)return;let l=o.dpr;n.useProgram(a.program),n.uniform1f(a.u_point_size,t.h.point_size_px*l),Ha(n,a,a.posLeftBuffer,a.colorLeftBuffer,s.leftCount,i),Ha(n,a,a.posRightBuffer,a.colorRightBuffer,s.rightCount,r)}destroy(t){let n=t.e?.gl;if(n){let o=this.o;o&&(n.deleteBuffer(o.posLeftBuffer),n.deleteBuffer(o.posRightBuffer),n.deleteBuffer(o.colorLeftBuffer),n.deleteBuffer(o.colorRightBuffer))}this.o=null,this.i=null}};function Ha(e,t,n,o,i,r){i!==0&&(e.uniformMatrix4fv(t.u_projection,!1,r),e.bindBuffer(e.ARRAY_BUFFER,n),e.enableVertexAttribArray(t.a_position),e.vertexAttribPointer(t.a_position,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(t.a_color),e.vertexAttribPointer(t.a_color,3,e.FLOAT,!1,0,0),e.drawArrays(e.POINTS,0,i))}ue();var yn=new Float32Array(0);function Jm(e){return yn.length>=e||(yn=new Float32Array(Math.max(e,yn.length*2))),yn}var ai=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){return this.o?this.o:(this.o=j(t,"bar-area",Dn,In,["u_projection","u_color","u_opacity"],["a_position"]),this.o)}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;for(let i of n.series)o.deleteBuffer(i.gpuBuffer);this.i=null}rebuildBuffers(t,n){let o=t.so;if(o.length===0){this.i=null;return}let i=t.ne,r=t.p.length;if(i===0||r===0){this.i=null;return}this.ensureProgram(n);let s=n.gl,a=t.Xe,l=t.Wt,u=t.$e,m=t._e,f=t.Ko,b=t.ue,p=[];for(let d of o){let g=t.p[d.seriesId],h=Qm(d,i,r,a,l,f,b.y0,b.y1,u,m,g.start,g.end,g.interpolateMode);if(h.totalVertices===0)continue;let y=s.createBuffer();s.bindBuffer(s.ARRAY_BUFFER,y),s.bufferData(s.ARRAY_BUFFER,h.scratch.subarray(0,h.totalVertices*2),s.STATIC_DRAW),p.push({seriesId:d.seriesId,axis:d.axis,color:[d.color[0],d.color[1],d.color[2]],gpuBuffer:y,strips:h.descriptors})}this.i={series:p}}draw(t,n,o,i,r,s){let a=this.i,l=this.o;if(!a||!l||a.series.length===0)return;n.useProgram(l.program),n.uniform1f(l.u_opacity,s);let u=t.q;for(let m of a.series){if(u.has(m.seriesId))continue;n.uniformMatrix4fv(l.u_projection,!1,m.axis===1?r:i);let f=t.p[m.seriesId].color;n.uniform3f(l.u_color,f[0],f[1],f[2]),n.bindBuffer(n.ARRAY_BUFFER,m.gpuBuffer),n.enableVertexAttribArray(l.a_position),n.vertexAttribPointer(l.a_position,2,n.FLOAT,!1,0,0);for(let b of m.strips)n.bindBuffer(n.ARRAY_BUFFER,m.gpuBuffer),n.vertexAttribPointer(l.a_position,2,n.FLOAT,!1,0,b.offsetBytes),n.drawArrays(n.TRIANGLE_STRIP,0,b.vertexCount)}}destroy(t){this.invalidateBuffers(t),this.o=null}};function Qm(e,t,n,o,i,r,s,a,l,u,m,f,b){let p=Jm(t*4),d=[],g=e.seriesId*1e9,h=b!=="skip",y=0,x=0;for(let C=0;C<t;C++){let _=0,v=0,A=!1;if(e.stack){let w=r?.get(g+C);w!==void 0&&(_=s[w],v=a[w],A=!0)}else{let w=C*n+e.seriesId;h?C>=m&&C<=f&&(v=o[w],A=!0):i[w>>3]>>(w&7)&1&&(v=o[w],A=!0)}if(A){let w=l?l[C]-u:C;p[y++]=w,p[y++]=_,p[y++]=w,p[y++]=v}else if(y>x){let w=(y-x)/2;w>=4&&d.push({offsetBytes:x*4,vertexCount:w}),x=y}}if(y>x){let C=(y-x)/2;C>=4&&d.push({offsetBytes:x*4,vertexCount:C})}return{descriptors:d,totalVertices:y/2,scratch:p}}we();ue();function pt(e,t){return e&&(t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max)),{min:t.min,max:t.max}}var Qe=class extends Gt{constructor(n="vertical"){super();c(this,"st");c(this,"F",null);c(this,"Jo",[]);c(this,"ze",[]);c(this,"p",[]);c(this,"ue",Zo());c(this,"Qo",[]);c(this,"hn",[]);c(this,"yn",[]);c(this,"so",[]);c(this,"Ii","");c(this,"Bi","");c(this,"$o","numeric");c(this,"Ei",null);c(this,"ro",null);c(this,"qo",null);c(this,"Ko",null);c(this,"Ve",null);c(this,"ao",null);c(this,"uo",null);c(this,"ei",null);c(this,"ti",null);c(this,"Xo",{min:0,max:1});c(this,"oe",null);c(this,"bn",!1);c(this,"mo",null);c(this,"fo",null);c(this,"ut",null);c(this,"lt","category");c(this,"$",null);c(this,"_e",0);c(this,"kt",null);c(this,"$e",null);c(this,"q",new Set);c(this,"Ue",-1);c(this,"zo",-1);c(this,"Oe",null);c(this,"Xe",new Float32Array(0));c(this,"Wt",new Uint8Array(0));c(this,"k",{lines:new ri,scatter:new si,areas:new ai});c(this,"jo",null);c(this,"Zo",null);c(this,"pn",0);c(this,"gn",new Int32Array(0));c(this,"no",[]);c(this,"oo",!1);c(this,"Ct",null);c(this,"Pi",null);c(this,"io",null);this.st=n==="horizontal"}getZoomConfig(){return{lockAxis:this.st?"x":"y"}}tooltipCallbacks(){return{onHover:(n,o)=>pr(this,n,o),onLeave:()=>{(this.Ue!==-1||this.Oe)&&(this.Ue=-1,this.Oe=null,this.e&&Ke(this,this.e))},onClickPre:(n,o)=>Ga(this,n,o),onPin:(n,o)=>{if(pr(this,n,o),this.Ue>=0){let i=this.Ue;Wa(this,i);let r=bn(this.ue,i,this.ze.length,this.Xe,this.p.length);this.Gi(r)}else if(this.Oe){let i=this.Oe;ka(this,i),this.Gi(i)}},onUnpin:()=>{this.emitUnselect()}}}async Gi(n){if(!this.Jo[n.aggIdx])return;let o=this.Se.map(s=>s.labels[n.catIdx]??null),i=this.ze[n.splitIdx]??"",r=this.E.length>0&&i!==""?i.split("|"):[];await this.emitClickAndSelect({rowIdx:n.catIdx+this.rt,columnName:this.Jo[n.aggIdx],groupByValues:o,splitByValues:r})}async uploadAndRender(n,o,i,r){this.e=n;let s=n.gl;if(i!==0)return;if(!this.o){let l=j(n,"bar",Tn,wn,["u_proj_left","u_proj_right","u_hover_series","u_horizontal"],["a_corner","a_x_center","a_half_width","a_y0","a_y1","a_color","a_series_id","a_axis"]);this.o=l.program,this.F=l,this.W=_o(s)}let a=Ia({columns:o,numRows:r,columnSlots:this.I,groupBy:this.A,splitBy:this.E,groupByTypes:this.gt,columnsConfig:this.So,defaultChartType:this.Vn,autoAltYAxis:this.h.auto_alt_y_axis,bandInnerFrac:this.h.band_inner_frac,barInnerPad:this.h.bar_inner_pad,includeZero:this.h.include_zero,scratchBars:this.ue,scratchPosStack:this.ei,scratchNegStack:this.ti});this.h.domain_mode==="expand"?(this.mo=pt(this.mo,a.leftDomain),a.rightDomain&&(this.fo=pt(this.fo,a.rightDomain)),a.numericCategoryDomain&&(this.ut=pt(this.ut,a.numericCategoryDomain))):(this.mo=null,this.fo=null,this.ut=null),this.Jo=a.aggregates,this.ze=a.splitPrefixes,this.Se=a.rowPaths,this.ne=a.numCategories,this.rt=a.rowOffset,this.lt=a.axisMode.mode,this.$=a.numericCategoryDomain,this.$e=a.categoryPositions,this._e=a.numericCategoryDomain?.min??0,this.p=a.series,this.ue=a.bars,this.ei=a.posStack,this.ti=a.negStack,this.Xe=a.samples,this.Qo.length=0,this.hn.length=0,this.yn.length=0,this.so.length=0;for(let l of a.series)switch(l.chartType){case"bar":this.Qo.push(l);break;case"line":this.hn.push(l);break;case"scatter":this.yn.push(l);break;case"area":this.so.push(l);break}this.Ii=Ya(a.series,0),this.Bi=Ya(a.series,1),this.Ko=ef(this.ue),this.Ct=null,this.oo=!1,this.ao=null,this.uo=null,this.io=null,this.Ve=null,this.Wt=a.sampleValid,this.Xo=a.leftDomain,this.oe=a.rightDomain,this.bn=a.hasRightAxis,this.$o=a.leftValueAxisMode,this.Ei=a.rightValueAxisMode,this.ro=a.leftValueCategoryDomain,this.qo=a.rightValueCategoryDomain,xr(this),Jo(this,n),Va(this),Qo(this,n),await this.requestRender(n)}St(n){this.o&&(this.e=n,Ke(this,n))}resetExpandedDomain(){this.mo=null,this.fo=null,this.ut=null}destroyInternal(){if(this.e){let n=this.e.gl;this.W&&n.deleteBuffer(this.W),nf(this)}this.o=null,this.F=null,this.W=null,this.ue=Zo(),this.p=[],this.Qo=[],this.hn=[],this.yn=[],this.so=[],this.Ko=null,this.ao=null,this.uo=null,this.Ve=null,this.ei=null,this.ti=null,this.Se=[],this.ne=0,this.q.clear()}};function ef(e){let t=new Map;for(let n=0;n<e.count;n++)e.chartType[n]===1&&t.set(e.seriesId[n]*1e9+e.catIdx[n],n);return t}function Ya(e,t){let n=new Set,o=[];for(let i of e)i.axis===t&&(n.has(i.aggName)||(n.add(i.aggName),o.push(i.aggName)));return o.join(", ")}function xr(e){let t=e.T(),n=t.Be,o=t.H,i=e.p.length,r=e.uo;if(e.ao&&r&&r.Be===n&&r.H===o&&r.seriesLength===i)return!1;let s=tf(n,o,i);e.ao=s,e.uo={Be:n,H:o,seriesLength:i};for(let a=0;a<e.p.length;a++)e.p[a].color=s[a];return!0}function tf(e,t,n){return fe(e,t,n)}function nf(e){e.k.lines.destroy(e),e.k.scatter.destroy(e),e.k.areas.destroy(e)}var li=class extends Qe{constructor(){super("horizontal")}};Xt();He();tn();function Cr(e){let{columns:t,numRows:n,groupBy:o,splitBy:i,groupByTypes:r}=e,s=Bt(o,r),a={xLevels:[],yColumnNames:[],yLevels:[],numX:0,numY:0,rowOffset:0,cells:[],cells2D:[],colorMin:0,colorMax:1,xAxisMode:s,yAxisMode:{mode:"category"},xPositions:null,yPositions:null,xNumericDomain:null,yNumericDomain:null},l=o.map(T=>r[T]??"string"),{rowPaths:u,numCategories:m,rowOffset:f}=Et(t,n,o.length,l),b=null,p=null;if(s.mode==="numeric"&&m>0){let T=t.get("__ROW_PATH_0__"),F=ft(T?.values,m,f,o[0]??"",s.numericType==="date"||s.numericType==="datetime");F&&(b=F.categoryPositions,p=F.numericCategoryDomain)}let d=[];for(let T of t.keys())T.startsWith("__")||!t.get(T)?.values||d.push(T);let g=d.length;if(m===0||g===0)return{...a,xLevels:u,rowOffset:f};let h=sf(d),y=of(i,r),x={mode:"category"},C=null,_=null;if(y.mode==="numeric"){let T=rf(d,y.numericType);if(T){let F=ft(T,g,0,i[0]??"",y.numericType==="date"||y.numericType==="datetime");F&&(x=y,C=F.categoryPositions,_=F.numericCategoryDomain)}}let v=[],A=new Array(m*g).fill(null),w=1/0,L=-1/0;for(let T=0;T<g;T++){let F=t.get(d[T]),G=F.values,E=F.valid;for(let I=0;I<m;I++){let k=I+f;if(E&&!(E[k>>3]>>(k&7)&1))continue;let N=G[k];if(!isFinite(N))continue;let O={xIdx:I,yIdx:T,value:N};v.push(O),A[T*m+I]=O,N<w&&(w=N),N>L&&(L=N)}}return!isFinite(w)||!isFinite(L)?(w=0,L=1):w===L&&(L=w+1),{xLevels:u,yColumnNames:d,yLevels:h,numX:m,numY:g,rowOffset:f,cells:v,cells2D:A,colorMin:w,colorMax:L,xAxisMode:s,yAxisMode:x,xPositions:b,yPositions:C,xNumericDomain:p,yNumericDomain:_}}function of(e,t){if(e.length!==1)return{mode:"category"};let n=t[e[0]];return n==="date"||n==="datetime"||n==="integer"||n==="float"?{mode:"numeric",numericType:n}:{mode:"category"}}function rf(e,t){let n=new Float64Array(e.length);for(let o=0;o<e.length;o++){let i=e[o],r=i.indexOf("|"),s=r===-1?i:i.slice(0,r),a;if(t==="date"||t==="datetime"?(a=Date.parse(s),isFinite(a)||(a=Date.parse(s.replace(" ","T")))):a=Number(s),!isFinite(a))return null;n[o]=a}return n}function za(e,t){return t.map(n=>{let o=new Map;for(let[i,r]of e){if(i.startsWith("__ROW_PATH_")||i==="__GROUPING_ID__"){o.set(i,r);continue}let s=i.lastIndexOf("|");(s===-1?i:i.slice(s+1))===n&&o.set(i,r)}return{label:n,columns:o}})}function sf(e){if(e.length===0)return[];let t=0,n=e.map(i=>i.split("|"));for(let i of n)i.length>t&&(t=i.length);if(t===0)return[];let o=[];for(let i=0;i<t;i++){let r=[],s=new Map,a=new Int32Array(e.length),l=new Array(e.length),u=0;for(let b=0;b<e.length;b++){let p=n[b][i]??"",d=s.get(p);d===void 0&&(d=r.length,r.push(p),s.set(p,d)),a[b]=d,l[b]=p,p.length>u&&(u=p.length)}let f=i===t-1?[]:co(a,r,0,e.length);o.push({labels:l,runs:f,maxLabelChars:u})}return o}He();Wi();Jt();we();ue();vt();jt();wt();tn();fo();function vr(e,t){return t?.skipLeafLevel&&e.length>0?e.slice(0,-1):e}var af=80,lf=20,_r=5,Ar=11;function Wt(e,t){return e.P(0,t).py}function Xa(e,t){let n=vr(e.levels,t),o=n.length,i=[];for(let r=0;r<o;r++){let s=n[r].maxLabelChars;if(r===o-1){let a=Math.max(af,s*6.5+16);i.push({size:a})}else{let a=Math.max(lf,s*6.5+16);i.push({size:a})}}return i}function $a(e,t){let n=vr(e.levels,t);if(e.numRows===0||n.length===0)return 55;let o=Xa(e,t),i=0;for(let r of o)i+=r.size;return i}function uf(e,t){return e.labels[t]??""}function Lr(e,t,n,o,i){let r=vr(n.levels,i);if(n.numRows===0||r.length===0)return;let{Ft:s,xe:a,fontFamily:l}=o,{t:u}=t;e.strokeStyle=s,e.fillStyle=s,e.lineWidth=1,e.font=`${Ar}px ${l}`;let m=Xa(n,i),f=Math.max(0,Math.ceil(t.J)),b=Math.min(n.numRows-1,Math.floor(t.re));if(b<f)return;let p=r.length,d=u.x;for(let h=p-1;h>=0;h--){let y=r[h],x=m[h],C=d,_=d-x.size;d=_,h===p-1?mf(e,t,y,f,b,C,_,l,s):ff(e,t,y,f,b,_,C,l,s)}let g=n.levelLabels.filter(h=>!!h).join(" / ");g&&(e.fillStyle=a,e.font=`13px ${l}`,e.save(),e.translate(14,u.y+u.height/2),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="top",e.fillText(g,0,0),e.restore())}function mf(e,t,n,o,i,r,s,a,l){let u=t.t;e.strokeStyle=l,e.fillStyle=l,e.beginPath();for(let f=o;f<=i;f++){let b=Wt(t,f);b<u.y-1||b>u.y+u.height+1||(e.moveTo(r,b),e.lineTo(r-_r,b))}e.stroke(),e.font=`${Ar}px ${a}`,e.textAlign="right",e.textBaseline="middle";let m=r-_r-4-s-4;for(let f=o;f<=i;f++){let b=Wt(t,f);if(b<u.y-1||b>u.y+u.height+1)continue;let p=uf(n,f);if(!p)continue;let d=lt(e,p,m);d&&e.fillText(d,r-_r-4,b)}}function ff(e,t,n,o,i,r,s,a,l){let u=t.t,m=en(n.runs,o,i);if(m.length===0)return;e.strokeStyle=l,e.fillStyle=l;let f=s-3;e.beginPath();for(let b of m){let p=Wt(t,b.endIdx+.5),d=Wt(t,b.startIdx-.5),g=Math.min(p,d),h=Math.max(p,d),y=Math.max(u.y,g),x=Math.min(u.y+u.height,h);x<=y||(e.moveTo(f,y),e.lineTo(f,x),e.moveTo(f,y),e.lineTo(f+3,y),e.moveTo(f,x),e.lineTo(f+3,x))}e.stroke(),e.font=`${Ar}px ${a}`;for(let b of m){let p=Wt(t,b.endIdx+.5),d=Wt(t,b.startIdx-.5),g=Math.min(p,d),h=Math.max(p,d),y=Math.max(u.y,g),x=Math.min(u.y+u.height,h);if(x<=y)continue;let C=(y+x)/2,_=r+(s-r-3)/2,v=b.label;if(!v)continue;let A=x-y-4,w=lt(e,v,Math.max(0,A));w&&(e.save(),e.translate(_,C),e.rotate(-Math.PI/2),e.textAlign="center",e.textBaseline="middle",e.fillText(w,0,0),e.restore())}}ve();go();Be();_t();Ct();function wr(e,t,n){if(e.Wi=t,e.ki=n,e.l.length>0){for(let i=0;i<e.l.length;i++){let r=e.l[i],s=r.layout.t;if(t<s.x||t>s.x+s.width||n<s.y||n>s.y+s.height)continue;let a=Za(r.layout,r.pipeline.numX,r.pipeline.numY,r.pipeline.cells2D,r.pipeline.xPositions,r.pipeline.yPositions,r.pipeline.xNumericDomain?.bandWidth??1,r.pipeline.yNumericDomain?.bandWidth??1,t,n);Tr(e,a,i);return}Tr(e,null,-1);return}if(!e.a)return;let o=Za(e.a,e._t,e.vt,e.co,e.xn,e.Cn,e.mt?.bandWidth??1,e.ft?.bandWidth??1,t,n);Tr(e,o,-1)}function ja(e,t,n){if(e.length===0)return-1;let o=0,i=e.length-1;for(;o<i;){let s=o+i>>1;e[s]<t?o=s+1:i=s}let r=o;return r>0&&Math.abs(e[r-1]-t)<Math.abs(e[r]-t)&&(r-=1),Math.abs(e[r]-t)>n*.5?-1:r}function Za(e,t,n,o,i,r,s,a,l,u){let m=e.t;if(l<m.x||l>m.x+m.width||u<m.y||u>m.y+m.height)return null;let f=e.Z,b=e.ie,p=e.J,d=e.re,g=f+(l-m.x)/m.width*(b-f),h=d-(u-m.y)/m.height*(d-p),y=i?ja(i,g,s):Math.round(g),x=r?ja(r,h,a):Math.round(h);return y<0||y>=t||x<0||x>=n?null:o[x*t+y]??null}function Tr(e,t,n){let o=e.De;(o?.xIdx??-1)===(t?.xIdx??-1)&&(o?.yIdx??-1)===(t?.yIdx??-1)&&e._n===n||(e.De=t,e._n=n,e.e&&e.ni&&e.ni())}function qa(e,t){let n=[];for(let o of e){let i=o.labels[t];i!=null&&i!==""&&n.push(i)}return n.join(" / ")}function Rr(e){if(!e.d||!e.De)return;let t,n,o,i=null;if(e._n>=0){let b=e.l[e._n];if(!b)return;t=b.layout,n=b.pipeline.xLevels,o=b.pipeline.yLevels,i=b.label}else{if(!e.a)return;t=e.a,n=e.Nt,o=e.Ut}let r=e.De,s={px:e.Wi,py:e.ki},a=[];i&&a.push(i);let l=qa(n,r.xIdx),u=qa(o,r.yIdx);l&&a.push(l),u&&a.push(u);let m=e.getColumnFormatter(e.I[0],"value");a.push(`Value: ${m(r.value)}`);let f=e.T();Ie(e.d,s,a,t,f,e.e?.dpr??1)}var Mr={skipLeafLevel:!0};function Ka(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0)return;if(e.l.length>0){cf(e,t,i,r);return}if(e._t===0||e.vt===0)return;let s=e.T(),a={levels:e.Nt,numRows:e._t,levelLabels:e.A.slice()},l={levels:e.Ut,numRows:e.vt,levelLabels:[]},u=e.vn.mode==="numeric",m=e.An.mode==="numeric",f=m?55:$a(l,Mr),b=u?24:Pe(a,Math.max(1,i-f-110)),p=new ee(i,r,{hasXLabel:e.A.length>0,hasYLabel:!1,hasLegend:!0,bottomExtra:b,leftExtra:f});e.a=p,e.b&&e.b.updateLayout(p);let d=u?e.mt.min:-.5,g=u?e.mt.max:e._t-.5,h=m?e.ft.min:-.5,y=m?e.ft.max:e.vt-.5;e.b&&e.b.setBaseDomain(d,g,h,y);let x=e.b?e.b.getVisibleDomain():{xMin:d,xMax:g,yMin:h,yMax:y},C=p.buildProjectionMatrix(x.xMin,x.xMax,x.yMin,x.yMax,void 0,void 0,0,e.R,e.M),_=p.t,v=_.width/(x.xMax-x.xMin),A=_.height/(x.yMax-x.yMin),w=s.Ci*.5,L=u?e.mt.bandWidth:1,T=m?e.ft.bandWidth:1,F=Math.min(L*.5,v>0?w/v:0),G=Math.min(T*.5,A>0?w/A:0);if(e.D){let E=de(e.D,p,t.dpr)}Ja(e,t),Qa(e,t),e.Q=Qt(t,e.Q,s.H),ze(n,p,t.dpr,()=>{n.useProgram(e.o);let E=e.F;n.uniformMatrix4fv(E.u_projection,!1,C),n.uniform2f(E.u_cell_inset,F,G),n.uniform2f(E.u_cell_size,L,T),Ee(t,e.Q.texture,E.u_gradient_lut,0),el(e,n,t,0,e.Ni)}),ui(e)}function Ja(e,t){if(e.o)return;let n=t.gl,o=j(t,"heatmap",Wn,kn,["u_projection","u_cell_inset","u_cell_size","u_gradient_lut"],["a_corner","a_cell","a_color_t"]);e.o=o.program,e.F=o;let i=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,i),n.bufferData(n.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),n.STATIC_DRAW),e.W=i}function Qa(e,t){let n=e.Ze.length;if(e.Ni=n,n===0)return;let o=new Float32Array(n*2),i=new Float32Array(n);if(e.l.length>0){let r=0;for(let s of e.l){let a=s.pipeline.xPositions,l=s.pipeline.yPositions,u=s.xOrigin,m=s.yOrigin;for(let f of s.pipeline.cells)o[r*2]=a?a[f.xIdx]-u:f.xIdx,o[r*2+1]=l?l[f.yIdx]-m:f.yIdx,i[r]=st(f.value,e.c,e.f),r++}}else{let r=e.xn,s=e.Cn,a=e.R,l=e.M;for(let u=0;u<n;u++){let m=e.Ze[u];o[u*2]=r?r[m.xIdx]-a:m.xIdx,o[u*2+1]=s?s[m.yIdx]-l:m.yIdx,i[u]=st(m.value,e.c,e.f)}}t.C.ensureCapacity(n),t.C.upload("heatmap_cell",o,0,2),t.C.upload("heatmap_t",i,0,1)}function el(e,t,n,o,i){if(i===0)return;let r=e.F,s=q(n),{setDivisor:a}=s,l=Float32Array.BYTES_PER_ELEMENT;t.bindBuffer(t.ARRAY_BUFFER,e.W),t.enableVertexAttribArray(r.a_corner),t.vertexAttribPointer(r.a_corner,2,t.FLOAT,!1,0,0),a(r.a_corner,0);let u=n.C.peek("heatmap_cell"),m=n.C.peek("heatmap_t");!u||!m||(t.bindBuffer(t.ARRAY_BUFFER,u.buffer),t.enableVertexAttribArray(r.a_cell),t.vertexAttribPointer(r.a_cell,2,t.FLOAT,!1,0,o*2*l),a(r.a_cell,1),t.bindBuffer(t.ARRAY_BUFFER,m.buffer),t.enableVertexAttribArray(r.a_color_t),t.vertexAttribPointer(r.a_color_t,1,t.FLOAT,!1,0,o*l),a(r.a_color_t,1),s.drawArraysInstanced(t.TRIANGLE_STRIP,0,4,i),a(r.a_cell,0),a(r.a_color_t,0))}function ui(e){if(!e.d)return;if(e.l.length>0){df(e);return}if(!e.a)return;let t=e.a,n=e.T(),o=e.e?.dpr??1,i=de(e.d,t,o);if(!i)return;i.strokeStyle=n.Nn,i.lineWidth=1,i.beginPath(),i.moveTo(t.t.x,t.t.y),i.lineTo(t.t.x,t.t.y+t.t.height),i.lineTo(t.t.x+t.t.width,t.t.y+t.t.height),i.stroke();let r={levels:e.Nt,numRows:e._t,levelLabels:e.A.slice()},s={levels:e.Ut,numRows:e.vt,levelLabels:[]},a=e.A[0],l=e.A[1]??e.E[0];if(e.vn.mode==="numeric"&&e.mt){let u=se(t.Z,t.ie,6);ei(i,t,e.mt,u,n,e.getColumnFormatter(a,"tick"))}else Te(i,t,r,n);if(e.An.mode==="numeric"&&e.ft){let u=se(t.J,t.re,6);ti(i,t,e.ft,u,n,e.getColumnFormatter(l,"tick"))}else Lr(i,t,s,n,Mr);Rt(e.d,t,{min:e.c,max:e.f,label:e.oi},n.H,n,e.getColumnFormatter(e.I[0],"value")),e.De&&Rr(e)}function cf(e,t,n,o){let i=t.gl,r=e.T(),{effectiveSharedX:s,effectiveSharedY:a}=e.computeEffectiveFacetFlags(),l=Ye(e.l.map(m=>m.label),{cssWidth:n,cssHeight:o,xAxis:s?"outer":"cell",yAxis:a?"outer":"cell",hasLegend:!0,hasXLabel:e.A.length>0,hasYLabel:!1,gap:8});e.v=l;for(let m=0;m<e.l.length;m++){let f=l.cells[m];f&&(e.l[m].layout=f.layout)}e.syncFacetZoomLayouts(l.cells),Ja(e,t),Qa(e,t),e.Q=Qt(t,e.Q,r.H),i.useProgram(e.o);let u=e.F;Ee(t,e.Q.texture,u.u_gradient_lut,0),qt(i);for(let m=0;m<e.l.length;m++){let f=e.l[m];if(f.instanceCount===0)continue;let{numX:b,numY:p}=f.pipeline;if(b===0||p===0)continue;let d=f.layout,g=f.pipeline.xAxisMode.mode==="numeric",h=f.pipeline.yAxisMode.mode==="numeric",y=g?f.pipeline.xNumericDomain.min:-.5,x=g?f.pipeline.xNumericDomain.max:b-.5,C=h?f.pipeline.yNumericDomain.min:-.5,_=h?f.pipeline.yNumericDomain.max:p-.5,v=e.getZoomControllerForFacet(m);v&&v.setBaseDomain(y,x,C,_);let A=v?v.getVisibleDomain():{xMin:y,xMax:x,yMin:C,yMax:_},w=d.buildProjectionMatrix(A.xMin,A.xMax,A.yMin,A.yMax,void 0,void 0,0,f.xOrigin,f.yOrigin),L=d.t,T=L.width/(A.xMax-A.xMin),F=L.height/(A.yMax-A.yMin),G=r.Ci*.5,E=g?f.pipeline.xNumericDomain.bandWidth:1,I=h?f.pipeline.yNumericDomain.bandWidth:1,k=Math.min(E*.5,T>0?G/T:0),N=Math.min(I*.5,F>0?G/F:0);Kt(i,d,t.dpr,()=>{i.uniformMatrix4fv(u.u_projection,!1,w),i.uniform2f(u.u_cell_inset,k,N),i.uniform2f(u.u_cell_size,E,I),el(e,i,t,f.instanceStart,f.instanceCount)})}ui(e)}function df(e){if(!e.d||!e.v)return;let t=e.T(),n=e.e?.dpr??1,o=de(e.d,e.l[0].layout,n);if(!o)return;let i=e.Un,r=e.On,s=e.v;for(let a=0;a<e.l.length;a++){let l=e.l[a],u=s.cells[a],m=l.layout,f=m.t;o.strokeStyle=t.Nn,o.lineWidth=1,o.beginPath(),o.moveTo(f.x,f.y),o.lineTo(f.x,f.y+f.height),o.lineTo(f.x+f.width,f.y+f.height),o.stroke();let b={levels:l.pipeline.xLevels,numRows:l.pipeline.numX,levelLabels:e.A.slice()},p={levels:l.pipeline.yLevels,numRows:l.pipeline.numY,levelLabels:[]},d=e.A[0],g=e.A[1]??e.E[0];if(!i||u.isBottomEdge)if(l.pipeline.xAxisMode.mode==="numeric"&&l.pipeline.xNumericDomain){let h=se(m.Z,m.ie,6);ei(o,m,l.pipeline.xNumericDomain,h,t,e.getColumnFormatter(d,"tick"))}else Te(o,m,b,t);if(!r||u.isLeftEdge)if(l.pipeline.yAxisMode.mode==="numeric"&&l.pipeline.yNumericDomain){let h=se(m.J,m.re,6);ti(o,m,l.pipeline.yNumericDomain,h,t,e.getColumnFormatter(g,"tick"))}else Lr(o,m,p,t,Mr)}for(let a=0;a<s.cells.length;a++){let l=s.cells[a],u=e.l[a];!u||!l.titleRect||so(e.d,u.label,l.titleRect,t,n)}s.legendRect&&nn(e.d,{x:s.legendRect.x,y:s.legendRect.y+20,width:s.legendRect.width,height:Math.max(1,s.legendRect.height-20)},{min:e.c,max:e.f,label:""},t.H,t,e.getColumnFormatter(e.I[0],"value")),e.De&&Rr(e)}var mi=class extends Le{constructor(){super(...arguments);c(this,"o",null);c(this,"F",null);c(this,"W",null);c(this,"Q",null);c(this,"Nt",[]);c(this,"Ut",[]);c(this,"ii",[]);c(this,"_t",0);c(this,"vt",0);c(this,"rt",0);c(this,"vn",{mode:"category"});c(this,"An",{mode:"category"});c(this,"xn",null);c(this,"Cn",null);c(this,"mt",null);c(this,"ft",null);c(this,"R",0);c(this,"M",0);c(this,"Ze",[]);c(this,"co",[]);c(this,"Ni",0);c(this,"c",0);c(this,"f",1);c(this,"oi","");c(this,"De",null);c(this,"a",null);c(this,"Wi",0);c(this,"ki",0);c(this,"l",[]);c(this,"v",null);c(this,"_n",-1);c(this,"ni",()=>ui(this))}tooltipCallbacks(){return{onHover:(n,o)=>wr(this,n,o),onLeave:()=>{this.De&&(this.De=null,this.ni())},onPin:(n,o)=>{wr(this,n,o),this.De&&this.Ki(this.De.xIdx,this.De.yIdx)},onUnpin:()=>{this.emitUnselect()}}}async Ki(n,o){let i=this.Nt.map(a=>a.labels[n]??null),r=this.Ut.slice(0,this.E.length).map(a=>a.labels[o]??null),s=this.I[0]??"";await this.emitClickAndSelect({rowIdx:n+this.rt,columnName:s,groupByValues:i,splitByValues:r})}async uploadAndRender(n,o,i,r){if(this.e=n,i!==0)return;let s=this.I.filter(a=>!!a);if(s.length>1){let a=za(o,s),l=[],u=[],m=1/0,f=-1/0;for(let b of a){let p=Cr({columns:b.columns,numRows:r,groupBy:this.A,splitBy:this.E,groupByTypes:this.gt}),d=u.length;for(let g of p.cells)u.push({xIdx:g.xIdx,yIdx:g.yIdx,value:g.value});l.push({label:b.label,pipeline:p,layout:new ee(1,1,{hasXLabel:!1,hasYLabel:!1,hasLegend:!1}),instanceStart:d,instanceCount:p.cells.length,xOrigin:p.xNumericDomain?.min??0,yOrigin:p.yNumericDomain?.min??0}),isFinite(p.colorMin)&&p.colorMin<m&&(m=p.colorMin),isFinite(p.colorMax)&&p.colorMax>f&&(f=p.colorMax)}!isFinite(m)||!isFinite(f)?(m=0,f=1):m===f&&(f=m+1),this.Nt=[],this.Ut=[],this.ii=[],this._t=0,this.vt=0,this.rt=0,this.co=[],this.a=null,this.vn={mode:"category"},this.An={mode:"category"},this.xn=null,this.Cn=null,this.mt=null,this.ft=null,this.R=0,this.M=0,this.l=l,this.Ze=u,this.c=m,this.f=f,this.oi=s.join(", ")}else{let a=Cr({columns:o,numRows:r,groupBy:this.A,splitBy:this.E,groupByTypes:this.gt});this.l=[],this.v=null,this.Nt=a.xLevels,this.Ut=a.yLevels,this.ii=a.yColumnNames,this._t=a.numX,this.vt=a.numY,this.rt=a.rowOffset,this.Ze=a.cells,this.co=a.cells2D,this.c=a.colorMin,this.f=a.colorMax,this.oi=s[0]??"Color",this.vn=a.xAxisMode,this.An=a.yAxisMode,this.xn=a.xPositions,this.Cn=a.yPositions,this.mt=a.xNumericDomain,this.ft=a.yNumericDomain,this.R=a.xNumericDomain?.min??0,this.M=a.yNumericDomain?.min??0}await this.requestRender(n)}St(n){this.e=n;let o=this._t>0&&this.vt>0,i=this.l.length>0;!o&&!i||Ka(this,n)}destroyInternal(){this.W&&this.e&&this.e.gl.deleteBuffer(this.W),this.o=null,this.F=null,this.W=null,this.Nt=[],this.Ut=[],this.ii=[],this.Ze=[],this.co=[],this.De=null,this.l=[],this.v=null,this._n=-1,this.vn={mode:"category"},this.An={mode:"category"},this.xn=null,this.Cn=null,this.mt=null,this.ft=null}};$t();function xn(){return{count:0,catIdx:new Int32Array(0),splitIdx:new Int32Array(0),seriesId:new Int32Array(0),xCenter:new Float64Array(0),halfWidth:new Float64Array(0),open:new Float64Array(0),close:new Float64Array(0),high:new Float64Array(0),low:new Float64Array(0),isUp:new Uint8Array(0)}}function pf(e,t){return e&&e.catIdx.length>=t?(e.count=0,e):{count:0,catIdx:new Int32Array(t),splitIdx:new Int32Array(t),seriesId:new Int32Array(t),xCenter:new Float64Array(t),halfWidth:new Float64Array(t),open:new Float64Array(t),close:new Float64Array(t),high:new Float64Array(t),low:new Float64Array(t),isUp:new Uint8Array(t)}}var tl={splitPrefixes:[],rowPaths:[],numCategories:0,rowOffset:0,axisMode:{mode:"category"},numericCategoryDomain:null,categoryPositions:null,series:[],yDomain:{min:0,max:1}};function nl(e){let{columns:t,numRows:n,columnSlots:o,groupBy:i,splitBy:r,groupByTypes:s,bandInnerFrac:a,barInnerPad:l,scratchCandles:u}=e,m=Bt(i,s),f=o[0]||"";if(!f)return{...tl,candles:xn()};let b=o[1]||"",p=o[2]||"",d=o[3]||"",g=[];if(r.length>0){let H=[f];b&&H.push(b),p&&H.push(p),d&&H.push(d);for(let z of Ve(t,[f],H))z.colNames.has(f)&&g.push(z.prefix);g.length===0&&g.push("")}else g.push("");let h=i.map(H=>s[H]??"string"),{rowPaths:y,numCategories:x,rowOffset:C}=Et(t,n,i.length,h);if(x===0)return{...tl,axisMode:m,splitPrefixes:g,rowPaths:y,rowOffset:C,candles:xn()};let _=g.length,v=[];for(let H=0;H<_;H++){let z=g[H];v.push({seriesId:H,splitIdx:H,splitKey:z,label:z===""?f:z})}let A=null,w=null,L=1;if(m.mode==="numeric"&&x>0){let H=t.get("__ROW_PATH_0__"),z=ft(H?.values,x,C,i[0]??"",m.numericType==="date"||m.numericType==="datetime");z&&(A=z.categoryPositions,w=z.numericCategoryDomain,L=z.numericCategoryDomain.bandWidth)}let T=$o(_,a,l),F=T.slotWidth*L,G=T.halfWidth*L,E=(_-1)/2,I=[];for(let H=0;H<_;H++){let z=g[H],te=Ne=>z===""?Ne:`${z}|${Ne}`,xe=t.get(te(f));if(!xe?.values){I.push({openCol:null,closeCol:null,highCol:null,lowCol:null,openValid:null,closeValid:null,highValid:null,lowValid:null});continue}let Ce=b?t.get(te(b)):null,_e=p?t.get(te(p)):null,Re=d?t.get(te(d)):null;I.push({openCol:xe.values,closeCol:Ce?.values??null,highCol:_e?.values??null,lowCol:Re?.values??null,openValid:xe.valid??null,closeValid:Ce?.valid??null,highValid:_e?.valid??null,lowValid:Re?.valid??null})}let k=x*_,N=pf(u??null,k),O=0,U=1/0,S=-1/0,X=x;for(let H=0;H<_;H++){let z=I[H],te=z.openCol;if(!te)continue;let xe=z.closeCol,Ce=z.highCol,_e=z.lowCol,Re=z.openValid,Ne=z.closeValid,Ot=z.highValid,bt=z.lowValid,An=(H-E)*F;for(let pe=0;pe<X;pe++){let ne=pe+C;if(Re&&!(Re[ne>>3]>>(ne&7)&1))continue;let K=te[ne];if(!isFinite(K))continue;let oe;if(xe&&(!Ne||(Ne[ne>>3]>>(ne&7)&1)!==0)){let ie=xe[ne];oe=isFinite(ie)?ie:K}else{let ie=pe<X-1?pe+1+C:ne;if(!Re||(Re[ie>>3]>>(ie&7)&1)!==0){let Ln=te[ie];oe=isFinite(Ln)?Ln:K}else oe=K}let Me;if(Ce&&(!Ot||(Ot[ne>>3]>>(ne&7)&1)!==0)){let ie=Ce[ne];Me=isFinite(ie)?ie:K>oe?K:oe}else Me=K>oe?K:oe;let tt;if(_e&&(!bt||(bt[ne>>3]>>(ne&7)&1)!==0)){let ie=_e[ne];tt=isFinite(ie)?ie:K<oe?K:oe}else tt=K<oe?K:oe;let Fe=(A?A[pe]:pe)+An,Se=oe>=K?1:0;N.catIdx[O]=pe,N.splitIdx[O]=H,N.seriesId[O]=H,N.xCenter[O]=Fe,N.halfWidth[O]=G,N.open[O]=K,N.close[O]=oe,N.high[O]=Me,N.low[O]=tt,N.isUp[O]=Se,O++,tt<U&&(U=tt),Me>S&&(S=Me)}}if(N.count=O,!isFinite(U)||!isFinite(S))U=0,S=1;else if(U===S){let H=Math.max(Math.abs(U),1)*.05;U-=H,S+=H}return{splitPrefixes:g,rowPaths:y,numCategories:x,rowOffset:C,axisMode:m,numericCategoryDomain:w,categoryPositions:A,series:v,candles:N,yDomain:{min:U,max:S}}}He();Be();Jt();Ct();ve();wt();var bf=3;function ol(e,t,n){let o=0,i=t;for(;o<i;){let r=o+i>>>1;e[r]<n?o=r+1:i=r}return o}function Fr(e,t,n){if(e.ri!==-1)return;let o=e.a;if(!o)return;let i=e.be;if(i.count===0){e.ge!==-1&&(e.ge=-1,et(e));return}let r=o.t,s=o.Z,a=o.ie,l=o.J,u=o.re;if(t<r.x||t>r.x+r.width||n<r.y||n>r.y+r.height){e.ge!==-1&&(e.ge=-1,et(e));return}let m=s+(t-r.x)/r.width*(a-s),f=u-(n-r.y)/r.height*(u-l),b=r.width/(a-s),p=bf/b,d=i.xCenter,g=i.halfWidth,h=i.open,y=i.close,x=i.high,C=i.low,_=i.count>0?g[0]:0,v=Math.max(_,p),A=ol(d,i.count,m-v),w=ol(d,i.count,m+v+1e-12),L=-1;for(let T=w-1;T>=A;T--){let F=d[T],G=g[T],E=m>=F-G&&m<=F+G,I=Math.abs(m-F)<=p;if(!E&&!I)continue;let k=h[T],N=y[T],O=k<N?k:N,U=k<N?N:k,S=E&&f>=O&&f<=U,X=f>=C[T]&&f<=x[T];if(S||X){L=T;break}}L!==e.ge&&(e.ge=L,et(e))}function il(e,t){e.L.dismiss(),e.ri=t;let n=e.be;if(t<0||t>=n.count||!e.a)return;let o=Sr(e,t);if(o.length===0)return;let i=n.xCenter[t],r=(n.high[t]+n.low[t])/2,s=e.a.P(i,r),a=e.a.cssWidth,l=e.a.cssHeight;e.L.pin(o,s,{cssWidth:a,cssHeight:l}),e.ge=-1,et(e)}function Sr(e,t){let n=[],o=e.be;if(t<0||t>=o.count)return n;let i=o.catIdx[t],r=o.splitIdx[t],s=o.open[t],a=o.close[t],l=o.high[t],u=o.low[t];if(e.lt==="numeric"&&e.$&&e.$e){let d=e.$e[i],g=e.A[0];n.push(e.getColumnFormatter(g,"value")(d))}else if(e.Se.length>0){let d=[];for(let g of e.Se){let h=g.labels[i]??"";h&&d.push(h)}d.length>0&&n.push(d.join(" \\u203A "))}else n.push(`Row ${i+e.rt}`);if(r>=0&&e.ze.length>1){let d=e.ze[r];d&&n.push(d)}let m=e.getColumnFormatter(e.I[0],"value"),f=e.getColumnFormatter(e.I[1],"value"),b=e.getColumnFormatter(e.I[2],"value"),p=e.getColumnFormatter(e.I[3],"value");return n.push(`Open: ${m(s)}`),n.push(`Close: ${f(a)}`),n.push(`High: ${b(l)}`),n.push(`Low: ${p(u)}`),n}function rl(e,t,n,o,i){let r=1/0,s=-1/0,a={cat:0,lo:0,hi:0,skip:!1};for(let u=0;u<e.length;u++)a.skip=!1,o(e[u],a),!a.skip&&(a.cat<t||a.cat>n||(a.lo<r&&(r=a.lo),a.hi>s&&(s=a.hi)));let l=isFinite(r)&&isFinite(s);if(l&&r===s){let u=Math.abs(r)||1;r-=u,s+=u}return i.min=r,i.max=s,i.hasFit=l,i}function Dr(e){let n=e.T().H;if(e.po===n)return;let o=Ae(n,1),i=Ae(n,0);e.bo=[o[0],o[1],o[2]],e.go=[i[0],i[1],i[2]],e.po=n}function sl(e){e.k.bodyWick.invalidateBuffers(e),e.k.ohlc.invalidateBuffers(e)}function al(e,t){e.k.bodyWick.rebuildBuffers(e,t),e.k.ohlc.rebuildBuffers(e,t)}function ll(e,t){let n=t.gl,o=t.dpr,i=n.canvas.width/o,r=n.canvas.height/o;if(i<=0||r<=0||e.ne===0)return;let s=e.T();Dr(e);let a=e.lt==="numeric",l=a?e.$.min:-.5,u=a?e.$.max:e.ne-.5;e.b&&e.b.setBaseDomain(l,u,e.Ln.min,e.Ln.max);let m=e.b?e.b.getVisibleDomain():{xMin:l,xMax:u,yMin:e.Ln.min,yMax:e.Ln.max};if(e.Yn&&e.b&&!e.b.isXDefault()){let C=hf(e,m.xMin,m.xMax);C.hasFit&&(m.yMin=C.min,m.yMax=C.max)}let f=e.A.length>0,b={levels:e.Se,numRows:e.ne,levelLabels:e.A.slice()},p;if(a)p=new ee(i,r,{hasXLabel:f,hasYLabel:!0,hasLegend:!1,bottomExtra:24});else{let v=Math.max(1,i-71-16),A=Pe(b,v);p=new ee(i,r,{hasXLabel:f,hasYLabel:!0,hasLegend:!1,bottomExtra:A})}e.a=p,e.b&&e.b.updateLayout(p);let d=p.buildProjectionMatrix(m.xMin,m.xMax,m.yMin,m.yMax,"y",void 0,void 0,e._e,0),g=se(m.yMin,m.yMax,6),h=e.I[0]||"",y=b,x={min:m.yMin,max:m.yMax,label:h};e.D&&oi(e.D,p,g,s,t.dpr),ze(n,p,t.dpr,()=>{e.Vn==="ohlc"?e.k.ohlc.draw(e,n,t,d):e.k.bodyWick.draw(e,n,t,d)}),e.Re=y,e.Me=x,e.We=g,e.kt=a?se(m.xMin,m.xMax,6):null,et(e)}function et(e){if(!e.d||!e.a||!e.Me||!e.We)return;let t=e.T(),n;if(e.lt==="numeric"&&e.$&&e.kt)n={mode:"numeric",domain:{min:e.$.min,max:e.$.max,isDate:e.$.isDate,label:e.$.label},ticks:e.kt};else if(e.Re)n={mode:"category",domain:e.Re};else return;let o=e.I[0]??e.I[1]??e.I[2]??e.I[3],i=e.A[0];ni(e.d,n,{mode:"numeric",domain:e.Me,ticks:e.We},e.a,t,e.e?.dpr??1,void 0,!1,{value:e.getColumnFormatter(o,"tick"),category:e.getColumnFormatter(i,"tick")}),e.ge>=0&&e.ge<e.be.count&&gf(e)}function gf(e){if(!e.d||!e.a)return;let t=e.ge,n=e.be;if(t<0||t>=n.count)return;let o=e.a,i=n.xCenter[t],r=(n.high[t]+n.low[t])/2,s=o.P(i,r),a=Sr(e,t),l=e.T();Ie(e.d,s,a,o,l,e.e?.dpr??1,{crosshair:!1,highlightRadius:0})}function hf(e,t,n){let o=e.Ct;if(o&&o.xMin===t&&o.xMax===n)return o;let i=o??yf();i.xMin=t,i.xMax=n;let r=e.be,s=1/0,a=-1/0,l=!1,u=r.xCenter,m=r.low,f=r.high;for(let b=0;b<r.count;b++){let p=u[b];p<t||p>n||(m[b]<s&&(s=m[b]),f[b]>a&&(a=f[b]),l=!0)}return i.min=l?s:0,i.max=l?a:1,i.hasFit=l,e.Ct=i,i}function yf(){return{xMin:0,xMax:0,min:0,max:1,hasFit:!1}}we();ue();var fi=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=_o(n),r={...j(t,"candlestick-body",Pn,Gn,["u_projection"],["a_corner","a_x_center","a_half_width","a_y0","a_y1","a_color"]),quadBuffer:o,instanceBuffer:n.createBuffer()},s=je(n),l={...j(t,"line-uniform",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_corner","a_start","a_end","a_real_start","a_real_end"]),cornerBuffer:s,segmentBuffer:n.createBuffer()};return this.o={body:r,wick:l},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;o.deleteBuffer(n.upWickBuffer),o.deleteBuffer(n.downWickBuffer),this.i=null}rebuildBuffers(t,n){let o=t.be,i=this.ensureProgram(n),r=n.gl,s=t._e;if(o.count===0){let F=r.createBuffer(),G=r.createBuffer();this.i={bodyCount:0,upWickCount:0,downWickCount:0,upWickBuffer:F,downWickBuffer:G};return}let a=new Float32Array(o.count*7),l=0,u=0,m=o.xCenter,f=o.halfWidth,b=o.open,p=o.close,d=o.isUp,g=t.bo,h=t.go;for(let F=0;F<o.count;F++){let G=b[F],E=p[F],I=G<E?G:E,k=G<E?E:G,N=d[F]!==0,O=N?g:h,U=F*7;a[U+0]=m[F]-s,a[U+1]=f[F]*.7,a[U+2]=I,a[U+3]=k,a[U+4]=O[0],a[U+5]=O[1],a[U+6]=O[2],N?l++:u++}r.bindBuffer(r.ARRAY_BUFFER,i.body.instanceBuffer),r.bufferData(r.ARRAY_BUFFER,a,r.STATIC_DRAW);let y=new Float32Array(l*4),x=new Float32Array(u*4),C=0,_=0,v=o.low,A=o.high;for(let F=0;F<o.count;F++){let G=m[F]-s,E=v[F],I=A[F];d[F]!==0?(y[C+0]=G,y[C+1]=E,y[C+2]=G,y[C+3]=I,C+=4):(x[_+0]=G,x[_+1]=E,x[_+2]=G,x[_+3]=I,_+=4)}let w=this.i,L=w?.upWickBuffer??r.createBuffer(),T=w?.downWickBuffer??r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,L),r.bufferData(r.ARRAY_BUFFER,y,r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,T),r.bufferData(r.ARRAY_BUFFER,x,r.STATIC_DRAW),this.i={bodyCount:o.count,upWickCount:l,downWickCount:u,upWickBuffer:L,downWickBuffer:T}}draw(t,n,o,i){let r=this.i;if(!r||r.bodyCount===0)return;let s=this.ensureProgram(o);xf(n,o,s.body,r.bodyCount,i),Cf(t,n,o,s.wick,r,i)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&(n.deleteBuffer(o.body.quadBuffer),n.deleteBuffer(o.body.instanceBuffer),n.deleteBuffer(o.wick.cornerBuffer),n.deleteBuffer(o.wick.segmentBuffer))}this.o=null,this.i=null}};function xf(e,t,n,o,i){if(o===0)return;let r=7*Float32Array.BYTES_PER_ELEMENT;e.useProgram(n.program),e.uniformMatrix4fv(n.u_projection,!1,i);let s=q(t),{setDivisor:a}=s;e.bindBuffer(e.ARRAY_BUFFER,n.quadBuffer),e.enableVertexAttribArray(n.a_corner),e.vertexAttribPointer(n.a_corner,2,e.FLOAT,!1,0,0),a(n.a_corner,0),e.bindBuffer(e.ARRAY_BUFFER,n.instanceBuffer);let l=Float32Array.BYTES_PER_ELEMENT,u=(m,f,b)=>{e.enableVertexAttribArray(m),e.vertexAttribPointer(m,f,e.FLOAT,!1,r,b),a(m,1)};u(n.a_x_center,1,0),u(n.a_half_width,1,1*l),u(n.a_y0,1,2*l),u(n.a_y1,1,3*l),u(n.a_color,3,4*l),s.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,o),a(n.a_x_center,0),a(n.a_half_width,0),a(n.a_y0,0),a(n.a_y1,0),a(n.a_color,0)}function Cf(e,t,n,o,i,r){if(i.upWickCount===0&&i.downWickCount===0)return;let s=n.dpr;t.useProgram(o.program),t.uniformMatrix4fv(o.u_projection,!1,r),t.uniform2f(o.u_resolution,t.canvas.width,t.canvas.height),t.uniform1f(o.u_line_width,e.h.wick_width_px*s),t.disableVertexAttribArray(o.a_real_start),t.disableVertexAttribArray(o.a_real_end),t.vertexAttrib1f(o.a_real_start,1),t.vertexAttrib1f(o.a_real_end,1),t.uniform1f(o.u_interp_alpha,1);let a=q(n),{setDivisor:l}=a;t.bindBuffer(t.ARRAY_BUFFER,o.cornerBuffer),t.enableVertexAttribArray(o.a_corner),t.vertexAttribPointer(o.a_corner,1,t.FLOAT,!1,0,0),l(o.a_corner,0),ul(t,a,o,i.upWickBuffer,i.upWickCount,e.bo),ul(t,a,o,i.downWickBuffer,i.downWickCount,e.go),l(o.a_start,0),l(o.a_end,0)}function ul(e,t,n,o,i,r){if(i===0)return;let s=2*Float32Array.BYTES_PER_ELEMENT,{setDivisor:a}=t;e.uniform4f(n.u_color,r[0],r[1],r[2],1),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(n.a_start),e.vertexAttribPointer(n.a_start,2,e.FLOAT,!1,2*s,0),a(n.a_start,1),e.enableVertexAttribArray(n.a_end),e.vertexAttribPointer(n.a_end,2,e.FLOAT,!1,2*s,s),a(n.a_end,1),t.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,i)}we();ue();var ci=class{constructor(){c(this,"o",null);c(this,"i",null)}ensureProgram(t){if(this.o)return this.o;let n=t.gl,o=je(n),i=j(t,"line-uniform",Ue,Oe,["u_projection","u_color","u_resolution","u_line_width","u_interp_alpha"],["a_corner","a_start","a_end","a_real_start","a_real_end"]);return this.o={...i,cornerBuffer:o,segmentBuffer:n.createBuffer()},this.o}invalidateBuffers(t){let n=this.i;if(!n||!t.e){this.i=null;return}let o=t.e.gl;o.deleteBuffer(n.upBuffer),o.deleteBuffer(n.downBuffer),this.i=null}rebuildBuffers(t,n){if(t.Vn!=="ohlc")return;let o=t.be,i=n.gl;this.ensureProgram(n);let r=t._e,s=o.xCenter,a=o.halfWidth,l=o.open,u=o.close,m=o.high,f=o.low,b=o.isUp,p=0,d=0;for(let A=0;A<o.count;A++)b[A]!==0?p++:d++;let g=new Float32Array(p*3*4),h=new Float32Array(d*3*4),y=0,x=0;for(let A=0;A<o.count;A++){let w=s[A]-r,L=l[A],T=u[A],F=f[A],G=m[A],E=a[A],I=b[A]!==0?g:h,k=b[A]!==0?y:x;I[k++]=w,I[k++]=F,I[k++]=w,I[k++]=G,I[k++]=w-E,I[k++]=L,I[k++]=w,I[k++]=L,I[k++]=w,I[k++]=T,I[k++]=w+E,I[k++]=T,b[A]!==0?y=k:x=k}let C=this.i,_=C?.upBuffer??i.createBuffer(),v=C?.downBuffer??i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,_),i.bufferData(i.ARRAY_BUFFER,g,i.STATIC_DRAW),i.bindBuffer(i.ARRAY_BUFFER,v),i.bufferData(i.ARRAY_BUFFER,h,i.STATIC_DRAW),this.i={upBuffer:_,downBuffer:v,upInstanceCount:p*3,downInstanceCount:d*3}}draw(t,n,o,i){let r=this.i;if(!r||r.upInstanceCount===0&&r.downInstanceCount===0)return;let s=this.ensureProgram(o),a=o.dpr;n.useProgram(s.program),n.uniformMatrix4fv(s.u_projection,!1,i),n.uniform2f(s.u_resolution,n.canvas.width,n.canvas.height),n.uniform1f(s.u_line_width,t.h.ohlc_line_width_px*a),n.disableVertexAttribArray(s.a_real_start),n.disableVertexAttribArray(s.a_real_end),n.vertexAttrib1f(s.a_real_start,1),n.vertexAttrib1f(s.a_real_end,1),n.uniform1f(s.u_interp_alpha,1);let l=q(o),{setDivisor:u}=l;n.bindBuffer(n.ARRAY_BUFFER,s.cornerBuffer),n.enableVertexAttribArray(s.a_corner),n.vertexAttribPointer(s.a_corner,1,n.FLOAT,!1,0,0),u(s.a_corner,0),ml(n,l,s,r.upBuffer,r.upInstanceCount,t.bo),ml(n,l,s,r.downBuffer,r.downInstanceCount,t.go),u(s.a_start,0),u(s.a_end,0)}destroy(t){let n=t.e?.gl;if(n){this.invalidateBuffers(t);let o=this.o;o&&(n.deleteBuffer(o.cornerBuffer),n.deleteBuffer(o.segmentBuffer))}this.o=null,this.i=null}};function ml(e,t,n,o,i,r){if(i===0)return;let s=4*Float32Array.BYTES_PER_ELEMENT,a=2*Float32Array.BYTES_PER_ELEMENT,{setDivisor:l}=t;e.uniform4f(n.u_color,r[0],r[1],r[2],1),e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(n.a_start),e.vertexAttribPointer(n.a_start,2,e.FLOAT,!1,s,0),l(n.a_start,1),e.enableVertexAttribArray(n.a_end),e.vertexAttribPointer(n.a_end,2,e.FLOAT,!1,s,a),l(n.a_end,1),t.drawArraysInstanced(e.TRIANGLE_STRIP,0,4,i)}var Cn=class extends Gt{constructor(){super(...arguments);c(this,"F",null);c(this,"ze",[]);c(this,"p",[]);c(this,"be",xn());c(this,"Ln",{min:0,max:1});c(this,"ho",null);c(this,"ut",null);c(this,"lt","category");c(this,"$",null);c(this,"$e",null);c(this,"kt",null);c(this,"_e",0);c(this,"bo",[0,.8,.4]);c(this,"go",[.8,.2,.2]);c(this,"po",null);c(this,"ge",-1);c(this,"ri",-1);c(this,"k",{bodyWick:new fi,ohlc:new ci});c(this,"Yn",!0);c(this,"Ct",null)}tooltipCallbacks(){return{onHover:(n,o)=>Fr(this,n,o),onLeave:()=>{this.ge!==-1&&(this.ge=-1,et(this))},onPin:(n,o)=>{if(Fr(this,n,o),this.ge>=0){let i=this.ge;il(this,i),this.Ji(i)}},onUnpin:()=>{this.emitUnselect()}}}async Ji(n){if(n<0||n>=this.be.count)return;let o=this.be.catIdx[n],i=this.be.splitIdx[n],r=this.Se.map(u=>u.labels[o]??null),s=this.ze[i]??"",a=this.E.length>0&&s!==""?s.split("|"):[],l=this.I[1]||this.I.find(u=>!!u)||"";await this.emitClickAndSelect({rowIdx:o+this.rt,columnName:l,groupByValues:r,splitByValues:a})}invalidateTheme(){super.invalidateTheme(),this.po=null}async uploadAndRender(n,o,i,r){if(this.e=n,i!==0)return;let s=nl({columns:o,numRows:r,columnSlots:this.I,groupBy:this.A,splitBy:this.E,groupByTypes:this.gt,bandInnerFrac:this.h.band_inner_frac,barInnerPad:this.h.bar_inner_pad,scratchCandles:this.be});this.h.domain_mode==="expand"?(this.ho=pt(this.ho,s.yDomain),s.numericCategoryDomain&&(this.ut=pt(this.ut,s.numericCategoryDomain))):(this.ho=null,this.ut=null),this.Se=s.rowPaths,this.ne=s.numCategories,this.rt=s.rowOffset,this.ze=s.splitPrefixes,this.p=s.series,this.be=s.candles,this.Ln=s.yDomain,this.lt=s.axisMode.mode,this.$=s.numericCategoryDomain,this.$e=s.categoryPositions,this._e=s.numericCategoryDomain?.min??0,this.Ct=null,Dr(this),sl(this),al(this,n),await this.requestRender(n)}St(n){this.e=n,ll(this,n)}resetExpandedDomain(){this.ho=null,this.ut=null}destroyInternal(){if(this.e){let n=this.e.gl;this.W&&n.deleteBuffer(this.W),this.k.bodyWick.destroy(this),this.k.ohlc.destroy(this)}this.o=null,this.F=null,this.W=null,this.be=xn(),this.p=[],this.Se=[],this.ne=0,this.po=null}};var Cl={scatter:async()=>vo,line:async()=>Ao,density:async()=>Lo,treemap:async()=>Vo,sunburst:async()=>Xo,heatmap:async()=>mi,"y-bar":async()=>Qe,"y-line":async()=>Qe,"y-scatter":async()=>Qe,"y-area":async()=>Qe,"x-bar":async()=>li,candlestick:async()=>Cn,ohlc:async()=>Cn,"map-scatter":async()=>(await Promise.resolve().then(()=>(hi(),gi))).MapScatterChart,"map-line":async()=>(await Promise.resolve().then(()=>(hi(),gi))).MapLineChart,"map-density":async()=>(await Promise.resolve().then(()=>(hi(),gi))).MapDensityChart};async function _l(e,t,n){let o=new Map;await e.with_typed_arrays(n??{},async(i,r,s,a)=>{for(let l=0;l<i.length;l++){let u=i[l],m=r[l],f=s[l]??void 0,b=a[l];b!==null?o.set(u,{type:"string",indices:m,dictionary:b,valid:f}):m instanceof Float32Array?o.set(u,{type:"float32",values:m,valid:f}):m instanceof Int32Array?o.set(u,{type:"int32",values:m,valid:f}):m instanceof Float64Array?o.set(u,{type:"float64",values:m,valid:f}):o.set(u,{type:"float32",values:new Float32Array(m),valid:f})}await t(o)})}var vl=new Map;async function Al(e){let t=[e.family,e.src,e.weight??"",e.style??""].join("|"),n=vl.get(t);if(n){await n;return}n=(async()=>{try{let o={};e.style&&(o.style=e.style),e.weight&&(o.weight=e.weight),e.stretch&&(o.stretch=e.stretch);let i=new FontFace(e.family,e.src,o);await i.load(),self.fonts.add(i)}catch(o){console.warn(`Failed to load font ${e.family}:`,o)}})(),vl.set(t,n),await n}function Ut(e,t){switch(t.kind){case"setViewByName":e.setViewByName(t.name);break;case"setColumnsConfig":e.chartImpl.setColumnsConfig?.(t.cfg);break;case"setPluginConfig":e.chartImpl.setPluginConfig?.(t.cfg),e.redraw();break;case"setBufferMaxCapacity":e.glManager.C.maxCapacity=t.n;break;case"loadAndRender":e.loadAndRender(t);break;case"redraw":e.redraw();break;case"resize":e.resize(t.cssWidth,t.cssHeight,t.dpr),e.redraw();break;case"clear":e.clear();break;case"invalidateTheme":e.chartImpl.setTheme?.(t.themeVars),e.chartImpl.invalidateTheme?.(),e.resize(e.cssWidth,e.cssHeight,e.dpr);break;case"restoreZoom":e.restoreZoom(t.state);break;case"resetAllZooms":e.resetAllZooms(),e.redraw(),e.post({kind:"zoomChanged",isDefault:e.allZoomsDefault()});break;case"resetExpandedDomain":e.resetExpandedDomain();break;case"interaction":e.onInteraction(t.event);break;case"saveZoom":e.post({kind:"saveZoomReply",requestId:t.requestId,state:e.saveZoom()});break;case"destroy":e.destroy();break;case"init":break;case"snapshotPng":{let n=t.requestId;e.snapshotPng().then(o=>{e.post({kind:"snapshotPngReply",requestId:n,blob:o})}).catch(o=>{e.post({kind:"error",message:String(o)})});break}}}var vn=new Map,Wr=new Set;function kr(e,t,n){let o={sessionId:e,msg:t};n&&n.length>0?self.postMessage(o,n):self.postMessage(o)}function Lf(e){return{postMessage:(t,n)=>kr(e,t,n),addEventListener:()=>{},removeEventListener:()=>{},start:()=>{},close:()=>{},dispatchEvent:()=>!1,onmessage:null,onmessageerror:null}}function Ll(e){self.addEventListener("message",function(t){let n=t.data,{sessionId:o,msg:i}=n;if(i.kind==="init"){if(vn.has(o)){kr(o,{kind:"error",message:`sessionId ${o} already initialized`});return}e(i,Lf(o)).then(s=>{if(Wr.delete(o)){Ut(s,{kind:"destroy"});return}vn.set(o,s)}).catch(s=>{Wr.delete(o),kr(o,{kind:"error",message:String(s)})});return}if(i.kind==="destroy"){let s=vn.get(o);s?(Ut(s,i),vn.delete(o)):Wr.add(o);return}let r=vn.get(o);r&&Ut(r,i)})}Gi();var yi=class extends Error{constructor(){super("StaleGenerationError")}};async function wl(e){let t=Cl[e];if(!t)throw new Error(`Unknown chart tag: ${e}`);return await t()}var Nr=null;function Tf(e){return Nr||(Nr=new Zn(4,{precompile:e})),Nr}var xi=class{constructor(t,n,o,i,r,s){c(this,"chartImpl");c(this,"glManager");c(this,"zoomController",null);c(this,"gridlines");c(this,"chrome");c(this,"cssWidth");c(this,"cssHeight");c(this,"dpr");c(this,"client");c(this,"view");c(this,"table");c(this,"controlPort");c(this,"si",0);c(this,"yo",null);c(this,"ai",0);c(this,"li",0);if(this.client=n,this.view=o,this.table=i,this.controlPort=r,this.chartImpl=new s,t.renderMode==="blit"&&!t.glCanvas&&!0)this.glManager=new Yt(Tf(t.precompileShaders??!1).acquire());else{let l=t.glCanvas??new OffscreenCanvas(Math.max(1,Math.round(t.cssWidth*t.dpr)),Math.max(1,Math.round(t.cssHeight*t.dpr)));this.glManager=new Yt(l,{precompile:t.precompileShaders??!1})}t.renderMode==="blit"&&this.glManager.setFrameCallback(l=>{this.post({kind:"frameBitmap",bitmap:l},[l])}),this.gridlines=t.gridlinesCanvas,this.chrome=t.chromeCanvas,this.cssWidth=t.cssWidth,this.cssHeight=t.cssHeight,this.dpr=t.dpr,this.chartImpl.setGridlineCanvas?.(t.gridlinesCanvas),this.chartImpl.setChromeCanvas?.(t.chromeCanvas),this.chartImpl.setTheme?.(t.themeVars),t.defaultChartType&&this.chartImpl.setDefaultChartType?.(t.defaultChartType),this.chartImpl.setFacetConfig?.(t.facetConfig),this.chartImpl.setPluginConfig?.(t.pluginConfig),this.chartImpl.setZoomController&&(this.zoomController=new xt,this.chartImpl.setZoomController(this.zoomController)),this.chartImpl.setView?.(o),this.glManager.C.maxCapacity=t.bufferMaxCapacity,this.glManager.resize(t.cssWidth,t.cssHeight,t.dpr),this.chartImpl.attachTooltip?.(new Kn(l=>this.post(l)))}setViewByName(t){this.view=this.client.__unsafe_open_view(t),this.chartImpl.setView?.(this.view)}async loadAndRender(t){let n=++this.si;try{let[o,i,r,s]=await Promise.all([this.view.num_rows(),this.view.schema(),this.view.expression_schema(),this.table?.schema()??Promise.resolve({})]);if(this.si!==n)return;this.chartImpl.setViewPivots?.(t.viewerConfig.group_by,t.viewerConfig.split_by),this.chartImpl.setColumnTypes?.(i),this.chartImpl.setGroupByTypes?.({...s,...r}),this.chartImpl.setColumnSlots?.(t.viewerConfig.columns);let a=Object.keys(i).length||1,l=Math.floor(this.glManager.C.maxCapacity/a),u=Math.min(o,l);this.glManager.ensureBufferCapacity(u);try{await _l(this.view,async m=>{if(this.si!==n)throw new yi;await this.chartImpl.uploadAndRender(this.glManager,m,0,u)},{end_row:u,float32:t.options.float32})}catch(m){if(!(m instanceof yi))throw m}}catch(o){(o+"").indexOf("View not found")===-1&&console.error("loadAndRender failed",o)}finally{this.post({kind:"loadAndRenderAck",msgId:t.msgId})}}redraw(){this.chartImpl.requestRender(this.glManager)}resize(t,n,o){this.cssWidth=t,this.cssHeight=n,this.dpr=o,this.glManager.requestResize(t,n,o),this.chartImpl.requestRender(this.glManager)}clear(){ds(this.glManager,()=>{this.glManager.clear(),this.gridlines.getContext("2d")?.clearRect(0,0,this.gridlines.width,this.gridlines.height)})}saveZoom(){return this.zoomController?.serialize()}restoreZoom(t){t&&this.zoomController?.restore(t)}allZoomsDefault(){if(this.zoomController&&!this.zoomController.isDefault())return!1;let t=this.chartImpl?.nn;if(t){for(let n of t)if(n&&!n.isDefault())return!1}return!0}resetAllZooms(){this.zoomController?.reset();let t=this.chartImpl?.nn;if(t)for(let n of t)n?.reset();this.resetExpandedDomain()}resetExpandedDomain(){this.chartImpl.resetExpandedDomain?.()}zi(t,n){let o=this.chartImpl,i=o?.v;if(i){for(let a=0;a<i.cells.length;a++){let l=i.cells[a],u=l.layout.t;if(t>=u.x&&t<=u.x+u.width&&n>=u.y&&n<=u.y+u.height){let m=o.getZoomControllerForFacet?.(a)??this.zoomController;return m?{controller:m,layout:l.layout}:null}}return null}if(!this.zoomController)return null;let r=o?.a;if(!r)return null;let s=r.t;return t<s.x||t>s.x+s.width||n<s.y||n>s.y+s.height?null:{controller:this.zoomController,layout:r}}onInteraction(t){switch(t.type){case"wheel":{let n=this.zi(t.mx,t.my);if(!n)return;Zr(n,t.mx,t.my,t.deltaY),this.chartImpl.requestRender(this.glManager),this.post({kind:"zoomChanged",isDefault:this.allZoomsDefault()});break}case"pointerdown":{let n=this.zi(t.mx,t.my);if(!n)return;this.yo=n,this.ai=t.mx,this.li=t.my;break}case"pointermove":{if(this.yo){let n=t.mx-this.ai,o=t.my-this.li;this.ai=t.mx,this.li=t.my,qr(this.yo,n,o),this.chartImpl.requestRender(this.glManager),this.post({kind:"zoomChanged",isDefault:this.allZoomsDefault()})}else this.L()?.dispatchHover(t.mx,t.my);break}case"pointerup":{this.yo=null;break}case"pointerleave":{this.L()?.dispatchLeave();break}case"click":{this.L()?.dispatchClick(t.mx,t.my);break}case"dblclick":{this.L()?.dispatchDblClick(t.mx,t.my);break}}}L(){return this.chartImpl?.L??null}async snapshotPng(){this.glManager.beginFrame(),this.chartImpl.St(this.glManager);let t=this.glManager.gl,n=t.canvas,o=n.width,i=n.height,r=new Uint8ClampedArray(o*i*4);t.readPixels(0,0,o,i,t.RGBA,t.UNSIGNED_BYTE,r);let s=new OffscreenCanvas(o,i),a=s.getContext("2d");if(!a)throw new Error("snapshotPng: 2D context unavailable");let u=this.chartImpl.T?.()?.backgroundColor??"transparent";u!=="transparent"&&(a.fillStyle=u,a.fillRect(0,0,o,i)),a.drawImage(this.gridlines,0,0);let m=new OffscreenCanvas(o,i),f=m.getContext("2d");if(!f)throw new Error("snapshotPng: 2D context unavailable for GL blit");return f.putImageData(new ImageData(r,o,i),0,0),a.save(),a.scale(1,-1),a.drawImage(m,0,-i),a.restore(),a.drawImage(this.chrome,0,0),await s.convertToBlob({type:"image/png"})}destroy(){ps(this.glManager),this.chartImpl.destroy(),this.glManager.destroy()}post(t,n){n&&n.length>0?this.controlPort.postMessage(t,n):this.controlPort.postMessage(t)}},wf=typeof globalThis.importScripts=="function";async function Rf(e,t){if(!e.clientWorkerURL||!e.clientWasm||!e.proxyPort)throw new Error("Init error");let n=await import(e.clientWorkerURL.toString());await n.initSync({module:e.clientWasm}),e.fontFaces?.length&&await Promise.all(e.fontFaces.map(Al));let o=e.proxyPort,i=new n.Client(async u=>{let m=u.slice().buffer;o.postMessage(m,[m])},async()=>o.close());o.addEventListener("message",u=>{i.handle_response(new Uint8Array(u.data))}),o.start();let r=i.__unsafe_open_view(e.viewName),s=e.tableName?await i.open_table(e.tableName):null,a=await wl(e.chartTag),l=new xi(e,i,r,s,t,a);return l.post({kind:"ready"}),l}async function aC(e){let t=e.client.__unsafe_open_view(e.msg.viewName),n=e.msg.tableName?await e.client.open_table(e.msg.tableName):null,o=await wl(e.msg.chartTag),i=new xi(e.msg,e.client,t,n,e.controlPort,o);return e.controlPort.addEventListener("message",r=>{let s=r.data;s?.kind!=="init"&&Ut(i,s)}),e.controlPort.start(),i.post({kind:"ready"}),i}wf&&Ll(Rf);export{xi as WorkerRenderer,aC as bootstrapInProcess};\n';var A=null;async function ce(){if(A)return A;let o=new Blob([J],{type:"application/javascript"});return A=URL.createObjectURL(o),A}var k=ce;var T=null,N=new Map,fe=0;async function de(){return T||(T=(async()=>{let o=await k(),e=new Worker(o,{type:"module",name:"viewer-charts"});return e.addEventListener("message",t=>{let i=t.data;N.get(i.sessionId)?.(i.msg)}),e})(),T)}var R=class{_handle=null;_proxyChannel=null;_proxySession=null;_client;_view;_tableName;_clientWorkerURL;_clientWasm;_chartTag;_maxCells;_precompileShaders;_ready;_resolveReady;_rejectReady;_pending=new Map;_pendingCounter=0;_onZoomChanged=null;_allZoomsDefault=!0;_hostGlCanvas=null;_displayCtx=null;_hostSink=null;_lastInsertConfig=void 0;constructor(e){this._client=e.client,this._view=e.view,this._tableName=e.tableName,this._clientWorkerURL=e.clientWorkerURL,this._clientWasm=e.clientWasm,this._chartTag=e.chartTag,this._maxCells=e.maxCells,this._precompileShaders=e.precompileShaders??!1,this._onZoomChanged=e.onZoomChanged??null,this._ready=new Promise((t,i)=>{this._resolveReady=t,this._rejectReady=i})}async init(e){this._hostGlCanvas=e.gl;let t=await k();d==="worker"&&(this._proxyChannel=new MessageChannel,this._proxySession=this._client.new_proxy_session(h=>{let W=h.slice().buffer;this._proxyChannel.port1.postMessage(W,[W])}),this._proxyChannel.port1.addEventListener("message",h=>{this._proxySession.handle_request(new Uint8Array(h.data))}),this._proxyChannel.port1.start());let i;e.renderBlitMode==="blit"?this._displayCtx=e.gl.getContext("2d"):i=e.gl.transferControlToOffscreen();let n=e.gridlines.transferControlToOffscreen(),r=e.chrome.transferControlToOffscreen(),l=e.gl.getBoundingClientRect(),a=window.devicePixelRatio||1,s=D(e.gl),m=d==="worker"?Z():[],_=d==="worker"?this._clientWasm:void 0,v=d==="worker"?this._clientWorkerURL:void 0,E=d==="worker"?this._proxyChannel.port2:void 0,U={kind:"init",renderMode:e.renderBlitMode,glCanvas:i,gridlinesCanvas:n,chromeCanvas:r,proxyPort:E,clientWorkerURL:v,clientWasm:_,chartTag:this._chartTag,viewName:this._view.__unsafe_get_name(),tableName:this._tableName,facetConfig:e.facetConfig,pluginConfig:e.pluginConfig,defaultChartType:e.defaultChartType,themeVars:s,fontFaces:m,cssWidth:l.width,cssHeight:l.height,dpr:a,bufferMaxCapacity:0,precompileShaders:this._precompileShaders};if(this._handle=await this._createHandle(t,U),this._handle.addMessageListener(h=>this._handleRendererMsg(h)),d==="worker"){let h=[n,r,this._proxyChannel.port2];i&&h.unshift(i),this._handle.post(U,h)}await this._ready}async _createHandle(e,t){if(d==="worker"){let r=await de(),l=++fe;return{post:(a,s)=>r.postMessage({sessionId:l,msg:a},s),addMessageListener:a=>{N.set(l,a)},terminate:()=>{N.delete(l)}}}let i=await import(e),n=new MessageChannel;return await i.bootstrapInProcess({msg:t,client:this._client,controlPort:n.port2}),{post:(r,l)=>n.port1.postMessage(r,l),addMessageListener:r=>{n.port1.addEventListener("message",l=>r(l.data)),n.port1.start()},terminate:()=>{n.port1.close(),n.port2.close()}}}setView(e){this._view=e,this._post({kind:"setViewByName",name:this._view.__unsafe_get_name()})}setColumnsConfig(e){this._post({kind:"setColumnsConfig",cfg:e})}setPluginConfig(e){this._post({kind:"setPluginConfig",cfg:e})}setBufferMaxCapacity(e){this._post({kind:"setBufferMaxCapacity",n:e})}loadAndRender(e){let{id:t,promise:i}=this._allocPending("loadAndRender"),n={kind:"loadAndRender",msgId:t,viewerConfig:e.viewerConfig,options:{float32:e.options?.float32??!0}};return this._post(n),i}redraw(){this._post({kind:"redraw"})}resize(){if(!this._hostGlCanvas)return;let e=this._hostGlCanvas.getBoundingClientRect(),t=window.devicePixelRatio||1;this._post({kind:"resize",cssWidth:e.width,cssHeight:e.height,dpr:t})}clear(){this._post({kind:"clear"})}invalidateTheme(){if(!this._hostGlCanvas)return;let e=D(this._hostGlCanvas);this._post({kind:"invalidateTheme",themeVars:e})}async saveZoom(){let{id:e}=this._allocPending("saveZoom");this._post({kind:"saveZoom",requestId:e})}_allocPending(e){let t=++this._pendingCounter,i=new Promise((n,r)=>{this._pending.set(t,{kind:e,resolve:n,reject:r})});return{id:t,promise:i}}restoreZoom(e){this._post({kind:"restoreZoom",state:e})}allZoomsDefault(){return this._allZoomsDefault}resetAllZooms(){this._post({kind:"resetAllZooms"})}resetExpandedDomain(){this._post({kind:"resetExpandedDomain"})}snapshotPng(){let{id:e,promise:t}=this._allocPending("snapshotPng");return this._post({kind:"snapshotPng",requestId:e}),t}forwardInteraction(e){this._post({kind:"interaction",event:e})}destroy(){this._post({kind:"destroy"}),this._proxySession&&this._proxySession.close().catch(()=>{}),this._proxyChannel&&(this._proxyChannel.port1.close(),this._proxyChannel=null),this._handle&&(this._handle.terminate(),this._handle=null),this._hostSink?.dismiss(),this._hostSink=null,this._hostGlCanvas=null,this._displayCtx=null;let e=new Error("RendererTransport destroyed");for(let t of this._pending.values())t.kind==="loadAndRender"?t.resolve(void 0):t.reject(e);this._pending.clear()}_post(e){this._postRaw(e,[])}_postRaw(e,t){this._handle&&this._handle.post(e,t)}_handleRendererMsg(e){switch(e.kind){case"ready":this._resolveReady();break;case"zoomChanged":this._allZoomsDefault=e.isDefault,this._onZoomChanged?.(e.isDefault);break;case"saveZoomReply":this._resolvePending(e.requestId,"saveZoom",e.state);break;case"pinTooltip":this._ensureHostSink()?.pin(e.lines,e.pos,e.bounds);break;case"dismissTooltip":this._hostSink?.dismiss();break;case"setCursor":this._ensureHostSink()?.setCursor(e.cursor);break;case"userClick":this._dispatchOnViewer(new CustomEvent("perspective-click",{bubbles:!0,composed:!0,detail:e.detail}));break;case"userSelect":{let t=this._lastInsertConfig?[this._lastInsertConfig]:[],i=e.selected?[e.insertConfig]:[];this._lastInsertConfig=e.selected?e.insertConfig:void 0;let n=new g(e.selected,e.row,e.column_names,t,i);this._dispatchOnViewer(new CustomEvent("perspective-global-filter",{bubbles:!0,composed:!0,detail:n}));break}case"frameBitmap":this._drawFrameBitmap(e.bitmap);break;case"error":this._rejectReady(new Error(e.message));break;case"loadAndRenderAck":this._resolvePending(e.msgId,"loadAndRender",void 0);break;case"snapshotPngReply":this._resolvePending(e.requestId,"snapshotPng",e.blob);break}}_resolvePending(e,t,i){let n=this._pending.get(e);!n||n.kind!==t||(this._pending.delete(e),n.resolve(i))}_drawFrameBitmap(e){if(this._displayCtx&&this._hostGlCanvas){let t=e.width,i=e.height;this._hostGlCanvas.width!==t&&(this._hostGlCanvas.width=t),this._hostGlCanvas.height!==i&&(this._hostGlCanvas.height=i),this._displayCtx.globalCompositeOperation="copy",this._displayCtx.drawImage(e,0,0)}e.close()}_dispatchOnViewer(e){if(!this._hostGlCanvas)return;let t=this._hostGlCanvas;for(;t;){if(t instanceof HTMLElement&&t.tagName==="PERSPECTIVE-VIEWER"){t.dispatchEvent(e);return}t=t.host??t.parentNode??null}}_ensureHostSink(){if(this._hostSink)return this._hostSink;let e=this._hostGlCanvas?.parentElement;return!e||!this._hostGlCanvas?null:(this._hostSink=new w(this._hostGlCanvas,e),this._hostSink)}};var me={...G},pe={auto_alt_y_axis:{kind:"Bool"},include_zero:{kind:"Bool"},domain_mode:{kind:"Enum",variants:[{value:"fit",label:"Fit"},{value:"expand",label:"Expand"}]},facet_mode:{kind:"Enum",variants:[{value:"grid",label:"Grid"},{value:"overlay",label:"Overlay"}]},facet_zoom_mode:{kind:"Enum",variants:[{value:"shared",label:"Shared"},{value:"independent",label:"Independent"}]},series_zoom_mode:{kind:"Enum",variants:[{value:"dynamic",label:"Dynamic"},{value:"fixed",label:"Fixed"}]},line_width_px:{kind:"Number",min:.5,step:.5,max:16},point_size_px:{kind:"Number",min:1,max:32},band_inner_frac:{kind:"Number",min:.1,max:1,step:.01},bar_inner_pad:{kind:"Number",min:0,max:.9,step:.01},wick_width_px:{kind:"Number",min:.5,step:.5,max:8},ohlc_line_width_px:{kind:"Number",min:.5,step:.5,max:8},gradient_radius_px:{kind:"Number",min:2,step:1,max:256},gradient_intensity:{kind:"Number",min:.05,step:.05,max:4},gradient_heat_max:{kind:"Number",min:.1,step:.1,max:64},gradient_color_mode:{kind:"Enum",variants:[{value:"mean",label:"Mean (density-weighted)"},{value:"density",label:"Density only"},{value:"extreme",label:"Extremes"},{value:"signed",label:"Signed sum"}]},map_tile_provider:{kind:"Enum",variants:[{value:"carto-positron",label:"Light (Positron)"},{value:"carto-dark-matter",label:"Dark Matter"},{value:"carto-voyager",label:"Voyager"}]},map_tile_alpha:{kind:"Number",min:0,max:1,step:.05}};function ge(o,e){return{...pe[o],key:o,default:e[o]}}var _e=(()=>{let o=new CSSStyleSheet;return o.replaceSync($),[o]})(),K=q,M=class extends HTMLElement{_initialized=!1;_glCanvas;_gridlineCanvas;_chromeCanvas;_renderer=null;_rendererPromise=null;_rawEventForwarder=null;_generation=0;_resetClickAbort=null;_pluginConfigStore=null;get _pluginConfig(){return this._pluginConfigStore||(this._pluginConfigStore=this._effectiveDefaults()),this._pluginConfigStore}set _pluginConfig(e){this._pluginConfigStore=e}_effectiveDefaults(){return{...j,...this._chartType.plugin_field_defaults??{}}}connectedCallback(){if(!this._initialized){this.attachShadow({mode:"open"});for(let e of _e)this.shadowRoot.adoptedStyleSheets.push(e);this.shadowRoot.innerHTML='<div class="webgl-container"><div class="zoom-controls"><button class="zoom-reset">Reset Zoom</button></div></div>',this._initialized=!0}this._glCanvas?.isConnected||this._buildCanvasStack()}_buildCanvasStack(){let e=this.shadowRoot.querySelector(".webgl-container");e.insertAdjacentHTML("afterbegin",'<canvas class="webgl-gridlines"></canvas><canvas class="webgl-canvas"></canvas><canvas class="webgl-chrome"></canvas>'),this._glCanvas=e.querySelector(".webgl-canvas"),this._gridlineCanvas=e.querySelector(".webgl-gridlines"),this._chromeCanvas=e.querySelector(".webgl-chrome")}_clearCanvasStack(){let e=this.shadowRoot?.querySelector(".webgl-container");if(e)for(let t of Array.from(e.querySelectorAll("canvas")))t.remove();this._glCanvas=null,this._gridlineCanvas=null,this._chromeCanvas=null}disconnectedCallback(){this.delete(),this._clearCanvasStack()}_ensureRenderer(e){if(this._initialized||this.connectedCallback(),this._rendererPromise)return this._rendererPromise;let t=this._buildRenderer(e).then(i=>{if(this._rendererPromise!==t)throw i.destroy(),new Error("renderer disposed during init");return this._renderer=i,this._setupInteraction(i),i});return t.catch(()=>{}),this._rendererPromise=t,t}_setupInteraction(e){if(this._rawEventForwarder)return;let t=this.shadowRoot.querySelector(".zoom-controls");this._rawEventForwarder=new C,this._rawEventForwarder.attach(this._glCanvas,n=>{e.forwardInteraction(n)});let i=this.shadowRoot.querySelector(".zoom-reset");i&&(this._resetClickAbort=new AbortController,i.addEventListener("click",()=>{e.resetAllZooms(),t&&t.classList.remove("visible")},{signal:this._resetClickAbort.signal}))}async _buildRenderer(e){let t=this.parentElement,i=await t.getClient(),n=customElements.get("perspective-viewer"),r=n.get_wasm_module(),l=n.get_worker_url(),a=await t?.getTable?.(),s=a?await a.get_name():void 0,m=this.shadowRoot.querySelector(".zoom-controls"),_=new R({client:i,view:e,tableName:s,clientWorkerURL:l,clientWasm:r,chartTag:this._chartType.tag,maxCells:this._chartType.max_cells,precompileShaders:!0,onZoomChanged:v=>{m&&m.classList.toggle("visible",!v)}});return await _.init({gl:this._glCanvas,gridlines:this._gridlineCanvas,chrome:this._chromeCanvas,facetConfig:{...me,facet_mode:this._pluginConfig.facet_mode,zoom_mode:this._pluginConfig.facet_zoom_mode},pluginConfig:this._pluginConfig,defaultChartType:this._chartType.default_chart_type,renderBlitMode:K}),_}static setBlitMode(e){K=e}get_static_config(){return{name:this._chartType.name,category:this._chartType.category,select_mode:this._chartType.selectMode,min_config_columns:this._chartType.initial.count,config_column_names:this._chartType.initial.names,max_cells:this._chartType.max_cells,max_columns:this._chartType.max_columns,group_rollup_modes:["flat"],priority:0,can_render_column_styles:!!this._chartType.default_chart_type||this._chartType.category==="Cartesian Charts"}}column_config_schema(e,t,i,n,r){let l=[],a=this._chartType.default_chart_type;if(a&&(e==="integer"||e==="float")){l.push({kind:"Enum",key:"chart_type",default:a,variants:[{value:"bar",label:"Bar"},{value:"line",label:"Line"},{value:"scatter",label:"Scatter"},{value:"area",label:"Area"}]});let s=n?.chart_type??a,m=s==="bar"||s==="area";if(m&&l.push({kind:"Bool",key:"stack",default:m}),(a==="bar"||a==="line"||a==="scatter"||a==="area")&&l.push({kind:"Bool",key:"alt_axis",default:!1}),s==="line"||s==="area"){let E=s==="area"?[{value:"skip",label:"Skip"},{value:"solid",label:"Solid"}]:[{value:"skip",label:"Skip"},{value:"solid",label:"Solid"},{value:"transparent",label:"Transparent"}];l.push({kind:"Enum",key:"interpolate",default:"solid",variants:E})}}return e==="integer"||e==="float"?l.push({kind:"NumberFormat"}):(e==="date"||e==="datetime")&&l.push({kind:"DatetimeFormat"}),{fields:l}}plugin_config_schema(e){let t=this._effectiveDefaults();return{fields:this._chartType.applicable_plugin_fields.map(n=>ge(n,t))}}async draw(e){return this._renderer?.resetExpandedDomain(),this._renderer?.resetAllZooms(),this._drawImpl(e)}async update(e){return this._drawImpl(e)}async _drawImpl(e){let t=++this._generation,i;try{i=await this._ensureRenderer(e)}catch{return}if(this._generation!==t)return;i.setView(e),i.setBufferMaxCapacity(this._chartType.max_cells);let r=await this.parentElement?.getViewConfig?.()??{};this._generation===t&&await i.loadAndRender({viewerConfig:{group_by:r?.group_by??[],split_by:r?.split_by??[],columns:r?.columns??[]},options:{float32:!0}})}async clear(){this._generation++,this._renderer?.clear()}async resize(){this._renderer?.resize()}restyle(){return this._renderer?.invalidateTheme(),5}async render(e){return await this._ensureRenderer(e),await this.draw(e),this._renderer.snapshotPng()}restore(e,t){e?.zoom&&this._renderer?.restoreZoom(e.zoom),this._pluginConfig={...this._effectiveDefaults(),...e},this._renderer?.setPluginConfig(this._pluginConfig),this._renderer?.setColumnsConfig(t??{})}delete(){this._generation++,this._rawEventForwarder&&(this._rawEventForwarder.detach(),this._rawEventForwarder=null),this._resetClickAbort&&(this._resetClickAbort.abort(),this._resetClickAbort=null),this._renderer&&(this._renderer.destroy(),this._renderer=null),this._rendererPromise=null}};function ye(...o){let e=new Set(o.length>0?o:P.map(t=>t.name));P.forEach(t=>{if(e.has(t.name)){let i=`perspective-viewer-charts-${t.tag}`;customElements.define(i,class extends M{_chartType=t;static _chartType=t}),customElements.whenDefined("perspective-viewer").then(async()=>{await customElements.get("perspective-viewer").registerPlugin(i)})}})}ye();export{g as PerspectiveSelectDetail,ye as register};
|
|
3
3
|
//# sourceMappingURL=perspective-viewer-charts.js.map
|