@svgrid/enterprise 3.1.11 → 3.1.12

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.
Files changed (38) hide show
  1. package/dist/cdn/svgrid-enterprise.svelte-external.js +9 -1
  2. package/dist/designer/assets/{GridFooter-Cu8_yBlQ.js → GridFooter-CKBVItAU.js} +1 -1
  3. package/dist/designer/assets/{GridMenus-CWAfhEeT.js → GridMenus-xnVGSn7N.js} +1 -1
  4. package/dist/designer/assets/{SvGrid.helpers-CIrmIo9U.js → SvGrid.helpers-BF2QRcNt.js} +1 -1
  5. package/dist/designer/assets/{SvGridCellEditor-DTYOEa8t.js → SvGridCellEditor-od4VbndV.js} +1 -1
  6. package/dist/designer/assets/{SvGridChart-Fg43Yi0M.js → SvGridChart-DYtGHM3F.js} +2 -2
  7. package/dist/designer/assets/{SvGridChartBuilder-BqGuA3yU.js → SvGridChartBuilder-BjdQrnz5.js} +1 -1
  8. package/dist/designer/assets/{SvGridChartPanel-BsiXRAnx.js → SvGridChartPanel-Cm9_K7BV.js} +3 -3
  9. package/dist/designer/assets/{SvGridChartView-BgttK0tR.js → SvGridChartView-Bfs0bvDb.js} +1 -1
  10. package/dist/designer/assets/{cell-formatting-BWrW_O0n.js → cell-formatting-JoxA0t65.js} +1 -1
  11. package/dist/designer/assets/{chart-BIl-dIRv.js → chart-Bmu-KAet.js} +1 -1
  12. package/dist/designer/assets/{chart-panel-messages-4cF2vw7L.js → chart-panel-messages-B3y8y3kL.js} +1 -1
  13. package/dist/designer/assets/{chart-summary-B7bTtSCC.js → chart-summary-DxE0R2Bk.js} +1 -1
  14. package/dist/designer/assets/{chart-trend-CLsn5Hgd.js → chart-trend-_gDVw3bP.js} +1 -1
  15. package/dist/designer/assets/{export-format-DGscOjS9.js → export-format-BCuqcexA.js} +1 -1
  16. package/dist/designer/assets/index-B2WZFQ5M.css +1 -0
  17. package/dist/designer/assets/{index-BnjAONWv.js → index-DUaUUFEm.js} +322 -322
  18. package/dist/designer/assets/{src-C_U1NKOY.js → src-hO8VnnI5.js} +1 -1
  19. package/dist/designer/index.html +11 -11
  20. package/dist/node/studio.js +10 -2
  21. package/dist/studio/ui-components.generated.js +8 -0
  22. package/dist/version.d.ts +2 -2
  23. package/dist/version.js +2 -2
  24. package/dist/wc/{GridFooter-f5K0aLe_.js → GridFooter-4T29pfok.js} +1 -1
  25. package/dist/wc/{GridMenus-wG7PFpPh.js → GridMenus-jRuxbYD8.js} +1 -1
  26. package/dist/wc/{SvGrid.helpers-B2GEKrxS.js → SvGrid.helpers-tk7gWxcT.js} +1 -1
  27. package/dist/wc/{SvGridCellEditor-C8iNUJrd.js → SvGridCellEditor-Nnl8C3Yj.js} +1 -1
  28. package/dist/wc/{SvGridChart-C6UvNIbN.js → SvGridChart-DrmqEen2.js} +3 -3
  29. package/dist/wc/{SvGridChartBuilder-ikf_5LyW.js → SvGridChartBuilder-XFvW1BdT.js} +3 -3
  30. package/dist/wc/{SvGridChartPanel-Dc_jj7B-.js → SvGridChartPanel-oJJtUKG6.js} +4 -4
  31. package/dist/wc/{SvGridChartView-thkznAOb.js → SvGridChartView-Cetuj70H.js} +2 -2
  32. package/dist/wc/{cell-formatting-hb3vzxhJ.js → cell-formatting-5uEa4Y_0.js} +1 -0
  33. package/dist/wc/{chart-CV5D7_k8.js → chart-CznMeoM7.js} +1 -1
  34. package/dist/wc/{chart-summary-DGx0QhJa.js → chart-summary-COWSPw1p.js} +1 -1
  35. package/dist/wc/{chart-trend-BIRH_xH8.js → chart-trend-Dcn6jrAS.js} +1 -1
  36. package/dist/wc/sv-sheet-element.js +4614 -4587
  37. package/package.json +3 -3
  38. package/dist/designer/assets/index-CLQXR_oM.css +0 -1
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{i as t,n,r,t as i}from"./chart-trend-CLsn5Hgd.js";var a=[`#2563eb`,`#16a34a`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#0ea5e9`,`#ec4899`,`#14b8a6`];function o(e){return Math.round(e*100)/100}function s(e,t){if(e<=0)return 1;let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}var c=[`#eff6ff`,`#bfdbfe`,`#60a5fa`,`#2563eb`,`#1e3a8a`],l=[`#b91c1c`,`#fca5a5`,`#f1f5f9`,`#93c5fd`,`#1d4ed8`],u=[`#1c2c4d`,`#1d4ed8`,`#3b82f6`,`#60a5fa`,`#bae6fd`],d=[`#f87171`,`#b91c1c`,`#222b3d`,`#1d4ed8`,`#60a5fa`];function f(e,t,n,r=`light`){if(Array.isArray(e)&&e.length>=2)return e;let i=r===`dark`;return e===`diverging`||e==null&&t<0&&n>0?i?d:l:i?u:c}function p(e,t){if(!e.length)return`#888`;let n=Math.max(0,Math.min(1,t));if(e.length===1)return e[0];let r=n*(e.length-1),i=Math.floor(r),a=r-i,o=m(e[i]),s=m(e[Math.min(e.length-1,i+1)]);if(!o||!s)return e[i]??`#888`;let c=(e,t)=>Math.round(e+(t-e)*a),l=e=>e.toString(16).padStart(2,`0`);return`#`+l(c(o.r,s.r))+l(c(o.g,s.g))+l(c(o.b,s.b))}function m(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function h(e){let t=m(e);if(!t)return`#0f172a`;let n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*n(t.r)+.7152*n(t.g)+.0722*n(t.b)>.5?`#0f172a`:`#ffffff`}function g(e,t){(!Number.isFinite(e)||e<=0)&&(e=1),(!Number.isFinite(t)||t<=e)&&(t=e*10);let n=Math.floor(Math.log10(e)),r=Math.ceil(Math.log10(t)),i=[];for(let e=n;e<=r;e+=1)i.push(10**e);return{min:10**n,max:10**r,step:10,ticks:i}}function _(e,t){if(!(e>0)||!(t>e))return[];let n=Math.floor(Math.log10(e)),r=Math.ceil(Math.log10(t)),i=r-n<3?[2,5]:[],a=[];for(let o=n;o<=r;o+=1){let n=10**o;for(let r of[1,...i]){let i=n*r;i>=e*.999&&i<=t*1.001&&a.push(i)}}return a}function v(e,t,n,r){return Number.isFinite(e)?r?e<=0||t<=0?null:(Math.log10(e)-Math.log10(t))/(Math.log10(n)-Math.log10(t)):(e-t)/(n-t):null}function y(e,t,n=4){(!Number.isFinite(e)||!Number.isFinite(t))&&(e=0,t=1),e===t&&(e===0?t=1:(e=Math.min(0,e),t=Math.max(0,t)),e===t&&(t=e+1));let r=s(s(t-e,!1)/Math.max(1,n),!0),i=Math.floor(e/r)*r,a=Math.ceil(t/r)*r,c=[];for(let e=i;e<=a+r*.5;e+=r)c.push(o(e));return{min:i,max:a,step:r,ticks:c}}function b(e,t,n={}){let r=n.min??e,i=n.max??t;(!Number.isFinite(r)||!Number.isFinite(i))&&(r=Number.isFinite(r)?r:0,i=Number.isFinite(i)?i:r+1);let a=n.nice!==!1,s=n.tickInterval;if(s&&s>0&&Number.isFinite(s)){a&&n.min==null&&(r=Math.floor(r/s)*s),a&&n.max==null&&(i=Math.ceil(i/s)*s),i<=r&&(i=r+s);let e=[],t=Math.ceil(r/s-1e-9)*s;for(let n=t,r=0;n<=i+s*1e-6&&r<1e3;n+=s,r+=1)e.push(o(n)+0);return{min:r,max:i,step:s,ticks:e}}if(a){let e=y(r,i,n.tickCount??4);if(n.min==null&&n.max==null)return e;let t=n.min??e.min,a=n.max??e.max;return{min:t,max:a,step:e.step,ticks:e.ticks.filter(e=>e>=t-1e-9&&e<=a+1e-9)}}i<=r&&(i=r+1);let c=Math.max(1,Math.round(n.tickCount??4)),l=(i-r)/c,u=Array.from({length:c+1},(e,t)=>o(r+l*t));return{min:r,max:i,step:l,ticks:u}}var x=864e5;function S(e,t,n=6){if(!(t>e))return[e];let r=Math.max(2,n)*1.3,i=t-e,a=[[1,0],[2,0],[7,0],[14,0],[0,1],[0,3],[0,6],[0,12],[0,24],[0,60],[0,120]],[o,s]=a[a.length-1];for(let[e,t]of a)if(i/(e*864e5+t*30.44*864e5)<=r){o=e,s=t;break}let c=new Date(e),l=[];if(o){let n=Date.UTC(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate());for(o>=7&&(n+=(8-new Date(n).getUTCDay())%7*x);n<e;)n+=o*x;for(;n<=t+1;n+=o*x)l.push(n)}else{let n=Math.ceil((c.getUTCFullYear()*12+c.getUTCMonth())/s)*s,r=e=>Date.UTC(Math.floor(e/12),e%12,1);r(n)<e&&(n+=s);for(let e=r(n);e<=t+1;n+=s,e=r(n))l.push(e)}return l.length<2?[e,t]:l}function C(e,t=6){if(e.length<=1)return e.length?[0]:[];let n={day:e=>`${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`,week:e=>Math.floor((Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())/x+3)/7),month:e=>`${e.getUTCFullYear()}-${e.getUTCMonth()}`,year:e=>e.getUTCFullYear()},r=null;for(let i of[`day`,`week`,`month`,`year`]){let a=[],o=null;for(let t=0;t<e.length;t+=1){let r=e[t];if(!Number.isFinite(r))continue;let s=n[i](new Date(r));s!==o&&a.push(t),o=s}if(r=a,a.length<=t*2)break}let i=r??[];if(i.length>t){let e=Math.ceil(i.length/t);i=i.filter((t,n)=>n%e===0)}if(i.length<2){let n=Math.max(1,Math.ceil(e.length/t));i=e.map((e,t)=>t).filter(e=>e%n===0)}return i}function w(e,t){let n=new Date(e);return t<24192e5?n.toLocaleDateString(void 0,{month:`short`,day:`numeric`,timeZone:`UTC`}):t<31104e6?n.toLocaleDateString(void 0,{month:`short`,year:`2-digit`,timeZone:`UTC`}):String(n.getUTCFullYear())}function T(e,t=`day`){let n=new Date(e);return t===`year`?String(n.getUTCFullYear()):t===`month`?n.toLocaleDateString(void 0,{month:`short`,year:`numeric`,timeZone:`UTC`}):n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`})}function E(e){let t=!0,n=!0,r=!1;for(let i of e){if(!Number.isFinite(i))continue;r=!0;let e=new Date(i);if(e.getUTCDate()!==1||e.getUTCHours()!==0){t=!1,n=!1;break}e.getUTCMonth()!==0&&(n=!1)}return r?n?`year`:t?`month`:`day`:`day`}function D(e,t,n,r){let i=Math.max(1,Math.ceil((r?18:60)/Math.max(n,.001))),a=[];for(let n=0;n<e.length;n+=i)a.push({label:e[n],x:t(n)});return a}function O(e,t){if(e==null)return null;if(typeof e==`number`){if(!Number.isFinite(e))return null;let n=Math.abs(e);return{lo:t-n,hi:t+n}}return!Number.isFinite(e.lo)||!Number.isFinite(e.hi)?null:{lo:Math.min(e.lo,e.hi),hi:Math.max(e.lo,e.hi)}}function k(e,t=1.5){let n=e.filter(e=>Number.isFinite(e)).slice().sort((e,t)=>e-t);if(!n.length)return null;let r=e=>{let t=(n.length-1)*e,r=Math.floor(t),i=Math.ceil(t);return r===i?n[r]:n[r]+(n[i]-n[r])*(t-r)},i=r(.25),a=r(.5),o=r(.75),s=i-t*(o-i),c=o+t*(o-i),l=n.filter(e=>e>=s&&e<=c),u=n.filter(e=>e<s||e>c);return{min:l.length?l[0]:n[0],q1:i,median:a,q3:o,max:l.length?l[l.length-1]:n[n.length-1],...u.length?{outliers:u}:{}}}var A=e=>({fitted:e.map(()=>NaN),r2:0,equation:``,predict:()=>NaN}),j=(e,t)=>t?e.map((e,n)=>t[n]??NaN):e.map((e,t)=>t);function M(e,t){let n=0,r=0;for(let i=0;i<e.length;i+=1)Number.isFinite(e[i])&&Number.isFinite(t[i])&&(n+=1,r+=e[i]);if(n<2)return 0;r/=n;let i=0,a=0;for(let n=0;n<e.length;n+=1)!Number.isFinite(e[n])||!Number.isFinite(t[n])||(i+=(e[n]-t[n])**2,a+=(e[n]-r)**2);return a===0?+(i===0):Math.max(0,Math.min(1,1-i/a))}var N=e=>Math.abs(e)>=1e3||Math.abs(e)<.001&&e!==0?e.toExponential(2):String(Math.round(e*1e3)/1e3);function P(e,t){let n=t.length,r=e.map((e,n)=>[...e,t[n]]);for(let e=0;e<n;e+=1){let t=e;for(let i=e+1;i<n;i+=1)Math.abs(r[i][e])>Math.abs(r[t][e])&&(t=i);if(Math.abs(r[t][e])<1e-12)return null;[r[e],r[t]]=[r[t],r[e]];for(let t=0;t<n;t+=1){if(t===e)continue;let i=r[t][e]/r[e][e];for(let a=e;a<=n;a+=1)r[t][a]-=i*r[e][a]}}return r.map((e,t)=>e[n]/e[t])}function F(e,t,n){let r=Math.max(1,Math.min(6,Math.round(t))),i=e.length,a=A(e),o=j(e,n),s=[];for(let t=0;t<i;t+=1)Number.isFinite(e[t])&&Number.isFinite(o[t])&&s.push(t);if(s.length<=r)return a;let c=1/0,l=-1/0;for(let e of s)c=Math.min(c,o[e]),l=Math.max(l,o[e]);n||(c=0,l=Math.max(1,i-1));let u=Math.max(l-c,1e-12),d=e=>2*(e-c)/u-1,f=Array.from({length:r+1},()=>Array(r+1).fill(0)),p=Array(r+1).fill(0);for(let t of s){let n=d(o[t]),i=e[t],a=[1];for(let e=1;e<=2*r;e+=1)a.push(a[e-1]*n);for(let e=0;e<=r;e+=1){p[e]+=a[e]*i;for(let t=0;t<=r;t+=1)f[e][t]+=a[e+t]}}let m=P(f,p);if(!m)return a;let h=e=>{let t=d(e),n=0,i=1;for(let e=0;e<=r;e+=1)n+=m[e]*i,i*=t;return n},g=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(o[t])?h(o[t]):NaN),_=m.map((e,t)=>t===0?N(e):`${N(e)} u^${t}`).reverse(),v=n?`u = 2(x - ${N(c)})/${N(u)} - 1`:`u = 2x/${u} - 1`;return{fitted:g,r2:M(e,g),equation:`y = ${_.join(` + `)} (${v})`,predict:h}}function I(e,t){let n=j(e,t),{slope:r,intercept:i,ok:a}=te(n,e);if(!a)return A(e);let o=e=>r*e+i,s=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(n[t])?o(n[t]):NaN);return{fitted:s,r2:M(e,s),equation:`y = ${N(r)} x + ${N(i)}`,predict:o}}function L(e,t){let n=j(e,t),{slope:r,intercept:i,ok:a}=te(n,e.map(e=>Number.isFinite(e)&&e>0?Math.log(e):NaN));if(!a)return A(e);let o=Math.exp(i),s=e=>o*Math.exp(r*e),c=e.map((e,t)=>Number.isFinite(e)&&e>0&&Number.isFinite(n[t])?s(n[t]):NaN);return{fitted:c,r2:M(e,c),equation:`y = ${N(o)} e^(${N(r)} x)`,predict:s}}function R(e,t){let n=+!t,r=j(e,t).map(e=>e+n>0?Math.log(e+n):NaN),{slope:i,intercept:a,ok:o}=te(r,e);if(!o)return A(e);let s=e=>e+n>0?a+i*Math.log(e+n):NaN,c=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(r[t])?a+i*r[t]:NaN),l=t?`x`:`x + 1`;return{fitted:c,r2:M(e,c),equation:`y = ${N(a)} + ${N(i)} ln(${l})`,predict:s}}function ee(e,t){let n=+!t,r=j(e,t).map(e=>e+n>0?Math.log(e+n):NaN),{slope:i,intercept:a,ok:o}=te(r,e.map(e=>Number.isFinite(e)&&e>0?Math.log(e):NaN));if(!o)return A(e);let s=Math.exp(a),c=e=>e+n>0?s*(e+n)**+i:NaN,l=e.map((e,t)=>Number.isFinite(e)&&e>0&&Number.isFinite(r[t])?s*Math.exp(i*r[t]):NaN),u=t?`x`:`(x + 1)`;return{fitted:l,r2:M(e,l),equation:`y = ${N(s)} ${u}^${N(i)}`,predict:c}}function te(e,t){let n=0,r=0,i=0,a=0,o=0;for(let s=0;s<t.length;s+=1){let c=e[s],l=t[s];!Number.isFinite(c)||!Number.isFinite(l)||(n+=1,r+=c,i+=l,a+=c*c,o+=c*l)}if(n<2)return{slope:0,intercept:0,ok:!1};let s=n*a-r*r,c=s===0?0:(n*o-r*i)/s;return{slope:c,intercept:(i-c*r)/n,ok:!0}}function z(e,t){if(t<1)return e.slice();let n=Array(e.length).fill(NaN),r=0,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];if(Number.isFinite(o)&&(r+=o,i+=1),a>=t){let n=e[a-t];Number.isFinite(n)&&(r-=n,--i)}a>=t-1&&i>0&&(n[a]=r/i)}return n}function B(e,t){let n=2/(Math.max(1,t)+1),r=Array(e.length).fill(NaN),i=null;for(let t=0;t<e.length;t+=1){let a=e[t];if(!Number.isFinite(a)){r[t]=i??NaN;continue}i=i==null?a:n*a+(1-n)*i,r[t]=i}return r}function V(e){return e!==`sum`&&e!==`avg`&&e!==`count`}function H(e,t){let n=e.length;switch(t){case`count`:return n;case`sum`:{let t=0;for(let n of e)t+=n;return t}case`avg`:{if(!n)return 0;let t=0;for(let n of e)t+=n;return t/n}case`min`:return n?Math.min(...e):NaN;case`max`:return n?Math.max(...e):NaN;case`first`:return n?e[0]:NaN;case`last`:return n?e[n-1]:NaN;case`countDistinct`:return new Set(e).size;case`median`:return U(e,50);default:{let n=/^p(\d+(?:\.\d+)?)$/.exec(t);return n?U(e,Number(n[1])):NaN}}}function U(e,t){let n=e.filter(e=>Number.isFinite(e)).slice().sort((e,t)=>e-t);if(!n.length)return NaN;let r=(n.length-1)*Math.max(0,Math.min(100,t))/100,i=Math.floor(r),a=Math.ceil(r);return i===a?n[i]:n[i]+(n[a]-n[i])*(r-i)}function ne(e,t){let n=e instanceof Date?e.getTime():typeof e==`number`?e:Date.parse(e);if(!Number.isFinite(n))return``;let r=new Date(n),i=r.getUTCFullYear(),a=r.getUTCMonth(),o;switch(t){case`day`:o=new Date(Date.UTC(i,a,r.getUTCDate()));break;case`week`:{let e=(r.getUTCDay()+6)%7;o=new Date(Date.UTC(i,a,r.getUTCDate()-e));break}case`month`:o=new Date(Date.UTC(i,a,1));break;case`quarter`:o=new Date(Date.UTC(i,a-a%3,1));break;default:o=new Date(Date.UTC(i,0,1))}return o.toISOString().slice(0,10)}function re(e,t={}){let n=e.filter(e=>Number.isFinite(e));if(!n.length)return{categories:[],counts:[],edges:[],width:0};let r=t.min??Math.min(...n),i=t.max??Math.max(...n);i<=r&&(i=r+1);let a;if(t.bins&&t.bins>0)a=Math.round(t.bins);else if(t.binWidth&&t.binWidth>0)a=Math.max(1,Math.ceil((i-r)/t.binWidth));else if(t.method===`sqrt`)a=Math.ceil(Math.sqrt(n.length));else if(t.method===`fd`){let e=U(n,75)-U(n,25),t=e>0?2*e/Math.cbrt(n.length):0;a=Math.ceil(t>0?(i-r)/t:Math.log2(n.length)+1)}else a=Math.ceil(Math.log2(n.length)+1);a=Math.max(1,Math.min(1e3,a));let o=t.binWidth&&t.binWidth>0?t.binWidth:(i-r)/a,s=o>=1?0:Math.min(6,Math.ceil(-Math.log10(o))+1),c=e=>Number(e.toFixed(s)),l=[];for(let e=0;e<=a;e+=1)l.push(c(r+e*o));let u=Array(a).fill(0);for(let e of n){let t=Math.floor((e-r)/o);t>=a&&(t=a-1),t<0&&(t=0),u[t]=(u[t]??0)+1}return{categories:u.map((e,t)=>String(c(r+(t+.5)*o))),counts:u,edges:l,width:o}}function W(e,t){let n=e.type??t;return n===`candlestick`||n===`ohlc`||e.ohlc?`candle`:n===`boxplot`||e.boxes?`box`:n===`line`||n===`area`?n:n===`stream`?`area`:n===`range-bar`||n===`range-area`||n===`lollipop`||n===`dumbbell`?n:n===`scatter`&&e.type===`scatter`?`scatter`:`bar`}function ie(e,t,n,r=[],i=!1,a={}){let o=1/0,s=-1/0,c=e=>{Number.isFinite(e)&&(i&&e<=0||(e<o&&(o=e),e>s&&(s=e)))};for(let e of r)c(e);let l=e.filter(e=>e.kind===`bar`||e.kind===`area`),u=e.filter(e=>e.kind===`line`||e.kind===`scatter`||e.kind===`lollipop`);for(let t of e)if(t.kind===`range-bar`||t.kind===`range-area`||t.kind===`dumbbell`){for(let e of t.values)c(e);for(let e of t.lowValues??[])c(e)}let d=new Map;l.forEach((e,t)=>{let r=e.stack?`${e.kind}:${e.stack}`:n?e.kind:`#${t}`,i=d.get(r);i?i.push(e):d.set(r,[e])});for(let e of d.values()){if(e.length===1){for(let t of e[0].values)c(t);continue}for(let n=0;n<t.length;n+=1){let t=0,r=0;for(let i of e){let e=i.values[n]??0;e>=0?t+=e:r+=e}c(t),c(r)}}for(let e of u)for(let t of e.values)c(t);for(let t of e)if(t.kind===`candle`)for(let e of t.ohlc??[])e&&(c(e.h),c(e.l));for(let t of e)if(t.kind===`box`){for(let e of t.boxes??[])if(e){c(e.min),c(e.max);for(let t of e.outliers??[])c(t)}}for(let t of e)t.errors&&t.errors.forEach((e,n)=>{let r=O(e,t.values[n]??0);r&&(c(r.lo),c(r.hi))});if(o===1/0&&(o=+!!i,s=i?10:1),(l.length||e.some(e=>e.kind===`lollipop`))&&!i&&(o=Math.min(o,0),s=Math.max(s,0)),i){let e=g(o,s),t=a.min!=null&&a.min>0?a.min:e.min,n=a.max!=null&&a.max>t?a.max:e.max;return t===e.min&&n===e.max?e:{min:t,max:n,step:e.step,ticks:e.ticks.filter(e=>e>=t&&e<=n)}}return b(o,s,a)}function ae(e){let t=e.axes;if(!t)return null;let{x:n,y:r,w:i,h:a}=e.plot,o=e=>t=>{let n=v(t,e.min,e.max,e.log);return n===null?NaN:(e.reversed&&(n=1-n),r+a-n*a)},s=o(t.y),c=t.y2?o(t.y2):s,l=e=>t=>{let n=a===0?0:(r+a-t)/a;if(e.reversed&&(n=1-n),!e.log)return e.min+n*(e.max-e.min);let i=Math.log10(e.min);return 10**(i+n*(Math.log10(e.max)-i))},u=t.x,d=u&&u.max-u.min||1,f=u?.log&&Math.log10(u.max)-Math.log10(u.min)||1,p=e=>{if(!u||!Number.isFinite(e)||u.log&&e<=0)return NaN;let t=u.log?(Math.log10(e)-Math.log10(u.min))/f:(e-u.min)/d;return u.reversed&&(t=1-t),n+t*i},m=e=>{if(u?.values){let t=u.values[Math.round(e)];if(t!=null&&Number.isFinite(t))return p(t)}let r=n+t.slot*e+t.slot/2;return t.xReversed?n+i-(r-n):r},h=n=>{if(u){if(n instanceof Date)return p(n.getTime());if(typeof n==`number`)return p(n);let t=u.type===`time`?Date.parse(n):Number(n);if(Number.isFinite(t))return p(t);let r=e.xTicks.findIndex(e=>e.label===n);return r>=0?e.xTicks[r].x:NaN}if(typeof n==`number`)return m(n);let r=n instanceof Date?n.toISOString():n,i=t.labels?t.labels.indexOf(r):-1;return i>=0?m(i):NaN},g=e=>{let r=i===0?0:(e-n)/i;return(u?u.reversed:t.xReversed)&&(r=1-r),u?.log?10**(Math.log10(u.min)+r*f):u?u.min+r*d:Math.max(0,Math.min(t.count-1,r*t.count-.5))};return{xOf:m,yOf:(e,t)=>t===`right`?c(e):s(e),xInvert:e=>{if(u?.values){let t=g(e),n=0,r=1/0;return u.values.forEach((e,i)=>{let a=Math.abs(e-t);a<r&&(r=a,n=i)}),n}let r=Math.floor((e-n)/(t.slot||1)),i=t.xReversed?t.count-1-r:r;return Math.max(0,Math.min(t.count-1,i))},yInvert:(e,n)=>n===`right`&&t.y2?l(t.y2)(e):l(t.y)(e),xOfValue:h,xInvertValue:g}}function G(e){let t=e.xAxis??{},n=e.yAxis??{},r=e.y2Axis??{},i=(e,t)=>({...e,type:e.type??t.type,scale:e.scale??t.scale,title:e.title??t.title,gridLines:e.gridLines??t.gridLines,labels:e.labels!==!1,nice:e.nice!==!1,reversed:e.reversed===!0});return{x:i(t,{type:e.xType??`category`,scale:`linear`,title:e.xAxisTitle,gridLines:!1}),y:i(n,{type:`category`,scale:e.yScale??`linear`,title:e.yAxisTitle,gridLines:!0}),y2:i(r,{type:`category`,scale:e.y2Scale??`linear`,title:e.y2AxisTitle,gridLines:!1})}}var oe=22,se=16,ce=16;function le(e,t,n){let r=(e.title??``).trim(),i=(e.subtitle??``).trim(),a=(e.caption??``).trim(),o=0,s=null,c=null;r&&(o+=oe,s={x:t/2,y:o-6,text:r}),i&&(o+=se,c={x:t/2,y:o-4,text:i}),o&&(o+=4);let l=0,u=null;return a&&(l=ce,u={x:8,y:n-5,text:a}),{top:o,bottom:l,title:s,subtitle:c,caption:u}}function ue(e,t,n,r,i){return n.formatter?n.formatter(e,t):i(e,n.format??r.valueFormat,r)}var de=[`values`,`rowIds`,`upperValues`,`lowerValues`,`ohlc`,`boxes`,`errors`,`markers`,`colors`,`lowValues`,`targets`,`volumes`],fe=[`waterfallTotals`];function K(e,t){let n=e=>{if(!e)return;let n=Array(t.length);for(let r=0;r<t.length;r+=1)n[r]=e[t[r]];return n},r=e.series.map(e=>{let t={...e,values:n(e.values)??[]};for(let r of de){if(r===`values`)continue;let i=e[r];i&&(t[r]=n(i))}return t}),i={...e,categories:n(e.categories)??[],series:r};for(let t of fe){let r=e[t];r&&(i[t]=n(r))}return i}function pe(e,t,n){let r=e.length,i=e=>n&&Number.isFinite(n[e])?n[e]:e;if(t>=r||r<=2)return e.map((e,t)=>t);if(t<3)return[0,r-1];let a=[0],o=(r-2)/(t-2),s=0;for(let n=0;n<t-2;n+=1){let t=Math.floor((n+1)*o)+1,c=Math.min(Math.floor((n+2)*o)+1,r),l=0,u=0,d=0;for(let n=t;n<c;n+=1){let t=e[n];Number.isFinite(t)&&(l+=i(n),u+=t,d+=1)}d?(l/=d,u/=d):(l=(i(t)+i(Math.min(c,r-1)))/2,u=e[s]);let f=Math.floor(n*o)+1,p=Math.min(Math.floor((n+1)*o)+1,r),m=i(s),h=Number.isFinite(e[s])?e[s]:0,g=-1,_=-1;for(let t=f;t<p;t+=1){let n=e[t];if(!Number.isFinite(n))continue;let r=Math.abs((m-l)*(n-h)-(m-i(t))*(u-h));r>_&&(_=r,g=t)}g<0&&(g=f),a.push(g),s=g}return a.push(r-1),a}function q(e,t){let n=e.length;if(t>=n||n<=2)return e.map((e,t)=>t);let r=new Set([0,n-1]),i=n/Math.max(1,t);for(let a=0;a<t;a+=1){let t=Math.floor(a*i),o=Math.min(n,Math.floor((a+1)*i)),s=-1,c=-1;for(let n=t;n<o;n+=1){let t=e[n];Number.isFinite(t)&&((s<0||t<e[s])&&(s=n),(c<0||t>e[c])&&(c=n))}s>=0&&r.add(s),c>=0&&r.add(c)}return[...r].sort((e,t)=>e-t)}function me(e,t){if(e===!1)return null;let n=typeof e==`object`?e:{},r=Math.max(8,Math.round(n.target??t));return{method:n.method??`lttb`,target:r,threshold:Math.max(r,Math.round(n.threshold??r))}}function J(e,t,n=e.decimate){let r=me(n,t);if(!r)return e;let i=e.categories.length;if(i<=r.threshold||!e.series.length)return e;let a=e=>e===`line`||e===`area`;if(!a(e.type)&&!e.series.every(e=>a(e.type))||e.series.some(e=>e.type&&!a(e.type)||e.ohlc||e.boxes))return e;let o=(e.xAxis?.type??e.xType)===`number`,s=o&&e.xAxis?.scale===`log`,c=o?e.categories.map(e=>{let t=Number(e);return s?t>0?Math.log10(t):NaN:t}):void 0,l=new Set;for(let t of e.series){let e=r.method===`minmax`?q(t.values,Math.floor(r.target/2)):pe(t.values,r.target,c);for(let t of e)l.add(t)}let u=[...l].sort((e,t)=>e-t);return u.length>=i?e:K(e,u)}var Y=e=>Array(e).fill(NaN);function he(e,t){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n),a=r*(r+1)/2;for(let t=r-1;t<n;t+=1){let n=0,o=!0;for(let i=0;i<r;i+=1){let a=e[t-i];if(!Number.isFinite(a)){o=!1;break}n+=a*(r-i)}o&&(i[t]=n/a)}return i}function ge(e,t=20,n=2){let r=e.length,i=Math.max(1,Math.floor(t)),a=z(e,i),o=Y(r),s=Y(r);for(let t=i-1;t<r;t+=1){let r=a[t];if(!Number.isFinite(r))continue;let c=0,l=0;for(let n=t-i+1;n<=t;n+=1){let t=e[n];Number.isFinite(t)&&(c+=(t-r)*(t-r),l+=1)}let u=l?Math.sqrt(c/l):0;o[t]=r+n*u,s[t]=r-n*u}return{middle:a,upper:o,lower:s}}function _e(e,t=14){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n);if(n<=r)return i;let a=0,o=0;for(let t=1;t<=r;t+=1){let n=e[t]-e[t-1];n>0?a+=n:o-=n}let s=a/r,c=o/r,l=(e,t)=>t===0?100:100-100/(1+e/t);i[r]=l(s,c);for(let t=r+1;t<n;t+=1){let n=e[t]-e[t-1];s=(s*(r-1)+(n>0?n:0))/r,c=(c*(r-1)+(n<0?-n:0))/r,i[t]=l(s,c)}return i}function ve(e,t=12,n=26,r=9){let i=e.length,a=B(e,t),o=B(e,n),s=Y(i);for(let e=n-1;e<i;e+=1)s[e]=a[e]-o[e];let c=Y(i),l=Y(i),u=2/(Math.max(1,r)+1),d=null,f=0;for(let e=0;e<i;e+=1){let t=s[e];Number.isFinite(t)&&(f+=1,d=d==null?t:u*t+(1-u)*d,f>=r&&(c[e]=d,l[e]=t-d))}return{macd:s,signal:c,histogram:l}}var ye=e=>(e.h+e.l+e.c)/3;function be(e,t){let n=e.length,r=Y(n),i=0,a=0;for(let o=0;o<n;o+=1){let n=e[o],s=t[o];if(!n||!Number.isFinite(s)){r[o]=a>0?i/a:NaN;continue}i+=ye(n)*s,a+=s,r[o]=a>0?i/a:NaN}return r}function xe(e,t){let n=e[t];if(!n)return NaN;let r=t>0?e[t-1]:null;return r?Math.max(n.h-n.l,Math.abs(n.h-r.c),Math.abs(n.l-r.c)):n.h-n.l}function Se(e,t=14){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n);if(n<r)return i;let a=0;for(let t=0;t<r;t+=1){let n=xe(e,t);if(!Number.isFinite(n))return i;a+=n}let o=a/r;i[r-1]=o;for(let t=r;t<n;t+=1){let n=xe(e,t);if(!Number.isFinite(n)){i[t]=NaN;continue}o=(o*(r-1)+n)/r,i[t]=o}return i}function Ce(e,t=14,n=3){let r=e.length,i=Math.max(1,Math.floor(t)),a=Y(r);for(let t=i-1;t<r;t+=1){let n=-1/0,r=1/0,o=!0;for(let a=t-i+1;a<=t;a+=1){let t=e[a];if(!t){o=!1;break}t.h>n&&(n=t.h),t.l<r&&(r=t.l)}let s=e[t]?.c;!o||s==null||(a[t]=n===r?50:(s-r)/(n-r)*100)}let o=Math.max(1,Math.floor(n)),s=Y(r);for(let e=o-1;e<r;e+=1){let t=0,n=!0;for(let r=e-o+1;r<=e;r+=1){if(!Number.isFinite(a[r])){n=!1;break}t+=a[r]}n&&(s[e]=t/o)}return{k:a,d:s}}function we(e,t){let n=e.length,r=Y(n),i=0;for(let a=0;a<n;a+=1){let n=t[a];if(!Number.isFinite(e[a])||!Number.isFinite(n)){r[a]=i;continue}a>0&&Number.isFinite(e[a-1])&&(e[a]>e[a-1]?i+=n:e[a]<e[a-1]&&(i-=n)),r[a]=i}return r}function Te(e,t,n){return Ee(e,t,n).values}function Ee(e,t,n){let r=e=>e.equation?{values:e.fitted,r2:e.r2,equation:e.equation}:{values:e.fitted},i=De(e,t);return i?r(i):{values:ke(e,t,n)}}function De(e,t,n){if(t===`linear`)return I(e,n);if(t===`exp`)return L(e,n);if(t===`log`)return R(e,n);if(t===`power`)return ee(e,n);let r=/^poly:(\d+)$/.exec(t);return r?F(e,Number(r[1]),n):null}function Oe(e){let t=/^(sma|ema|wma|bb|poly):(\d+)/.exec(e);return t?`${t[1]===`poly`?`poly`:t[1].toUpperCase()} ${t[2]}`:e===`linear`?`trend`:e}function ke(e,t,n){if(t===`vwap`)return n?.ohlc&&n.volumes?be(n.ohlc,n.volumes):e.map(()=>NaN);let r=/^bb:(\d+):(\d+(?:\.\d+)?)$/.exec(t);if(r)return ge(e,Number(r[1]),Number(r[2])).middle;let i=/^(sma|ema|wma):(\d+)$/.exec(t);if(!i)return e.map(()=>NaN);let a=Number(i[2]);return i[1]===`wma`?he(e,a):i[1]===`ema`?B(e,a):z(e,a)}function Ae(e,t){return t.source?e.series.find(e=>e.label===t.source)??null:e.series.find(e=>e.ohlc)??e.series[0]??null}function je(e){return e.ohlc?e.ohlc.map(e=>e?e.c:NaN):e.values.slice()}function Me(e,t){let n=Ae(e,t),r=e.categories.length,i=n?je(n):Y(r),a=n?.ohlc??i.map(e=>Number.isFinite(e)?{o:e,h:e,l:e,c:e}:null),o=n?.volumes??Y(r),s=t.params??{},c={categories:e.categories,xType:e.xType,xAxis:e.xAxis,height:t.height??Math.max(90,Math.round((e.height??300)/3)),palette:e.palette,valueFormat:`number`,locale:e.locale},l=e=>e.map(([e,t])=>({value:e,label:t,dashed:!0}));switch(t.kind){case`rsi`:{let e=s.period??14;return{...c,type:`line`,title:`RSI ${e}`,series:[{label:`RSI ${e}`,values:_e(i,e),marker:`none`}],yAxis:{min:0,max:100,tickInterval:50,nice:!1},referenceLines:l([[30,`30`],[70,`70`]])}}case`stochastic`:{let e=s.period??14,t=s.smooth??3,{k:n,d:r}=Ce(a,e,t);return{...c,type:`line`,title:`Stochastic ${e}, ${t}`,series:[{label:`%K`,values:n,marker:`none`},{label:`%D`,values:r,marker:`none`,dash:[4,3]}],yAxis:{min:0,max:100,tickInterval:50,nice:!1},referenceLines:l([[20,`20`],[80,`80`]])}}case`macd`:{let e=s.fast??12,t=s.slow??26,n=s.signal??9,r=ve(i,e,t,n);return{...c,type:`bar`,title:`MACD ${e}, ${t}, ${n}`,series:[{label:`Histogram`,values:r.histogram,colors:r.histogram.map(e=>e<0?`#ef4444`:`#16a34a`)},{label:`MACD`,values:r.macd,type:`line`,marker:`none`},{label:`Signal`,values:r.signal,type:`line`,marker:`none`,dash:[4,3]}],referenceLines:l([[0,``]])}}case`atr`:{let e=s.period??14;return{...c,type:`line`,title:`ATR ${e}`,series:[{label:`ATR ${e}`,values:Se(a,e),marker:`none`}],yAxis:{min:0}}}case`obv`:return{...c,type:`line`,title:`OBV`,series:[{label:`OBV`,values:we(i,o),marker:`none`}],valueFormat:`compact`};default:{let e=a.map((e,t)=>{if(!e)return null;let n=t>0?a[t-1]:null;return(n?e.c>=n.c:e.c>=e.o)?`#16a34a`:`#ef4444`});return{...c,type:`bar`,title:`Volume`,series:[{label:`Volume`,values:o.slice(),colors:e}],yAxis:{min:0},valueFormat:`compact`}}}}function Ne(e){let t=Array(e.length),n=null;for(let r=0;r<e.length;r+=1){let i=e[r];if(!i||![i.o,i.h,i.l,i.c].every(Number.isFinite)){t[r]=null,n=null;continue}let a=(i.o+i.h+i.l+i.c)/4,o=n?(n.o+n.c)/2:(i.o+i.c)/2,s={o,c:a,h:Math.max(i.h,o,a),l:Math.min(i.l,o,a)};t[r]=s,n=s}return t}function Pe(e,t,n){let r=new Map,i=[];for(let a=0;a<e.length;a+=1){let o=Date.parse(e[a]);if(!Number.isFinite(o))continue;let s=ne(o,n.bucket);if(!s)continue;let c=r.get(s);c||(c={bar:null,vol:0,first:1/0,last:-1/0},r.set(s,c),i.push([s,Date.parse(s)]));let l=t[a];l&&(c.bar?(c.bar.h=Math.max(c.bar.h,l.h),c.bar.l=Math.min(c.bar.l,l.l),o>=c.last&&(c.bar.c=l.c),o<=c.first&&(c.bar.o=l.o)):c.bar={...l},o>c.last&&(c.last=o),o<c.first&&(c.first=o));let u=n.volumes?.[a];Number.isFinite(u)&&(c.vol+=u)}return i.sort((e,t)=>e[1]-t[1]),{categories:i.map(([e])=>e),ohlc:i.map(([e])=>r.get(e).bar),...n.volumes?{volumes:i.map(([e])=>r.get(e).vol)}:{}}}function Fe(e,t){let n=t=>e.find(e=>t.test(e.field)||t.test(e.label))?.id??null;return{open:t?.open??n(/open/i),high:t?.high??n(/high/i),low:t?.low??n(/low/i),close:t?.close??n(/close|last|price/i),volume:t?.volume??n(/vol/i)}}function Ie(e,t,n,r){let i=e(t),a=e(n.open),o=e(n.high),s=e(n.low),c=e(n.close);if(!i||!a||!o||!s||!c)return null;let l=e(n.volume);return{category:i,ohlc:{open:a,high:o,low:s,close:c,...l?{volume:l}:{},...r.bucket?{bucket:r.bucket}:{},...r.candleStyle?{candleStyle:r.candleStyle}:{},lastPriceLine:!0}}}function Le(e){let t={sma:`sma:20`,ema:`ema:20`,bb:`bb:20:2`,vwap:`vwap`},n=[],r=null;for(let i of e){let e=t[i];if(e){r??=e;continue}(i===`volume`||i===`rsi`||i===`macd`||i===`stochastic`||i===`atr`||i===`obv`)&&n.push({kind:i})}return{panes:n,overlay:r}}function Re(e,t){let n=e=>typeof e==`number`?e:Number(e),r=e.map(e=>({r:e,t:Date.parse(String(e[t.date]))})).filter(e=>Number.isFinite(e.t)).sort((e,t)=>e.t-t.t),i=r.map(e=>new Date(e.t).toISOString().slice(0,10)),a=r.map(({r:e})=>{let r={o:n(e[t.open]),h:n(e[t.high]),l:n(e[t.low]),c:n(e[t.close])};return[r.o,r.h,r.l,r.c].every(Number.isFinite)?r:null}),o=t.volume?r.map(({r:e})=>n(e[t.volume])):void 0;if(t.bucket){let e=Pe(i,a,{bucket:t.bucket,volumes:o});i=e.categories,a=e.ohlc,o=e.volumes}let s={label:t.label??`Price`,values:a.map(e=>e?e.c:NaN),ohlc:a,...o?{volumes:o}:{}};return{type:t.type??`candlestick`,categories:i,series:[s],xType:`ordinal-time`,...t.candleStyle?{candleStyle:t.candleStyle}:{},...t.lastPriceLine?{lastPriceLine:!0}:{}}}function ze(e,t,n={}){return Be(e,!!n.connectNulls).map(e=>X(e,t,n.step)).filter(Boolean).join(` `)}function Be(e,t){let n=[],r=[];for(let i of e)i.defined?r.push({x:i.x,y:i.y}):r.length&&!t&&(n.push(r),r=[]);return r.length&&n.push(r),n}function X(e,t,n){return e.length?n?Ve(He(e,n)):t?Ge(e):Ve(e):``}function Ve(e){return e.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)}function He(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(r>0){let a=e[r-1];if(t===`before`)n.push({x:a.x,y:i.y});else if(t===`after`)n.push({x:i.x,y:a.y});else{let e=o((a.x+i.x)/2);n.push({x:e,y:a.y},{x:e,y:i.y})}}n.push(i)}return n}function Ue(e,t,n,r){return!e.length||!t.length?``:`${X(e,n,r)} ${X(t.slice().reverse(),n,r).replace(/^M/,`L`)} Z`}function We(e,t){let n=e.length,r=e[0]?.length??0,i=Array(r).fill(0);if(!n||!r||t===`zero`)return i;let a=(t,n)=>{let r=e[t][n];return Number.isFinite(r)?r:0};if(t===`silhouette`){for(let e=0;e<r;e+=1){let t=0;for(let r=0;r<n;r+=1)t+=a(r,e);i[e]=-t/2}return i}let o=0;for(let e=1;e<r;e+=1){let t=0,r=0;for(let i=0;i<n;i+=1){let n=a(i,e),o=(n-a(i,e-1))/2;for(let t=0;t<i;t+=1)o+=a(t,e)-a(t,e-1);t+=n,r+=o*n}i[e-1]=o,t&&(o-=r/t)}return i[r-1]=o,i}function Ge(e){let t=e.length;if(t===0)return``;if(t===1)return`M${e[0].x},${e[0].y}`;if(t===2)return`M${e[0].x},${e[0].y} L${e[1].x},${e[1].y}`;let n=Array(t-1),r=Array(t-1);for(let i=0;i<t-1;i+=1){let t=e[i+1].x-e[i].x;n[i]=t,r[i]=t===0?0:(e[i+1].y-e[i].y)/t}let i=Array(t);i[0]=r[0],i[t-1]=r[t-2];for(let e=1;e<t-1;e+=1)r[e-1]*r[e]<=0?i[e]=0:i[e]=(r[e-1]+r[e])/2;for(let e=0;e<t-1;e+=1){if(r[e]===0){i[e]=0,i[e+1]=0;continue}let t=i[e]/r[e],n=i[e+1]/r[e],a=Math.hypot(t,n);a>3&&(i[e]=3/a*t*r[e],i[e+1]=3/a*n*r[e])}let a=`M${e[0].x},${e[0].y}`;for(let r=0;r<t-1;r+=1){let t=n[r],o=e[r].x+t/3,s=e[r].y+i[r]*t/3,c=e[r+1].x-t/3,l=e[r+1].y-i[r+1]*t/3;a+=` C${o},${s} ${c},${l} ${e[r+1].x},${e[r+1].y}`}return a}function Ke(e,t,n,r){let i=Math.max(.5,r);switch(e){case`square`:return`M${o(t-i)},${o(n-i)} h${o(2*i)} v${o(2*i)} h${o(-2*i)} Z`;case`diamond`:return`M${o(t)},${o(n-i*1.3)} L${o(t+i*1.3)},${o(n)} L${o(t)},${o(n+i*1.3)} L${o(t-i*1.3)},${o(n)} Z`;case`triangle`:return`M${o(t)},${o(n-i*1.2)} L${o(t+i*1.2)},${o(n+i)} L${o(t-i*1.2)},${o(n+i)} Z`;case`cross`:return`M${o(t-i)},${o(n-i)} L${o(t+i)},${o(n+i)} M${o(t-i)},${o(n+i)} L${o(t+i)},${o(n-i)}`;default:return``}}function qe(e,t){let n=typeof e.marker==`string`?{shape:e.marker}:e.marker??{},r=e.markers?.[t]??void 0,i=r?.color??n.color??e.colors?.[t]??void 0,a=r?.shape??n.shape,o=r?.size??n.size;if(a==null&&o==null&&i==null)return;let s={};return a!=null&&(s.shape=a),o!=null&&(s.size=o),i!=null&&(s.color=i),s}function Je(e){let t={},n=!1;if(e.strokeWidth!=null&&(t.strokeWidth=e.strokeWidth,n=!0),e.dash!=null&&(t.dash=Array.isArray(e.dash)?e.dash.join(` `):e.dash,n=!0),e.opacity!=null&&(t.opacity=e.opacity,n=!0),e.gradient){let r=e.gradient===!0?{}:e.gradient;t.gradient={from:r.from??e.color,to:r.to??`transparent`},n=!0}return n?t:void 0}function Ye(e,t,n,r={}){if(t.show===!1)return[];let i=[],a=r.share?new Map:null;if(a)for(let t of e.bars){let e=t.index===void 0?t.label:String(t.index);a.set(e,(a.get(e)??0)+Math.abs(t.value))}let o=e=>{let t=a.get(e.index===void 0?e.label:String(e.index))||0;return t?`${Math.round(Math.abs(e.value)/t*100)}%`:``},s=(e,r,i,s)=>t.formatter?t.formatter(e,{category:r,series:i}):a&&s?o(s):n(e,i),c=e.orientation===`horizontal`,l=t.placement??(r.stacked?`inside`:c?`outside`:`top`),u=l===`inside`||l===`center`;for(let t of e.bars){let e=s(t.value,t.label,t.series,t);if(e){if(c){if(u){if(t.w<=18||t.h<8)continue;i.push({x:t.x+t.w/2,y:t.y+t.h/2+3,text:e,anchor:`middle`,onBar:!0,series:t.series})}else{if(t.h<8)continue;let n=t.value>=0;i.push({x:n?t.x+t.w+3:t.x-3,y:t.y+t.h/2+3,text:e,anchor:n?`start`:`end`,onBar:!1,series:t.series})}}else if(u){if(t.h<=13||t.w<14)continue;i.push({x:t.x+t.w/2,y:t.y+t.h/2+3,text:e,anchor:`middle`,onBar:!0,series:t.series})}else{if(t.w<6)continue;let n=t.value>=0;i.push({x:t.x+t.w/2,y:n?t.y-3:t.y+t.h+11,text:e,anchor:`middle`,onBar:!1,series:t.series})}}}if(!r.dense)for(let t of e.lines)for(let e of t.points){if(!e.defined)continue;let n=s(e.value,e.label,t.label);n&&i.push({x:e.x,y:u?e.y+3:e.y-7,text:n,anchor:`middle`,onBar:!1,series:t.label})}let d=t.rotation??0;if(d)for(let e of i)e.angle=d;if(t.hideOverlap===!1&&!t.connector)return i;let f=[],p=Math.abs(d)>=45,m=e=>{let t=e.text.length*5.6+2,n=p?10:t,r=p?t:11,i=e.anchor===`middle`?e.x-n/2:e.anchor===`end`?e.x-n:e.x,a=p?e.y-r:e.y-10;return{x0:i,y0:a,x1:i+n,y1:a+r}},h=e=>f.some(t=>e.x0<t.x1&&e.x1>t.x0&&e.y0<t.y1&&e.y1>t.y0),g=[];for(let e of i){let n=m(e);if(!h(n)){f.push(n),g.push(e);continue}if(!t.connector||e.onBar)continue;let r={x:e.x,y:e.y},i=null;for(let t=1;t<=4;t+=1){let r=c?{...e,x:e.x+12*t}:{...e,y:e.y-12*t};if(n=m(r),!h(n)){i=r;break}}i&&(i.leader=c?{x1:r.x,y1:r.y-3,x2:i.x-2,y2:i.y-3}:{x1:r.x,y1:r.y+1,x2:i.x,y2:i.y+2},f.push(n),g.push(i))}return g}function Xe(e,n,i,a,s){let c=e.categories,l=c.length,u=a/Math.max(1,l),d=n.reversed,f=e=>{let t=i+u*e+u/2;return o(d?i+a-(t-i):t)},p=e=>{let t=i+u*e;return d?i+a-(t-i)-u:t},m=e=>typeof n.labelRotation==`number`?n.labelRotation:e?-40:0,h=n.labels,y=(i,a)=>n.formatter?n.formatter(i,a):n.format?t(i,n.format,e):r(i);if(n.type===`number`){let t=c.map(e=>Number(e)),r=t.filter(Number.isFinite),s=e.binEdges?.filter(Number.isFinite)??[],l=r.filter(e=>e>0);if(n.scale===`log`&&s.length<2&&l.length>0){let e=g(Math.min(...l),Math.max(...l)),r=n.min!=null&&n.min>0?n.min:e.min,s=n.max!=null&&n.max>r?n.max:Math.max(e.max,r*10),c=e=>{let t=v(e,r,s,!0);return t===null?NaN:o(i+(d?1-t:t)*a)},p=e=>Number.isFinite(t[e])&&t[e]>0?c(t[e]):f(e),b=[...new Set(l)].map(c).sort((e,t)=>e-t),x=1/0;for(let e=1;e<b.length;e+=1)x=Math.min(x,b[e]-b[e-1]);let S=Number.isFinite(x)?x:u;return{continuous:`number`,log:!0,values:t,min:r,max:s,xCenter:p,xOfValue:c,ticks:_(r,s).map((e,t)=>({label:h?y(e,t):``,x:c(e)})),slot:u,barSlot:S,barX0:e=>p(e)-S/2,rotated:!1,angle:m(!1)}}if(r.length){let c=s.length>=2?b(Math.min(...s),Math.max(...s),{...n,nice:e.xAxis?.nice===!0}):b(Math.min(...r),Math.max(...r),n),l=c.max-c.min||1,p=e=>{if(!Number.isFinite(e))return NaN;let t=(e-c.min)/l;return d&&(t=1-t),o(i+t*a)},g=e=>Number.isFinite(t[e])?p(t[e]):f(e),_=[...new Set(r)].sort((e,t)=>e-t),v=1/0;for(let e=1;e<_.length;e+=1)v=Math.min(v,_[e]-_[e-1]);let x=s.length>=2?(s[1]-s[0])/l*a:Number.isFinite(v)?v/l*a:u,S=s.length>=2?Ze(s,Math.max(1,Math.floor(a/40))):c.ticks,C=s.length>=2?Math.abs(s[1]-s[0]):1,w=C>=1?0:Math.min(6,Math.ceil(-Math.log10(C))+1),T=(e,t)=>n.formatter||n.format?y(e,t):e.toLocaleString(void 0,{minimumFractionDigits:w,maximumFractionDigits:w}),E=S.map((e,t)=>({label:h?s.length>=2?T(e,t):y(e,t):``,x:p(e)}));return{continuous:`number`,values:t,min:c.min,max:c.max,xCenter:g,xOfValue:p,ticks:E,slot:u,barSlot:x,barX0:e=>g(e)-x/2,rotated:!1,angle:m(!1)}}}let x=n.type===`time`||n.type===`ordinal-time`?c.map(e=>Date.parse(e)):null,T=!!x&&x.some(e=>Number.isFinite(e));if(T&&n.type===`time`){let e=x.filter(Number.isFinite),t=n.min??Math.min(...e),r=n.max??Math.max(...e),s=r-t||1,c=e=>{if(!Number.isFinite(e))return NaN;let n=(e-t)/s;return d&&(n=1-n),o(i+n*a)},l=e=>Number.isFinite(x[e])?c(x[e]):f(e),g=S(t,r,Math.max(2,Math.floor(a/90))),_=g.length>1?g[1]-g[0]:s;return{continuous:`time`,values:x,min:t,max:r,xCenter:l,xOfValue:c,ticks:g.map((e,t)=>({label:h?n.formatter?n.formatter(e,t):w(e,_):``,x:c(e)})),slot:u,barSlot:u,barX0:p,rotated:!1,angle:m(!1)}}if(T){let e=x.filter(Number.isFinite),t=Math.max(...e)-Math.min(...e)||1,r=C(x),i=r.length>1&&Math.abs(x[r[1]]-x[r[0]])||t,a=r.map((e,t)=>({label:h?n.formatter?n.formatter(x[e],t):w(x[e],i):``,x:f(e)}));return{continuous:null,values:x,min:0,max:l-1,xCenter:f,xOfValue:()=>NaN,ticks:a,slot:u,barSlot:u,barX0:p,rotated:!1,angle:m(!1)}}let E=m(s),O=E!==0,k=h?D(c,f,u,O):[];return{continuous:null,values:null,min:0,max:l-1,xCenter:f,xOfValue:()=>NaN,ticks:k,slot:u,barSlot:u,barX0:p,rotated:O,angle:E}}function Ze(e,t){if(e.length<=t)return e;let n=Math.ceil(e.length/t),r=e.filter((e,t)=>t%n===0);return r[r.length-1]!==e[e.length-1]&&r.push(e[e.length-1]),r}function Qe(e,t,n){if(t.continuous){let e=typeof n==`number`?n:t.continuous===`time`?Date.parse(n):Number(n);if(Number.isFinite(e))return t.xOfValue(e)}if(typeof n==`number`)return t.xCenter(n);let r=e.categories.indexOf(n);if(r>=0)return t.xCenter(r);if(t.values){let e=Date.parse(n);if(Number.isFinite(e)){let n=t.values.findIndex(t=>t===e);if(n>=0)return t.xCenter(n)}}return NaN}function $e(e,t,n){if(!t.labels)return 8;if(!n.rotated)return 28;if(typeof t.labelRotation!=`number`)return 54;let r=e.categories.reduce((e,t)=>Math.max(e,Math.min(t.length,18)),0),i=Math.abs(n.angle)*Math.PI/180;return 28+Math.round(Math.min(72,r*6*Math.sin(i)))}function et(e){let{spec:n,series:i,empty:a,width:s,height:c,frame:l,axes:u}=e,d=u.y.width??(u.y.labels?48:12)+(u.y.title?16:0),f=10+l.top,p=(u.x.labels?28:8)+(u.x.title?16:0)+l.bottom,m=Math.max(1,s-d-12),h=Math.max(1,c-f-p),y={x:d,y:f,w:m,h},x=1/0,S=-1/0,C=1/0,w=-1/0,T=1/0,E=-1/0;for(let e of i)for(let t of e.points??[])Number.isFinite(t.x)&&(x=Math.min(x,t.x),S=Math.max(S,t.x)),Number.isFinite(t.y)&&(C=Math.min(C,t.y),w=Math.max(w,t.y)),t.r!=null&&Number.isFinite(t.r)&&(T=Math.min(T,t.r),E=Math.max(E,t.r));if(x===1/0)return{...a,plot:y};let D=u.x.scale===`log`&&i.some(e=>(e.points??[]).some(e=>e.x>0)),O=D?(()=>{let e=1/0;for(let t of i)for(let n of t.points??[])n.x>0&&n.x<e&&(e=n.x);let t=g(e,S),n=u.x.min!=null&&u.x.min>0?u.x.min:t.min,r=u.x.max!=null&&u.x.max>n?u.x.max:Math.max(t.max,n*10);return{min:n,max:r,step:10,ticks:_(n,r)}})():b(x,S,u.x),k=b(C,w,u.y),A=E>T,j=e=>{if(D){let t=v(e,O.min,O.max,!0);return t===null?NaN:o(d+(u.x.reversed?1-t:t)*m)}let t=(e-O.min)/(O.max-O.min||1);return u.x.reversed&&(t=1-t),o(d+t*m)},M=e=>{let t=(e-k.min)/(k.max-k.min||1);return u.y.reversed&&(t=1-t),o(f+h-t*h)},N=e=>A&&e!=null&&Number.isFinite(e)?o(4+(e-T)/(E-T||1)*14):5,P=[];for(let e of i)(e.points??[]).forEach((t,n)=>{!Number.isFinite(t.x)||!Number.isFinite(t.y)||D&&t.x<=0||P.push({cx:j(t.x),cy:M(t.y),r:N(t.r),color:e.colors?.[n]??e.color,label:t.label??``,series:e.label,x:t.x,y:t.y})});let F=[];for(let e of i){if(!e.overlay)continue;let t=(e.points??[]).filter(e=>Number.isFinite(e.x)&&Number.isFinite(e.y)&&(!D||e.x>0)),n=De(t.map(e=>e.y),e.overlay,t.map(e=>e.x));if(!n||!n.equation)continue;let i=[];for(let e=0;e<=48;e+=1){let t=e/48,a=D?10**(Math.log10(O.min)+t*(Math.log10(O.max)-Math.log10(O.min))):O.min+t*(O.max-O.min),o=n.predict(a),s=Number.isFinite(o)&&o>=k.min&&o<=k.max;i.push({x:j(a),y:s?M(o):NaN,label:r(a),value:o,defined:s})}F.push({path:ze(i,!1),areaPath:``,color:e.overlayColor??e.color,label:`${e.label} (${e.overlay})`,points:i,r2:n.r2,equation:n.equation})}let I=[],L=[];for(let e of n.referenceLines??[]){let i=Number(e.value);Number.isFinite(i)&&(e.axis===`x`?L.push({x:j(i),label:e.label??r(i),color:e.color??`#ef4444`,dashed:e.dashed!==!1}):I.push({y:M(i),label:e.label??t(i,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1}))}let R=[];for(let e of n.referenceBands??[]){let t=Number(e.from),n=Number(e.to);if(!(!Number.isFinite(t)||!Number.isFinite(n))){if(e.axis===`x`){let r=j(Math.min(t,n)),i=j(Math.max(t,n));R.push({x:Math.min(r,i),y:f,w:Math.abs(i-r),h,color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`x`})}else{let r=M(Math.max(t,n)),i=M(Math.min(t,n));R.push({x:d,y:Math.min(r,i),w:m,h:Math.abs(i-r),color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`y`})}}}return{...a,plot:y,axes:{y:{min:k.min,max:k.max,log:!1,reversed:u.y.reversed},y2:null,slot:m,count:0,x:{type:`number`,min:O.min,max:O.max,reversed:u.x.reversed,values:[],...D?{log:!0}:{}}},grid:{x:u.x.gridLines,y:u.y.gridLines},scatterPoints:P,overlays:F,referenceLines:I,referenceLinesV:L,referenceBands:R,yTicks:k.ticks.map((e,r)=>({value:e,y:M(e),label:u.y.labels?ue(e,r,u.y,n,t):``})),xTicks:O.ticks.map((e,i)=>({label:u.x.labels?u.x.formatter?u.x.formatter(e,i):u.x.format?t(e,u.x.format,n):r(e):``,x:j(e)}))}}function tt(e){let{spec:n,series:i,empty:a,width:s,height:c,stacked:l,frame:u,axes:d}=e,f=n.categories.reduce((e,t)=>Math.max(e,t.length),0),p=d.x.labels?Math.min(150,18+f*6.4)+(d.y.title?16:0):12+(d.y.title?16:0),m=8+u.top,h=(d.y.labels?26:8)+(d.x.title?16:0)+u.bottom,g=Math.max(1,s-p-16),_=Math.max(1,c-m-h),y={x:p,y:m,w:g,h:_},x=(n.referenceLines??[]).filter(e=>e.axis!==`x`).map(e=>Number(e.value)).concat((n.referenceBands??[]).filter(e=>e.axis!==`x`).flatMap(e=>[Number(e.from),Number(e.to)])),S=d.y.scale===`log`,C=n.stacked100?b(0,100):ie(i,n.categories,l,x,S,d.y),w=e=>{let t=v(e,C.min,C.max,S);return t===null?NaN:(d.y.reversed&&(t=1-t),o(p+t*g))},T=n.categories.length,E=_/Math.max(1,T),D=E*.2,O=E-D,k=e=>m+E*(d.x.reversed?T-1-e:e)+D/2,A=w(S?C.min:Math.min(Math.max(0,C.min),C.max)),j=[];if(l){let e=n.stacked100?n.categories.map((e,t)=>i.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,t=Array(T).fill(0),r=Array(T).fill(0);for(let a of i)a.values.forEach((i,s)=>{if(!Number.isFinite(i))return;let c=e?i/e[s]*100:i,l,u;c>=0?(l=w(t[s]),u=w(t[s]+c),t[s]+=c):(l=w(r[s]+c),u=w(r[s]),r[s]+=c),!(!Number.isFinite(l)||!Number.isFinite(u))&&j.push({x:Math.min(l,u),y:o(k(s)),w:o(Math.abs(u-l)),h:o(Math.max(1,O)),color:a.colors?.[s]??a.color,label:n.categories[s]??String(s),series:a.label,value:i,index:s,...a.opacity==null?{}:{opacity:a.opacity}})})}else{let e=O/i.length;i.forEach((t,r)=>{t.values.forEach((i,a)=>{if(!Number.isFinite(i)||S&&i<=0)return;let s=w(i);Number.isFinite(s)&&j.push({x:Math.min(s,A),y:o(k(a)+e*r),w:o(Math.max(1,Math.abs(s-A))),h:o(Math.max(1,e-1)),color:t.colors?.[a]??t.color,label:n.categories[a]??String(a),series:t.label,value:i,index:a,...t.opacity==null?{}:{opacity:t.opacity}})})})}let M=C.ticks.map((e,i)=>({label:d.y.labels?n.stacked100?`${r(e)}%`:ue(e,i,d.y,n,t):``,x:w(e)})),N=d.x.labels?n.categories.map((e,t)=>({value:t,y:o(k(t)+O/2),label:e})):[],P=[],F=[];for(let e of n.referenceLines??[]){if(e.axis===`x`){let t=typeof e.value==`number`?e.value:n.categories.indexOf(e.value);if(t<0||!Number.isFinite(t))continue;F.push({y:o(k(t)+O/2),label:e.label??String(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1});continue}let r=Number(e.value),i=w(r);Number.isFinite(i)&&P.push({x:i,label:e.label??t(r,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1})}let I=[];for(let e of n.referenceBands??[]){if(e.axis===`x`){let t=typeof e.from==`number`?e.from:n.categories.indexOf(e.from),r=typeof e.to==`number`?e.to:n.categories.indexOf(e.to);if(t<0||r<0)continue;let i=k(Math.min(t,r))-D/2,a=k(Math.max(t,r))+O+D/2;I.push({x:p,y:o(Math.min(i,a)),w:g,h:o(Math.abs(a-i)),color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`y`});continue}let t=w(Number(e.from)),r=w(Number(e.to));!Number.isFinite(t)||!Number.isFinite(r)||I.push({x:Math.min(t,r),y:m,w:Math.abs(r-t),h:_,color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`x`})}return{...a,plot:y,axes:{y:{min:C.min,max:C.max,log:S,reversed:d.y.reversed},y2:null,slot:E,count:T,xReversed:d.x.reversed,labels:n.categories},grid:{x:d.y.gridLines,y:d.x.gridLines},bars:j,orientation:`horizontal`,valueTicks:M,catTicks:N,referenceLines:F,referenceLinesV:P,referenceBands:I,xLabelRotated:!1}}function nt(e){let{spec:n,series:r,empty:i,width:a,height:s,stacked:c,frame:l,axes:u}=e,d=r.filter(e=>e.axis===`left`),f=r.filter(e=>e.axis===`right`),p=f.length>0,m=n.categories.reduce((e,t)=>Math.max(e,t.length),0),h=n.categoryGroups&&n.categoryGroups.length>0&&u.x.type!==`time`&&n.orientation!==`horizontal`&&n.categoryGroups.reduce((e,t)=>e+t.span,0)===n.categories.length?n.categoryGroups:null,g=h?18:0,_=u.y.width??(u.y.labels?48:12)+(u.y.title?16:0),y=n.seriesLabels?rt(n,r):null,x=y?Math.min(Math.floor(a/3),8+Math.max(0,...y.values())*6.2):0,S=(p?u.y2.width??(u.y2.labels?48:12):12)+(u.y2.title?16:0)+x,C=10+l.top,w=Math.max(1,a-_-S),T=m*6.2+8>w/Math.max(1,n.categories.length),E=Xe(n,u.x,_,w,T),D=$e(n,u.x,E)+(u.x.title?16:0)+g+l.bottom,k=Math.max(1,s-C-D),A={x:_,y:C,w,h:k},j=(n.referenceLines??[]).filter(e=>e.axis!==`x`),M=(n.referenceBands??[]).filter(e=>e.axis!==`x`),N=j.filter(e=>e.axis!==`right`).map(e=>Number(e.value)).concat(M.filter(e=>e.axis!==`right`).flatMap(e=>[Number(e.from),Number(e.to)])),P=j.filter(e=>e.axis===`right`).map(e=>Number(e.value)).concat(M.filter(e=>e.axis===`right`).flatMap(e=>[Number(e.from),Number(e.to)])),F=u.y.scale===`log`,I=u.y2.scale===`log`,L=e=>e.kind===`area`?e.stack?`${e.axis}\u0000${e.stack}`:c?e.axis:null:null,R=[...new Set(r.map(L).filter(e=>e!==null))],ee=n.stackOffset&&n.stackOffset!==`zero`&&!n.stacked100?n.stackOffset:null,te=new Map,z={left:[],right:[]};if(ee)for(let e of R){let t=r.filter(t=>L(t)===e),n=t.map(e=>e.values),i=We(n,ee);te.set(e,i);let a=t[0].axis;i.forEach((e,t)=>{let r=0;for(let e of n)r+=Number.isFinite(e[t])?e[t]:0;z[a].push(e,e+r)})}let B=n.stacked100?b(0,100):ie(d,n.categories,c,N.concat(z.left),F,u.y),V=p?n.stacked100?b(0,100):ie(f,n.categories,c,P.concat(z.right),I,u.y2):null,H=(e,t,n=!1,r=!1)=>{let i=v(t,e.min,e.max,n);return i===null?NaN:(r&&(i=1-i),o(C+k-i*k))},U=e=>H(B,e,F,u.y.reversed),ne=e=>H(V??B,e,I,u.y2.reversed),re=e=>e.axis===`right`?V??B:B,W=e=>e.axis===`right`?I:F,ae=e=>e.axis===`right`?u.y2.reversed:u.y.reversed,G=(e,t)=>H(re(e),t,W(e),ae(e)),oe=n.categories.length,{slot:se,xCenter:ce,ticks:le}=E,de=[];if(h&&!E.values){let e=0;for(let t of h){let n=o(_+se*e),r=o(_+se*(e+t.span));de.push({label:t.label,x0:n,x1:r,xCenter:o((n+r)/2)}),e+=t.span}}let fe=r.filter(e=>e.kind===`bar`||e.kind===`range-bar`||e.kind===`lollipop`||e.kind===`dumbbell`),K=[],pe=[];if(fe.length){let e=n.type===`histogram`,t=e?0:E.barSlot*.2,r=E.barSlot-t,i=e=>E.barX0(e)+t/2,a=[],s=new Map;for(let e of fe){let t=e.kind===`bar`?e.stack??(c?``:null):null;if(t===null){a.push({key:e.label,members:[e],stacked:!1});continue}let n=s.get(t);n||(n={key:t,members:[],stacked:!0},s.set(t,n),a.push(n)),n.members.push(e)}let l=r/a.length;a.forEach((t,r)=>{if(t.stacked)for(let s of[`left`,`right`]){let c=t.members.filter(e=>e.axis===s);if(!c.length)continue;let u=s===`right`?ne:U,d=n.stacked100?n.categories.map((e,t)=>c.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,f=Array(oe).fill(0),p=Array(oe).fill(0);for(let t of c)t.values.forEach((s,c)=>{if(!Number.isFinite(s))return;let m=d?s/d[c]*100:s,h,g;m>=0?(h=u(f[c]+m),g=u(f[c]),f[c]+=m):(h=u(p[c]),g=u(p[c]+m),p[c]+=m),!(!Number.isFinite(h)||!Number.isFinite(g))&&K.push({x:o(i(c)+l*r),y:Math.min(h,g),w:o(Math.max(1,a.length>1?l-+!e:l)),h:o(Math.abs(g-h)),color:t.colors?.[c]??t.color,label:n.categories[c]??String(c),series:t.label,value:s,index:c,...t.opacity==null?{}:{opacity:t.opacity}})})}});let u=a.map((e,t)=>({slot:e,si:t})).filter(({slot:e})=>!e.stacked);if(u.length){let t=l;u.forEach(({slot:r,si:a})=>{let s=r.members[0],c=a,l=re(s),u=W(s),d=u?G(s,l.min):G(s,Math.min(Math.max(0,l.min),l.max)),f=o(Math.min(5,Math.max(2.5,t*.3)));s.values.forEach((r,a)=>{if(!Number.isFinite(r)||u&&r<=0)return;let l=i(a)+t*c,p=G(s,r);if(!Number.isFinite(p))return;let m=s.colors?.[a]??s.color,h=n.categories[a]??String(a);if(s.kind===`lollipop`){pe.push({xCenter:o(l+t/2),y0:d,y1:p,r:f,color:m,label:h,series:s.label,value:r,dumbbell:!1});return}if(s.kind===`dumbbell`||s.kind===`range-bar`){let n=s.lowValues?.[a];if(!Number.isFinite(n)||u&&n<=0)return;let i=G(s,n);if(!Number.isFinite(i))return;if(s.kind===`dumbbell`){pe.push({xCenter:o(l+t/2),y0:i,y1:p,r:f,color:m,color2:s.overlayColor??m,label:h,series:s.label,value:r,value2:n,dumbbell:!0});return}K.push({x:o(l),y:Math.min(p,i),w:o(Math.max(1,t-+!e)),h:o(Math.max(1,Math.abs(p-i))),color:m,label:h,series:s.label,value:r,index:a,lo:n,...s.opacity==null?{}:{opacity:s.opacity}});return}K.push({x:o(l),y:Math.min(p,d),w:o(Math.max(1,t-+!e)),h:o(Math.max(1,Math.abs(p-d))),color:m,label:h,series:s.label,value:r,index:a,...s.opacity==null?{}:{opacity:s.opacity}})})})}}let q=r.filter(e=>e.kind===`candle`),me=[];if(q.length){let e=n.candleColors?.up??`#16a34a`,t=n.candleColors?.down??`#ef4444`,r=Math.max(1,E.barSlot*.7/q.length),i=n.candleStyle??`classic`;q.forEach((a,s)=>{let c=W(a),l=a.ohlc??[],u=i===`heikin-ashi`?Ne(l):l,d=null;u.forEach((l,u)=>{if(!l){d=null;return}if(![l.o,l.h,l.l,l.c].every(Number.isFinite)||c&&(l.o<=0||l.h<=0||l.l<=0||l.c<=0))return;let f=E.barX0(u)+E.barSlot/2-r*q.length/2+r*s,p=G(a,l.o),m=G(a,l.c),h=l.c>=l.o,g=i===`hollow`&&d!=null?l.c>=d:h,_=i===`hollow`?h:g;d=l.c,me.push({x:o(f),w:o(r),xCenter:o(f+r/2),yOpen:p,yClose:m,yHigh:G(a,l.h),yLow:G(a,l.l),bodyY:Math.min(p,m),bodyH:Math.max(1,Math.abs(m-p)),up:g,hollow:_,color:g?e:t,label:n.categories[u]??String(u),series:a.label,o:l.o,h:l.h,l:l.l,c:l.c})})})}let J=r.filter(e=>e.kind===`box`),Y=[];if(J.length){let e=Math.max(1,E.barSlot*.6/J.length);J.forEach((t,r)=>{let i=W(t);(t.boxes??[]).forEach((a,s)=>{if(!a||![a.min,a.q1,a.median,a.q3,a.max].every(Number.isFinite)||i&&a.min<=0)return;let c=E.barX0(s)+E.barSlot/2-e*J.length/2+e*r,l=G(t,a.q1),u=G(t,a.q3);Y.push({x:o(c),w:o(e),xCenter:o(c+e/2),yMin:G(t,a.min),yQ1:l,yMedian:G(t,a.median),yQ3:u,yMax:G(t,a.max),boxY:Math.min(l,u),boxH:Math.max(1,Math.abs(l-u)),outliers:(a.outliers??[]).filter(e=>Number.isFinite(e)&&(!i||e>0)).map(e=>({y:G(t,e),value:e})),color:t.color,label:n.categories[s]??String(s),series:t.label,min:a.min,q1:a.q1,median:a.median,q3:a.q3,max:a.max})})})}let he=[];for(let e of r){if(!e.errors)continue;let t=W(e);e.errors.forEach((r,i)=>{let a=e.values[i];if(!Number.isFinite(a))return;let s=O(r,a);s&&(t&&s.lo<=0||he.push({xCenter:o(E.barX0(i)+E.barSlot/2),yLo:G(e,s.lo),yHi:G(e,s.hi),cap:o(Math.min(6,E.barSlot*.15)),color:e.color,label:n.categories[i]??String(i),series:e.label,lo:s.lo,hi:s.hi}))})}let _e=[],ve=new Map,ye=new Map,be=new Set;for(let e of R)if(ve.set(e,Array(oe).fill(0)),n.stacked100){let t=r.filter(t=>L(t)===e);ye.set(e,n.categories.map((e,n)=>t.reduce((e,t)=>e+Math.abs(Number.isFinite(t.values[n])?t.values[n]:0),0)||1))}for(let e of r){if(e.kind===`bar`||e.kind===`candle`||e.kind===`box`||e.kind===`range-bar`||e.kind===`lollipop`||e.kind===`dumbbell`)continue;let t=re(e),r=W(e),i=t=>G(e,t),a=L(e),s=a!==null,c=e=>ce(e),l,u=null,d=(t,r,i,a)=>{let o={x:c(t),y:i,label:n.categories[t]??String(t),value:r,defined:a},s=qe(e,t);return s&&(o.marker=s),o};if(s){let t=ve.get(a),n=te.get(a);if(n&&!be.has(a)){for(let e=0;e<oe;e+=1)t[e]=n[e]??0;be.add(a)}let r=t.slice(),o=ye.get(a);l=e.values.map((e,n)=>{let r=Number.isFinite(e)?e:0,a=o?r/o[n]*100:r,s=(t[n]??0)+a;return t[n]=s,d(n,e,i(s),Number.isFinite(e))}),u=r.map((e,t)=>({x:c(t),y:i(e)}))}else l=e.values.map((e,t)=>{let n=Number.isFinite(e)&&Number.isFinite(i(e));return d(t,e,n?i(e):NaN,n)});let f=!!e.smooth&&!e.step,p=e.step,m=!!e.connectNulls,h=e.kind===`scatter`?``:ze(l,f,{connectNulls:m,step:p}),g=``;if(e.kind===`range-area`&&l.length){let t=[],n=[];l.forEach((r,a)=>{let o=e.lowValues?.[a];if(!r.defined||!Number.isFinite(o))return;let s=i(o);Number.isFinite(s)&&(t.push({x:r.x,y:r.y}),n.push({x:r.x,y:s}))}),t.length>=2&&(g=Ue(t,n,f,p),h=`${X(t,f,p)} ${X(n,f,p)}`)}else if(e.kind===`area`&&l.length){if(u)g=Ue(l.map(e=>({x:e.x,y:e.y})),u,f,p);else{let e=o(i(r?t.min:Math.min(Math.max(0,t.min),t.max)));g=Be(l,m).map(t=>`${X(t,f,p)} L${t[t.length-1].x},${e} L${t[0].x},${e} Z`).join(` `)}}let _=``;if(e.upperValues?.length===e.values.length&&e.lowerValues?.length===e.values.length){let t=[],n=[];for(let a=0;a<e.values.length;a+=1){let o=e.upperValues[a],s=e.lowerValues[a];!Number.isFinite(o)||!Number.isFinite(s)||r&&(o<=0||s<=0)||(t.push({x:c(a),y:i(o)}),n.push({x:c(a),y:i(s)}))}t.length>=2&&(_=Ue(t,n,f,p))}let v={path:h,areaPath:g,color:e.color,label:e.label,points:l,bandPath:_};e.kind===`range-area`&&(v.range=!0);let y=Je(e);y&&(v.style=y),f&&(v.smooth=!0),p&&(v.step=p),_e.push(v)}let xe=(e,r,i)=>e.ticks.map((a,s)=>({value:a,y:H(e,a,i,r.reversed),label:r.labels?n.stacked100?`${o(a)}%`:ue(a,s,r,n,t):``})),Se=[],Ce=[];for(let e of n.referenceLines??[]){if(e.axis===`x`){let t=Qe(n,E,e.value);if(!Number.isFinite(t))continue;Ce.push({x:t,label:e.label??String(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1});continue}let r=e.axis===`right`,i=r?V??B:B,a=r?I:F,o=Number(e.value),s=H(i,o,a,r?u.y2.reversed:u.y.reversed);Number.isFinite(s)&&Se.push({y:s,label:e.label??t(o,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1})}let we=[];for(let e of n.referenceBands??[]){let t=e.color??`#64748b`,r=e.opacity??.08,i=e.label??``;if(e.axis===`x`){let a=Qe(n,E,e.from),s=Qe(n,E,e.to);if(!Number.isFinite(a)||!Number.isFinite(s))continue;if(!E.continuous){let e=se/2;a<=s?(a-=e,s+=e):(a+=e,s-=e)}we.push({x:o(Math.min(a,s)),y:C,w:o(Math.abs(s-a)),h:k,color:t,opacity:r,label:i,axis:`x`});continue}let a=e.axis===`right`,s=a?V??B:B,c=a?I:F,l=a?u.y2.reversed:u.y.reversed,d=H(s,Number(e.from),c,l),f=H(s,Number(e.to),c,l);!Number.isFinite(d)||!Number.isFinite(f)||we.push({x:_,y:Math.min(d,f),w,h:Math.abs(f-d),color:t,opacity:r,label:i,axis:`y`})}let Te=[];for(let e of r){if(!e.overlay)continue;let t=W(e),r=Ee(e.values,e.overlay,{ohlc:e.ohlc,volumes:e.volumes}),i=r.values,a=e.overlayColor??e.color,o=r=>r.map((r,i)=>{let a=Number.isFinite(r)&&(!t||r>0);return{x:ce(i),y:a?G(e,r):NaN,label:n.categories[i]??String(i),value:r,defined:a}}),s=o(i),c=ze(s,!!e.smooth),l=``,u=/^bb:(\d+):(\d+(?:\.\d+)?)$/.exec(e.overlay);if(u){let{upper:t,lower:n}=ge(e.values,Number(u[1]),Number(u[2])),r=o(t).filter(e=>e.defined),i=o(n).filter(e=>e.defined);r.length>1&&i.length>1&&(l=r.map((e,t)=>`${t?`L`:`M`}${e.x},${e.y}`).join(` `)+` `+i.slice().reverse().map(e=>`L${e.x},${e.y}`).join(` `)+` Z`)}Te.push({path:c,areaPath:``,color:a,label:`${e.label} (${e.overlay})`,points:s,...l?{bandPath:l}:{},...r.r2===void 0?{}:{r2:r.r2},...r.equation?{equation:r.equation}:{}})}if(n.lastPriceLine){let e=n.lastPriceLine===!0?{}:n.lastPriceLine,i=r.find(e=>e.ohlc)??r[0];if(i){let r=-1;for(let e=i.values.length-1;e>=0;--e)if(Number.isFinite(i.values[e])){r=e;break}if(r>=0){let a=i.values[r],o=NaN;for(let e=r-1;e>=0;--e)if(Number.isFinite(i.values[e])){o=i.values[e];break}let s=G(i,a);Number.isFinite(s)&&Se.push({y:s,label:e.label??t(a,n.valueFormat,n),color:e.color??(Number.isFinite(o)&&a<o?`#ef4444`:`#16a34a`),dashed:!0,pill:!0})}}}let De=[];for(let e of n.annotations??[]){let t=null,i=null;if(`category`in e.at){let a=n.categories.indexOf(e.at.category);if(a<0)continue;t=ce(a);let o=e.at.series,s=o?r.find(e=>e.label===o):r[0];if(s){let e=s.values[a];Number.isFinite(e)&&(i=G(s,e))}i??=C+k/2}else{let r=Number.isFinite(e.at.x)?Qe(n,E,e.at.x):NaN;t=Number.isFinite(r)?r:_+w/2,i=Number.isFinite(e.at.y)?H(B,e.at.y,F,u.y.reversed):C+k/2}t!=null&&i!=null&&Number.isFinite(i)&&De.push({x:t,y:i,label:e.label,color:e.color??`#0f172a`,placement:e.placement??`top`,shape:e.shape??`dot`,...e.text?{text:e.text}:{}})}let Oe=[];for(let e of n.drawings??[]){let r=e.axis===`right`,i=r?V??B:B,a=r?I:F,s=r?u.y2.reversed:u.y.reversed,c=[],l=!0;for(let t of e.points){let e=Qe(n,E,t.x),r=H(i,t.y,a,s);if(!Number.isFinite(e)||!Number.isFinite(r)){l=!1;break}c.push({x:o(e),y:r})}if(!l||!c.length)continue;let d=e.color??`#0ea5e9`,f={id:e.id,kind:e.kind,points:c,color:d,...e.text?{text:e.text}:{}};if(e.kind===`fib`&&c.length>=2){let r=e.points[0].y,o=e.points[1].y;f.levels=[0,.236,.382,.5,.618,1].map(e=>{let c=o+(r-o)*e;return{ratio:e,y:H(i,c,a,s),label:`${(e*100).toFixed(1)}% ${t(c,n.valueFormat,n)}`}})}e.kind===`hray`&&(f.label=t(e.points[0].y,n.valueFormat,n)),Oe.push(f)}return{...i,plot:A,axes:{y:{min:B.min,max:B.max,log:F,reversed:u.y.reversed},y2:V?{min:V.min,max:V.max,log:I,reversed:u.y2.reversed}:null,slot:se,count:n.categories.length,...E.continuous?{x:{type:E.continuous,min:E.min,max:E.max,reversed:u.x.reversed,values:E.values??[],...E.log?{log:!0}:{}}}:{},xReversed:u.x.reversed,labels:n.categories},grid:{x:u.x.gridLines,y:u.y.gridLines},bars:K,candles:me,boxes:Y,errorBars:he,stems:pe,lines:_e,yTicks:xe(B,u.y,F),y2Ticks:V?xe(V,u.y2,I):[],hasRightAxis:p,xTicks:le,categoryGroupTicks:de,xLabelRotated:E.rotated,xLabelAngle:E.angle,referenceLines:Se,referenceLinesV:Ce,referenceBands:we,overlays:Te,annotations:De,drawings:Oe,seriesLabels:n.seriesLabels?it(n,_e,A):[]}}function rt(e,t){let n=new Map,r=typeof e.seriesLabels==`object`?e.seriesLabels.formatter:void 0;for(let e of t){if(e.kind!==`line`&&e.kind!==`area`)continue;let t=[...e.values].reverse().find(e=>Number.isFinite(e));t!==void 0&&n.set(e.label,(r?r(e.label,t):e.label).length)}return n}function it(e,t,n){let r=typeof e.seriesLabels==`object`?e.seriesLabels.formatter:void 0,i=[];for(let e of t){let t=[...e.points].reverse().find(e=>e.defined&&Number.isFinite(e.y));t&&i.push({x:o(t.x+6),y:t.y,text:r?r(e.label,t.value):e.label,color:e.color,series:e.label})}i.sort((e,t)=>e.y-t.y);for(let e=1;e<i.length;e+=1)i[e].y=Math.max(i[e].y,i[e-1].y+12);let a=n.y+n.h-2;for(let e=i.length-1;e>=0;--e){let t=e===i.length-1?a:i[e+1].y-12;i[e].y=Math.min(i[e].y,t)}for(let e of i)e.y=o(Math.max(n.y+4,e.y));return i}function at(e){let{spec:n,series:r,empty:i,width:a,height:s,frame:c,axes:l}=e,u=r[0];if(!u||!n.categories.length)return{...i};let d=u.targets??r[1]?.values??[],f=n.bulletRanges??n.gaugeRanges??[],p=n.categories.reduce((e,t)=>Math.max(e,t.length),0),m=l.x.labels?Math.min(150,18+p*6.4):12,h=8+c.top,g=(l.y.labels?26:8)+(l.y.title?16:0)+c.bottom,_=Math.max(1,a-m-16),v=Math.max(1,s-h-g),y={x:m,y:h,w:_,h:v},x=0;for(let e of u.values)Number.isFinite(e)&&e>x&&(x=e);for(let e of d)Number.isFinite(e)&&e>x&&(x=e);for(let e of f)Number.isFinite(e.to)&&e.to>x&&(x=e.to);let S=b(0,x>0?x:1,l.y),C=e=>o(m+(e-S.min)/(S.max-S.min||1)*_),w=n.categories.length,T=v/w,E=T*.25,D=T-E,O=[];n.categories.forEach((e,t)=>{let n=u.values[t],r=d[t],i=o(h+T*t+E/2),a=Number.isFinite(n)?n:0;O.push({x:m,y:i,w:_,h:o(D),measureW:Math.max(0,C(Math.max(S.min,Math.min(S.max,a)))-m),targetX:Number.isFinite(r)?C(Math.max(S.min,Math.min(S.max,r))):null,ranges:f.map(e=>{let t=C(Math.max(S.min,Math.min(S.max,e.from))),n=C(Math.max(S.min,Math.min(S.max,e.to)));return{x:Math.min(t,n),w:Math.abs(n-t),color:e.color}}),color:u.colors?.[t]??u.color,label:e,series:u.label,value:a,target:Number.isFinite(r)?r:null})});let k=S.ticks.map((e,r)=>({label:l.y.labels?ue(e,r,l.y,n,t):``,x:C(e)})),A=l.x.labels?n.categories.map((e,t)=>({value:t,y:o(h+T*t+T/2),label:e})):[];return{...i,plot:y,axes:{y:{min:S.min,max:S.max,log:!1},y2:null,slot:T,count:w,labels:n.categories},grid:{x:l.y.gridLines,y:!1},orientation:`horizontal`,bullets:O,valueTicks:k,catTicks:A,legend:[{label:u.label,color:u.color}]}}function ot(e){let{spec:t,series:n,width:r,height:i,empty:s,frame:c}=e;if(!n.length||!t.categories.length)return{...s};let l=24+c.top,u=24+c.bottom,d=Math.max(1,r-30-30),f=Math.max(1,i-l-u),p={x:30,y:l,w:d,h:f},m=30+d/2,h=l+f/2,g=Math.max(20,Math.min(d,f)/2-20),_=t.categories,v=_.length,y=0;for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>y&&(y=t);y===0&&(y=1);let b=t.yAxis?.min??0,x=t.yAxis?.max??Math.max(y,b+1),S=x>b?x-b:1,C=Array.from({length:5},(e,t)=>b+(t+1)/5*S),w=e=>-Math.PI/2+e/v*Math.PI*2,T=(e,t)=>{let n=Math.max(0,Math.min(1,(t-b)/S)),r=w(e);return{x:o(m+g*n*Math.cos(r)),y:o(h+g*n*Math.sin(r))}},E=_.map((e,t)=>{let n=T(t,x);return{label:e,x:n.x,y:n.y}}),D=n.map((e,n)=>{let r=e.values.map((e,t)=>{let n=T(t,Number.isFinite(e)?e:b);return{x:n.x,y:n.y,value:e,axis:_[t]??``}}),i=r.length?r.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)+` Z`:``,o=t.palette??a;return{label:e.label,color:e.color??o[n%o.length],path:i,points:r}});return{...s,plot:p,radarRings:C,radarAxes:E,radarSeries:D,radarCenter:{cx:m,cy:h,r:g}}}function st(e){let{spec:t,width:n,height:r,empty:i,frame:a}=e,s=t.gaugeMin??0,c=t.gaugeMax??100,l=Math.max(s,Math.min(c,t.gaugeValue??0)),u=t.gaugeTarget,d=n/2,f=Math.max(1,r-a.top-a.bottom),p=a.top+f*.78,m=Math.min(n*.42,f*.65),h=Math.PI,g=2*Math.PI,_=e=>h+(e-s)/(c-s||1)*(g-h),v=(e,t,n)=>{let r=d+n*Math.cos(e),i=p+n*Math.sin(e),a=d+n*Math.cos(t),o=p+n*Math.sin(t);return`M${r},${i} A${n},${n} 0 ${+(t-e>Math.PI)} 1 ${a},${o}`},y=v(h,g,m),b=v(h,_(l),m),x=(t.gaugeRanges??[]).map(e=>({path:v(_(e.from),_(e.to),m-16),color:e.color,from:e.from,to:e.to})),S=null;if(u!=null&&Number.isFinite(u)){let e=_(Math.max(s,Math.min(c,u))),t=m-12,n=m+4;S={x1:d+t*Math.cos(e),y1:p+t*Math.sin(e),x2:d+n*Math.cos(e),y2:p+n*Math.sin(e)}}let C=[];for(let e=0;e<=20;e++){let t=h+e/20*(g-h),n=e%5==0,r=m+9,i=m+(n?17:13);C.push({x1:d+r*Math.cos(t),y1:p+r*Math.sin(t),x2:d+i*Math.cos(t),y2:p+i*Math.sin(t),major:n})}let w=_(l),T=m-14,E=w+Math.PI/2,D=(e,t)=>`${o(d+e*Math.cos(t))},${o(p+e*Math.sin(t))}`,O=`M${D(9,E)} L${D(T,w)} L${D(9,E+Math.PI)} L${D(5,w+Math.PI)} Z`,k=null,A=t.gaugeRanges??[];for(let e of A)if(l>=e.from&&l<e.to){k=e.color;break}if(k==null)for(let e of A)l>=e.from&&l<=e.to&&(k=e.color);return{...i,plot:{x:0,y:0,w:n,h:r},gauge:{cx:d,cy:p,r:m,trackPath:y,valuePath:b,rangePaths:x,target:S,ticks:C,needle:{path:O,hubR:6},valueColor:k,minLabel:{x:d-m,y:p+20},maxLabel:{x:d+m,y:p+20},value:l,min:s,max:c,unit:t.gaugeUnit??``}}}function ct(e){let{spec:t,series:n,empty:r,width:i,height:a,palette:s,frame:c}=e,l=n[0];if(!l)return r;let u=l.values.reduce((e,t)=>e+Math.max(0,t),0)||1,d=Math.max(1,a-c.top-c.bottom),f=c.top+d/2,p=t.dataLabels?.placement===`outside`&&t.dataLabels.show!==!1,m=0,h=0;if(p){let e=-Math.PI/2;t.categories.forEach((t,n)=>{let r=Math.max(0,l.values[n]??0)/u,i=e+r*Math.PI*2/2;if(e+=r*Math.PI*2,r<.015)return;let a=(Math.min(t.length,18)+4)*6.3;Math.cos(i)>=0?h=Math.max(h,a):m=Math.max(m,a)})}let g=p?26+m:10,_=p?26+h:10,v=Math.max(12,Math.min(i,d)*.25),y=(i-g-_)/2,b=Math.max(v,Math.min(d/2-(p?34:10),y)),x=p&&y>=b?g+y:i/2,S=b*Math.min(.9,Math.max(0,t.innerRadius??0)),C=-Math.PI/2,w=l.values.map((e,n)=>{let r=Math.max(0,e)/u,i=C,a=C+r*Math.PI*2;C=a;let c=+(a-i>Math.PI),d=(i+a)/2,p=(b+S)/2||b*.6,m=x+b*Math.cos(i),h=f+b*Math.sin(i),g=x+b*Math.cos(a),_=f+b*Math.sin(a),v;if(r>=.999)v=S?`M${o(x-b)},${o(f)} A${b},${b} 0 1 1 ${o(x+b)},${o(f)} A${b},${b} 0 1 1 ${o(x-b)},${o(f)} ZM${o(x-S)},${o(f)} A${S},${S} 0 1 0 ${o(x+S)},${o(f)} A${S},${S} 0 1 0 ${o(x-S)},${o(f)} Z`:`M${o(x-b)},${o(f)} A${b},${b} 0 1 1 ${o(x+b)},${o(f)} A${b},${b} 0 1 1 ${o(x-b)},${o(f)} Z`;else if(S>0){let e=x+S*Math.cos(i),t=f+S*Math.sin(i),n=x+S*Math.cos(a),r=f+S*Math.sin(a);v=`M${o(m)},${o(h)} A${b},${b} 0 ${c} 1 ${o(g)},${o(_)} L${o(n)},${o(r)} A${S},${S} 0 ${c} 0 ${o(e)},${o(t)} Z`}else v=`M${o(x)},${o(f)} L${o(m)},${o(h)} A${b},${b} 0 ${c} 1 ${o(g)},${o(_)} Z`;let y=t.categories[n]??String(n);return{path:v,color:t.categoryColors?.[y]??l.colors?.[n]??s[n%s.length],label:y,value:e,percent:r*100,cx:o(x+p*Math.cos(d)),cy:o(f+p*Math.sin(d)),arc:{a0:i,a1:a,r:b,ir:S,cx:x,cy:f}}});return p&&lt(w,x,f,b,c.top,c.top+d,i),{...r,slices:w,legend:t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??l.colors?.[n]??s[n%s.length]})),donut:S>0?{cx:o(x),cy:o(f),r:o(S),total:l.values.reduce((e,t)=>e+Math.max(0,t),0)}:null}}function lt(e,t,n,r,i,a,s){let c=e=>Math.max(4,Math.floor((e-r-26)/6.3)-4),l=c(s-t),u=c(t),d=[];for(let t of e){if(!t.arc||t.percent<1.5)continue;let e=(t.arc.a0+t.arc.a1)/2;d.push({slice:t,mid:e,ty:n+Math.sin(e)*(r+16),right:Math.cos(e)>=0})}for(let e of[!0,!1]){let s=d.filter(t=>t.right===e).sort((e,t)=>e.ty-t.ty);for(let e=1;e<s.length;e+=1)s[e].ty=Math.max(s[e].ty,s[e-1].ty+13);let c=a-6;for(let e=s.length-1;e>=0;--e){let t=e===s.length-1?c:s[e+1].ty-13;s[e].ty=Math.min(s[e].ty,t)}for(let e of s)e.ty<i+6&&(e.ty=i+6);for(let i of s){let a=t+Math.cos(i.mid)*(r+2),s=n+Math.sin(i.mid)*(r+2),c=t+Math.cos(i.mid)*(r+12),d=i.ty,f=e?t+r+22:t-r-22;i.slice.callout={x1:o(a),y1:o(s),x2:o(c),y2:o(d),x3:o(f),tx:o(f+(e?4:-4)),ty:o(i.ty),anchor:e?`start`:`end`,maxChars:e?l:u}}}}function Z(e,t,n,r,i,a){let s=Math.PI*2,c=Math.max(0,Math.min(s,a-i));if(c<=0||r<=0)return``;let l=(n,r)=>`${o(e+n*Math.cos(r))},${o(t+n*Math.sin(r))}`;if(c>=s-1e-6){let e=`M${l(r,i)} A${o(r)},${o(r)} 0 1 1 ${l(r,i+Math.PI)} A${o(r)},${o(r)} 0 1 1 ${l(r,i)} Z`;return n<=0?e:`${e} M${l(n,i)} A${o(n)},${o(n)} 0 1 0 ${l(n,i+Math.PI)} A${o(n)},${o(n)} 0 1 0 ${l(n,i)} Z`}let u=+(c>Math.PI);return n<=0?`M${o(e)},${o(t)} L${l(r,i)} A${o(r)},${o(r)} 0 ${u} 1 ${l(r,a)} Z`:`M${l(r,i)} A${o(r)},${o(r)} 0 ${u} 1 ${l(r,a)} L${l(n,a)} A${o(n)},${o(n)} 0 ${u} 0 ${l(n,i)} Z`}function ut(e,t=24){let{width:n,height:r,frame:i}=e,a=Math.max(1,r-i.top-i.bottom),o=n/2,s=i.top+a/2,c=Math.max(10,Math.min(n,a)/2-t);return{cx:o,cy:s,r:c,plot:{x:o-c,y:s-c,w:2*c,h:2*c}}}function dt(e,t,n){return t<=0?e:p([e,n===`dark`?`#111827`:`#ffffff`],Math.min(.6,t*.22))}var Q=-Math.PI/2,$=Math.PI*2;function ft(e){let{spec:t,empty:n,palette:r,theme:i}=e,a=t.tree??t.treemap;if(!a)return{...n};let{cx:s,cy:c,r:l,plot:u}=ut(e,12),d=e=>e.children?.length?e.children.reduce((e,t)=>e+d(t),0):Math.max(0,e.value??0),f=e=>e.children?.length?1+Math.max(...e.children.map(f)):0,p=a.children??[a],m=p.reduce((e,t)=>e+d(t),0);if(m<=0)return{...n,plot:u};let g=Math.max(1,f({name:``,children:p})),_=l*Math.min(.6,Math.max(0,t.innerRadius??.18)),v=(l-_)/g,y=[],b=(e,t,n,a,l,u)=>{let f=e.reduce((e,t)=>e+d(t),0);if(f<=0)return;let p=t;e.forEach((e,m)=>{let g=d(e);if(g<=0)return;let x=(n-t)*g/f,S=e.color??(a===0?r[m%r.length]:l),C=a===0?S:dt(S,a,i),w=_+v*a,T=w+v-1,E=p+x/2,D=(w+T)/2,O=[...u,e.name];y.push({path:Z(s,c,w,T,p,p+x),color:C,textColor:h(C),label:e.name,series:u[u.length-1]??``,value:g,a0:p,a1:p+x,r0:w,r1:T,cx:s,cy:c,depth:a,nodePath:O,lx:o(s+D*Math.cos(E)),ly:o(c+D*Math.sin(E))}),e.children?.length&&b(e.children,p,p+x,a+1,S,O),p+=x})};return b(p,Q,Q+$,0,null,[]),{...n,plot:u,arcs:y,legend:p.map((e,t)=>({label:e.name,color:e.color??r[t%r.length]})),donut:_>0?{cx:o(s),cy:o(c),r:o(_),total:m}:null}}function pt(e){let{spec:t,series:n,empty:r,palette:i}=e;if(!n.length||!t.categories.length)return{...r};let{cx:a,cy:s,r:c,plot:l}=ut(e,12),u=0;for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>u&&(u=t);u<=0&&(u=1);let d=t.categories.length,f=d*n.length,p=c*Math.min(.6,Math.max(0,t.innerRadius??.2)),m=(c-p)/Math.max(1,f),g=Math.min(3,m*.2),_=[];for(let e=0;e<d;e+=1)n.forEach((r,c)=>{let l=r.values[e];if(!Number.isFinite(l)||l<=0)return;let d=e*n.length+c,f=p+m*d+g/2,v=f+m-g,y=Math.min($*.9999,Math.max(0,l)/u*$),b=n.length===1?t.categoryColors?.[t.categories[e]]??r.colors?.[e]??i[e%i.length]:r.colors?.[e]??r.color,x=Q+y/2,S=(f+v)/2;_.push({path:Z(a,s,f,v,Q,Q+y),trackPath:Z(a,s,f,v,Q,Q+$),color:b,textColor:h(b),label:t.categories[e],series:r.label,value:l,a0:Q,a1:Q+y,r0:f,r1:v,cx:a,cy:s,lx:o(a+S*Math.cos(x)),ly:o(s+S*Math.sin(x))})});return{...r,plot:l,arcs:_,legend:n.length===1?t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??i[n%i.length]})):r.legend}}function mt(e){let{spec:t,series:n,empty:r,palette:i,stacked:a}=e;if(!n.length||!t.categories.length)return{...r};let s=t.type===`nightingale`,{cx:c,cy:l,r:u,plot:d}=ut(e,22),f=t.categories.length,p=a||s&&n.length>1,m=0;if(p)for(let e=0;e<f;e+=1){let t=0;for(let r of n)t+=Number.isFinite(r.values[e])?Math.max(0,r.values[e]):0;t>m&&(m=t)}else for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>m&&(m=t);let g=b(0,m>0?m:1,t.yAxis??{}),_=u*Math.min(.5,Math.max(0,t.innerRadius??(s?0:.12))),v=e=>{let t=Math.max(0,Math.min(1,(e-g.min)/(g.max-g.min||1)));return _+(u-_)*(s?Math.sqrt(t):t)},y=$/f,x=s?0:y*.15,S=[];for(let e=0;e<f;e+=1){let r=Q+y*e+x/2,a=Q+y*(e+1)-x/2;if(p){let s=0;n.forEach(u=>{let d=u.values[e];if(!Number.isFinite(d)||d<=0)return;let f=v(s);s+=d;let p=v(s),m=n.length===1?t.categoryColors?.[t.categories[e]]??u.colors?.[e]??i[e%i.length]:u.colors?.[e]??u.color,g=(r+a)/2,_=(f+p)/2;S.push({path:Z(c,l,f,p,r,a),color:m,textColor:h(m),label:t.categories[e],series:u.label,value:d,a0:r,a1:a,r0:f,r1:p,cx:c,cy:l,lx:o(c+_*Math.cos(g)),ly:o(l+_*Math.sin(g))})})}else{let s=(a-r)/n.length;n.forEach((a,u)=>{let d=a.values[e];if(!Number.isFinite(d)||d<=0)return;let f=r+s*u,p=f+s*(n.length>1?.92:1),m=v(d),g=n.length===1?t.categoryColors?.[t.categories[e]]??a.colors?.[e]??i[e%i.length]:a.colors?.[e]??a.color,y=(f+p)/2,b=(_+m)/2;S.push({path:Z(c,l,_,m,f,p),color:g,textColor:h(g),label:t.categories[e],series:a.label,value:d,a0:f,a1:p,r0:_,r1:m,cx:c,cy:l,lx:o(c+b*Math.cos(y)),ly:o(l+b*Math.sin(y))})})}}let C=e.axes.x.labels?t.categories.map((e,t)=>{let n=Q+y*t+y/2,r=u+10;return{label:e,x:o(c+r*Math.cos(n)),y:o(l+r*Math.sin(n))}}):[];return{...r,plot:d,arcs:S,polarAxes:C,polarRings:g.ticks.filter(e=>e>g.min).map(e=>v(e)),radarCenter:{cx:c,cy:l,r:u},legend:n.length===1?t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??i[n%i.length]})):r.legend}}function ht(e){let{spec:t,empty:n,palette:r}=e,i=t.sankeyNodes??[],a=(t.sankeyLinks??[]).filter(e=>Number.isFinite(e.value)&&e.value>0);if(!i.length||!a.length)return{...n};let{cx:s,cy:c,r:l,plot:u}=ut(e,28),d=new Map;for(let e of a)d.set(e.source,(d.get(e.source)??0)+e.value),e.target!==e.source&&d.set(e.target,(d.get(e.target)??0)+e.value);let f=i.filter(e=>(d.get(e.id)??0)>0),p=f.reduce((e,t)=>e+(d.get(t.id)??0),0);if(p<=0)return{...n,plot:u};let m=Math.min(.06,$/(f.length*8)),g=$-m*f.length,_=l-Math.max(8,l*.09),v=[],y=new Map,b=Q;f.forEach((e,t)=>{let n=d.get(e.id)??0,i=g*n/p,a=e.color??r[t%r.length];y.set(e.id,{a0:b,a1:b+i,cursor:b,color:a});let u=b+i/2,f=l+12;v.push({path:Z(s,c,_,l,b,b+i),color:a,textColor:h(a),label:e.label??e.id,series:``,value:n,a0:b,a1:b+i,r0:_,r1:l,cx:s,cy:c,lx:o(s+f*Math.cos(u)),ly:o(c+f*Math.sin(u))}),b+=i+m});let x=(e,t)=>`${o(s+e*Math.cos(t))},${o(c+e*Math.sin(t))}`,S=[],C=(e,t)=>{let n=y.get(e);if(!n)return null;let r=(n.a1-n.a0)*t/(d.get(e)??1),i={a0:n.cursor,a1:n.cursor+r};return n.cursor+=r,i},w=a.slice().sort((e,t)=>t.value-e.value);for(let e of w){let t=C(e.source,e.value),n=e.target===e.source?t:C(e.target,e.value);if(!t||!n)continue;let r=+(t.a1-t.a0>Math.PI),i=+(n.a1-n.a0>Math.PI),a=`M${x(_,t.a0)} A${o(_)},${o(_)} 0 ${r} 1 ${x(_,t.a1)} Q${o(s)},${o(c)} ${x(_,n.a0)} A${o(_)},${o(_)} 0 ${i} 1 ${x(_,n.a1)} Q${o(s)},${o(c)} ${x(_,t.a0)} Z`;S.push({path:a,color:e.color??y.get(e.source).color,source:e.source,target:e.target,value:e.value})}return{...n,plot:u,arcs:v,chordRibbons:S,legend:f.map((e,t)=>({label:e.label??e.id,color:e.color??r[t%r.length]}))}}function gt(e){let{spec:n,series:r,width:i,height:a,empty:s,frame:c,axes:l}=e,u=r[0];if(!u)return{...s};let d=n.waterfallColors??{},f=d.positive??`#16a34a`,p=d.negative??`#ef4444`,m=d.total??`#475569`,h=n.categories.reduce((e,t)=>Math.max(e,t.length),0),g=48+(l.y.title?16:0),_=10+c.top,v=Math.max(1,i-g-12),b=typeof l.x.labelRotation==`number`?l.x.labelRotation!==0:h*6.2+8>v/Math.max(1,n.categories.length),x=typeof l.x.labelRotation==`number`?l.x.labelRotation:b?-40:0,S=(b?54:28)+(l.x.title?16:0)+c.bottom,C=Math.max(1,a-_-S),w={x:g,y:_,w:v,h:C},T=n.waterfallTotals??[],E=[],D=0;n.categories.forEach((e,t)=>{let n=u.values[t]??0;T[t]?(Number.isFinite(n)&&n!==0&&(D=n),E.push({from:0,to:D,value:D,isTotal:!0})):(E.push({from:D,to:D+n,value:n,isTotal:!1}),D+=n)});let O=0,k=0;for(let e of E)e.from<O&&(O=e.from),e.to<O&&(O=e.to),e.from>k&&(k=e.from),e.to>k&&(k=e.to);let A=y(O,k),j=e=>o(_+C-(e-A.min)/(A.max-A.min||1)*C),M=v/Math.max(1,n.categories.length),N=M*.2,P=Math.max(1,M-N),F=E.map((e,t)=>{let r=j(Math.max(e.from,e.to)),i=j(Math.min(e.from,e.to)),a=g+M*t+N/2,s=e.isTotal?m:e.value>=0?f:p;return{x:o(a),y:r,w:o(P),h:Math.max(1,i-r),color:s,label:n.categories[t]??String(t),series:u.label,value:e.value,index:t}}),I=[{path:E.map((e,t)=>{let n=g+M*t+N/2+P,r=j(e.to),i=g+M*(t+1)+N/2;return t<E.length-1?`M${n},${r} L${i},${r}`:``}).filter(Boolean).join(` `),areaPath:``,color:`var(--sg-muted, #94a3b8)`,label:``,points:[]}],L=n.categories.map((e,t)=>({label:e,x:o(g+M*t+M/2)})),R=A.ticks.map(e=>({value:e,y:j(e),label:t(e,n.valueFormat,n)}));return{...s,plot:w,bars:F,lines:I,yTicks:R,xTicks:L,xLabelRotated:b,xLabelAngle:x}}function _t(e){let{spec:t,series:n,width:r,height:i,empty:o,frame:s}=e,c=n[0];if(!c||!c.values.length)return{...o};let l=16+s.top,u=16+s.bottom,d=Math.max(1,r-20-20),f=Math.max(1,i-l-u),p={x:20,y:l,w:d,h:f},m=c.values.length,g=f/m,_=Math.max(...c.values.map(e=>Number.isFinite(e)?e:0)),v=c.values[0]??0,y=e=>_>0?e/_*d:0,b=20+d/2,x=t.palette??a,S=t.funnelShape??`trapezoid`,C=c.values.map((e,n)=>{let r=c.values[n+1]??e*.8,i=l+g*n,a=i+g,o;if(S===`pyramid`){let e=d*n/m,t=d*(n+1)/m;o=`M${b-e/2},${i} L${b+e/2},${i} L${b+t/2},${a} L${b-t/2},${a} Z`}else if(S===`cone`){let e=d*(1-n/m),t=d*(1-(n+1)/m);o=`M${b-e/2},${i} L${b+e/2},${i} L${b+t/2},${a} L${b-t/2},${a} Z`}else{let t=y(e),n=y(r);o=`M${b-t/2},${i} L${b+t/2},${i} L${b+n/2},${a} L${b-n/2},${a} Z`}let s=c.color??x[n%x.length];return{path:o,color:s,label:t.categories[n]??c.label,value:e,conversion:v>0?e/v:0,dropoff:n===0?0:(c.values[n-1]??e)>0?1-e/(c.values[n-1]??e):0,cx:b,cy:(i+a)/2,textColor:h(s)}});return{...o,plot:p,funnelSegments:C}}function vt(e){let{spec:t,width:n,height:r,empty:i,frame:o}=e,s=t.sankeyNodes??[],c=t.sankeyLinks??[];if(!s.length||!c.length)return{...i};let l=14+o.top,u=14+o.bottom,d=Math.max(1,n-10-10),f=Math.max(1,r-l-u),p={x:10,y:l,w:d,h:f},m=t.palette??a,h=new Map(s.map(e=>[e.id,e])),g=new Set(c.map(e=>e.target)),_=s.filter(e=>!g.has(e.id)),v=new Map;function y(e,t,n){if(!n.has(e)){n.add(e),(t>(v.get(e)??0)||!v.has(e))&&v.set(e,t);for(let r of c)r.source===e&&y(r.target,t+1,n);n.delete(e)}}for(let e of _)y(e.id,0,new Set);for(let e of s)v.has(e.id)||v.set(e.id,0);let b=Math.max(...v.values())+1,x=b>1?(d-14*b)/(b-1):0,S=new Map,C=new Map;for(let e of c)S.set(e.target,(S.get(e.target)??0)+e.value),C.set(e.source,(C.get(e.source)??0)+e.value);let w=new Map;for(let e of s){let t=v.get(e.id)??0,n=w.get(t)??[];n.push(e.id),w.set(t,n)}let T=0;for(let e of w.values()){let t=e.reduce((e,t)=>e+Math.max(S.get(t)??0,C.get(t)??0),0);t>T&&(T=t)}if(T===0)return{...i,plot:p};let E=(f-64)/T,D=[];for(let[e,t]of w){let n=t.map(e=>Math.max(8,Math.max(S.get(e)??0,C.get(e)??0)*E)),r=l+(f-(n.reduce((e,t)=>e+t,0)+8*(t.length-1)))/2,i=10+e*(14+x);t.forEach((t,a)=>{let o=h.get(t),s=n[a];D.push({id:t,label:o.label??t,color:o.color??m[D.length%m.length],x:i,y:r,w:14,h:s,column:e,totalIn:S.get(t)??0,totalOut:C.get(t)??0}),r+=s+8})}let O=new Map(D.map(e=>[e.id,e])),k=new Map,A=new Map,j=[],M=c.slice().sort((e,t)=>t.value-e.value);for(let e of M){let t=O.get(e.source),n=O.get(e.target);if(!t||!n)continue;let r=Math.max(1,e.value*E),i=t.y+(A.get(t.id)??0)+r/2,a=n.y+(k.get(n.id)??0)+r/2;A.set(t.id,(A.get(t.id)??0)+r),k.set(n.id,(k.get(n.id)??0)+r);let o=t.x+t.w,s=n.x,c=(o+s)/2,l=`M${o},${i} C${c},${i} ${c},${a} ${s},${a}`;j.push({path:l,color:e.color??t.color,width:r,source:e.source,target:e.target,value:e.value})}return{...i,plot:p,sankeyNodes:D,sankeyLinks:j}}function yt(e){let{spec:n,width:r,height:i,theme:a,empty:o,frame:s}=e,c=n.calendarValues??[];if(!c.length&&!n.calendarStart)return{...o};let l=new Map,u=1/0,d=-1/0;for(let e of c)l.set(e.date,e.value),Number.isFinite(e.value)&&(e.value<u&&(u=e.value),e.value>d&&(d=e.value));u===1/0&&(u=0,d=1),u===d&&(d=u+1);let m=f(n.colorScale,u,d,a),h=e=>p(m,(e-u)/(d-u)),g=c.map(e=>e.date).sort(),_=n.calendarStart??g[0]??`2026-01-01`,v=n.calendarEnd??g[g.length-1]??_,y=new Date(_+`T00:00:00Z`),b=new Date(v+`T00:00:00Z`);y.setUTCDate(y.getUTCDate()-y.getUTCDay()),b.setUTCDate(b.getUTCDate()+(6-b.getUTCDay()));let x=Math.round((b.getTime()-y.getTime())/864e5)+1,S=Math.ceil(x/7),C=26+s.top,w=16+s.bottom,T=Math.max(1,r-36-80),E=Math.max(1,i-C-w),D=Math.floor(T/S),O=Math.floor(E/7),k=Math.max(6,Math.min(D,O)),A={x:36,y:C,w:k*S,h:k*7},j=[],M=-1,N=[];for(let e=0;e<x;e+=1){let t=new Date(y.getTime()+e*864e5),n=Math.floor(e/7),r=e%7,i=t.toISOString().slice(0,10),a=l.has(i),o=l.get(i)??0;j.push({x:36+n*k,y:C+r*k,size:k,date:i,value:o,defined:a,color:a?h(o):`transparent`}),t.getUTCDate()===1&&t.getUTCMonth()!==M&&i>=_&&i<=v&&(M=t.getUTCMonth(),N.push({label:t.toLocaleDateString(void 0,{month:`short`}),x:36+n*k}))}let P=Array.from({length:5},(e,r)=>{let i=r/4,a=bt(u,d,i);return{value:a,color:h(a),label:t(a,n.valueFormat,n)}});return{...o,plot:A,calendarCells:j,calendarMonthTicks:N,calendarLegend:P}}function bt(e,t,n){let r=e+(t-e)*n,i=Math.abs(t-e)/4;if(!(i>0))return r;let a=i>=1?0:Math.min(6,Math.ceil(-Math.log10(i))+1);return Number(r.toFixed(a))}function xt(e){let{spec:n,series:r,width:i,height:a,theme:s,empty:c,frame:l}=e;if(!r.length||!n.categories.length)return{...c,plot:{x:0,y:0,w:i,h:a}};let u=r.reduce((e,t)=>Math.max(e,t.label.length),0),d=12+Math.min(180,Math.max(60,u*7)),m=12+l.top,g=32+l.bottom,_=Math.max(1,i-d-64),v=Math.max(1,a-m-g),y={x:d,y:m,w:_,h:v},b=_/n.categories.length,x=v/r.length,S=1/0,C=-1/0;for(let e of r)for(let t of e.values)Number.isFinite(t)&&(t<S&&(S=t),t>C&&(C=t));S===1/0&&(S=0,C=1),S===C&&(C=S+1);let w=f(n.colorScale,S,C,s),T=e=>p(w,(e-S)/(C-S)),E=[];r.forEach((e,t)=>{e.values.forEach((r,i)=>{if(!Number.isFinite(r))return;let a=T(r);E.push({x:o(d+b*i),y:o(m+x*t),w:o(b),h:o(x),color:a,textColor:h(a),value:r,rowLabel:e.label,colLabel:n.categories[i]??``})})});let O=r.map((e,t)=>({value:t,y:o(m+x*t+x/2),label:e.label})),k=D(n.categories,e=>o(d+b*e+b/2),b,!1),A=Array.from({length:5},(e,r)=>{let i=r/4,a=bt(S,C,i);return{value:a,color:T(a),label:t(a,n.valueFormat,n)}});return{...c,plot:y,heatmapCells:E,heatmapRowTicks:O,heatmapColTicks:k,heatmapLegend:A}}function St(e){let{spec:t,width:n,height:r,empty:i,frame:s}=e,c=t.treemap??t.tree;if(!c)return{...i};let l=4+s.top,u=4+s.bottom,d=Math.max(1,n-4-4),f=Math.max(1,r-l-u),p={x:4,y:l,w:d,h:f},m=t.palette??a,g=[];function _(e){return e.children?.length?e.children.reduce((e,t)=>e+_(t),0):Math.max(0,e.value??0)}function v(e,t,n,r,i,a){if(!e.length||r<=0||i<=0)return;let s=e.map(_),c=s.reduce((e,t)=>e+t,0);if(c<=0)return;let l=e.map((e,t)=>({node:e,value:s[t]})).sort((e,t)=>t.value-e.value),u=t,d=n,f=r,p=i,y=c,b=[],x=(e,t,n,r)=>{if(n<=0)return 1/0;let i=n*r/t,a=0;for(let n of e){let e=n*r/i,o=Math.max(t/e,e/t);o>a&&(a=o)}return a};function S(){if(!b.length)return;let e=b.reduce((e,t)=>e+t.value,0),t=f*p/y,n=f>=p,r=n?p:f,i=e*t/r,s=0;for(let e of b){let r=e.value*t/i,c=n?u:u+s,l=n?d+s:d,f=n?i:r,p=n?r:i,_=e.node.color??m[(a+g.length)%m.length];if(e.node.children?.length){g.push({x:o(c),y:o(l),w:o(f),h:o(p),color:_,textColor:h(_),name:e.node.name,value:e.value,depth:a});let t=Math.min(18,p*.25);v(e.node.children,c+1,l+t,f-2,p-t-1,a+1)}else g.push({x:o(c),y:o(l),w:o(f),h:o(p),color:_,textColor:h(_),name:e.node.name,value:e.value,depth:a});s+=r}n?(u+=i,f-=i):(d+=i,p-=i),y-=e,b=[]}for(let e of l){let t=f*p/y,n=Math.min(f,p),r=b.reduce((e,t)=>e+t.value,0),i=x(b.map(e=>e.value),n,r,t),a=x([...b.map(e=>e.value),e.value],n,r+e.value,t);b.length&&a>i&&S(),b.push(e)}S()}return v(c.children??[c],4,l,d,f,0),{...i,plot:p,treemapCells:g}}function Ct(e,t){let n=e;for(let e of t)if(n=n?.children?.find(t=>t.name===e),!n)return null;return n??null}function wt(e,t){let n=(e,r)=>{for(let i of e.children??[]){let e=[...r,i.name];if(i.name===t)return e;let a=n(i,e);if(a)return a}return null};return n(e,[])}var Tt=new Set([`scatter`,`gauge`,`boxplot`,`histogram`,`range-bar`,`range-area`,`dumbbell`,`bullet`,`candlestick`,`ohlc`]);function Et(e){return!e||Tt.has(e)?`bar`:e}function Dt(e,t,n){let r=e[e.length-1];return r&&t.find(e=>n(e.id)===r)?.id||null}function Ot(e,t,n){let r=[],i=new Map,a=new Map;for(let t of e){let e=i.get(t.category);e===void 0&&(e=r.length,i.set(t.category,e),r.push(t.category));let o=n?t.series??``:`value`,s=a.get(o);s||(s=[],a.set(o,s)),s[e]=(s[e]??0)+t.value}return{type:t,categories:r,series:[...a.entries()].map(([e,t])=>({label:e,values:r.map((e,n)=>t[n]??0)}))}}function kt(e){if(!e)return{};let t=Array.isArray(e.locales)?e.locales[0]:e.locales,n=t?{locale:t}:{};return e.type===`number`?{...n,valueFormat:`number`}:e.type===`currency`?{...n,valueFormat:`currency`,currency:e.currency??`USD`}:e.type===`percent`?e.valueIsPercentPoints?{...n,yAxis:{formatter:e=>`${e}%`}}:{...n,valueFormat:`percent`}:{}}function At(e,t={}){let n=Et(t.type),r=e.rows.filter(e=>e.__pivotKind===`leaf`);r.length||(r=e.rows.filter(e=>e.__pivotKind===`grandTotal`)),r.length||(r=e.rows.slice()),t.maxCategories&&r.length>t.maxCategories&&(r=r.slice(0,t.maxCategories));let i=new Map(e.rows.map(e=>[e.__pivotId,e])),a=e=>String(e.__pivotLabel??``).trim()||`(blank)`,o=r.map(a),s=e=>e.__pivotParentId?i.get(e.__pivotParentId):void 0,c=r.length>0&&r.every(e=>s(e)!==void 0),l;if(c){l=[];let e;for(let t of r){let n=t.__pivotParentId,r=l[l.length-1];r&&n===e?r.span+=1:(l.push({label:a(s(t)),span:1}),e=n)}}let u=[],d=(e,n)=>{for(let r of e??[])!r||r.id===`__pivotRowHeader`||!t.includeTotals&&typeof r.id==`string`&&r.id.startsWith(`pv_group__grand`)||(Array.isArray(r.columns)?d(r.columns,[...n,String(r.header??``)]):typeof r.id==`string`&&u.push({id:r.id,path:n,header:String(r.header??``)}))};d(e.columns,[]);let f=t.includeTotals?u:u.filter(e=>!e.id.includes(`__total`)),p=new Set(f.map(e=>e.header)),m=f.map(e=>({label:e.path.length===0?e.header:p.size>1?[...e.path,e.header].join(` · `):e.path.join(` · `),values:r.map(t=>{let n=t[e.id];return n==null||n===``?NaN:typeof n==`number`?n:Number(n)})})),h=p.size===1&&f.length?f[0].header:``,g=t.yAxisTitle===void 0?h:t.yAxisTitle,_=(t.measures??[]).map(e=>e.format),v=_[0]&&_.every(e=>e&&JSON.stringify(e)===JSON.stringify(_[0]))?_[0]:void 0,y=kt(t.format??v);return{type:n,categories:o,series:m,...l&&l.length>1?{categoryGroups:l}:{},...t.stacked||t.stacked100?{stacked:!0}:{},...t.stacked100?{stacked100:!0}:{},...t.palette?{palette:t.palette}:{},...y,...g?{yAxis:{...y.yAxis,title:g}}:{}}}var jt=e({CHART_RESPONSIVE_PRESETS:()=>Wt,DEFAULT_PALETTE:()=>a,PER_CATEGORY_SERIES_KEYS:()=>de,PER_CATEGORY_SPEC_KEYS:()=>fe,applyChartFormat:()=>Gt,arcPath:()=>Z,atr:()=>Se,binValues:()=>re,bollingerBands:()=>ge,boxStats:()=>k,bucketStart:()=>ne,bucketsToChartSpec:()=>Ot,buildChart:()=>Ft,buildLinePath:()=>ze,chartScales:()=>ae,chartStyleVars:()=>Mt,computeOverlay:()=>Te,computeOverlayFit:()=>Ee,decimateSpec:()=>J,exponentialFit:()=>L,exponentialMovingAverage:()=>B,formatChartValue:()=>t,guessOhlcColumns:()=>Fe,heikinAshi:()=>Ne,indicatorPane:()=>Me,layoutDataLabels:()=>Ye,linearFit:()=>I,linearTrend:()=>i,logarithmicFit:()=>R,lttb:()=>pe,macd:()=>ve,markerPath:()=>Ke,matchResponsiveRules:()=>Nt,minMaxIndices:()=>q,niceLogScale:()=>g,niceScale:()=>y,obv:()=>we,ohlcDirectOptions:()=>Ie,ordinalDateTicks:()=>C,overlayName:()=>Oe,paretoSpec:()=>Rt,pearson:()=>n,percentile:()=>U,pickCategories:()=>K,pickContrastText:()=>h,pivotChartType:()=>Et,pivotFilterColumn:()=>Dt,pivotResultToChartSpec:()=>At,polynomialFit:()=>F,powerFit:()=>ee,rSquared:()=>M,reduceValues:()=>H,regressionFit:()=>De,resampleOhlc:()=>Pe,resolveResponsive:()=>Pt,rowsToBoxSpec:()=>qt,rowsToChartSpec:()=>Lt,rowsToDirectSpec:()=>Kt,rowsToGaugeSpec:()=>Yt,rowsToHistogramSpec:()=>zt,rowsToOhlcSpec:()=>Re,rowsToRangeSpec:()=>Bt,rowsToScatterSpec:()=>Jt,rsi:()=>_e,sampleGradient:()=>p,simpleMovingAverage:()=>z,sliceChartWindow:()=>It,specToCalendar:()=>Ht,specToSankey:()=>Ut,specToTreemap:()=>Vt,splitPanelIndicators:()=>Le,stochastic:()=>Ce,streamBaseline:()=>We,vwap:()=>be,wma:()=>he});function Mt(e){if(!e)return``;let t=[];return e.background&&t.push(`--sg-chart-bg:${e.background}`,`--sg-bg:${e.background}`),e.textColor&&t.push(`--sg-fg:${e.textColor}`,`--sg-muted:${e.textColor}`),e.gridColor&&t.push(`--sg-border:${e.gridColor}`),e.fontSize&&Number.isFinite(e.fontSize)&&e.fontSize>0&&t.push(`--sg-chart-font-scale:${Math.round(e.fontSize/12*1e3)/1e3}`),e.fontFamily&&t.push(`font-family:${e.fontFamily}`),t.join(`;`)}function Nt(e,t,n){return e?.length?e.filter(e=>(e.maxWidth==null||t<=e.maxWidth)&&(e.minWidth==null||t>=e.minWidth)&&(e.maxHeight==null||n<=e.maxHeight)):[]}function Pt(e,t,n){let r=Nt(e.responsive,t,n);if(!r.length)return e;let i=e;for(let e of r){if(!e.spec)continue;let{width:t,height:n,responsive:r,...a}=e.spec,o={...i,...a};for(let e of[`xAxis`,`yAxis`,`y2Axis`])a[e]&&(o[e]={...i[e]??{},...a[e]});i=o}return i}function Ft(e,t=`light`){let n=e.width??520,r=e.height??300,i=Pt(e,n,r);if(i.type===`pareto`)return Ft(Rt(i),t);let o=i.palette??a,s=!!(i.stacked||i.stacked100),c=i.series.map((e,t)=>({...e,values:(e.nullAs??i.nullAs)===`zero`?e.values.map(e=>Number.isFinite(e)?e:0):e.values,color:e.color??o[t%o.length],kind:W(e,i.type),axis:e.axis??`left`})),l=le(i,n,r),u=G(i),d=c.map(e=>({label:e.label,color:e.color})),f={spec:i,theme:t,width:n,height:r,palette:o,stacked:s,series:c,legend:d,empty:{type:i.type,width:n,height:r,plot:{x:0,y:0,w:n,h:r},axes:null,frame:l,grid:{x:!1,y:!1},referenceBands:[],bars:[],candles:[],boxes:[],errorBars:[],stems:[],arcs:[],chordRibbons:[],bullets:[],drawings:[],seriesLabels:[],polarAxes:[],polarRings:[],lines:[],slices:[],yTicks:[],y2Ticks:[],hasRightAxis:!1,xTicks:[],categoryGroupTicks:[],xLabelRotated:!1,xLabelAngle:0,legend:d,donut:null,referenceLines:[],scatterPoints:[],orientation:`vertical`,valueTicks:[],catTicks:[],referenceLinesV:[],overlays:[],annotations:[],heatmapCells:[],heatmapRowTicks:[],heatmapColTicks:[],heatmapLegend:[],funnelSegments:[],radarRings:[],radarAxes:[],radarSeries:[],radarCenter:null,treemapCells:[],calendarCells:[],calendarMonthTicks:[],calendarLegend:[],gauge:null,sankeyNodes:[],sankeyLinks:[]},frame:l,axes:u};return i.type===`waterfall`?gt(f):i.type===`funnel`?_t(f):i.type===`radar`?ot(f):i.type===`calendar`?yt(f):i.type===`gauge`?st(f):i.type===`treemap`?St(f):i.type===`sankey`?vt(f):i.type===`heatmap`?xt(f):i.type===`pie`?ct(f):i.type===`scatter`?et(f):i.type===`sunburst`?ft(f):i.type===`radial-bar`?pt(f):i.type===`radial-column`||i.type===`nightingale`?mt(f):i.type===`chord`?ht(f):i.type===`bullet`?at(f):i.orientation===`horizontal`&&i.type!==`histogram`&&c.length>0&&c.every(e=>e.kind===`bar`)?tt(f):nt(f)}function It(e,t,n){let r=Math.max(0,t),i=Math.min(e.categories.length-1,n);if(i<r)return{...e,categories:[],series:e.series.map(e=>({...e,values:[]}))};let a=Array(i-r+1);for(let e=r;e<=i;e+=1)a[e-r]=e;return K(e,a)}function Lt(e,t){let n=t.reduce??`sum`,r=V(n),i=Array.isArray(t.value)?t.value:[t.value],a=e=>r?H(e.samples,n):n===`count`?e.count:n===`avg`?e.count?e.sum/e.count:0:e.sum,o=[],s=new Map,c=e=>{let t=s.get(e);return t===void 0&&(t=o.length,s.set(e,t),o.push(e)),t},l=new Map,u=e=>{let t=l.get(e);return t||(t=[],l.set(e,t)),t},d=(e,t,n)=>{e.sum+=t,e.count+=1,r&&e.samples.push(t),n!==void 0&&e.rowIds.push(n)},f=()=>({sum:0,count:0,rowIds:[],samples:[]}),p=t.idField!==void 0;for(let n of e){let e=n[t.category],r=t.bucket?ne(e,t.bucket):String(e??``);if(t.bucket&&!r)continue;let a=c(r),o=p?n[t.idField]:void 0;if(t.series){let e=u(String(n[t.series]??``)),r=Number(n[i[0]]),s=e[a]??=f();Number.isFinite(r)&&d(s,r,o)}else for(let e of i){let t=u(e),r=Number(n[e]),i=t[a]??=f();Number.isFinite(r)&&d(i,r,o)}}let m=[...l.entries()].map(([e,n])=>({label:t.series?e:t.seriesLabel&&i.length===1?t.seriesLabel:e,values:o.map((e,t)=>a(n[t]??f())),rowIds:p?o.map((e,t)=>(n[t]?.rowIds??[]).slice()):void 0})),h=o.map((e,t)=>m.reduce((e,n)=>e+(Number.isFinite(n.values[t])?n.values[t]:0),0)),g=t.sort??(t.topN?`value-desc`:t.bucket?`category`:`none`),_=o.map((e,t)=>t);g===`value-desc`?_.sort((e,t)=>h[t]-h[e]):g===`value-asc`?_.sort((e,t)=>h[e]-h[t]):g===`category`&&_.sort((e,t)=>o[e].localeCompare(o[t]));let v,y;if(t.topN&&_.length>t.topN){let e=t.otherLabel??`Other`,n=_.find(t=>o[t]===e),r=_.slice(0,t.topN).filter(e=>e!==n),i=_.filter(e=>!r.includes(e));v=r.map(e=>o[e]).concat(e),y=m.map(e=>({label:e.label,values:r.map(t=>e.values[t]).concat(i.reduce((t,n)=>t+(Number.isFinite(e.values[n])?e.values[n]:0),0)),rowIds:e.rowIds?r.map(t=>e.rowIds[t]).concat([i.flatMap(t=>e.rowIds[t]??[])]):void 0}))}else v=_.map(e=>o[e]),y=m.map(e=>({label:e.label,values:_.map(t=>e.values[t]),rowIds:e.rowIds?_.map(t=>e.rowIds[t]):void 0}));return{type:t.type,categories:v,series:y,width:t.width,height:t.height,stacked:t.stacked,stacked100:t.stacked100,palette:t.palette,...t.bucket?{xType:`ordinal-time`}:{}}}function Rt(e,t=80){let n=e.series[0];if(!n)return{...e,type:`bar`};let r=K(e,e.categories.map((e,t)=>t).sort((e,t)=>(n.values[t]??0)-(n.values[e]??0))),i=r.series[0].values.map(e=>Number.isFinite(e)?Math.max(0,e):0),a=i.reduce((e,t)=>e+t,0)||1,o=0,s=i.map(e=>(o+=e,Math.round(o/a*1e3)/10));return{...r,type:`bar`,series:[{...r.series[0],type:`bar`},{label:`Cumulative %`,values:s,type:`line`,axis:`right`,marker:`circle`,color:r.series[0].overlayColor??`#ef4444`}],y2Axis:{min:0,max:100,tickInterval:25,formatter:e=>`${e}%`,...e.y2Axis??{}},referenceLines:[...e.referenceLines??[],...t>0?[{value:t,axis:`right`,label:`${t}%`,dashed:!0}]:[]]}}function zt(e,t){let n=re(e.map(e=>Number(e[t.value])).filter(Number.isFinite),{bins:t.bins,binWidth:t.binWidth,method:t.method,min:t.min,max:t.max}),r=(t.series?[...new Set(e.map(e=>String(e[t.series]??``)))].map(n=>({label:n,rows:e.filter(e=>String(e[t.series]??``)===n)})):[{label:t.seriesLabel??String(t.value),rows:e}]).map(e=>{let r=Array(n.counts.length).fill(0),i=n.edges[0]??0;for(let a of e.rows){let e=Number(a[t.value]);if(!Number.isFinite(e)||!n.width)continue;let o=Math.floor((e-i)/n.width);o>=r.length&&(o=r.length-1),o<0&&(o=0),r[o]=(r[o]??0)+1}return{label:e.label,values:r}});return{type:`histogram`,categories:n.categories,series:r,binEdges:n.edges,xType:`number`,...t.palette?{palette:t.palette}:{},...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Bt(e,t){let n=[],r=new Set;for(let i of e){let e=String(i[t.category]??``);r.has(e)||(r.add(e),n.push(e))}let i=(t.series?[...new Set(e.map(e=>String(e[t.series]??``)))]:[t.seriesLabel??`${String(t.low)} to ${String(t.high)}`]).map(r=>{let i=Array(n.length).fill(NaN),a=Array(n.length).fill(NaN);for(let o of e){if(t.series&&String(o[t.series]??``)!==r)continue;let e=n.indexOf(String(o[t.category]??``)),s=Number(o[t.low]),c=Number(o[t.high]);e<0||!Number.isFinite(s)||!Number.isFinite(c)||(i[e]=Math.min(s,c),a[e]=Math.max(s,c))}return{label:r,values:a,lowValues:i}});return{type:t.type??`range-bar`,categories:n,series:i,...t.palette?{palette:t.palette}:{},...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Vt(e,t=`Total`){let n=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:0;if(e.series.length<=1){let r=e.series[0];return{name:t,children:e.categories.map((e,t)=>({name:e,value:n(r?.values[t])})).filter(e=>e.value>0)}}return{name:t,children:e.categories.map((t,r)=>({name:t,children:e.series.map(e=>({name:e.label,value:n(e.values[r])})).filter(e=>e.value>0)})).filter(e=>e.children.length>0)}}function Ht(e){let t=e.series[0],n=[];return e.categories.forEach((e,r)=>{let i=Date.parse(e);if(!Number.isFinite(i))return;let a=t?.values[r];typeof a!=`number`||!Number.isFinite(a)||n.push({date:new Date(i).toISOString().slice(0,10),value:a})}),n}function Ut(e){let t=[],n=new Set;return e.categories.forEach((r,i)=>{for(let a of e.series){let e=a.values[i];if(typeof e!=`number`||!Number.isFinite(e)||e<=0)continue;let o=`from:${r}`,s=`to:${a.label}`;o!==s&&(n.add(o),n.add(s),t.push({source:o,target:s,value:e}))}}),{nodes:[...n].map(e=>({id:e,label:e.slice(e.indexOf(`:`)+1)})),links:t}}var Wt={compact:e=>({maxWidth:e,spec:{seriesLabels:!1,dataLabels:{show:!1},xAxis:{labelRotation:90}},legend:!1})};function Gt(e,t){if(!t)return e;let n={...e};t.title!==void 0&&(n.title=t.title||void 0),t.subtitle!==void 0&&(n.subtitle=t.subtitle||void 0),t.caption!==void 0&&(n.caption=t.caption||void 0),t.palette&&(n.palette=t.palette),t.seriesLabels!==void 0&&(n.seriesLabels=t.seriesLabels),t.style&&(n.style={...e.style,...t.style}),t.compactBelow!=null&&t.compactBelow>0&&(n.responsive=[...e.responsive??[],Wt.compact(t.compactBelow)]);let r=(e,t)=>{if(!t)return e;let n={...e};return t.min!==void 0&&(t.min===null?delete n.min:n.min=t.min),t.max!==void 0&&(t.max===null?delete n.max:n.max=t.max),t.title!==void 0&&(n.title=t.title||void 0),t.gridLines!==void 0&&(n.gridLines=t.gridLines),t.format!==void 0&&(n.format=t.format),n};if(t.xAxis){let e={...n.xAxis};t.xAxis.title!==void 0&&(e.title=t.xAxis.title||void 0),t.xAxis.gridLines!==void 0&&(e.gridLines=t.xAxis.gridLines),t.xAxis.labelRotation!==void 0&&(e.labelRotation=t.xAxis.labelRotation),n.xAxis=e}return t.yAxis&&(n.yAxis=r(n.yAxis,t.yAxis)),t.y2Axis&&(n.y2Axis=r(n.y2Axis,t.y2Axis)),t.series&&(n.series=e.series.map(e=>{let n=t.series[e.label];if(!n)return e;let r={...e};return n.color&&(r.color=n.color),n.type&&(r.type=n.type),n.axis&&(r.axis=n.axis),n.marker&&(r.marker=n.marker),n.strokeWidth!==void 0&&(r.strokeWidth=n.strokeWidth),n.dash!==void 0&&(r.dash=n.dash||void 0),n.smooth!==void 0&&(r.smooth=n.smooth),n.stack!==void 0&&(r.stack=n.stack||void 0),r})),n}function Kt(e,t,n){let r=n.category,i=n.value,a=n.series;if(e===`candlestick`||e===`ohlc`){let i=n.ohlc;if(!r||!i)return null;let a=e=>e;return Re(t,{date:r,open:a(i.open),high:a(i.high),low:a(i.low),close:a(i.close),...i.volume?{volume:a(i.volume)}:{},...i.bucket?{bucket:i.bucket}:{},...i.candleStyle?{candleStyle:i.candleStyle}:{},...i.lastPriceLine?{lastPriceLine:!0}:{},type:e})}if(e===`scatter`){let e=n.value2;return!i||!e?null:Jt(t,{x:i,y:e,...a?{series:a}:{},...n.palette?{palette:n.palette}:{}})}if(e===`gauge`)return i?Yt(t,{value:i,...n.reduce?{reduce:n.reduce}:{}}):null;if(e===`boxplot`){if(!r||!i)return null;let e=qt(t,{category:r,value:i,...a?{series:a}:{}});return n.palette&&(e.palette=n.palette),e}if(e===`histogram`)return i?zt(t,{value:i,...a?{series:a}:{},...n.bins?{bins:n.bins}:{},...n.palette?{palette:n.palette}:{}}):null;if(e===`range-bar`||e===`range-area`||e===`dumbbell`){let o=n.value2;if(!r||!i||!o)return null;let s=Lt(t,{type:`bar`,category:r,value:i,...a?{series:a}:{},reduce:n.reduce??`sum`}),c=Lt(t,{type:`bar`,category:r,value:o,...a?{series:a}:{},reduce:n.reduce??`sum`});return{type:e,categories:c.categories,series:c.series.map((e,t)=>({...e,label:a?e.label:`${String(i)} to ${String(o)}`,lowValues:s.series[t]?.values.map((t,n)=>Math.min(t,e.values[n]??t))??[],values:e.values.map((e,n)=>Math.max(e,s.series[t]?.values[n]??e))})),...n.palette?{palette:n.palette}:{}}}if(e===`bullet`){if(!r||!i)return null;let e=Lt(t,{type:`bar`,category:r,value:i,reduce:n.reduce??`sum`}),a=n.value2,o=a?Lt(t,{type:`bar`,category:r,value:a,reduce:n.reduce??`sum`}):null;return{type:`bullet`,categories:e.categories,series:[{...e.series[0],...o?{targets:o.series[0].values}:{}}],...n.palette?{palette:n.palette}:{}}}return null}function qt(e,t){let n=[],r=new Set;for(let i of e){let e=String(i[t.category]??``);r.has(e)||(r.add(e),n.push(e))}let i=[],a=new Set;if(t.series)for(let n of e){let e=String(n[t.series]??``);a.has(e)||(a.add(e),i.push(e))}else i.push(t.seriesLabel??String(t.value));return{type:`boxplot`,categories:n,series:i.map(r=>{let i=n.map(n=>{let i=[];for(let a of e){if(String(a[t.category]??``)!==n||t.series&&String(a[t.series]??``)!==r)continue;let e=a[t.value];if(e==null||e===``)continue;let o=Number(e);Number.isFinite(o)&&i.push(o)}return k(i,t.whisker)});return{label:r,values:i.map(e=>e?e.median:NaN),boxes:i}}),...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Jt(e,t){let n=new Map;for(let r of e){let e=Number(r[t.x]),i=Number(r[t.y]);if(!Number.isFinite(e)||!Number.isFinite(i))continue;let a=t.series?String(r[t.series]??``):t.y,o={x:e,y:i};if(t.r){let e=Number(r[t.r]);Number.isFinite(e)&&(o.r=e)}t.label&&(o.label=String(r[t.label]??``));let s=n.get(a);s?s.push(o):n.set(a,[o])}return{type:`scatter`,categories:[],series:[...n].map(([e,t])=>({label:e,values:[],points:t})),palette:t.palette,width:t.width,height:t.height,xAxisTitle:t.x,yAxisTitle:t.y}}function Yt(e,t){let n=[];for(let r of e){let e=Number(r[t.value]);Number.isFinite(e)&&n.push(e)}let r=H(n,t.reduce??`sum`),i=Number.isFinite(r)?r:0,a=t.min??Math.min(0,i);return{type:`gauge`,categories:[],series:[],gaugeValue:i,gaugeMin:a,gaugeMax:t.max??(i>a?y(a,i).max:a+1),gaugeTarget:t.target,gaugeUnit:t.unit,width:t.width,height:t.height}}export{Me as C,a as D,ae as E,E as O,Ke as S,J as T,Ct as _,Pt as a,ze as b,zt as c,It as d,Ht as f,At as g,Et as h,Nt as i,T as k,Bt as l,Vt as m,Mt as n,qt as o,Ut as p,jt as r,Lt as s,Ft as t,Jt as u,wt as v,Oe as w,Ye as x,Z as y};
1
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{i as t,n,r,t as i}from"./chart-trend-_gDVw3bP.js";var a=[`#2563eb`,`#16a34a`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#0ea5e9`,`#ec4899`,`#14b8a6`];function o(e){return Math.round(e*100)/100}function s(e,t){if(e<=0)return 1;let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}var c=[`#eff6ff`,`#bfdbfe`,`#60a5fa`,`#2563eb`,`#1e3a8a`],l=[`#b91c1c`,`#fca5a5`,`#f1f5f9`,`#93c5fd`,`#1d4ed8`],u=[`#1c2c4d`,`#1d4ed8`,`#3b82f6`,`#60a5fa`,`#bae6fd`],d=[`#f87171`,`#b91c1c`,`#222b3d`,`#1d4ed8`,`#60a5fa`];function f(e,t,n,r=`light`){if(Array.isArray(e)&&e.length>=2)return e;let i=r===`dark`;return e===`diverging`||e==null&&t<0&&n>0?i?d:l:i?u:c}function p(e,t){if(!e.length)return`#888`;let n=Math.max(0,Math.min(1,t));if(e.length===1)return e[0];let r=n*(e.length-1),i=Math.floor(r),a=r-i,o=m(e[i]),s=m(e[Math.min(e.length-1,i+1)]);if(!o||!s)return e[i]??`#888`;let c=(e,t)=>Math.round(e+(t-e)*a),l=e=>e.toString(16).padStart(2,`0`);return`#`+l(c(o.r,s.r))+l(c(o.g,s.g))+l(c(o.b,s.b))}function m(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function h(e){let t=m(e);if(!t)return`#0f172a`;let n=e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*n(t.r)+.7152*n(t.g)+.0722*n(t.b)>.5?`#0f172a`:`#ffffff`}function g(e,t){(!Number.isFinite(e)||e<=0)&&(e=1),(!Number.isFinite(t)||t<=e)&&(t=e*10);let n=Math.floor(Math.log10(e)),r=Math.ceil(Math.log10(t)),i=[];for(let e=n;e<=r;e+=1)i.push(10**e);return{min:10**n,max:10**r,step:10,ticks:i}}function _(e,t){if(!(e>0)||!(t>e))return[];let n=Math.floor(Math.log10(e)),r=Math.ceil(Math.log10(t)),i=r-n<3?[2,5]:[],a=[];for(let o=n;o<=r;o+=1){let n=10**o;for(let r of[1,...i]){let i=n*r;i>=e*.999&&i<=t*1.001&&a.push(i)}}return a}function v(e,t,n,r){return Number.isFinite(e)?r?e<=0||t<=0?null:(Math.log10(e)-Math.log10(t))/(Math.log10(n)-Math.log10(t)):(e-t)/(n-t):null}function y(e,t,n=4){(!Number.isFinite(e)||!Number.isFinite(t))&&(e=0,t=1),e===t&&(e===0?t=1:(e=Math.min(0,e),t=Math.max(0,t)),e===t&&(t=e+1));let r=s(s(t-e,!1)/Math.max(1,n),!0),i=Math.floor(e/r)*r,a=Math.ceil(t/r)*r,c=[];for(let e=i;e<=a+r*.5;e+=r)c.push(o(e));return{min:i,max:a,step:r,ticks:c}}function b(e,t,n={}){let r=n.min??e,i=n.max??t;(!Number.isFinite(r)||!Number.isFinite(i))&&(r=Number.isFinite(r)?r:0,i=Number.isFinite(i)?i:r+1);let a=n.nice!==!1,s=n.tickInterval;if(s&&s>0&&Number.isFinite(s)){a&&n.min==null&&(r=Math.floor(r/s)*s),a&&n.max==null&&(i=Math.ceil(i/s)*s),i<=r&&(i=r+s);let e=[],t=Math.ceil(r/s-1e-9)*s;for(let n=t,r=0;n<=i+s*1e-6&&r<1e3;n+=s,r+=1)e.push(o(n)+0);return{min:r,max:i,step:s,ticks:e}}if(a){let e=y(r,i,n.tickCount??4);if(n.min==null&&n.max==null)return e;let t=n.min??e.min,a=n.max??e.max;return{min:t,max:a,step:e.step,ticks:e.ticks.filter(e=>e>=t-1e-9&&e<=a+1e-9)}}i<=r&&(i=r+1);let c=Math.max(1,Math.round(n.tickCount??4)),l=(i-r)/c,u=Array.from({length:c+1},(e,t)=>o(r+l*t));return{min:r,max:i,step:l,ticks:u}}var x=864e5;function S(e,t,n=6){if(!(t>e))return[e];let r=Math.max(2,n)*1.3,i=t-e,a=[[1,0],[2,0],[7,0],[14,0],[0,1],[0,3],[0,6],[0,12],[0,24],[0,60],[0,120]],[o,s]=a[a.length-1];for(let[e,t]of a)if(i/(e*864e5+t*30.44*864e5)<=r){o=e,s=t;break}let c=new Date(e),l=[];if(o){let n=Date.UTC(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate());for(o>=7&&(n+=(8-new Date(n).getUTCDay())%7*x);n<e;)n+=o*x;for(;n<=t+1;n+=o*x)l.push(n)}else{let n=Math.ceil((c.getUTCFullYear()*12+c.getUTCMonth())/s)*s,r=e=>Date.UTC(Math.floor(e/12),e%12,1);r(n)<e&&(n+=s);for(let e=r(n);e<=t+1;n+=s,e=r(n))l.push(e)}return l.length<2?[e,t]:l}function C(e,t=6){if(e.length<=1)return e.length?[0]:[];let n={day:e=>`${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`,week:e=>Math.floor((Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())/x+3)/7),month:e=>`${e.getUTCFullYear()}-${e.getUTCMonth()}`,year:e=>e.getUTCFullYear()},r=null;for(let i of[`day`,`week`,`month`,`year`]){let a=[],o=null;for(let t=0;t<e.length;t+=1){let r=e[t];if(!Number.isFinite(r))continue;let s=n[i](new Date(r));s!==o&&a.push(t),o=s}if(r=a,a.length<=t*2)break}let i=r??[];if(i.length>t){let e=Math.ceil(i.length/t);i=i.filter((t,n)=>n%e===0)}if(i.length<2){let n=Math.max(1,Math.ceil(e.length/t));i=e.map((e,t)=>t).filter(e=>e%n===0)}return i}function w(e,t){let n=new Date(e);return t<24192e5?n.toLocaleDateString(void 0,{month:`short`,day:`numeric`,timeZone:`UTC`}):t<31104e6?n.toLocaleDateString(void 0,{month:`short`,year:`2-digit`,timeZone:`UTC`}):String(n.getUTCFullYear())}function T(e,t=`day`){let n=new Date(e);return t===`year`?String(n.getUTCFullYear()):t===`month`?n.toLocaleDateString(void 0,{month:`short`,year:`numeric`,timeZone:`UTC`}):n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`})}function E(e){let t=!0,n=!0,r=!1;for(let i of e){if(!Number.isFinite(i))continue;r=!0;let e=new Date(i);if(e.getUTCDate()!==1||e.getUTCHours()!==0){t=!1,n=!1;break}e.getUTCMonth()!==0&&(n=!1)}return r?n?`year`:t?`month`:`day`:`day`}function D(e,t,n,r){let i=Math.max(1,Math.ceil((r?18:60)/Math.max(n,.001))),a=[];for(let n=0;n<e.length;n+=i)a.push({label:e[n],x:t(n)});return a}function O(e,t){if(e==null)return null;if(typeof e==`number`){if(!Number.isFinite(e))return null;let n=Math.abs(e);return{lo:t-n,hi:t+n}}return!Number.isFinite(e.lo)||!Number.isFinite(e.hi)?null:{lo:Math.min(e.lo,e.hi),hi:Math.max(e.lo,e.hi)}}function k(e,t=1.5){let n=e.filter(e=>Number.isFinite(e)).slice().sort((e,t)=>e-t);if(!n.length)return null;let r=e=>{let t=(n.length-1)*e,r=Math.floor(t),i=Math.ceil(t);return r===i?n[r]:n[r]+(n[i]-n[r])*(t-r)},i=r(.25),a=r(.5),o=r(.75),s=i-t*(o-i),c=o+t*(o-i),l=n.filter(e=>e>=s&&e<=c),u=n.filter(e=>e<s||e>c);return{min:l.length?l[0]:n[0],q1:i,median:a,q3:o,max:l.length?l[l.length-1]:n[n.length-1],...u.length?{outliers:u}:{}}}var A=e=>({fitted:e.map(()=>NaN),r2:0,equation:``,predict:()=>NaN}),j=(e,t)=>t?e.map((e,n)=>t[n]??NaN):e.map((e,t)=>t);function M(e,t){let n=0,r=0;for(let i=0;i<e.length;i+=1)Number.isFinite(e[i])&&Number.isFinite(t[i])&&(n+=1,r+=e[i]);if(n<2)return 0;r/=n;let i=0,a=0;for(let n=0;n<e.length;n+=1)!Number.isFinite(e[n])||!Number.isFinite(t[n])||(i+=(e[n]-t[n])**2,a+=(e[n]-r)**2);return a===0?+(i===0):Math.max(0,Math.min(1,1-i/a))}var N=e=>Math.abs(e)>=1e3||Math.abs(e)<.001&&e!==0?e.toExponential(2):String(Math.round(e*1e3)/1e3);function P(e,t){let n=t.length,r=e.map((e,n)=>[...e,t[n]]);for(let e=0;e<n;e+=1){let t=e;for(let i=e+1;i<n;i+=1)Math.abs(r[i][e])>Math.abs(r[t][e])&&(t=i);if(Math.abs(r[t][e])<1e-12)return null;[r[e],r[t]]=[r[t],r[e]];for(let t=0;t<n;t+=1){if(t===e)continue;let i=r[t][e]/r[e][e];for(let a=e;a<=n;a+=1)r[t][a]-=i*r[e][a]}}return r.map((e,t)=>e[n]/e[t])}function F(e,t,n){let r=Math.max(1,Math.min(6,Math.round(t))),i=e.length,a=A(e),o=j(e,n),s=[];for(let t=0;t<i;t+=1)Number.isFinite(e[t])&&Number.isFinite(o[t])&&s.push(t);if(s.length<=r)return a;let c=1/0,l=-1/0;for(let e of s)c=Math.min(c,o[e]),l=Math.max(l,o[e]);n||(c=0,l=Math.max(1,i-1));let u=Math.max(l-c,1e-12),d=e=>2*(e-c)/u-1,f=Array.from({length:r+1},()=>Array(r+1).fill(0)),p=Array(r+1).fill(0);for(let t of s){let n=d(o[t]),i=e[t],a=[1];for(let e=1;e<=2*r;e+=1)a.push(a[e-1]*n);for(let e=0;e<=r;e+=1){p[e]+=a[e]*i;for(let t=0;t<=r;t+=1)f[e][t]+=a[e+t]}}let m=P(f,p);if(!m)return a;let h=e=>{let t=d(e),n=0,i=1;for(let e=0;e<=r;e+=1)n+=m[e]*i,i*=t;return n},g=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(o[t])?h(o[t]):NaN),_=m.map((e,t)=>t===0?N(e):`${N(e)} u^${t}`).reverse(),v=n?`u = 2(x - ${N(c)})/${N(u)} - 1`:`u = 2x/${u} - 1`;return{fitted:g,r2:M(e,g),equation:`y = ${_.join(` + `)} (${v})`,predict:h}}function I(e,t){let n=j(e,t),{slope:r,intercept:i,ok:a}=te(n,e);if(!a)return A(e);let o=e=>r*e+i,s=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(n[t])?o(n[t]):NaN);return{fitted:s,r2:M(e,s),equation:`y = ${N(r)} x + ${N(i)}`,predict:o}}function L(e,t){let n=j(e,t),{slope:r,intercept:i,ok:a}=te(n,e.map(e=>Number.isFinite(e)&&e>0?Math.log(e):NaN));if(!a)return A(e);let o=Math.exp(i),s=e=>o*Math.exp(r*e),c=e.map((e,t)=>Number.isFinite(e)&&e>0&&Number.isFinite(n[t])?s(n[t]):NaN);return{fitted:c,r2:M(e,c),equation:`y = ${N(o)} e^(${N(r)} x)`,predict:s}}function R(e,t){let n=+!t,r=j(e,t).map(e=>e+n>0?Math.log(e+n):NaN),{slope:i,intercept:a,ok:o}=te(r,e);if(!o)return A(e);let s=e=>e+n>0?a+i*Math.log(e+n):NaN,c=e.map((e,t)=>Number.isFinite(e)&&Number.isFinite(r[t])?a+i*r[t]:NaN),l=t?`x`:`x + 1`;return{fitted:c,r2:M(e,c),equation:`y = ${N(a)} + ${N(i)} ln(${l})`,predict:s}}function ee(e,t){let n=+!t,r=j(e,t).map(e=>e+n>0?Math.log(e+n):NaN),{slope:i,intercept:a,ok:o}=te(r,e.map(e=>Number.isFinite(e)&&e>0?Math.log(e):NaN));if(!o)return A(e);let s=Math.exp(a),c=e=>e+n>0?s*(e+n)**+i:NaN,l=e.map((e,t)=>Number.isFinite(e)&&e>0&&Number.isFinite(r[t])?s*Math.exp(i*r[t]):NaN),u=t?`x`:`(x + 1)`;return{fitted:l,r2:M(e,l),equation:`y = ${N(s)} ${u}^${N(i)}`,predict:c}}function te(e,t){let n=0,r=0,i=0,a=0,o=0;for(let s=0;s<t.length;s+=1){let c=e[s],l=t[s];!Number.isFinite(c)||!Number.isFinite(l)||(n+=1,r+=c,i+=l,a+=c*c,o+=c*l)}if(n<2)return{slope:0,intercept:0,ok:!1};let s=n*a-r*r,c=s===0?0:(n*o-r*i)/s;return{slope:c,intercept:(i-c*r)/n,ok:!0}}function z(e,t){if(t<1)return e.slice();let n=Array(e.length).fill(NaN),r=0,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];if(Number.isFinite(o)&&(r+=o,i+=1),a>=t){let n=e[a-t];Number.isFinite(n)&&(r-=n,--i)}a>=t-1&&i>0&&(n[a]=r/i)}return n}function B(e,t){let n=2/(Math.max(1,t)+1),r=Array(e.length).fill(NaN),i=null;for(let t=0;t<e.length;t+=1){let a=e[t];if(!Number.isFinite(a)){r[t]=i??NaN;continue}i=i==null?a:n*a+(1-n)*i,r[t]=i}return r}function V(e){return e!==`sum`&&e!==`avg`&&e!==`count`}function H(e,t){let n=e.length;switch(t){case`count`:return n;case`sum`:{let t=0;for(let n of e)t+=n;return t}case`avg`:{if(!n)return 0;let t=0;for(let n of e)t+=n;return t/n}case`min`:return n?Math.min(...e):NaN;case`max`:return n?Math.max(...e):NaN;case`first`:return n?e[0]:NaN;case`last`:return n?e[n-1]:NaN;case`countDistinct`:return new Set(e).size;case`median`:return U(e,50);default:{let n=/^p(\d+(?:\.\d+)?)$/.exec(t);return n?U(e,Number(n[1])):NaN}}}function U(e,t){let n=e.filter(e=>Number.isFinite(e)).slice().sort((e,t)=>e-t);if(!n.length)return NaN;let r=(n.length-1)*Math.max(0,Math.min(100,t))/100,i=Math.floor(r),a=Math.ceil(r);return i===a?n[i]:n[i]+(n[a]-n[i])*(r-i)}function ne(e,t){let n=e instanceof Date?e.getTime():typeof e==`number`?e:Date.parse(e);if(!Number.isFinite(n))return``;let r=new Date(n),i=r.getUTCFullYear(),a=r.getUTCMonth(),o;switch(t){case`day`:o=new Date(Date.UTC(i,a,r.getUTCDate()));break;case`week`:{let e=(r.getUTCDay()+6)%7;o=new Date(Date.UTC(i,a,r.getUTCDate()-e));break}case`month`:o=new Date(Date.UTC(i,a,1));break;case`quarter`:o=new Date(Date.UTC(i,a-a%3,1));break;default:o=new Date(Date.UTC(i,0,1))}return o.toISOString().slice(0,10)}function re(e,t={}){let n=e.filter(e=>Number.isFinite(e));if(!n.length)return{categories:[],counts:[],edges:[],width:0};let r=t.min??Math.min(...n),i=t.max??Math.max(...n);i<=r&&(i=r+1);let a;if(t.bins&&t.bins>0)a=Math.round(t.bins);else if(t.binWidth&&t.binWidth>0)a=Math.max(1,Math.ceil((i-r)/t.binWidth));else if(t.method===`sqrt`)a=Math.ceil(Math.sqrt(n.length));else if(t.method===`fd`){let e=U(n,75)-U(n,25),t=e>0?2*e/Math.cbrt(n.length):0;a=Math.ceil(t>0?(i-r)/t:Math.log2(n.length)+1)}else a=Math.ceil(Math.log2(n.length)+1);a=Math.max(1,Math.min(1e3,a));let o=t.binWidth&&t.binWidth>0?t.binWidth:(i-r)/a,s=o>=1?0:Math.min(6,Math.ceil(-Math.log10(o))+1),c=e=>Number(e.toFixed(s)),l=[];for(let e=0;e<=a;e+=1)l.push(c(r+e*o));let u=Array(a).fill(0);for(let e of n){let t=Math.floor((e-r)/o);t>=a&&(t=a-1),t<0&&(t=0),u[t]=(u[t]??0)+1}return{categories:u.map((e,t)=>String(c(r+(t+.5)*o))),counts:u,edges:l,width:o}}function W(e,t){let n=e.type??t;return n===`candlestick`||n===`ohlc`||e.ohlc?`candle`:n===`boxplot`||e.boxes?`box`:n===`line`||n===`area`?n:n===`stream`?`area`:n===`range-bar`||n===`range-area`||n===`lollipop`||n===`dumbbell`?n:n===`scatter`&&e.type===`scatter`?`scatter`:`bar`}function ie(e,t,n,r=[],i=!1,a={}){let o=1/0,s=-1/0,c=e=>{Number.isFinite(e)&&(i&&e<=0||(e<o&&(o=e),e>s&&(s=e)))};for(let e of r)c(e);let l=e.filter(e=>e.kind===`bar`||e.kind===`area`),u=e.filter(e=>e.kind===`line`||e.kind===`scatter`||e.kind===`lollipop`);for(let t of e)if(t.kind===`range-bar`||t.kind===`range-area`||t.kind===`dumbbell`){for(let e of t.values)c(e);for(let e of t.lowValues??[])c(e)}let d=new Map;l.forEach((e,t)=>{let r=e.stack?`${e.kind}:${e.stack}`:n?e.kind:`#${t}`,i=d.get(r);i?i.push(e):d.set(r,[e])});for(let e of d.values()){if(e.length===1){for(let t of e[0].values)c(t);continue}for(let n=0;n<t.length;n+=1){let t=0,r=0;for(let i of e){let e=i.values[n]??0;e>=0?t+=e:r+=e}c(t),c(r)}}for(let e of u)for(let t of e.values)c(t);for(let t of e)if(t.kind===`candle`)for(let e of t.ohlc??[])e&&(c(e.h),c(e.l));for(let t of e)if(t.kind===`box`){for(let e of t.boxes??[])if(e){c(e.min),c(e.max);for(let t of e.outliers??[])c(t)}}for(let t of e)t.errors&&t.errors.forEach((e,n)=>{let r=O(e,t.values[n]??0);r&&(c(r.lo),c(r.hi))});if(o===1/0&&(o=+!!i,s=i?10:1),(l.length||e.some(e=>e.kind===`lollipop`))&&!i&&(o=Math.min(o,0),s=Math.max(s,0)),i){let e=g(o,s),t=a.min!=null&&a.min>0?a.min:e.min,n=a.max!=null&&a.max>t?a.max:e.max;return t===e.min&&n===e.max?e:{min:t,max:n,step:e.step,ticks:e.ticks.filter(e=>e>=t&&e<=n)}}return b(o,s,a)}function ae(e){let t=e.axes;if(!t)return null;let{x:n,y:r,w:i,h:a}=e.plot,o=e=>t=>{let n=v(t,e.min,e.max,e.log);return n===null?NaN:(e.reversed&&(n=1-n),r+a-n*a)},s=o(t.y),c=t.y2?o(t.y2):s,l=e=>t=>{let n=a===0?0:(r+a-t)/a;if(e.reversed&&(n=1-n),!e.log)return e.min+n*(e.max-e.min);let i=Math.log10(e.min);return 10**(i+n*(Math.log10(e.max)-i))},u=t.x,d=u&&u.max-u.min||1,f=u?.log&&Math.log10(u.max)-Math.log10(u.min)||1,p=e=>{if(!u||!Number.isFinite(e)||u.log&&e<=0)return NaN;let t=u.log?(Math.log10(e)-Math.log10(u.min))/f:(e-u.min)/d;return u.reversed&&(t=1-t),n+t*i},m=e=>{if(u?.values){let t=u.values[Math.round(e)];if(t!=null&&Number.isFinite(t))return p(t)}let r=n+t.slot*e+t.slot/2;return t.xReversed?n+i-(r-n):r},h=n=>{if(u){if(n instanceof Date)return p(n.getTime());if(typeof n==`number`)return p(n);let t=u.type===`time`?Date.parse(n):Number(n);if(Number.isFinite(t))return p(t);let r=e.xTicks.findIndex(e=>e.label===n);return r>=0?e.xTicks[r].x:NaN}if(typeof n==`number`)return m(n);let r=n instanceof Date?n.toISOString():n,i=t.labels?t.labels.indexOf(r):-1;return i>=0?m(i):NaN},g=e=>{let r=i===0?0:(e-n)/i;return(u?u.reversed:t.xReversed)&&(r=1-r),u?.log?10**(Math.log10(u.min)+r*f):u?u.min+r*d:Math.max(0,Math.min(t.count-1,r*t.count-.5))};return{xOf:m,yOf:(e,t)=>t===`right`?c(e):s(e),xInvert:e=>{if(u?.values){let t=g(e),n=0,r=1/0;return u.values.forEach((e,i)=>{let a=Math.abs(e-t);a<r&&(r=a,n=i)}),n}let r=Math.floor((e-n)/(t.slot||1)),i=t.xReversed?t.count-1-r:r;return Math.max(0,Math.min(t.count-1,i))},yInvert:(e,n)=>n===`right`&&t.y2?l(t.y2)(e):l(t.y)(e),xOfValue:h,xInvertValue:g}}function G(e){let t=e.xAxis??{},n=e.yAxis??{},r=e.y2Axis??{},i=(e,t)=>({...e,type:e.type??t.type,scale:e.scale??t.scale,title:e.title??t.title,gridLines:e.gridLines??t.gridLines,labels:e.labels!==!1,nice:e.nice!==!1,reversed:e.reversed===!0});return{x:i(t,{type:e.xType??`category`,scale:`linear`,title:e.xAxisTitle,gridLines:!1}),y:i(n,{type:`category`,scale:e.yScale??`linear`,title:e.yAxisTitle,gridLines:!0}),y2:i(r,{type:`category`,scale:e.y2Scale??`linear`,title:e.y2AxisTitle,gridLines:!1})}}var oe=22,se=16,ce=16;function le(e,t,n){let r=(e.title??``).trim(),i=(e.subtitle??``).trim(),a=(e.caption??``).trim(),o=0,s=null,c=null;r&&(o+=oe,s={x:t/2,y:o-6,text:r}),i&&(o+=se,c={x:t/2,y:o-4,text:i}),o&&(o+=4);let l=0,u=null;return a&&(l=ce,u={x:8,y:n-5,text:a}),{top:o,bottom:l,title:s,subtitle:c,caption:u}}function ue(e,t,n,r,i){return n.formatter?n.formatter(e,t):i(e,n.format??r.valueFormat,r)}var de=[`values`,`rowIds`,`upperValues`,`lowerValues`,`ohlc`,`boxes`,`errors`,`markers`,`colors`,`lowValues`,`targets`,`volumes`],fe=[`waterfallTotals`];function K(e,t){let n=e=>{if(!e)return;let n=Array(t.length);for(let r=0;r<t.length;r+=1)n[r]=e[t[r]];return n},r=e.series.map(e=>{let t={...e,values:n(e.values)??[]};for(let r of de){if(r===`values`)continue;let i=e[r];i&&(t[r]=n(i))}return t}),i={...e,categories:n(e.categories)??[],series:r};for(let t of fe){let r=e[t];r&&(i[t]=n(r))}return i}function pe(e,t,n){let r=e.length,i=e=>n&&Number.isFinite(n[e])?n[e]:e;if(t>=r||r<=2)return e.map((e,t)=>t);if(t<3)return[0,r-1];let a=[0],o=(r-2)/(t-2),s=0;for(let n=0;n<t-2;n+=1){let t=Math.floor((n+1)*o)+1,c=Math.min(Math.floor((n+2)*o)+1,r),l=0,u=0,d=0;for(let n=t;n<c;n+=1){let t=e[n];Number.isFinite(t)&&(l+=i(n),u+=t,d+=1)}d?(l/=d,u/=d):(l=(i(t)+i(Math.min(c,r-1)))/2,u=e[s]);let f=Math.floor(n*o)+1,p=Math.min(Math.floor((n+1)*o)+1,r),m=i(s),h=Number.isFinite(e[s])?e[s]:0,g=-1,_=-1;for(let t=f;t<p;t+=1){let n=e[t];if(!Number.isFinite(n))continue;let r=Math.abs((m-l)*(n-h)-(m-i(t))*(u-h));r>_&&(_=r,g=t)}g<0&&(g=f),a.push(g),s=g}return a.push(r-1),a}function q(e,t){let n=e.length;if(t>=n||n<=2)return e.map((e,t)=>t);let r=new Set([0,n-1]),i=n/Math.max(1,t);for(let a=0;a<t;a+=1){let t=Math.floor(a*i),o=Math.min(n,Math.floor((a+1)*i)),s=-1,c=-1;for(let n=t;n<o;n+=1){let t=e[n];Number.isFinite(t)&&((s<0||t<e[s])&&(s=n),(c<0||t>e[c])&&(c=n))}s>=0&&r.add(s),c>=0&&r.add(c)}return[...r].sort((e,t)=>e-t)}function me(e,t){if(e===!1)return null;let n=typeof e==`object`?e:{},r=Math.max(8,Math.round(n.target??t));return{method:n.method??`lttb`,target:r,threshold:Math.max(r,Math.round(n.threshold??r))}}function J(e,t,n=e.decimate){let r=me(n,t);if(!r)return e;let i=e.categories.length;if(i<=r.threshold||!e.series.length)return e;let a=e=>e===`line`||e===`area`;if(!a(e.type)&&!e.series.every(e=>a(e.type))||e.series.some(e=>e.type&&!a(e.type)||e.ohlc||e.boxes))return e;let o=(e.xAxis?.type??e.xType)===`number`,s=o&&e.xAxis?.scale===`log`,c=o?e.categories.map(e=>{let t=Number(e);return s?t>0?Math.log10(t):NaN:t}):void 0,l=new Set;for(let t of e.series){let e=r.method===`minmax`?q(t.values,Math.floor(r.target/2)):pe(t.values,r.target,c);for(let t of e)l.add(t)}let u=[...l].sort((e,t)=>e-t);return u.length>=i?e:K(e,u)}var Y=e=>Array(e).fill(NaN);function he(e,t){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n),a=r*(r+1)/2;for(let t=r-1;t<n;t+=1){let n=0,o=!0;for(let i=0;i<r;i+=1){let a=e[t-i];if(!Number.isFinite(a)){o=!1;break}n+=a*(r-i)}o&&(i[t]=n/a)}return i}function ge(e,t=20,n=2){let r=e.length,i=Math.max(1,Math.floor(t)),a=z(e,i),o=Y(r),s=Y(r);for(let t=i-1;t<r;t+=1){let r=a[t];if(!Number.isFinite(r))continue;let c=0,l=0;for(let n=t-i+1;n<=t;n+=1){let t=e[n];Number.isFinite(t)&&(c+=(t-r)*(t-r),l+=1)}let u=l?Math.sqrt(c/l):0;o[t]=r+n*u,s[t]=r-n*u}return{middle:a,upper:o,lower:s}}function _e(e,t=14){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n);if(n<=r)return i;let a=0,o=0;for(let t=1;t<=r;t+=1){let n=e[t]-e[t-1];n>0?a+=n:o-=n}let s=a/r,c=o/r,l=(e,t)=>t===0?100:100-100/(1+e/t);i[r]=l(s,c);for(let t=r+1;t<n;t+=1){let n=e[t]-e[t-1];s=(s*(r-1)+(n>0?n:0))/r,c=(c*(r-1)+(n<0?-n:0))/r,i[t]=l(s,c)}return i}function ve(e,t=12,n=26,r=9){let i=e.length,a=B(e,t),o=B(e,n),s=Y(i);for(let e=n-1;e<i;e+=1)s[e]=a[e]-o[e];let c=Y(i),l=Y(i),u=2/(Math.max(1,r)+1),d=null,f=0;for(let e=0;e<i;e+=1){let t=s[e];Number.isFinite(t)&&(f+=1,d=d==null?t:u*t+(1-u)*d,f>=r&&(c[e]=d,l[e]=t-d))}return{macd:s,signal:c,histogram:l}}var ye=e=>(e.h+e.l+e.c)/3;function be(e,t){let n=e.length,r=Y(n),i=0,a=0;for(let o=0;o<n;o+=1){let n=e[o],s=t[o];if(!n||!Number.isFinite(s)){r[o]=a>0?i/a:NaN;continue}i+=ye(n)*s,a+=s,r[o]=a>0?i/a:NaN}return r}function xe(e,t){let n=e[t];if(!n)return NaN;let r=t>0?e[t-1]:null;return r?Math.max(n.h-n.l,Math.abs(n.h-r.c),Math.abs(n.l-r.c)):n.h-n.l}function Se(e,t=14){let n=e.length,r=Math.max(1,Math.floor(t)),i=Y(n);if(n<r)return i;let a=0;for(let t=0;t<r;t+=1){let n=xe(e,t);if(!Number.isFinite(n))return i;a+=n}let o=a/r;i[r-1]=o;for(let t=r;t<n;t+=1){let n=xe(e,t);if(!Number.isFinite(n)){i[t]=NaN;continue}o=(o*(r-1)+n)/r,i[t]=o}return i}function Ce(e,t=14,n=3){let r=e.length,i=Math.max(1,Math.floor(t)),a=Y(r);for(let t=i-1;t<r;t+=1){let n=-1/0,r=1/0,o=!0;for(let a=t-i+1;a<=t;a+=1){let t=e[a];if(!t){o=!1;break}t.h>n&&(n=t.h),t.l<r&&(r=t.l)}let s=e[t]?.c;!o||s==null||(a[t]=n===r?50:(s-r)/(n-r)*100)}let o=Math.max(1,Math.floor(n)),s=Y(r);for(let e=o-1;e<r;e+=1){let t=0,n=!0;for(let r=e-o+1;r<=e;r+=1){if(!Number.isFinite(a[r])){n=!1;break}t+=a[r]}n&&(s[e]=t/o)}return{k:a,d:s}}function we(e,t){let n=e.length,r=Y(n),i=0;for(let a=0;a<n;a+=1){let n=t[a];if(!Number.isFinite(e[a])||!Number.isFinite(n)){r[a]=i;continue}a>0&&Number.isFinite(e[a-1])&&(e[a]>e[a-1]?i+=n:e[a]<e[a-1]&&(i-=n)),r[a]=i}return r}function Te(e,t,n){return Ee(e,t,n).values}function Ee(e,t,n){let r=e=>e.equation?{values:e.fitted,r2:e.r2,equation:e.equation}:{values:e.fitted},i=De(e,t);return i?r(i):{values:ke(e,t,n)}}function De(e,t,n){if(t===`linear`)return I(e,n);if(t===`exp`)return L(e,n);if(t===`log`)return R(e,n);if(t===`power`)return ee(e,n);let r=/^poly:(\d+)$/.exec(t);return r?F(e,Number(r[1]),n):null}function Oe(e){let t=/^(sma|ema|wma|bb|poly):(\d+)/.exec(e);return t?`${t[1]===`poly`?`poly`:t[1].toUpperCase()} ${t[2]}`:e===`linear`?`trend`:e}function ke(e,t,n){if(t===`vwap`)return n?.ohlc&&n.volumes?be(n.ohlc,n.volumes):e.map(()=>NaN);let r=/^bb:(\d+):(\d+(?:\.\d+)?)$/.exec(t);if(r)return ge(e,Number(r[1]),Number(r[2])).middle;let i=/^(sma|ema|wma):(\d+)$/.exec(t);if(!i)return e.map(()=>NaN);let a=Number(i[2]);return i[1]===`wma`?he(e,a):i[1]===`ema`?B(e,a):z(e,a)}function Ae(e,t){return t.source?e.series.find(e=>e.label===t.source)??null:e.series.find(e=>e.ohlc)??e.series[0]??null}function je(e){return e.ohlc?e.ohlc.map(e=>e?e.c:NaN):e.values.slice()}function Me(e,t){let n=Ae(e,t),r=e.categories.length,i=n?je(n):Y(r),a=n?.ohlc??i.map(e=>Number.isFinite(e)?{o:e,h:e,l:e,c:e}:null),o=n?.volumes??Y(r),s=t.params??{},c={categories:e.categories,xType:e.xType,xAxis:e.xAxis,height:t.height??Math.max(90,Math.round((e.height??300)/3)),palette:e.palette,valueFormat:`number`,locale:e.locale},l=e=>e.map(([e,t])=>({value:e,label:t,dashed:!0}));switch(t.kind){case`rsi`:{let e=s.period??14;return{...c,type:`line`,title:`RSI ${e}`,series:[{label:`RSI ${e}`,values:_e(i,e),marker:`none`}],yAxis:{min:0,max:100,tickInterval:50,nice:!1},referenceLines:l([[30,`30`],[70,`70`]])}}case`stochastic`:{let e=s.period??14,t=s.smooth??3,{k:n,d:r}=Ce(a,e,t);return{...c,type:`line`,title:`Stochastic ${e}, ${t}`,series:[{label:`%K`,values:n,marker:`none`},{label:`%D`,values:r,marker:`none`,dash:[4,3]}],yAxis:{min:0,max:100,tickInterval:50,nice:!1},referenceLines:l([[20,`20`],[80,`80`]])}}case`macd`:{let e=s.fast??12,t=s.slow??26,n=s.signal??9,r=ve(i,e,t,n);return{...c,type:`bar`,title:`MACD ${e}, ${t}, ${n}`,series:[{label:`Histogram`,values:r.histogram,colors:r.histogram.map(e=>e<0?`#ef4444`:`#16a34a`)},{label:`MACD`,values:r.macd,type:`line`,marker:`none`},{label:`Signal`,values:r.signal,type:`line`,marker:`none`,dash:[4,3]}],referenceLines:l([[0,``]])}}case`atr`:{let e=s.period??14;return{...c,type:`line`,title:`ATR ${e}`,series:[{label:`ATR ${e}`,values:Se(a,e),marker:`none`}],yAxis:{min:0}}}case`obv`:return{...c,type:`line`,title:`OBV`,series:[{label:`OBV`,values:we(i,o),marker:`none`}],valueFormat:`compact`};default:{let e=a.map((e,t)=>{if(!e)return null;let n=t>0?a[t-1]:null;return(n?e.c>=n.c:e.c>=e.o)?`#16a34a`:`#ef4444`});return{...c,type:`bar`,title:`Volume`,series:[{label:`Volume`,values:o.slice(),colors:e}],yAxis:{min:0},valueFormat:`compact`}}}}function Ne(e){let t=Array(e.length),n=null;for(let r=0;r<e.length;r+=1){let i=e[r];if(!i||![i.o,i.h,i.l,i.c].every(Number.isFinite)){t[r]=null,n=null;continue}let a=(i.o+i.h+i.l+i.c)/4,o=n?(n.o+n.c)/2:(i.o+i.c)/2,s={o,c:a,h:Math.max(i.h,o,a),l:Math.min(i.l,o,a)};t[r]=s,n=s}return t}function Pe(e,t,n){let r=new Map,i=[];for(let a=0;a<e.length;a+=1){let o=Date.parse(e[a]);if(!Number.isFinite(o))continue;let s=ne(o,n.bucket);if(!s)continue;let c=r.get(s);c||(c={bar:null,vol:0,first:1/0,last:-1/0},r.set(s,c),i.push([s,Date.parse(s)]));let l=t[a];l&&(c.bar?(c.bar.h=Math.max(c.bar.h,l.h),c.bar.l=Math.min(c.bar.l,l.l),o>=c.last&&(c.bar.c=l.c),o<=c.first&&(c.bar.o=l.o)):c.bar={...l},o>c.last&&(c.last=o),o<c.first&&(c.first=o));let u=n.volumes?.[a];Number.isFinite(u)&&(c.vol+=u)}return i.sort((e,t)=>e[1]-t[1]),{categories:i.map(([e])=>e),ohlc:i.map(([e])=>r.get(e).bar),...n.volumes?{volumes:i.map(([e])=>r.get(e).vol)}:{}}}function Fe(e,t){let n=t=>e.find(e=>t.test(e.field)||t.test(e.label))?.id??null;return{open:t?.open??n(/open/i),high:t?.high??n(/high/i),low:t?.low??n(/low/i),close:t?.close??n(/close|last|price/i),volume:t?.volume??n(/vol/i)}}function Ie(e,t,n,r){let i=e(t),a=e(n.open),o=e(n.high),s=e(n.low),c=e(n.close);if(!i||!a||!o||!s||!c)return null;let l=e(n.volume);return{category:i,ohlc:{open:a,high:o,low:s,close:c,...l?{volume:l}:{},...r.bucket?{bucket:r.bucket}:{},...r.candleStyle?{candleStyle:r.candleStyle}:{},lastPriceLine:!0}}}function Le(e){let t={sma:`sma:20`,ema:`ema:20`,bb:`bb:20:2`,vwap:`vwap`},n=[],r=null;for(let i of e){let e=t[i];if(e){r??=e;continue}(i===`volume`||i===`rsi`||i===`macd`||i===`stochastic`||i===`atr`||i===`obv`)&&n.push({kind:i})}return{panes:n,overlay:r}}function Re(e,t){let n=e=>typeof e==`number`?e:Number(e),r=e.map(e=>({r:e,t:Date.parse(String(e[t.date]))})).filter(e=>Number.isFinite(e.t)).sort((e,t)=>e.t-t.t),i=r.map(e=>new Date(e.t).toISOString().slice(0,10)),a=r.map(({r:e})=>{let r={o:n(e[t.open]),h:n(e[t.high]),l:n(e[t.low]),c:n(e[t.close])};return[r.o,r.h,r.l,r.c].every(Number.isFinite)?r:null}),o=t.volume?r.map(({r:e})=>n(e[t.volume])):void 0;if(t.bucket){let e=Pe(i,a,{bucket:t.bucket,volumes:o});i=e.categories,a=e.ohlc,o=e.volumes}let s={label:t.label??`Price`,values:a.map(e=>e?e.c:NaN),ohlc:a,...o?{volumes:o}:{}};return{type:t.type??`candlestick`,categories:i,series:[s],xType:`ordinal-time`,...t.candleStyle?{candleStyle:t.candleStyle}:{},...t.lastPriceLine?{lastPriceLine:!0}:{}}}function ze(e,t,n={}){return Be(e,!!n.connectNulls).map(e=>X(e,t,n.step)).filter(Boolean).join(` `)}function Be(e,t){let n=[],r=[];for(let i of e)i.defined?r.push({x:i.x,y:i.y}):r.length&&!t&&(n.push(r),r=[]);return r.length&&n.push(r),n}function X(e,t,n){return e.length?n?Ve(He(e,n)):t?Ge(e):Ve(e):``}function Ve(e){return e.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)}function He(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(r>0){let a=e[r-1];if(t===`before`)n.push({x:a.x,y:i.y});else if(t===`after`)n.push({x:i.x,y:a.y});else{let e=o((a.x+i.x)/2);n.push({x:e,y:a.y},{x:e,y:i.y})}}n.push(i)}return n}function Ue(e,t,n,r){return!e.length||!t.length?``:`${X(e,n,r)} ${X(t.slice().reverse(),n,r).replace(/^M/,`L`)} Z`}function We(e,t){let n=e.length,r=e[0]?.length??0,i=Array(r).fill(0);if(!n||!r||t===`zero`)return i;let a=(t,n)=>{let r=e[t][n];return Number.isFinite(r)?r:0};if(t===`silhouette`){for(let e=0;e<r;e+=1){let t=0;for(let r=0;r<n;r+=1)t+=a(r,e);i[e]=-t/2}return i}let o=0;for(let e=1;e<r;e+=1){let t=0,r=0;for(let i=0;i<n;i+=1){let n=a(i,e),o=(n-a(i,e-1))/2;for(let t=0;t<i;t+=1)o+=a(t,e)-a(t,e-1);t+=n,r+=o*n}i[e-1]=o,t&&(o-=r/t)}return i[r-1]=o,i}function Ge(e){let t=e.length;if(t===0)return``;if(t===1)return`M${e[0].x},${e[0].y}`;if(t===2)return`M${e[0].x},${e[0].y} L${e[1].x},${e[1].y}`;let n=Array(t-1),r=Array(t-1);for(let i=0;i<t-1;i+=1){let t=e[i+1].x-e[i].x;n[i]=t,r[i]=t===0?0:(e[i+1].y-e[i].y)/t}let i=Array(t);i[0]=r[0],i[t-1]=r[t-2];for(let e=1;e<t-1;e+=1)r[e-1]*r[e]<=0?i[e]=0:i[e]=(r[e-1]+r[e])/2;for(let e=0;e<t-1;e+=1){if(r[e]===0){i[e]=0,i[e+1]=0;continue}let t=i[e]/r[e],n=i[e+1]/r[e],a=Math.hypot(t,n);a>3&&(i[e]=3/a*t*r[e],i[e+1]=3/a*n*r[e])}let a=`M${e[0].x},${e[0].y}`;for(let r=0;r<t-1;r+=1){let t=n[r],o=e[r].x+t/3,s=e[r].y+i[r]*t/3,c=e[r+1].x-t/3,l=e[r+1].y-i[r+1]*t/3;a+=` C${o},${s} ${c},${l} ${e[r+1].x},${e[r+1].y}`}return a}function Ke(e,t,n,r){let i=Math.max(.5,r);switch(e){case`square`:return`M${o(t-i)},${o(n-i)} h${o(2*i)} v${o(2*i)} h${o(-2*i)} Z`;case`diamond`:return`M${o(t)},${o(n-i*1.3)} L${o(t+i*1.3)},${o(n)} L${o(t)},${o(n+i*1.3)} L${o(t-i*1.3)},${o(n)} Z`;case`triangle`:return`M${o(t)},${o(n-i*1.2)} L${o(t+i*1.2)},${o(n+i)} L${o(t-i*1.2)},${o(n+i)} Z`;case`cross`:return`M${o(t-i)},${o(n-i)} L${o(t+i)},${o(n+i)} M${o(t-i)},${o(n+i)} L${o(t+i)},${o(n-i)}`;default:return``}}function qe(e,t){let n=typeof e.marker==`string`?{shape:e.marker}:e.marker??{},r=e.markers?.[t]??void 0,i=r?.color??n.color??e.colors?.[t]??void 0,a=r?.shape??n.shape,o=r?.size??n.size;if(a==null&&o==null&&i==null)return;let s={};return a!=null&&(s.shape=a),o!=null&&(s.size=o),i!=null&&(s.color=i),s}function Je(e){let t={},n=!1;if(e.strokeWidth!=null&&(t.strokeWidth=e.strokeWidth,n=!0),e.dash!=null&&(t.dash=Array.isArray(e.dash)?e.dash.join(` `):e.dash,n=!0),e.opacity!=null&&(t.opacity=e.opacity,n=!0),e.gradient){let r=e.gradient===!0?{}:e.gradient;t.gradient={from:r.from??e.color,to:r.to??`transparent`},n=!0}return n?t:void 0}function Ye(e,t,n,r={}){if(t.show===!1)return[];let i=[],a=r.share?new Map:null;if(a)for(let t of e.bars){let e=t.index===void 0?t.label:String(t.index);a.set(e,(a.get(e)??0)+Math.abs(t.value))}let o=e=>{let t=a.get(e.index===void 0?e.label:String(e.index))||0;return t?`${Math.round(Math.abs(e.value)/t*100)}%`:``},s=(e,r,i,s)=>t.formatter?t.formatter(e,{category:r,series:i}):a&&s?o(s):n(e,i),c=e.orientation===`horizontal`,l=t.placement??(r.stacked?`inside`:c?`outside`:`top`),u=l===`inside`||l===`center`;for(let t of e.bars){let e=s(t.value,t.label,t.series,t);if(e){if(c){if(u){if(t.w<=18||t.h<8)continue;i.push({x:t.x+t.w/2,y:t.y+t.h/2+3,text:e,anchor:`middle`,onBar:!0,series:t.series})}else{if(t.h<8)continue;let n=t.value>=0;i.push({x:n?t.x+t.w+3:t.x-3,y:t.y+t.h/2+3,text:e,anchor:n?`start`:`end`,onBar:!1,series:t.series})}}else if(u){if(t.h<=13||t.w<14)continue;i.push({x:t.x+t.w/2,y:t.y+t.h/2+3,text:e,anchor:`middle`,onBar:!0,series:t.series})}else{if(t.w<6)continue;let n=t.value>=0;i.push({x:t.x+t.w/2,y:n?t.y-3:t.y+t.h+11,text:e,anchor:`middle`,onBar:!1,series:t.series})}}}if(!r.dense)for(let t of e.lines)for(let e of t.points){if(!e.defined)continue;let n=s(e.value,e.label,t.label);n&&i.push({x:e.x,y:u?e.y+3:e.y-7,text:n,anchor:`middle`,onBar:!1,series:t.label})}let d=t.rotation??0;if(d)for(let e of i)e.angle=d;if(t.hideOverlap===!1&&!t.connector)return i;let f=[],p=Math.abs(d)>=45,m=e=>{let t=e.text.length*5.6+2,n=p?10:t,r=p?t:11,i=e.anchor===`middle`?e.x-n/2:e.anchor===`end`?e.x-n:e.x,a=p?e.y-r:e.y-10;return{x0:i,y0:a,x1:i+n,y1:a+r}},h=e=>f.some(t=>e.x0<t.x1&&e.x1>t.x0&&e.y0<t.y1&&e.y1>t.y0),g=[];for(let e of i){let n=m(e);if(!h(n)){f.push(n),g.push(e);continue}if(!t.connector||e.onBar)continue;let r={x:e.x,y:e.y},i=null;for(let t=1;t<=4;t+=1){let r=c?{...e,x:e.x+12*t}:{...e,y:e.y-12*t};if(n=m(r),!h(n)){i=r;break}}i&&(i.leader=c?{x1:r.x,y1:r.y-3,x2:i.x-2,y2:i.y-3}:{x1:r.x,y1:r.y+1,x2:i.x,y2:i.y+2},f.push(n),g.push(i))}return g}function Xe(e,n,i,a,s){let c=e.categories,l=c.length,u=a/Math.max(1,l),d=n.reversed,f=e=>{let t=i+u*e+u/2;return o(d?i+a-(t-i):t)},p=e=>{let t=i+u*e;return d?i+a-(t-i)-u:t},m=e=>typeof n.labelRotation==`number`?n.labelRotation:e?-40:0,h=n.labels,y=(i,a)=>n.formatter?n.formatter(i,a):n.format?t(i,n.format,e):r(i);if(n.type===`number`){let t=c.map(e=>Number(e)),r=t.filter(Number.isFinite),s=e.binEdges?.filter(Number.isFinite)??[],l=r.filter(e=>e>0);if(n.scale===`log`&&s.length<2&&l.length>0){let e=g(Math.min(...l),Math.max(...l)),r=n.min!=null&&n.min>0?n.min:e.min,s=n.max!=null&&n.max>r?n.max:Math.max(e.max,r*10),c=e=>{let t=v(e,r,s,!0);return t===null?NaN:o(i+(d?1-t:t)*a)},p=e=>Number.isFinite(t[e])&&t[e]>0?c(t[e]):f(e),b=[...new Set(l)].map(c).sort((e,t)=>e-t),x=1/0;for(let e=1;e<b.length;e+=1)x=Math.min(x,b[e]-b[e-1]);let S=Number.isFinite(x)?x:u;return{continuous:`number`,log:!0,values:t,min:r,max:s,xCenter:p,xOfValue:c,ticks:_(r,s).map((e,t)=>({label:h?y(e,t):``,x:c(e)})),slot:u,barSlot:S,barX0:e=>p(e)-S/2,rotated:!1,angle:m(!1)}}if(r.length){let c=s.length>=2?b(Math.min(...s),Math.max(...s),{...n,nice:e.xAxis?.nice===!0}):b(Math.min(...r),Math.max(...r),n),l=c.max-c.min||1,p=e=>{if(!Number.isFinite(e))return NaN;let t=(e-c.min)/l;return d&&(t=1-t),o(i+t*a)},g=e=>Number.isFinite(t[e])?p(t[e]):f(e),_=[...new Set(r)].sort((e,t)=>e-t),v=1/0;for(let e=1;e<_.length;e+=1)v=Math.min(v,_[e]-_[e-1]);let x=s.length>=2?(s[1]-s[0])/l*a:Number.isFinite(v)?v/l*a:u,S=s.length>=2?Ze(s,Math.max(1,Math.floor(a/40))):c.ticks,C=s.length>=2?Math.abs(s[1]-s[0]):1,w=C>=1?0:Math.min(6,Math.ceil(-Math.log10(C))+1),T=(e,t)=>n.formatter||n.format?y(e,t):e.toLocaleString(void 0,{minimumFractionDigits:w,maximumFractionDigits:w}),E=S.map((e,t)=>({label:h?s.length>=2?T(e,t):y(e,t):``,x:p(e)}));return{continuous:`number`,values:t,min:c.min,max:c.max,xCenter:g,xOfValue:p,ticks:E,slot:u,barSlot:x,barX0:e=>g(e)-x/2,rotated:!1,angle:m(!1)}}}let x=n.type===`time`||n.type===`ordinal-time`?c.map(e=>Date.parse(e)):null,T=!!x&&x.some(e=>Number.isFinite(e));if(T&&n.type===`time`){let e=x.filter(Number.isFinite),t=n.min??Math.min(...e),r=n.max??Math.max(...e),s=r-t||1,c=e=>{if(!Number.isFinite(e))return NaN;let n=(e-t)/s;return d&&(n=1-n),o(i+n*a)},l=e=>Number.isFinite(x[e])?c(x[e]):f(e),g=S(t,r,Math.max(2,Math.floor(a/90))),_=g.length>1?g[1]-g[0]:s;return{continuous:`time`,values:x,min:t,max:r,xCenter:l,xOfValue:c,ticks:g.map((e,t)=>({label:h?n.formatter?n.formatter(e,t):w(e,_):``,x:c(e)})),slot:u,barSlot:u,barX0:p,rotated:!1,angle:m(!1)}}if(T){let e=x.filter(Number.isFinite),t=Math.max(...e)-Math.min(...e)||1,r=C(x),i=r.length>1&&Math.abs(x[r[1]]-x[r[0]])||t,a=r.map((e,t)=>({label:h?n.formatter?n.formatter(x[e],t):w(x[e],i):``,x:f(e)}));return{continuous:null,values:x,min:0,max:l-1,xCenter:f,xOfValue:()=>NaN,ticks:a,slot:u,barSlot:u,barX0:p,rotated:!1,angle:m(!1)}}let E=m(s),O=E!==0,k=h?D(c,f,u,O):[];return{continuous:null,values:null,min:0,max:l-1,xCenter:f,xOfValue:()=>NaN,ticks:k,slot:u,barSlot:u,barX0:p,rotated:O,angle:E}}function Ze(e,t){if(e.length<=t)return e;let n=Math.ceil(e.length/t),r=e.filter((e,t)=>t%n===0);return r[r.length-1]!==e[e.length-1]&&r.push(e[e.length-1]),r}function Qe(e,t,n){if(t.continuous){let e=typeof n==`number`?n:t.continuous===`time`?Date.parse(n):Number(n);if(Number.isFinite(e))return t.xOfValue(e)}if(typeof n==`number`)return t.xCenter(n);let r=e.categories.indexOf(n);if(r>=0)return t.xCenter(r);if(t.values){let e=Date.parse(n);if(Number.isFinite(e)){let n=t.values.findIndex(t=>t===e);if(n>=0)return t.xCenter(n)}}return NaN}function $e(e,t,n){if(!t.labels)return 8;if(!n.rotated)return 28;if(typeof t.labelRotation!=`number`)return 54;let r=e.categories.reduce((e,t)=>Math.max(e,Math.min(t.length,18)),0),i=Math.abs(n.angle)*Math.PI/180;return 28+Math.round(Math.min(72,r*6*Math.sin(i)))}function et(e){let{spec:n,series:i,empty:a,width:s,height:c,frame:l,axes:u}=e,d=u.y.width??(u.y.labels?48:12)+(u.y.title?16:0),f=10+l.top,p=(u.x.labels?28:8)+(u.x.title?16:0)+l.bottom,m=Math.max(1,s-d-12),h=Math.max(1,c-f-p),y={x:d,y:f,w:m,h},x=1/0,S=-1/0,C=1/0,w=-1/0,T=1/0,E=-1/0;for(let e of i)for(let t of e.points??[])Number.isFinite(t.x)&&(x=Math.min(x,t.x),S=Math.max(S,t.x)),Number.isFinite(t.y)&&(C=Math.min(C,t.y),w=Math.max(w,t.y)),t.r!=null&&Number.isFinite(t.r)&&(T=Math.min(T,t.r),E=Math.max(E,t.r));if(x===1/0)return{...a,plot:y};let D=u.x.scale===`log`&&i.some(e=>(e.points??[]).some(e=>e.x>0)),O=D?(()=>{let e=1/0;for(let t of i)for(let n of t.points??[])n.x>0&&n.x<e&&(e=n.x);let t=g(e,S),n=u.x.min!=null&&u.x.min>0?u.x.min:t.min,r=u.x.max!=null&&u.x.max>n?u.x.max:Math.max(t.max,n*10);return{min:n,max:r,step:10,ticks:_(n,r)}})():b(x,S,u.x),k=b(C,w,u.y),A=E>T,j=e=>{if(D){let t=v(e,O.min,O.max,!0);return t===null?NaN:o(d+(u.x.reversed?1-t:t)*m)}let t=(e-O.min)/(O.max-O.min||1);return u.x.reversed&&(t=1-t),o(d+t*m)},M=e=>{let t=(e-k.min)/(k.max-k.min||1);return u.y.reversed&&(t=1-t),o(f+h-t*h)},N=e=>A&&e!=null&&Number.isFinite(e)?o(4+(e-T)/(E-T||1)*14):5,P=[];for(let e of i)(e.points??[]).forEach((t,n)=>{!Number.isFinite(t.x)||!Number.isFinite(t.y)||D&&t.x<=0||P.push({cx:j(t.x),cy:M(t.y),r:N(t.r),color:e.colors?.[n]??e.color,label:t.label??``,series:e.label,x:t.x,y:t.y})});let F=[];for(let e of i){if(!e.overlay)continue;let t=(e.points??[]).filter(e=>Number.isFinite(e.x)&&Number.isFinite(e.y)&&(!D||e.x>0)),n=De(t.map(e=>e.y),e.overlay,t.map(e=>e.x));if(!n||!n.equation)continue;let i=[];for(let e=0;e<=48;e+=1){let t=e/48,a=D?10**(Math.log10(O.min)+t*(Math.log10(O.max)-Math.log10(O.min))):O.min+t*(O.max-O.min),o=n.predict(a),s=Number.isFinite(o)&&o>=k.min&&o<=k.max;i.push({x:j(a),y:s?M(o):NaN,label:r(a),value:o,defined:s})}F.push({path:ze(i,!1),areaPath:``,color:e.overlayColor??e.color,label:`${e.label} (${e.overlay})`,points:i,r2:n.r2,equation:n.equation})}let I=[],L=[];for(let e of n.referenceLines??[]){let i=Number(e.value);Number.isFinite(i)&&(e.axis===`x`?L.push({x:j(i),label:e.label??r(i),color:e.color??`#ef4444`,dashed:e.dashed!==!1}):I.push({y:M(i),label:e.label??t(i,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1}))}let R=[];for(let e of n.referenceBands??[]){let t=Number(e.from),n=Number(e.to);if(!(!Number.isFinite(t)||!Number.isFinite(n))){if(e.axis===`x`){let r=j(Math.min(t,n)),i=j(Math.max(t,n));R.push({x:Math.min(r,i),y:f,w:Math.abs(i-r),h,color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`x`})}else{let r=M(Math.max(t,n)),i=M(Math.min(t,n));R.push({x:d,y:Math.min(r,i),w:m,h:Math.abs(i-r),color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`y`})}}}return{...a,plot:y,axes:{y:{min:k.min,max:k.max,log:!1,reversed:u.y.reversed},y2:null,slot:m,count:0,x:{type:`number`,min:O.min,max:O.max,reversed:u.x.reversed,values:[],...D?{log:!0}:{}}},grid:{x:u.x.gridLines,y:u.y.gridLines},scatterPoints:P,overlays:F,referenceLines:I,referenceLinesV:L,referenceBands:R,yTicks:k.ticks.map((e,r)=>({value:e,y:M(e),label:u.y.labels?ue(e,r,u.y,n,t):``})),xTicks:O.ticks.map((e,i)=>({label:u.x.labels?u.x.formatter?u.x.formatter(e,i):u.x.format?t(e,u.x.format,n):r(e):``,x:j(e)}))}}function tt(e){let{spec:n,series:i,empty:a,width:s,height:c,stacked:l,frame:u,axes:d}=e,f=n.categories.reduce((e,t)=>Math.max(e,t.length),0),p=d.x.labels?Math.min(150,18+f*6.4)+(d.y.title?16:0):12+(d.y.title?16:0),m=8+u.top,h=(d.y.labels?26:8)+(d.x.title?16:0)+u.bottom,g=Math.max(1,s-p-16),_=Math.max(1,c-m-h),y={x:p,y:m,w:g,h:_},x=(n.referenceLines??[]).filter(e=>e.axis!==`x`).map(e=>Number(e.value)).concat((n.referenceBands??[]).filter(e=>e.axis!==`x`).flatMap(e=>[Number(e.from),Number(e.to)])),S=d.y.scale===`log`,C=n.stacked100?b(0,100):ie(i,n.categories,l,x,S,d.y),w=e=>{let t=v(e,C.min,C.max,S);return t===null?NaN:(d.y.reversed&&(t=1-t),o(p+t*g))},T=n.categories.length,E=_/Math.max(1,T),D=E*.2,O=E-D,k=e=>m+E*(d.x.reversed?T-1-e:e)+D/2,A=w(S?C.min:Math.min(Math.max(0,C.min),C.max)),j=[];if(l){let e=n.stacked100?n.categories.map((e,t)=>i.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,t=Array(T).fill(0),r=Array(T).fill(0);for(let a of i)a.values.forEach((i,s)=>{if(!Number.isFinite(i))return;let c=e?i/e[s]*100:i,l,u;c>=0?(l=w(t[s]),u=w(t[s]+c),t[s]+=c):(l=w(r[s]+c),u=w(r[s]),r[s]+=c),!(!Number.isFinite(l)||!Number.isFinite(u))&&j.push({x:Math.min(l,u),y:o(k(s)),w:o(Math.abs(u-l)),h:o(Math.max(1,O)),color:a.colors?.[s]??a.color,label:n.categories[s]??String(s),series:a.label,value:i,index:s,...a.opacity==null?{}:{opacity:a.opacity}})})}else{let e=O/i.length;i.forEach((t,r)=>{t.values.forEach((i,a)=>{if(!Number.isFinite(i)||S&&i<=0)return;let s=w(i);Number.isFinite(s)&&j.push({x:Math.min(s,A),y:o(k(a)+e*r),w:o(Math.max(1,Math.abs(s-A))),h:o(Math.max(1,e-1)),color:t.colors?.[a]??t.color,label:n.categories[a]??String(a),series:t.label,value:i,index:a,...t.opacity==null?{}:{opacity:t.opacity}})})})}let M=C.ticks.map((e,i)=>({label:d.y.labels?n.stacked100?`${r(e)}%`:ue(e,i,d.y,n,t):``,x:w(e)})),N=d.x.labels?n.categories.map((e,t)=>({value:t,y:o(k(t)+O/2),label:e})):[],P=[],F=[];for(let e of n.referenceLines??[]){if(e.axis===`x`){let t=typeof e.value==`number`?e.value:n.categories.indexOf(e.value);if(t<0||!Number.isFinite(t))continue;F.push({y:o(k(t)+O/2),label:e.label??String(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1});continue}let r=Number(e.value),i=w(r);Number.isFinite(i)&&P.push({x:i,label:e.label??t(r,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1})}let I=[];for(let e of n.referenceBands??[]){if(e.axis===`x`){let t=typeof e.from==`number`?e.from:n.categories.indexOf(e.from),r=typeof e.to==`number`?e.to:n.categories.indexOf(e.to);if(t<0||r<0)continue;let i=k(Math.min(t,r))-D/2,a=k(Math.max(t,r))+O+D/2;I.push({x:p,y:o(Math.min(i,a)),w:g,h:o(Math.abs(a-i)),color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`y`});continue}let t=w(Number(e.from)),r=w(Number(e.to));!Number.isFinite(t)||!Number.isFinite(r)||I.push({x:Math.min(t,r),y:m,w:Math.abs(r-t),h:_,color:e.color??`#64748b`,opacity:e.opacity??.08,label:e.label??``,axis:`x`})}return{...a,plot:y,axes:{y:{min:C.min,max:C.max,log:S,reversed:d.y.reversed},y2:null,slot:E,count:T,xReversed:d.x.reversed,labels:n.categories},grid:{x:d.y.gridLines,y:d.x.gridLines},bars:j,orientation:`horizontal`,valueTicks:M,catTicks:N,referenceLines:F,referenceLinesV:P,referenceBands:I,xLabelRotated:!1}}function nt(e){let{spec:n,series:r,empty:i,width:a,height:s,stacked:c,frame:l,axes:u}=e,d=r.filter(e=>e.axis===`left`),f=r.filter(e=>e.axis===`right`),p=f.length>0,m=n.categories.reduce((e,t)=>Math.max(e,t.length),0),h=n.categoryGroups&&n.categoryGroups.length>0&&u.x.type!==`time`&&n.orientation!==`horizontal`&&n.categoryGroups.reduce((e,t)=>e+t.span,0)===n.categories.length?n.categoryGroups:null,g=h?18:0,_=u.y.width??(u.y.labels?48:12)+(u.y.title?16:0),y=n.seriesLabels?rt(n,r):null,x=y?Math.min(Math.floor(a/3),8+Math.max(0,...y.values())*6.2):0,S=(p?u.y2.width??(u.y2.labels?48:12):12)+(u.y2.title?16:0)+x,C=10+l.top,w=Math.max(1,a-_-S),T=m*6.2+8>w/Math.max(1,n.categories.length),E=Xe(n,u.x,_,w,T),D=$e(n,u.x,E)+(u.x.title?16:0)+g+l.bottom,k=Math.max(1,s-C-D),A={x:_,y:C,w,h:k},j=(n.referenceLines??[]).filter(e=>e.axis!==`x`),M=(n.referenceBands??[]).filter(e=>e.axis!==`x`),N=j.filter(e=>e.axis!==`right`).map(e=>Number(e.value)).concat(M.filter(e=>e.axis!==`right`).flatMap(e=>[Number(e.from),Number(e.to)])),P=j.filter(e=>e.axis===`right`).map(e=>Number(e.value)).concat(M.filter(e=>e.axis===`right`).flatMap(e=>[Number(e.from),Number(e.to)])),F=u.y.scale===`log`,I=u.y2.scale===`log`,L=e=>e.kind===`area`?e.stack?`${e.axis}\u0000${e.stack}`:c?e.axis:null:null,R=[...new Set(r.map(L).filter(e=>e!==null))],ee=n.stackOffset&&n.stackOffset!==`zero`&&!n.stacked100?n.stackOffset:null,te=new Map,z={left:[],right:[]};if(ee)for(let e of R){let t=r.filter(t=>L(t)===e),n=t.map(e=>e.values),i=We(n,ee);te.set(e,i);let a=t[0].axis;i.forEach((e,t)=>{let r=0;for(let e of n)r+=Number.isFinite(e[t])?e[t]:0;z[a].push(e,e+r)})}let B=n.stacked100?b(0,100):ie(d,n.categories,c,N.concat(z.left),F,u.y),V=p?n.stacked100?b(0,100):ie(f,n.categories,c,P.concat(z.right),I,u.y2):null,H=(e,t,n=!1,r=!1)=>{let i=v(t,e.min,e.max,n);return i===null?NaN:(r&&(i=1-i),o(C+k-i*k))},U=e=>H(B,e,F,u.y.reversed),ne=e=>H(V??B,e,I,u.y2.reversed),re=e=>e.axis===`right`?V??B:B,W=e=>e.axis===`right`?I:F,ae=e=>e.axis===`right`?u.y2.reversed:u.y.reversed,G=(e,t)=>H(re(e),t,W(e),ae(e)),oe=n.categories.length,{slot:se,xCenter:ce,ticks:le}=E,de=[];if(h&&!E.values){let e=0;for(let t of h){let n=o(_+se*e),r=o(_+se*(e+t.span));de.push({label:t.label,x0:n,x1:r,xCenter:o((n+r)/2)}),e+=t.span}}let fe=r.filter(e=>e.kind===`bar`||e.kind===`range-bar`||e.kind===`lollipop`||e.kind===`dumbbell`),K=[],pe=[];if(fe.length){let e=n.type===`histogram`,t=e?0:E.barSlot*.2,r=E.barSlot-t,i=e=>E.barX0(e)+t/2,a=[],s=new Map;for(let e of fe){let t=e.kind===`bar`?e.stack??(c?``:null):null;if(t===null){a.push({key:e.label,members:[e],stacked:!1});continue}let n=s.get(t);n||(n={key:t,members:[],stacked:!0},s.set(t,n),a.push(n)),n.members.push(e)}let l=r/a.length;a.forEach((t,r)=>{if(t.stacked)for(let s of[`left`,`right`]){let c=t.members.filter(e=>e.axis===s);if(!c.length)continue;let u=s===`right`?ne:U,d=n.stacked100?n.categories.map((e,t)=>c.reduce((e,n)=>e+Math.abs(Number.isFinite(n.values[t])?n.values[t]:0),0)||1):null,f=Array(oe).fill(0),p=Array(oe).fill(0);for(let t of c)t.values.forEach((s,c)=>{if(!Number.isFinite(s))return;let m=d?s/d[c]*100:s,h,g;m>=0?(h=u(f[c]+m),g=u(f[c]),f[c]+=m):(h=u(p[c]),g=u(p[c]+m),p[c]+=m),!(!Number.isFinite(h)||!Number.isFinite(g))&&K.push({x:o(i(c)+l*r),y:Math.min(h,g),w:o(Math.max(1,a.length>1?l-+!e:l)),h:o(Math.abs(g-h)),color:t.colors?.[c]??t.color,label:n.categories[c]??String(c),series:t.label,value:s,index:c,...t.opacity==null?{}:{opacity:t.opacity}})})}});let u=a.map((e,t)=>({slot:e,si:t})).filter(({slot:e})=>!e.stacked);if(u.length){let t=l;u.forEach(({slot:r,si:a})=>{let s=r.members[0],c=a,l=re(s),u=W(s),d=u?G(s,l.min):G(s,Math.min(Math.max(0,l.min),l.max)),f=o(Math.min(5,Math.max(2.5,t*.3)));s.values.forEach((r,a)=>{if(!Number.isFinite(r)||u&&r<=0)return;let l=i(a)+t*c,p=G(s,r);if(!Number.isFinite(p))return;let m=s.colors?.[a]??s.color,h=n.categories[a]??String(a);if(s.kind===`lollipop`){pe.push({xCenter:o(l+t/2),y0:d,y1:p,r:f,color:m,label:h,series:s.label,value:r,dumbbell:!1});return}if(s.kind===`dumbbell`||s.kind===`range-bar`){let n=s.lowValues?.[a];if(!Number.isFinite(n)||u&&n<=0)return;let i=G(s,n);if(!Number.isFinite(i))return;if(s.kind===`dumbbell`){pe.push({xCenter:o(l+t/2),y0:i,y1:p,r:f,color:m,color2:s.overlayColor??m,label:h,series:s.label,value:r,value2:n,dumbbell:!0});return}K.push({x:o(l),y:Math.min(p,i),w:o(Math.max(1,t-+!e)),h:o(Math.max(1,Math.abs(p-i))),color:m,label:h,series:s.label,value:r,index:a,lo:n,...s.opacity==null?{}:{opacity:s.opacity}});return}K.push({x:o(l),y:Math.min(p,d),w:o(Math.max(1,t-+!e)),h:o(Math.max(1,Math.abs(p-d))),color:m,label:h,series:s.label,value:r,index:a,...s.opacity==null?{}:{opacity:s.opacity}})})})}}let q=r.filter(e=>e.kind===`candle`),me=[];if(q.length){let e=n.candleColors?.up??`#16a34a`,t=n.candleColors?.down??`#ef4444`,r=Math.max(1,E.barSlot*.7/q.length),i=n.candleStyle??`classic`;q.forEach((a,s)=>{let c=W(a),l=a.ohlc??[],u=i===`heikin-ashi`?Ne(l):l,d=null;u.forEach((l,u)=>{if(!l){d=null;return}if(![l.o,l.h,l.l,l.c].every(Number.isFinite)||c&&(l.o<=0||l.h<=0||l.l<=0||l.c<=0))return;let f=E.barX0(u)+E.barSlot/2-r*q.length/2+r*s,p=G(a,l.o),m=G(a,l.c),h=l.c>=l.o,g=i===`hollow`&&d!=null?l.c>=d:h,_=i===`hollow`?h:g;d=l.c,me.push({x:o(f),w:o(r),xCenter:o(f+r/2),yOpen:p,yClose:m,yHigh:G(a,l.h),yLow:G(a,l.l),bodyY:Math.min(p,m),bodyH:Math.max(1,Math.abs(m-p)),up:g,hollow:_,color:g?e:t,label:n.categories[u]??String(u),series:a.label,o:l.o,h:l.h,l:l.l,c:l.c})})})}let J=r.filter(e=>e.kind===`box`),Y=[];if(J.length){let e=Math.max(1,E.barSlot*.6/J.length);J.forEach((t,r)=>{let i=W(t);(t.boxes??[]).forEach((a,s)=>{if(!a||![a.min,a.q1,a.median,a.q3,a.max].every(Number.isFinite)||i&&a.min<=0)return;let c=E.barX0(s)+E.barSlot/2-e*J.length/2+e*r,l=G(t,a.q1),u=G(t,a.q3);Y.push({x:o(c),w:o(e),xCenter:o(c+e/2),yMin:G(t,a.min),yQ1:l,yMedian:G(t,a.median),yQ3:u,yMax:G(t,a.max),boxY:Math.min(l,u),boxH:Math.max(1,Math.abs(l-u)),outliers:(a.outliers??[]).filter(e=>Number.isFinite(e)&&(!i||e>0)).map(e=>({y:G(t,e),value:e})),color:t.color,label:n.categories[s]??String(s),series:t.label,min:a.min,q1:a.q1,median:a.median,q3:a.q3,max:a.max})})})}let he=[];for(let e of r){if(!e.errors)continue;let t=W(e);e.errors.forEach((r,i)=>{let a=e.values[i];if(!Number.isFinite(a))return;let s=O(r,a);s&&(t&&s.lo<=0||he.push({xCenter:o(E.barX0(i)+E.barSlot/2),yLo:G(e,s.lo),yHi:G(e,s.hi),cap:o(Math.min(6,E.barSlot*.15)),color:e.color,label:n.categories[i]??String(i),series:e.label,lo:s.lo,hi:s.hi}))})}let _e=[],ve=new Map,ye=new Map,be=new Set;for(let e of R)if(ve.set(e,Array(oe).fill(0)),n.stacked100){let t=r.filter(t=>L(t)===e);ye.set(e,n.categories.map((e,n)=>t.reduce((e,t)=>e+Math.abs(Number.isFinite(t.values[n])?t.values[n]:0),0)||1))}for(let e of r){if(e.kind===`bar`||e.kind===`candle`||e.kind===`box`||e.kind===`range-bar`||e.kind===`lollipop`||e.kind===`dumbbell`)continue;let t=re(e),r=W(e),i=t=>G(e,t),a=L(e),s=a!==null,c=e=>ce(e),l,u=null,d=(t,r,i,a)=>{let o={x:c(t),y:i,label:n.categories[t]??String(t),value:r,defined:a},s=qe(e,t);return s&&(o.marker=s),o};if(s){let t=ve.get(a),n=te.get(a);if(n&&!be.has(a)){for(let e=0;e<oe;e+=1)t[e]=n[e]??0;be.add(a)}let r=t.slice(),o=ye.get(a);l=e.values.map((e,n)=>{let r=Number.isFinite(e)?e:0,a=o?r/o[n]*100:r,s=(t[n]??0)+a;return t[n]=s,d(n,e,i(s),Number.isFinite(e))}),u=r.map((e,t)=>({x:c(t),y:i(e)}))}else l=e.values.map((e,t)=>{let n=Number.isFinite(e)&&Number.isFinite(i(e));return d(t,e,n?i(e):NaN,n)});let f=!!e.smooth&&!e.step,p=e.step,m=!!e.connectNulls,h=e.kind===`scatter`?``:ze(l,f,{connectNulls:m,step:p}),g=``;if(e.kind===`range-area`&&l.length){let t=[],n=[];l.forEach((r,a)=>{let o=e.lowValues?.[a];if(!r.defined||!Number.isFinite(o))return;let s=i(o);Number.isFinite(s)&&(t.push({x:r.x,y:r.y}),n.push({x:r.x,y:s}))}),t.length>=2&&(g=Ue(t,n,f,p),h=`${X(t,f,p)} ${X(n,f,p)}`)}else if(e.kind===`area`&&l.length){if(u)g=Ue(l.map(e=>({x:e.x,y:e.y})),u,f,p);else{let e=o(i(r?t.min:Math.min(Math.max(0,t.min),t.max)));g=Be(l,m).map(t=>`${X(t,f,p)} L${t[t.length-1].x},${e} L${t[0].x},${e} Z`).join(` `)}}let _=``;if(e.upperValues?.length===e.values.length&&e.lowerValues?.length===e.values.length){let t=[],n=[];for(let a=0;a<e.values.length;a+=1){let o=e.upperValues[a],s=e.lowerValues[a];!Number.isFinite(o)||!Number.isFinite(s)||r&&(o<=0||s<=0)||(t.push({x:c(a),y:i(o)}),n.push({x:c(a),y:i(s)}))}t.length>=2&&(_=Ue(t,n,f,p))}let v={path:h,areaPath:g,color:e.color,label:e.label,points:l,bandPath:_};e.kind===`range-area`&&(v.range=!0);let y=Je(e);y&&(v.style=y),f&&(v.smooth=!0),p&&(v.step=p),_e.push(v)}let xe=(e,r,i)=>e.ticks.map((a,s)=>({value:a,y:H(e,a,i,r.reversed),label:r.labels?n.stacked100?`${o(a)}%`:ue(a,s,r,n,t):``})),Se=[],Ce=[];for(let e of n.referenceLines??[]){if(e.axis===`x`){let t=Qe(n,E,e.value);if(!Number.isFinite(t))continue;Ce.push({x:t,label:e.label??String(e.value),color:e.color??`#ef4444`,dashed:e.dashed!==!1});continue}let r=e.axis===`right`,i=r?V??B:B,a=r?I:F,o=Number(e.value),s=H(i,o,a,r?u.y2.reversed:u.y.reversed);Number.isFinite(s)&&Se.push({y:s,label:e.label??t(o,n.valueFormat,n),color:e.color??`#ef4444`,dashed:e.dashed!==!1})}let we=[];for(let e of n.referenceBands??[]){let t=e.color??`#64748b`,r=e.opacity??.08,i=e.label??``;if(e.axis===`x`){let a=Qe(n,E,e.from),s=Qe(n,E,e.to);if(!Number.isFinite(a)||!Number.isFinite(s))continue;if(!E.continuous){let e=se/2;a<=s?(a-=e,s+=e):(a+=e,s-=e)}we.push({x:o(Math.min(a,s)),y:C,w:o(Math.abs(s-a)),h:k,color:t,opacity:r,label:i,axis:`x`});continue}let a=e.axis===`right`,s=a?V??B:B,c=a?I:F,l=a?u.y2.reversed:u.y.reversed,d=H(s,Number(e.from),c,l),f=H(s,Number(e.to),c,l);!Number.isFinite(d)||!Number.isFinite(f)||we.push({x:_,y:Math.min(d,f),w,h:Math.abs(f-d),color:t,opacity:r,label:i,axis:`y`})}let Te=[];for(let e of r){if(!e.overlay)continue;let t=W(e),r=Ee(e.values,e.overlay,{ohlc:e.ohlc,volumes:e.volumes}),i=r.values,a=e.overlayColor??e.color,o=r=>r.map((r,i)=>{let a=Number.isFinite(r)&&(!t||r>0);return{x:ce(i),y:a?G(e,r):NaN,label:n.categories[i]??String(i),value:r,defined:a}}),s=o(i),c=ze(s,!!e.smooth),l=``,u=/^bb:(\d+):(\d+(?:\.\d+)?)$/.exec(e.overlay);if(u){let{upper:t,lower:n}=ge(e.values,Number(u[1]),Number(u[2])),r=o(t).filter(e=>e.defined),i=o(n).filter(e=>e.defined);r.length>1&&i.length>1&&(l=r.map((e,t)=>`${t?`L`:`M`}${e.x},${e.y}`).join(` `)+` `+i.slice().reverse().map(e=>`L${e.x},${e.y}`).join(` `)+` Z`)}Te.push({path:c,areaPath:``,color:a,label:`${e.label} (${e.overlay})`,points:s,...l?{bandPath:l}:{},...r.r2===void 0?{}:{r2:r.r2},...r.equation?{equation:r.equation}:{}})}if(n.lastPriceLine){let e=n.lastPriceLine===!0?{}:n.lastPriceLine,i=r.find(e=>e.ohlc)??r[0];if(i){let r=-1;for(let e=i.values.length-1;e>=0;--e)if(Number.isFinite(i.values[e])){r=e;break}if(r>=0){let a=i.values[r],o=NaN;for(let e=r-1;e>=0;--e)if(Number.isFinite(i.values[e])){o=i.values[e];break}let s=G(i,a);Number.isFinite(s)&&Se.push({y:s,label:e.label??t(a,n.valueFormat,n),color:e.color??(Number.isFinite(o)&&a<o?`#ef4444`:`#16a34a`),dashed:!0,pill:!0})}}}let De=[];for(let e of n.annotations??[]){let t=null,i=null;if(`category`in e.at){let a=n.categories.indexOf(e.at.category);if(a<0)continue;t=ce(a);let o=e.at.series,s=o?r.find(e=>e.label===o):r[0];if(s){let e=s.values[a];Number.isFinite(e)&&(i=G(s,e))}i??=C+k/2}else{let r=Number.isFinite(e.at.x)?Qe(n,E,e.at.x):NaN;t=Number.isFinite(r)?r:_+w/2,i=Number.isFinite(e.at.y)?H(B,e.at.y,F,u.y.reversed):C+k/2}t!=null&&i!=null&&Number.isFinite(i)&&De.push({x:t,y:i,label:e.label,color:e.color??`#0f172a`,placement:e.placement??`top`,shape:e.shape??`dot`,...e.text?{text:e.text}:{}})}let Oe=[];for(let e of n.drawings??[]){let r=e.axis===`right`,i=r?V??B:B,a=r?I:F,s=r?u.y2.reversed:u.y.reversed,c=[],l=!0;for(let t of e.points){let e=Qe(n,E,t.x),r=H(i,t.y,a,s);if(!Number.isFinite(e)||!Number.isFinite(r)){l=!1;break}c.push({x:o(e),y:r})}if(!l||!c.length)continue;let d=e.color??`#0ea5e9`,f={id:e.id,kind:e.kind,points:c,color:d,...e.text?{text:e.text}:{}};if(e.kind===`fib`&&c.length>=2){let r=e.points[0].y,o=e.points[1].y;f.levels=[0,.236,.382,.5,.618,1].map(e=>{let c=o+(r-o)*e;return{ratio:e,y:H(i,c,a,s),label:`${(e*100).toFixed(1)}% ${t(c,n.valueFormat,n)}`}})}e.kind===`hray`&&(f.label=t(e.points[0].y,n.valueFormat,n)),Oe.push(f)}return{...i,plot:A,axes:{y:{min:B.min,max:B.max,log:F,reversed:u.y.reversed},y2:V?{min:V.min,max:V.max,log:I,reversed:u.y2.reversed}:null,slot:se,count:n.categories.length,...E.continuous?{x:{type:E.continuous,min:E.min,max:E.max,reversed:u.x.reversed,values:E.values??[],...E.log?{log:!0}:{}}}:{},xReversed:u.x.reversed,labels:n.categories},grid:{x:u.x.gridLines,y:u.y.gridLines},bars:K,candles:me,boxes:Y,errorBars:he,stems:pe,lines:_e,yTicks:xe(B,u.y,F),y2Ticks:V?xe(V,u.y2,I):[],hasRightAxis:p,xTicks:le,categoryGroupTicks:de,xLabelRotated:E.rotated,xLabelAngle:E.angle,referenceLines:Se,referenceLinesV:Ce,referenceBands:we,overlays:Te,annotations:De,drawings:Oe,seriesLabels:n.seriesLabels?it(n,_e,A):[]}}function rt(e,t){let n=new Map,r=typeof e.seriesLabels==`object`?e.seriesLabels.formatter:void 0;for(let e of t){if(e.kind!==`line`&&e.kind!==`area`)continue;let t=[...e.values].reverse().find(e=>Number.isFinite(e));t!==void 0&&n.set(e.label,(r?r(e.label,t):e.label).length)}return n}function it(e,t,n){let r=typeof e.seriesLabels==`object`?e.seriesLabels.formatter:void 0,i=[];for(let e of t){let t=[...e.points].reverse().find(e=>e.defined&&Number.isFinite(e.y));t&&i.push({x:o(t.x+6),y:t.y,text:r?r(e.label,t.value):e.label,color:e.color,series:e.label})}i.sort((e,t)=>e.y-t.y);for(let e=1;e<i.length;e+=1)i[e].y=Math.max(i[e].y,i[e-1].y+12);let a=n.y+n.h-2;for(let e=i.length-1;e>=0;--e){let t=e===i.length-1?a:i[e+1].y-12;i[e].y=Math.min(i[e].y,t)}for(let e of i)e.y=o(Math.max(n.y+4,e.y));return i}function at(e){let{spec:n,series:r,empty:i,width:a,height:s,frame:c,axes:l}=e,u=r[0];if(!u||!n.categories.length)return{...i};let d=u.targets??r[1]?.values??[],f=n.bulletRanges??n.gaugeRanges??[],p=n.categories.reduce((e,t)=>Math.max(e,t.length),0),m=l.x.labels?Math.min(150,18+p*6.4):12,h=8+c.top,g=(l.y.labels?26:8)+(l.y.title?16:0)+c.bottom,_=Math.max(1,a-m-16),v=Math.max(1,s-h-g),y={x:m,y:h,w:_,h:v},x=0;for(let e of u.values)Number.isFinite(e)&&e>x&&(x=e);for(let e of d)Number.isFinite(e)&&e>x&&(x=e);for(let e of f)Number.isFinite(e.to)&&e.to>x&&(x=e.to);let S=b(0,x>0?x:1,l.y),C=e=>o(m+(e-S.min)/(S.max-S.min||1)*_),w=n.categories.length,T=v/w,E=T*.25,D=T-E,O=[];n.categories.forEach((e,t)=>{let n=u.values[t],r=d[t],i=o(h+T*t+E/2),a=Number.isFinite(n)?n:0;O.push({x:m,y:i,w:_,h:o(D),measureW:Math.max(0,C(Math.max(S.min,Math.min(S.max,a)))-m),targetX:Number.isFinite(r)?C(Math.max(S.min,Math.min(S.max,r))):null,ranges:f.map(e=>{let t=C(Math.max(S.min,Math.min(S.max,e.from))),n=C(Math.max(S.min,Math.min(S.max,e.to)));return{x:Math.min(t,n),w:Math.abs(n-t),color:e.color}}),color:u.colors?.[t]??u.color,label:e,series:u.label,value:a,target:Number.isFinite(r)?r:null})});let k=S.ticks.map((e,r)=>({label:l.y.labels?ue(e,r,l.y,n,t):``,x:C(e)})),A=l.x.labels?n.categories.map((e,t)=>({value:t,y:o(h+T*t+T/2),label:e})):[];return{...i,plot:y,axes:{y:{min:S.min,max:S.max,log:!1},y2:null,slot:T,count:w,labels:n.categories},grid:{x:l.y.gridLines,y:!1},orientation:`horizontal`,bullets:O,valueTicks:k,catTicks:A,legend:[{label:u.label,color:u.color}]}}function ot(e){let{spec:t,series:n,width:r,height:i,empty:s,frame:c}=e;if(!n.length||!t.categories.length)return{...s};let l=24+c.top,u=24+c.bottom,d=Math.max(1,r-30-30),f=Math.max(1,i-l-u),p={x:30,y:l,w:d,h:f},m=30+d/2,h=l+f/2,g=Math.max(20,Math.min(d,f)/2-20),_=t.categories,v=_.length,y=0;for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>y&&(y=t);y===0&&(y=1);let b=t.yAxis?.min??0,x=t.yAxis?.max??Math.max(y,b+1),S=x>b?x-b:1,C=Array.from({length:5},(e,t)=>b+(t+1)/5*S),w=e=>-Math.PI/2+e/v*Math.PI*2,T=(e,t)=>{let n=Math.max(0,Math.min(1,(t-b)/S)),r=w(e);return{x:o(m+g*n*Math.cos(r)),y:o(h+g*n*Math.sin(r))}},E=_.map((e,t)=>{let n=T(t,x);return{label:e,x:n.x,y:n.y}}),D=n.map((e,n)=>{let r=e.values.map((e,t)=>{let n=T(t,Number.isFinite(e)?e:b);return{x:n.x,y:n.y,value:e,axis:_[t]??``}}),i=r.length?r.map((e,t)=>`${t===0?`M`:`L`}${e.x},${e.y}`).join(` `)+` Z`:``,o=t.palette??a;return{label:e.label,color:e.color??o[n%o.length],path:i,points:r}});return{...s,plot:p,radarRings:C,radarAxes:E,radarSeries:D,radarCenter:{cx:m,cy:h,r:g}}}function st(e){let{spec:t,width:n,height:r,empty:i,frame:a}=e,s=t.gaugeMin??0,c=t.gaugeMax??100,l=Math.max(s,Math.min(c,t.gaugeValue??0)),u=t.gaugeTarget,d=n/2,f=Math.max(1,r-a.top-a.bottom),p=a.top+f*.78,m=Math.min(n*.42,f*.65),h=Math.PI,g=2*Math.PI,_=e=>h+(e-s)/(c-s||1)*(g-h),v=(e,t,n)=>{let r=d+n*Math.cos(e),i=p+n*Math.sin(e),a=d+n*Math.cos(t),o=p+n*Math.sin(t);return`M${r},${i} A${n},${n} 0 ${+(t-e>Math.PI)} 1 ${a},${o}`},y=v(h,g,m),b=v(h,_(l),m),x=(t.gaugeRanges??[]).map(e=>({path:v(_(e.from),_(e.to),m-16),color:e.color,from:e.from,to:e.to})),S=null;if(u!=null&&Number.isFinite(u)){let e=_(Math.max(s,Math.min(c,u))),t=m-12,n=m+4;S={x1:d+t*Math.cos(e),y1:p+t*Math.sin(e),x2:d+n*Math.cos(e),y2:p+n*Math.sin(e)}}let C=[];for(let e=0;e<=20;e++){let t=h+e/20*(g-h),n=e%5==0,r=m+9,i=m+(n?17:13);C.push({x1:d+r*Math.cos(t),y1:p+r*Math.sin(t),x2:d+i*Math.cos(t),y2:p+i*Math.sin(t),major:n})}let w=_(l),T=m-14,E=w+Math.PI/2,D=(e,t)=>`${o(d+e*Math.cos(t))},${o(p+e*Math.sin(t))}`,O=`M${D(9,E)} L${D(T,w)} L${D(9,E+Math.PI)} L${D(5,w+Math.PI)} Z`,k=null,A=t.gaugeRanges??[];for(let e of A)if(l>=e.from&&l<e.to){k=e.color;break}if(k==null)for(let e of A)l>=e.from&&l<=e.to&&(k=e.color);return{...i,plot:{x:0,y:0,w:n,h:r},gauge:{cx:d,cy:p,r:m,trackPath:y,valuePath:b,rangePaths:x,target:S,ticks:C,needle:{path:O,hubR:6},valueColor:k,minLabel:{x:d-m,y:p+20},maxLabel:{x:d+m,y:p+20},value:l,min:s,max:c,unit:t.gaugeUnit??``}}}function ct(e){let{spec:t,series:n,empty:r,width:i,height:a,palette:s,frame:c}=e,l=n[0];if(!l)return r;let u=l.values.reduce((e,t)=>e+Math.max(0,t),0)||1,d=Math.max(1,a-c.top-c.bottom),f=c.top+d/2,p=t.dataLabels?.placement===`outside`&&t.dataLabels.show!==!1,m=0,h=0;if(p){let e=-Math.PI/2;t.categories.forEach((t,n)=>{let r=Math.max(0,l.values[n]??0)/u,i=e+r*Math.PI*2/2;if(e+=r*Math.PI*2,r<.015)return;let a=(Math.min(t.length,18)+4)*6.3;Math.cos(i)>=0?h=Math.max(h,a):m=Math.max(m,a)})}let g=p?26+m:10,_=p?26+h:10,v=Math.max(12,Math.min(i,d)*.25),y=(i-g-_)/2,b=Math.max(v,Math.min(d/2-(p?34:10),y)),x=p&&y>=b?g+y:i/2,S=b*Math.min(.9,Math.max(0,t.innerRadius??0)),C=-Math.PI/2,w=l.values.map((e,n)=>{let r=Math.max(0,e)/u,i=C,a=C+r*Math.PI*2;C=a;let c=+(a-i>Math.PI),d=(i+a)/2,p=(b+S)/2||b*.6,m=x+b*Math.cos(i),h=f+b*Math.sin(i),g=x+b*Math.cos(a),_=f+b*Math.sin(a),v;if(r>=.999)v=S?`M${o(x-b)},${o(f)} A${b},${b} 0 1 1 ${o(x+b)},${o(f)} A${b},${b} 0 1 1 ${o(x-b)},${o(f)} ZM${o(x-S)},${o(f)} A${S},${S} 0 1 0 ${o(x+S)},${o(f)} A${S},${S} 0 1 0 ${o(x-S)},${o(f)} Z`:`M${o(x-b)},${o(f)} A${b},${b} 0 1 1 ${o(x+b)},${o(f)} A${b},${b} 0 1 1 ${o(x-b)},${o(f)} Z`;else if(S>0){let e=x+S*Math.cos(i),t=f+S*Math.sin(i),n=x+S*Math.cos(a),r=f+S*Math.sin(a);v=`M${o(m)},${o(h)} A${b},${b} 0 ${c} 1 ${o(g)},${o(_)} L${o(n)},${o(r)} A${S},${S} 0 ${c} 0 ${o(e)},${o(t)} Z`}else v=`M${o(x)},${o(f)} L${o(m)},${o(h)} A${b},${b} 0 ${c} 1 ${o(g)},${o(_)} Z`;let y=t.categories[n]??String(n);return{path:v,color:t.categoryColors?.[y]??l.colors?.[n]??s[n%s.length],label:y,value:e,percent:r*100,cx:o(x+p*Math.cos(d)),cy:o(f+p*Math.sin(d)),arc:{a0:i,a1:a,r:b,ir:S,cx:x,cy:f}}});return p&&lt(w,x,f,b,c.top,c.top+d,i),{...r,slices:w,legend:t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??l.colors?.[n]??s[n%s.length]})),donut:S>0?{cx:o(x),cy:o(f),r:o(S),total:l.values.reduce((e,t)=>e+Math.max(0,t),0)}:null}}function lt(e,t,n,r,i,a,s){let c=e=>Math.max(4,Math.floor((e-r-26)/6.3)-4),l=c(s-t),u=c(t),d=[];for(let t of e){if(!t.arc||t.percent<1.5)continue;let e=(t.arc.a0+t.arc.a1)/2;d.push({slice:t,mid:e,ty:n+Math.sin(e)*(r+16),right:Math.cos(e)>=0})}for(let e of[!0,!1]){let s=d.filter(t=>t.right===e).sort((e,t)=>e.ty-t.ty);for(let e=1;e<s.length;e+=1)s[e].ty=Math.max(s[e].ty,s[e-1].ty+13);let c=a-6;for(let e=s.length-1;e>=0;--e){let t=e===s.length-1?c:s[e+1].ty-13;s[e].ty=Math.min(s[e].ty,t)}for(let e of s)e.ty<i+6&&(e.ty=i+6);for(let i of s){let a=t+Math.cos(i.mid)*(r+2),s=n+Math.sin(i.mid)*(r+2),c=t+Math.cos(i.mid)*(r+12),d=i.ty,f=e?t+r+22:t-r-22;i.slice.callout={x1:o(a),y1:o(s),x2:o(c),y2:o(d),x3:o(f),tx:o(f+(e?4:-4)),ty:o(i.ty),anchor:e?`start`:`end`,maxChars:e?l:u}}}}function Z(e,t,n,r,i,a){let s=Math.PI*2,c=Math.max(0,Math.min(s,a-i));if(c<=0||r<=0)return``;let l=(n,r)=>`${o(e+n*Math.cos(r))},${o(t+n*Math.sin(r))}`;if(c>=s-1e-6){let e=`M${l(r,i)} A${o(r)},${o(r)} 0 1 1 ${l(r,i+Math.PI)} A${o(r)},${o(r)} 0 1 1 ${l(r,i)} Z`;return n<=0?e:`${e} M${l(n,i)} A${o(n)},${o(n)} 0 1 0 ${l(n,i+Math.PI)} A${o(n)},${o(n)} 0 1 0 ${l(n,i)} Z`}let u=+(c>Math.PI);return n<=0?`M${o(e)},${o(t)} L${l(r,i)} A${o(r)},${o(r)} 0 ${u} 1 ${l(r,a)} Z`:`M${l(r,i)} A${o(r)},${o(r)} 0 ${u} 1 ${l(r,a)} L${l(n,a)} A${o(n)},${o(n)} 0 ${u} 0 ${l(n,i)} Z`}function ut(e,t=24){let{width:n,height:r,frame:i}=e,a=Math.max(1,r-i.top-i.bottom),o=n/2,s=i.top+a/2,c=Math.max(10,Math.min(n,a)/2-t);return{cx:o,cy:s,r:c,plot:{x:o-c,y:s-c,w:2*c,h:2*c}}}function dt(e,t,n){return t<=0?e:p([e,n===`dark`?`#111827`:`#ffffff`],Math.min(.6,t*.22))}var Q=-Math.PI/2,$=Math.PI*2;function ft(e){let{spec:t,empty:n,palette:r,theme:i}=e,a=t.tree??t.treemap;if(!a)return{...n};let{cx:s,cy:c,r:l,plot:u}=ut(e,12),d=e=>e.children?.length?e.children.reduce((e,t)=>e+d(t),0):Math.max(0,e.value??0),f=e=>e.children?.length?1+Math.max(...e.children.map(f)):0,p=a.children??[a],m=p.reduce((e,t)=>e+d(t),0);if(m<=0)return{...n,plot:u};let g=Math.max(1,f({name:``,children:p})),_=l*Math.min(.6,Math.max(0,t.innerRadius??.18)),v=(l-_)/g,y=[],b=(e,t,n,a,l,u)=>{let f=e.reduce((e,t)=>e+d(t),0);if(f<=0)return;let p=t;e.forEach((e,m)=>{let g=d(e);if(g<=0)return;let x=(n-t)*g/f,S=e.color??(a===0?r[m%r.length]:l),C=a===0?S:dt(S,a,i),w=_+v*a,T=w+v-1,E=p+x/2,D=(w+T)/2,O=[...u,e.name];y.push({path:Z(s,c,w,T,p,p+x),color:C,textColor:h(C),label:e.name,series:u[u.length-1]??``,value:g,a0:p,a1:p+x,r0:w,r1:T,cx:s,cy:c,depth:a,nodePath:O,lx:o(s+D*Math.cos(E)),ly:o(c+D*Math.sin(E))}),e.children?.length&&b(e.children,p,p+x,a+1,S,O),p+=x})};return b(p,Q,Q+$,0,null,[]),{...n,plot:u,arcs:y,legend:p.map((e,t)=>({label:e.name,color:e.color??r[t%r.length]})),donut:_>0?{cx:o(s),cy:o(c),r:o(_),total:m}:null}}function pt(e){let{spec:t,series:n,empty:r,palette:i}=e;if(!n.length||!t.categories.length)return{...r};let{cx:a,cy:s,r:c,plot:l}=ut(e,12),u=0;for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>u&&(u=t);u<=0&&(u=1);let d=t.categories.length,f=d*n.length,p=c*Math.min(.6,Math.max(0,t.innerRadius??.2)),m=(c-p)/Math.max(1,f),g=Math.min(3,m*.2),_=[];for(let e=0;e<d;e+=1)n.forEach((r,c)=>{let l=r.values[e];if(!Number.isFinite(l)||l<=0)return;let d=e*n.length+c,f=p+m*d+g/2,v=f+m-g,y=Math.min($*.9999,Math.max(0,l)/u*$),b=n.length===1?t.categoryColors?.[t.categories[e]]??r.colors?.[e]??i[e%i.length]:r.colors?.[e]??r.color,x=Q+y/2,S=(f+v)/2;_.push({path:Z(a,s,f,v,Q,Q+y),trackPath:Z(a,s,f,v,Q,Q+$),color:b,textColor:h(b),label:t.categories[e],series:r.label,value:l,a0:Q,a1:Q+y,r0:f,r1:v,cx:a,cy:s,lx:o(a+S*Math.cos(x)),ly:o(s+S*Math.sin(x))})});return{...r,plot:l,arcs:_,legend:n.length===1?t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??i[n%i.length]})):r.legend}}function mt(e){let{spec:t,series:n,empty:r,palette:i,stacked:a}=e;if(!n.length||!t.categories.length)return{...r};let s=t.type===`nightingale`,{cx:c,cy:l,r:u,plot:d}=ut(e,22),f=t.categories.length,p=a||s&&n.length>1,m=0;if(p)for(let e=0;e<f;e+=1){let t=0;for(let r of n)t+=Number.isFinite(r.values[e])?Math.max(0,r.values[e]):0;t>m&&(m=t)}else for(let e of n)for(let t of e.values)Number.isFinite(t)&&t>m&&(m=t);let g=b(0,m>0?m:1,t.yAxis??{}),_=u*Math.min(.5,Math.max(0,t.innerRadius??(s?0:.12))),v=e=>{let t=Math.max(0,Math.min(1,(e-g.min)/(g.max-g.min||1)));return _+(u-_)*(s?Math.sqrt(t):t)},y=$/f,x=s?0:y*.15,S=[];for(let e=0;e<f;e+=1){let r=Q+y*e+x/2,a=Q+y*(e+1)-x/2;if(p){let s=0;n.forEach(u=>{let d=u.values[e];if(!Number.isFinite(d)||d<=0)return;let f=v(s);s+=d;let p=v(s),m=n.length===1?t.categoryColors?.[t.categories[e]]??u.colors?.[e]??i[e%i.length]:u.colors?.[e]??u.color,g=(r+a)/2,_=(f+p)/2;S.push({path:Z(c,l,f,p,r,a),color:m,textColor:h(m),label:t.categories[e],series:u.label,value:d,a0:r,a1:a,r0:f,r1:p,cx:c,cy:l,lx:o(c+_*Math.cos(g)),ly:o(l+_*Math.sin(g))})})}else{let s=(a-r)/n.length;n.forEach((a,u)=>{let d=a.values[e];if(!Number.isFinite(d)||d<=0)return;let f=r+s*u,p=f+s*(n.length>1?.92:1),m=v(d),g=n.length===1?t.categoryColors?.[t.categories[e]]??a.colors?.[e]??i[e%i.length]:a.colors?.[e]??a.color,y=(f+p)/2,b=(_+m)/2;S.push({path:Z(c,l,_,m,f,p),color:g,textColor:h(g),label:t.categories[e],series:a.label,value:d,a0:f,a1:p,r0:_,r1:m,cx:c,cy:l,lx:o(c+b*Math.cos(y)),ly:o(l+b*Math.sin(y))})})}}let C=e.axes.x.labels?t.categories.map((e,t)=>{let n=Q+y*t+y/2,r=u+10;return{label:e,x:o(c+r*Math.cos(n)),y:o(l+r*Math.sin(n))}}):[];return{...r,plot:d,arcs:S,polarAxes:C,polarRings:g.ticks.filter(e=>e>g.min).map(e=>v(e)),radarCenter:{cx:c,cy:l,r:u},legend:n.length===1?t.categories.map((e,n)=>({label:e,color:t.categoryColors?.[e]??i[n%i.length]})):r.legend}}function ht(e){let{spec:t,empty:n,palette:r}=e,i=t.sankeyNodes??[],a=(t.sankeyLinks??[]).filter(e=>Number.isFinite(e.value)&&e.value>0);if(!i.length||!a.length)return{...n};let{cx:s,cy:c,r:l,plot:u}=ut(e,28),d=new Map;for(let e of a)d.set(e.source,(d.get(e.source)??0)+e.value),e.target!==e.source&&d.set(e.target,(d.get(e.target)??0)+e.value);let f=i.filter(e=>(d.get(e.id)??0)>0),p=f.reduce((e,t)=>e+(d.get(t.id)??0),0);if(p<=0)return{...n,plot:u};let m=Math.min(.06,$/(f.length*8)),g=$-m*f.length,_=l-Math.max(8,l*.09),v=[],y=new Map,b=Q;f.forEach((e,t)=>{let n=d.get(e.id)??0,i=g*n/p,a=e.color??r[t%r.length];y.set(e.id,{a0:b,a1:b+i,cursor:b,color:a});let u=b+i/2,f=l+12;v.push({path:Z(s,c,_,l,b,b+i),color:a,textColor:h(a),label:e.label??e.id,series:``,value:n,a0:b,a1:b+i,r0:_,r1:l,cx:s,cy:c,lx:o(s+f*Math.cos(u)),ly:o(c+f*Math.sin(u))}),b+=i+m});let x=(e,t)=>`${o(s+e*Math.cos(t))},${o(c+e*Math.sin(t))}`,S=[],C=(e,t)=>{let n=y.get(e);if(!n)return null;let r=(n.a1-n.a0)*t/(d.get(e)??1),i={a0:n.cursor,a1:n.cursor+r};return n.cursor+=r,i},w=a.slice().sort((e,t)=>t.value-e.value);for(let e of w){let t=C(e.source,e.value),n=e.target===e.source?t:C(e.target,e.value);if(!t||!n)continue;let r=+(t.a1-t.a0>Math.PI),i=+(n.a1-n.a0>Math.PI),a=`M${x(_,t.a0)} A${o(_)},${o(_)} 0 ${r} 1 ${x(_,t.a1)} Q${o(s)},${o(c)} ${x(_,n.a0)} A${o(_)},${o(_)} 0 ${i} 1 ${x(_,n.a1)} Q${o(s)},${o(c)} ${x(_,t.a0)} Z`;S.push({path:a,color:e.color??y.get(e.source).color,source:e.source,target:e.target,value:e.value})}return{...n,plot:u,arcs:v,chordRibbons:S,legend:f.map((e,t)=>({label:e.label??e.id,color:e.color??r[t%r.length]}))}}function gt(e){let{spec:n,series:r,width:i,height:a,empty:s,frame:c,axes:l}=e,u=r[0];if(!u)return{...s};let d=n.waterfallColors??{},f=d.positive??`#16a34a`,p=d.negative??`#ef4444`,m=d.total??`#475569`,h=n.categories.reduce((e,t)=>Math.max(e,t.length),0),g=48+(l.y.title?16:0),_=10+c.top,v=Math.max(1,i-g-12),b=typeof l.x.labelRotation==`number`?l.x.labelRotation!==0:h*6.2+8>v/Math.max(1,n.categories.length),x=typeof l.x.labelRotation==`number`?l.x.labelRotation:b?-40:0,S=(b?54:28)+(l.x.title?16:0)+c.bottom,C=Math.max(1,a-_-S),w={x:g,y:_,w:v,h:C},T=n.waterfallTotals??[],E=[],D=0;n.categories.forEach((e,t)=>{let n=u.values[t]??0;T[t]?(Number.isFinite(n)&&n!==0&&(D=n),E.push({from:0,to:D,value:D,isTotal:!0})):(E.push({from:D,to:D+n,value:n,isTotal:!1}),D+=n)});let O=0,k=0;for(let e of E)e.from<O&&(O=e.from),e.to<O&&(O=e.to),e.from>k&&(k=e.from),e.to>k&&(k=e.to);let A=y(O,k),j=e=>o(_+C-(e-A.min)/(A.max-A.min||1)*C),M=v/Math.max(1,n.categories.length),N=M*.2,P=Math.max(1,M-N),F=E.map((e,t)=>{let r=j(Math.max(e.from,e.to)),i=j(Math.min(e.from,e.to)),a=g+M*t+N/2,s=e.isTotal?m:e.value>=0?f:p;return{x:o(a),y:r,w:o(P),h:Math.max(1,i-r),color:s,label:n.categories[t]??String(t),series:u.label,value:e.value,index:t}}),I=[{path:E.map((e,t)=>{let n=g+M*t+N/2+P,r=j(e.to),i=g+M*(t+1)+N/2;return t<E.length-1?`M${n},${r} L${i},${r}`:``}).filter(Boolean).join(` `),areaPath:``,color:`var(--sg-muted, #94a3b8)`,label:``,points:[]}],L=n.categories.map((e,t)=>({label:e,x:o(g+M*t+M/2)})),R=A.ticks.map(e=>({value:e,y:j(e),label:t(e,n.valueFormat,n)}));return{...s,plot:w,bars:F,lines:I,yTicks:R,xTicks:L,xLabelRotated:b,xLabelAngle:x}}function _t(e){let{spec:t,series:n,width:r,height:i,empty:o,frame:s}=e,c=n[0];if(!c||!c.values.length)return{...o};let l=16+s.top,u=16+s.bottom,d=Math.max(1,r-20-20),f=Math.max(1,i-l-u),p={x:20,y:l,w:d,h:f},m=c.values.length,g=f/m,_=Math.max(...c.values.map(e=>Number.isFinite(e)?e:0)),v=c.values[0]??0,y=e=>_>0?e/_*d:0,b=20+d/2,x=t.palette??a,S=t.funnelShape??`trapezoid`,C=c.values.map((e,n)=>{let r=c.values[n+1]??e*.8,i=l+g*n,a=i+g,o;if(S===`pyramid`){let e=d*n/m,t=d*(n+1)/m;o=`M${b-e/2},${i} L${b+e/2},${i} L${b+t/2},${a} L${b-t/2},${a} Z`}else if(S===`cone`){let e=d*(1-n/m),t=d*(1-(n+1)/m);o=`M${b-e/2},${i} L${b+e/2},${i} L${b+t/2},${a} L${b-t/2},${a} Z`}else{let t=y(e),n=y(r);o=`M${b-t/2},${i} L${b+t/2},${i} L${b+n/2},${a} L${b-n/2},${a} Z`}let s=c.color??x[n%x.length];return{path:o,color:s,label:t.categories[n]??c.label,value:e,conversion:v>0?e/v:0,dropoff:n===0?0:(c.values[n-1]??e)>0?1-e/(c.values[n-1]??e):0,cx:b,cy:(i+a)/2,textColor:h(s)}});return{...o,plot:p,funnelSegments:C}}function vt(e){let{spec:t,width:n,height:r,empty:i,frame:o}=e,s=t.sankeyNodes??[],c=t.sankeyLinks??[];if(!s.length||!c.length)return{...i};let l=14+o.top,u=14+o.bottom,d=Math.max(1,n-10-10),f=Math.max(1,r-l-u),p={x:10,y:l,w:d,h:f},m=t.palette??a,h=new Map(s.map(e=>[e.id,e])),g=new Set(c.map(e=>e.target)),_=s.filter(e=>!g.has(e.id)),v=new Map;function y(e,t,n){if(!n.has(e)){n.add(e),(t>(v.get(e)??0)||!v.has(e))&&v.set(e,t);for(let r of c)r.source===e&&y(r.target,t+1,n);n.delete(e)}}for(let e of _)y(e.id,0,new Set);for(let e of s)v.has(e.id)||v.set(e.id,0);let b=Math.max(...v.values())+1,x=b>1?(d-14*b)/(b-1):0,S=new Map,C=new Map;for(let e of c)S.set(e.target,(S.get(e.target)??0)+e.value),C.set(e.source,(C.get(e.source)??0)+e.value);let w=new Map;for(let e of s){let t=v.get(e.id)??0,n=w.get(t)??[];n.push(e.id),w.set(t,n)}let T=0;for(let e of w.values()){let t=e.reduce((e,t)=>e+Math.max(S.get(t)??0,C.get(t)??0),0);t>T&&(T=t)}if(T===0)return{...i,plot:p};let E=(f-64)/T,D=[];for(let[e,t]of w){let n=t.map(e=>Math.max(8,Math.max(S.get(e)??0,C.get(e)??0)*E)),r=l+(f-(n.reduce((e,t)=>e+t,0)+8*(t.length-1)))/2,i=10+e*(14+x);t.forEach((t,a)=>{let o=h.get(t),s=n[a];D.push({id:t,label:o.label??t,color:o.color??m[D.length%m.length],x:i,y:r,w:14,h:s,column:e,totalIn:S.get(t)??0,totalOut:C.get(t)??0}),r+=s+8})}let O=new Map(D.map(e=>[e.id,e])),k=new Map,A=new Map,j=[],M=c.slice().sort((e,t)=>t.value-e.value);for(let e of M){let t=O.get(e.source),n=O.get(e.target);if(!t||!n)continue;let r=Math.max(1,e.value*E),i=t.y+(A.get(t.id)??0)+r/2,a=n.y+(k.get(n.id)??0)+r/2;A.set(t.id,(A.get(t.id)??0)+r),k.set(n.id,(k.get(n.id)??0)+r);let o=t.x+t.w,s=n.x,c=(o+s)/2,l=`M${o},${i} C${c},${i} ${c},${a} ${s},${a}`;j.push({path:l,color:e.color??t.color,width:r,source:e.source,target:e.target,value:e.value})}return{...i,plot:p,sankeyNodes:D,sankeyLinks:j}}function yt(e){let{spec:n,width:r,height:i,theme:a,empty:o,frame:s}=e,c=n.calendarValues??[];if(!c.length&&!n.calendarStart)return{...o};let l=new Map,u=1/0,d=-1/0;for(let e of c)l.set(e.date,e.value),Number.isFinite(e.value)&&(e.value<u&&(u=e.value),e.value>d&&(d=e.value));u===1/0&&(u=0,d=1),u===d&&(d=u+1);let m=f(n.colorScale,u,d,a),h=e=>p(m,(e-u)/(d-u)),g=c.map(e=>e.date).sort(),_=n.calendarStart??g[0]??`2026-01-01`,v=n.calendarEnd??g[g.length-1]??_,y=new Date(_+`T00:00:00Z`),b=new Date(v+`T00:00:00Z`);y.setUTCDate(y.getUTCDate()-y.getUTCDay()),b.setUTCDate(b.getUTCDate()+(6-b.getUTCDay()));let x=Math.round((b.getTime()-y.getTime())/864e5)+1,S=Math.ceil(x/7),C=26+s.top,w=16+s.bottom,T=Math.max(1,r-36-80),E=Math.max(1,i-C-w),D=Math.floor(T/S),O=Math.floor(E/7),k=Math.max(6,Math.min(D,O)),A={x:36,y:C,w:k*S,h:k*7},j=[],M=-1,N=[];for(let e=0;e<x;e+=1){let t=new Date(y.getTime()+e*864e5),n=Math.floor(e/7),r=e%7,i=t.toISOString().slice(0,10),a=l.has(i),o=l.get(i)??0;j.push({x:36+n*k,y:C+r*k,size:k,date:i,value:o,defined:a,color:a?h(o):`transparent`}),t.getUTCDate()===1&&t.getUTCMonth()!==M&&i>=_&&i<=v&&(M=t.getUTCMonth(),N.push({label:t.toLocaleDateString(void 0,{month:`short`}),x:36+n*k}))}let P=Array.from({length:5},(e,r)=>{let i=r/4,a=bt(u,d,i);return{value:a,color:h(a),label:t(a,n.valueFormat,n)}});return{...o,plot:A,calendarCells:j,calendarMonthTicks:N,calendarLegend:P}}function bt(e,t,n){let r=e+(t-e)*n,i=Math.abs(t-e)/4;if(!(i>0))return r;let a=i>=1?0:Math.min(6,Math.ceil(-Math.log10(i))+1);return Number(r.toFixed(a))}function xt(e){let{spec:n,series:r,width:i,height:a,theme:s,empty:c,frame:l}=e;if(!r.length||!n.categories.length)return{...c,plot:{x:0,y:0,w:i,h:a}};let u=r.reduce((e,t)=>Math.max(e,t.label.length),0),d=12+Math.min(180,Math.max(60,u*7)),m=12+l.top,g=32+l.bottom,_=Math.max(1,i-d-64),v=Math.max(1,a-m-g),y={x:d,y:m,w:_,h:v},b=_/n.categories.length,x=v/r.length,S=1/0,C=-1/0;for(let e of r)for(let t of e.values)Number.isFinite(t)&&(t<S&&(S=t),t>C&&(C=t));S===1/0&&(S=0,C=1),S===C&&(C=S+1);let w=f(n.colorScale,S,C,s),T=e=>p(w,(e-S)/(C-S)),E=[];r.forEach((e,t)=>{e.values.forEach((r,i)=>{if(!Number.isFinite(r))return;let a=T(r);E.push({x:o(d+b*i),y:o(m+x*t),w:o(b),h:o(x),color:a,textColor:h(a),value:r,rowLabel:e.label,colLabel:n.categories[i]??``})})});let O=r.map((e,t)=>({value:t,y:o(m+x*t+x/2),label:e.label})),k=D(n.categories,e=>o(d+b*e+b/2),b,!1),A=Array.from({length:5},(e,r)=>{let i=r/4,a=bt(S,C,i);return{value:a,color:T(a),label:t(a,n.valueFormat,n)}});return{...c,plot:y,heatmapCells:E,heatmapRowTicks:O,heatmapColTicks:k,heatmapLegend:A}}function St(e){let{spec:t,width:n,height:r,empty:i,frame:s}=e,c=t.treemap??t.tree;if(!c)return{...i};let l=4+s.top,u=4+s.bottom,d=Math.max(1,n-4-4),f=Math.max(1,r-l-u),p={x:4,y:l,w:d,h:f},m=t.palette??a,g=[];function _(e){return e.children?.length?e.children.reduce((e,t)=>e+_(t),0):Math.max(0,e.value??0)}function v(e,t,n,r,i,a){if(!e.length||r<=0||i<=0)return;let s=e.map(_),c=s.reduce((e,t)=>e+t,0);if(c<=0)return;let l=e.map((e,t)=>({node:e,value:s[t]})).sort((e,t)=>t.value-e.value),u=t,d=n,f=r,p=i,y=c,b=[],x=(e,t,n,r)=>{if(n<=0)return 1/0;let i=n*r/t,a=0;for(let n of e){let e=n*r/i,o=Math.max(t/e,e/t);o>a&&(a=o)}return a};function S(){if(!b.length)return;let e=b.reduce((e,t)=>e+t.value,0),t=f*p/y,n=f>=p,r=n?p:f,i=e*t/r,s=0;for(let e of b){let r=e.value*t/i,c=n?u:u+s,l=n?d+s:d,f=n?i:r,p=n?r:i,_=e.node.color??m[(a+g.length)%m.length];if(e.node.children?.length){g.push({x:o(c),y:o(l),w:o(f),h:o(p),color:_,textColor:h(_),name:e.node.name,value:e.value,depth:a});let t=Math.min(18,p*.25);v(e.node.children,c+1,l+t,f-2,p-t-1,a+1)}else g.push({x:o(c),y:o(l),w:o(f),h:o(p),color:_,textColor:h(_),name:e.node.name,value:e.value,depth:a});s+=r}n?(u+=i,f-=i):(d+=i,p-=i),y-=e,b=[]}for(let e of l){let t=f*p/y,n=Math.min(f,p),r=b.reduce((e,t)=>e+t.value,0),i=x(b.map(e=>e.value),n,r,t),a=x([...b.map(e=>e.value),e.value],n,r+e.value,t);b.length&&a>i&&S(),b.push(e)}S()}return v(c.children??[c],4,l,d,f,0),{...i,plot:p,treemapCells:g}}function Ct(e,t){let n=e;for(let e of t)if(n=n?.children?.find(t=>t.name===e),!n)return null;return n??null}function wt(e,t){let n=(e,r)=>{for(let i of e.children??[]){let e=[...r,i.name];if(i.name===t)return e;let a=n(i,e);if(a)return a}return null};return n(e,[])}var Tt=new Set([`scatter`,`gauge`,`boxplot`,`histogram`,`range-bar`,`range-area`,`dumbbell`,`bullet`,`candlestick`,`ohlc`]);function Et(e){return!e||Tt.has(e)?`bar`:e}function Dt(e,t,n){let r=e[e.length-1];return r&&t.find(e=>n(e.id)===r)?.id||null}function Ot(e,t,n){let r=[],i=new Map,a=new Map;for(let t of e){let e=i.get(t.category);e===void 0&&(e=r.length,i.set(t.category,e),r.push(t.category));let o=n?t.series??``:`value`,s=a.get(o);s||(s=[],a.set(o,s)),s[e]=(s[e]??0)+t.value}return{type:t,categories:r,series:[...a.entries()].map(([e,t])=>({label:e,values:r.map((e,n)=>t[n]??0)}))}}function kt(e){if(!e)return{};let t=Array.isArray(e.locales)?e.locales[0]:e.locales,n=t?{locale:t}:{};return e.type===`number`?{...n,valueFormat:`number`}:e.type===`currency`?{...n,valueFormat:`currency`,currency:e.currency??`USD`}:e.type===`percent`?e.valueIsPercentPoints?{...n,yAxis:{formatter:e=>`${e}%`}}:{...n,valueFormat:`percent`}:{}}function At(e,t={}){let n=Et(t.type),r=e.rows.filter(e=>e.__pivotKind===`leaf`);r.length||(r=e.rows.filter(e=>e.__pivotKind===`grandTotal`)),r.length||(r=e.rows.slice()),t.maxCategories&&r.length>t.maxCategories&&(r=r.slice(0,t.maxCategories));let i=new Map(e.rows.map(e=>[e.__pivotId,e])),a=e=>String(e.__pivotLabel??``).trim()||`(blank)`,o=r.map(a),s=e=>e.__pivotParentId?i.get(e.__pivotParentId):void 0,c=r.length>0&&r.every(e=>s(e)!==void 0),l;if(c){l=[];let e;for(let t of r){let n=t.__pivotParentId,r=l[l.length-1];r&&n===e?r.span+=1:(l.push({label:a(s(t)),span:1}),e=n)}}let u=[],d=(e,n)=>{for(let r of e??[])!r||r.id===`__pivotRowHeader`||!t.includeTotals&&typeof r.id==`string`&&r.id.startsWith(`pv_group__grand`)||(Array.isArray(r.columns)?d(r.columns,[...n,String(r.header??``)]):typeof r.id==`string`&&u.push({id:r.id,path:n,header:String(r.header??``)}))};d(e.columns,[]);let f=t.includeTotals?u:u.filter(e=>!e.id.includes(`__total`)),p=new Set(f.map(e=>e.header)),m=f.map(e=>({label:e.path.length===0?e.header:p.size>1?[...e.path,e.header].join(` · `):e.path.join(` · `),values:r.map(t=>{let n=t[e.id];return n==null||n===``?NaN:typeof n==`number`?n:Number(n)})})),h=p.size===1&&f.length?f[0].header:``,g=t.yAxisTitle===void 0?h:t.yAxisTitle,_=(t.measures??[]).map(e=>e.format),v=_[0]&&_.every(e=>e&&JSON.stringify(e)===JSON.stringify(_[0]))?_[0]:void 0,y=kt(t.format??v);return{type:n,categories:o,series:m,...l&&l.length>1?{categoryGroups:l}:{},...t.stacked||t.stacked100?{stacked:!0}:{},...t.stacked100?{stacked100:!0}:{},...t.palette?{palette:t.palette}:{},...y,...g?{yAxis:{...y.yAxis,title:g}}:{}}}var jt=e({CHART_RESPONSIVE_PRESETS:()=>Wt,DEFAULT_PALETTE:()=>a,PER_CATEGORY_SERIES_KEYS:()=>de,PER_CATEGORY_SPEC_KEYS:()=>fe,applyChartFormat:()=>Gt,arcPath:()=>Z,atr:()=>Se,binValues:()=>re,bollingerBands:()=>ge,boxStats:()=>k,bucketStart:()=>ne,bucketsToChartSpec:()=>Ot,buildChart:()=>Ft,buildLinePath:()=>ze,chartScales:()=>ae,chartStyleVars:()=>Mt,computeOverlay:()=>Te,computeOverlayFit:()=>Ee,decimateSpec:()=>J,exponentialFit:()=>L,exponentialMovingAverage:()=>B,formatChartValue:()=>t,guessOhlcColumns:()=>Fe,heikinAshi:()=>Ne,indicatorPane:()=>Me,layoutDataLabels:()=>Ye,linearFit:()=>I,linearTrend:()=>i,logarithmicFit:()=>R,lttb:()=>pe,macd:()=>ve,markerPath:()=>Ke,matchResponsiveRules:()=>Nt,minMaxIndices:()=>q,niceLogScale:()=>g,niceScale:()=>y,obv:()=>we,ohlcDirectOptions:()=>Ie,ordinalDateTicks:()=>C,overlayName:()=>Oe,paretoSpec:()=>Rt,pearson:()=>n,percentile:()=>U,pickCategories:()=>K,pickContrastText:()=>h,pivotChartType:()=>Et,pivotFilterColumn:()=>Dt,pivotResultToChartSpec:()=>At,polynomialFit:()=>F,powerFit:()=>ee,rSquared:()=>M,reduceValues:()=>H,regressionFit:()=>De,resampleOhlc:()=>Pe,resolveResponsive:()=>Pt,rowsToBoxSpec:()=>qt,rowsToChartSpec:()=>Lt,rowsToDirectSpec:()=>Kt,rowsToGaugeSpec:()=>Yt,rowsToHistogramSpec:()=>zt,rowsToOhlcSpec:()=>Re,rowsToRangeSpec:()=>Bt,rowsToScatterSpec:()=>Jt,rsi:()=>_e,sampleGradient:()=>p,simpleMovingAverage:()=>z,sliceChartWindow:()=>It,specToCalendar:()=>Ht,specToSankey:()=>Ut,specToTreemap:()=>Vt,splitPanelIndicators:()=>Le,stochastic:()=>Ce,streamBaseline:()=>We,vwap:()=>be,wma:()=>he});function Mt(e){if(!e)return``;let t=[];return e.background&&t.push(`--sg-chart-bg:${e.background}`,`--sg-bg:${e.background}`),e.textColor&&t.push(`--sg-fg:${e.textColor}`,`--sg-muted:${e.textColor}`),e.gridColor&&t.push(`--sg-border:${e.gridColor}`),e.fontSize&&Number.isFinite(e.fontSize)&&e.fontSize>0&&t.push(`--sg-chart-font-scale:${Math.round(e.fontSize/12*1e3)/1e3}`),e.fontFamily&&t.push(`font-family:${e.fontFamily}`),t.join(`;`)}function Nt(e,t,n){return e?.length?e.filter(e=>(e.maxWidth==null||t<=e.maxWidth)&&(e.minWidth==null||t>=e.minWidth)&&(e.maxHeight==null||n<=e.maxHeight)):[]}function Pt(e,t,n){let r=Nt(e.responsive,t,n);if(!r.length)return e;let i=e;for(let e of r){if(!e.spec)continue;let{width:t,height:n,responsive:r,...a}=e.spec,o={...i,...a};for(let e of[`xAxis`,`yAxis`,`y2Axis`])a[e]&&(o[e]={...i[e]??{},...a[e]});i=o}return i}function Ft(e,t=`light`){let n=e.width??520,r=e.height??300,i=Pt(e,n,r);if(i.type===`pareto`)return Ft(Rt(i),t);let o=i.palette??a,s=!!(i.stacked||i.stacked100),c=i.series.map((e,t)=>({...e,values:(e.nullAs??i.nullAs)===`zero`?e.values.map(e=>Number.isFinite(e)?e:0):e.values,color:e.color??o[t%o.length],kind:W(e,i.type),axis:e.axis??`left`})),l=le(i,n,r),u=G(i),d=c.map(e=>({label:e.label,color:e.color})),f={spec:i,theme:t,width:n,height:r,palette:o,stacked:s,series:c,legend:d,empty:{type:i.type,width:n,height:r,plot:{x:0,y:0,w:n,h:r},axes:null,frame:l,grid:{x:!1,y:!1},referenceBands:[],bars:[],candles:[],boxes:[],errorBars:[],stems:[],arcs:[],chordRibbons:[],bullets:[],drawings:[],seriesLabels:[],polarAxes:[],polarRings:[],lines:[],slices:[],yTicks:[],y2Ticks:[],hasRightAxis:!1,xTicks:[],categoryGroupTicks:[],xLabelRotated:!1,xLabelAngle:0,legend:d,donut:null,referenceLines:[],scatterPoints:[],orientation:`vertical`,valueTicks:[],catTicks:[],referenceLinesV:[],overlays:[],annotations:[],heatmapCells:[],heatmapRowTicks:[],heatmapColTicks:[],heatmapLegend:[],funnelSegments:[],radarRings:[],radarAxes:[],radarSeries:[],radarCenter:null,treemapCells:[],calendarCells:[],calendarMonthTicks:[],calendarLegend:[],gauge:null,sankeyNodes:[],sankeyLinks:[]},frame:l,axes:u};return i.type===`waterfall`?gt(f):i.type===`funnel`?_t(f):i.type===`radar`?ot(f):i.type===`calendar`?yt(f):i.type===`gauge`?st(f):i.type===`treemap`?St(f):i.type===`sankey`?vt(f):i.type===`heatmap`?xt(f):i.type===`pie`?ct(f):i.type===`scatter`?et(f):i.type===`sunburst`?ft(f):i.type===`radial-bar`?pt(f):i.type===`radial-column`||i.type===`nightingale`?mt(f):i.type===`chord`?ht(f):i.type===`bullet`?at(f):i.orientation===`horizontal`&&i.type!==`histogram`&&c.length>0&&c.every(e=>e.kind===`bar`)?tt(f):nt(f)}function It(e,t,n){let r=Math.max(0,t),i=Math.min(e.categories.length-1,n);if(i<r)return{...e,categories:[],series:e.series.map(e=>({...e,values:[]}))};let a=Array(i-r+1);for(let e=r;e<=i;e+=1)a[e-r]=e;return K(e,a)}function Lt(e,t){let n=t.reduce??`sum`,r=V(n),i=Array.isArray(t.value)?t.value:[t.value],a=e=>r?H(e.samples,n):n===`count`?e.count:n===`avg`?e.count?e.sum/e.count:0:e.sum,o=[],s=new Map,c=e=>{let t=s.get(e);return t===void 0&&(t=o.length,s.set(e,t),o.push(e)),t},l=new Map,u=e=>{let t=l.get(e);return t||(t=[],l.set(e,t)),t},d=(e,t,n)=>{e.sum+=t,e.count+=1,r&&e.samples.push(t),n!==void 0&&e.rowIds.push(n)},f=()=>({sum:0,count:0,rowIds:[],samples:[]}),p=t.idField!==void 0;for(let n of e){let e=n[t.category],r=t.bucket?ne(e,t.bucket):String(e??``);if(t.bucket&&!r)continue;let a=c(r),o=p?n[t.idField]:void 0;if(t.series){let e=u(String(n[t.series]??``)),r=Number(n[i[0]]),s=e[a]??=f();Number.isFinite(r)&&d(s,r,o)}else for(let e of i){let t=u(e),r=Number(n[e]),i=t[a]??=f();Number.isFinite(r)&&d(i,r,o)}}let m=[...l.entries()].map(([e,n])=>({label:t.series?e:t.seriesLabel&&i.length===1?t.seriesLabel:e,values:o.map((e,t)=>a(n[t]??f())),rowIds:p?o.map((e,t)=>(n[t]?.rowIds??[]).slice()):void 0})),h=o.map((e,t)=>m.reduce((e,n)=>e+(Number.isFinite(n.values[t])?n.values[t]:0),0)),g=t.sort??(t.topN?`value-desc`:t.bucket?`category`:`none`),_=o.map((e,t)=>t);g===`value-desc`?_.sort((e,t)=>h[t]-h[e]):g===`value-asc`?_.sort((e,t)=>h[e]-h[t]):g===`category`&&_.sort((e,t)=>o[e].localeCompare(o[t]));let v,y;if(t.topN&&_.length>t.topN){let e=t.otherLabel??`Other`,n=_.find(t=>o[t]===e),r=_.slice(0,t.topN).filter(e=>e!==n),i=_.filter(e=>!r.includes(e));v=r.map(e=>o[e]).concat(e),y=m.map(e=>({label:e.label,values:r.map(t=>e.values[t]).concat(i.reduce((t,n)=>t+(Number.isFinite(e.values[n])?e.values[n]:0),0)),rowIds:e.rowIds?r.map(t=>e.rowIds[t]).concat([i.flatMap(t=>e.rowIds[t]??[])]):void 0}))}else v=_.map(e=>o[e]),y=m.map(e=>({label:e.label,values:_.map(t=>e.values[t]),rowIds:e.rowIds?_.map(t=>e.rowIds[t]):void 0}));return{type:t.type,categories:v,series:y,width:t.width,height:t.height,stacked:t.stacked,stacked100:t.stacked100,palette:t.palette,...t.bucket?{xType:`ordinal-time`}:{}}}function Rt(e,t=80){let n=e.series[0];if(!n)return{...e,type:`bar`};let r=K(e,e.categories.map((e,t)=>t).sort((e,t)=>(n.values[t]??0)-(n.values[e]??0))),i=r.series[0].values.map(e=>Number.isFinite(e)?Math.max(0,e):0),a=i.reduce((e,t)=>e+t,0)||1,o=0,s=i.map(e=>(o+=e,Math.round(o/a*1e3)/10));return{...r,type:`bar`,series:[{...r.series[0],type:`bar`},{label:`Cumulative %`,values:s,type:`line`,axis:`right`,marker:`circle`,color:r.series[0].overlayColor??`#ef4444`}],y2Axis:{min:0,max:100,tickInterval:25,formatter:e=>`${e}%`,...e.y2Axis??{}},referenceLines:[...e.referenceLines??[],...t>0?[{value:t,axis:`right`,label:`${t}%`,dashed:!0}]:[]]}}function zt(e,t){let n=re(e.map(e=>Number(e[t.value])).filter(Number.isFinite),{bins:t.bins,binWidth:t.binWidth,method:t.method,min:t.min,max:t.max}),r=(t.series?[...new Set(e.map(e=>String(e[t.series]??``)))].map(n=>({label:n,rows:e.filter(e=>String(e[t.series]??``)===n)})):[{label:t.seriesLabel??String(t.value),rows:e}]).map(e=>{let r=Array(n.counts.length).fill(0),i=n.edges[0]??0;for(let a of e.rows){let e=Number(a[t.value]);if(!Number.isFinite(e)||!n.width)continue;let o=Math.floor((e-i)/n.width);o>=r.length&&(o=r.length-1),o<0&&(o=0),r[o]=(r[o]??0)+1}return{label:e.label,values:r}});return{type:`histogram`,categories:n.categories,series:r,binEdges:n.edges,xType:`number`,...t.palette?{palette:t.palette}:{},...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Bt(e,t){let n=[],r=new Set;for(let i of e){let e=String(i[t.category]??``);r.has(e)||(r.add(e),n.push(e))}let i=(t.series?[...new Set(e.map(e=>String(e[t.series]??``)))]:[t.seriesLabel??`${String(t.low)} to ${String(t.high)}`]).map(r=>{let i=Array(n.length).fill(NaN),a=Array(n.length).fill(NaN);for(let o of e){if(t.series&&String(o[t.series]??``)!==r)continue;let e=n.indexOf(String(o[t.category]??``)),s=Number(o[t.low]),c=Number(o[t.high]);e<0||!Number.isFinite(s)||!Number.isFinite(c)||(i[e]=Math.min(s,c),a[e]=Math.max(s,c))}return{label:r,values:a,lowValues:i}});return{type:t.type??`range-bar`,categories:n,series:i,...t.palette?{palette:t.palette}:{},...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Vt(e,t=`Total`){let n=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:0;if(e.series.length<=1){let r=e.series[0];return{name:t,children:e.categories.map((e,t)=>({name:e,value:n(r?.values[t])})).filter(e=>e.value>0)}}return{name:t,children:e.categories.map((t,r)=>({name:t,children:e.series.map(e=>({name:e.label,value:n(e.values[r])})).filter(e=>e.value>0)})).filter(e=>e.children.length>0)}}function Ht(e){let t=e.series[0],n=[];return e.categories.forEach((e,r)=>{let i=Date.parse(e);if(!Number.isFinite(i))return;let a=t?.values[r];typeof a!=`number`||!Number.isFinite(a)||n.push({date:new Date(i).toISOString().slice(0,10),value:a})}),n}function Ut(e){let t=[],n=new Set;return e.categories.forEach((r,i)=>{for(let a of e.series){let e=a.values[i];if(typeof e!=`number`||!Number.isFinite(e)||e<=0)continue;let o=`from:${r}`,s=`to:${a.label}`;o!==s&&(n.add(o),n.add(s),t.push({source:o,target:s,value:e}))}}),{nodes:[...n].map(e=>({id:e,label:e.slice(e.indexOf(`:`)+1)})),links:t}}var Wt={compact:e=>({maxWidth:e,spec:{seriesLabels:!1,dataLabels:{show:!1},xAxis:{labelRotation:90}},legend:!1})};function Gt(e,t){if(!t)return e;let n={...e};t.title!==void 0&&(n.title=t.title||void 0),t.subtitle!==void 0&&(n.subtitle=t.subtitle||void 0),t.caption!==void 0&&(n.caption=t.caption||void 0),t.palette&&(n.palette=t.palette),t.seriesLabels!==void 0&&(n.seriesLabels=t.seriesLabels),t.style&&(n.style={...e.style,...t.style}),t.compactBelow!=null&&t.compactBelow>0&&(n.responsive=[...e.responsive??[],Wt.compact(t.compactBelow)]);let r=(e,t)=>{if(!t)return e;let n={...e};return t.min!==void 0&&(t.min===null?delete n.min:n.min=t.min),t.max!==void 0&&(t.max===null?delete n.max:n.max=t.max),t.title!==void 0&&(n.title=t.title||void 0),t.gridLines!==void 0&&(n.gridLines=t.gridLines),t.format!==void 0&&(n.format=t.format),n};if(t.xAxis){let e={...n.xAxis};t.xAxis.title!==void 0&&(e.title=t.xAxis.title||void 0),t.xAxis.gridLines!==void 0&&(e.gridLines=t.xAxis.gridLines),t.xAxis.labelRotation!==void 0&&(e.labelRotation=t.xAxis.labelRotation),n.xAxis=e}return t.yAxis&&(n.yAxis=r(n.yAxis,t.yAxis)),t.y2Axis&&(n.y2Axis=r(n.y2Axis,t.y2Axis)),t.series&&(n.series=e.series.map(e=>{let n=t.series[e.label];if(!n)return e;let r={...e};return n.color&&(r.color=n.color),n.type&&(r.type=n.type),n.axis&&(r.axis=n.axis),n.marker&&(r.marker=n.marker),n.strokeWidth!==void 0&&(r.strokeWidth=n.strokeWidth),n.dash!==void 0&&(r.dash=n.dash||void 0),n.smooth!==void 0&&(r.smooth=n.smooth),n.stack!==void 0&&(r.stack=n.stack||void 0),r})),n}function Kt(e,t,n){let r=n.category,i=n.value,a=n.series;if(e===`candlestick`||e===`ohlc`){let i=n.ohlc;if(!r||!i)return null;let a=e=>e;return Re(t,{date:r,open:a(i.open),high:a(i.high),low:a(i.low),close:a(i.close),...i.volume?{volume:a(i.volume)}:{},...i.bucket?{bucket:i.bucket}:{},...i.candleStyle?{candleStyle:i.candleStyle}:{},...i.lastPriceLine?{lastPriceLine:!0}:{},type:e})}if(e===`scatter`){let e=n.value2;return!i||!e?null:Jt(t,{x:i,y:e,...a?{series:a}:{},...n.palette?{palette:n.palette}:{}})}if(e===`gauge`)return i?Yt(t,{value:i,...n.reduce?{reduce:n.reduce}:{}}):null;if(e===`boxplot`){if(!r||!i)return null;let e=qt(t,{category:r,value:i,...a?{series:a}:{}});return n.palette&&(e.palette=n.palette),e}if(e===`histogram`)return i?zt(t,{value:i,...a?{series:a}:{},...n.bins?{bins:n.bins}:{},...n.palette?{palette:n.palette}:{}}):null;if(e===`range-bar`||e===`range-area`||e===`dumbbell`){let o=n.value2;if(!r||!i||!o)return null;let s=Lt(t,{type:`bar`,category:r,value:i,...a?{series:a}:{},reduce:n.reduce??`sum`}),c=Lt(t,{type:`bar`,category:r,value:o,...a?{series:a}:{},reduce:n.reduce??`sum`});return{type:e,categories:c.categories,series:c.series.map((e,t)=>({...e,label:a?e.label:`${String(i)} to ${String(o)}`,lowValues:s.series[t]?.values.map((t,n)=>Math.min(t,e.values[n]??t))??[],values:e.values.map((e,n)=>Math.max(e,s.series[t]?.values[n]??e))})),...n.palette?{palette:n.palette}:{}}}if(e===`bullet`){if(!r||!i)return null;let e=Lt(t,{type:`bar`,category:r,value:i,reduce:n.reduce??`sum`}),a=n.value2,o=a?Lt(t,{type:`bar`,category:r,value:a,reduce:n.reduce??`sum`}):null;return{type:`bullet`,categories:e.categories,series:[{...e.series[0],...o?{targets:o.series[0].values}:{}}],...n.palette?{palette:n.palette}:{}}}return null}function qt(e,t){let n=[],r=new Set;for(let i of e){let e=String(i[t.category]??``);r.has(e)||(r.add(e),n.push(e))}let i=[],a=new Set;if(t.series)for(let n of e){let e=String(n[t.series]??``);a.has(e)||(a.add(e),i.push(e))}else i.push(t.seriesLabel??String(t.value));return{type:`boxplot`,categories:n,series:i.map(r=>{let i=n.map(n=>{let i=[];for(let a of e){if(String(a[t.category]??``)!==n||t.series&&String(a[t.series]??``)!==r)continue;let e=a[t.value];if(e==null||e===``)continue;let o=Number(e);Number.isFinite(o)&&i.push(o)}return k(i,t.whisker)});return{label:r,values:i.map(e=>e?e.median:NaN),boxes:i}}),...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}}function Jt(e,t){let n=new Map;for(let r of e){let e=Number(r[t.x]),i=Number(r[t.y]);if(!Number.isFinite(e)||!Number.isFinite(i))continue;let a=t.series?String(r[t.series]??``):t.y,o={x:e,y:i};if(t.r){let e=Number(r[t.r]);Number.isFinite(e)&&(o.r=e)}t.label&&(o.label=String(r[t.label]??``));let s=n.get(a);s?s.push(o):n.set(a,[o])}return{type:`scatter`,categories:[],series:[...n].map(([e,t])=>({label:e,values:[],points:t})),palette:t.palette,width:t.width,height:t.height,xAxisTitle:t.x,yAxisTitle:t.y}}function Yt(e,t){let n=[];for(let r of e){let e=Number(r[t.value]);Number.isFinite(e)&&n.push(e)}let r=H(n,t.reduce??`sum`),i=Number.isFinite(r)?r:0,a=t.min??Math.min(0,i);return{type:`gauge`,categories:[],series:[],gaugeValue:i,gaugeMin:a,gaugeMax:t.max??(i>a?y(a,i).max:a+1),gaugeTarget:t.target,gaugeUnit:t.unit,width:t.width,height:t.height}}export{Me as C,a as D,ae as E,E as O,Ke as S,J as T,Ct as _,Pt as a,ze as b,zt as c,It as d,Ht as f,At as g,Et as h,Nt as i,T as k,Bt as l,Vt as m,Mt as n,qt as o,Ut as p,jt as r,Lt as s,Ft as t,Jt as u,wt as v,Oe as w,Ye as x,Z as y};