@blueprint-chart/lib 1.8.2 → 1.8.3
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.
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
export declare function resolvePosition(value: number | string, size: number): number;
|
|
2
|
+
/**
|
|
3
|
+
* Fraction of the chart width an annotation wraps at when the BPC sets no
|
|
4
|
+
* explicit `maxWidth`. Unwrapped text runs off the canvas and drags the whole
|
|
5
|
+
* chart down with it, because `expandSvgToFitAnnotations` grows the viewBox to
|
|
6
|
+
* cover the overflow and `preserveAspectRatio` then scales everything to fit.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_MAX_WIDTH_RATIO = 0.4;
|
|
2
9
|
export declare function resolveMaxWidth(maxWidth: number | string | undefined, chartWidth: number): number | undefined;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o, Et as s, F as c, G as l, H as ee, I as te, J as u, K as ne, L as re, M as ie, N as ae, O as oe, P as se, Q as d, R as ce, S as f, St as le, T as ue, Tt as de, U as fe, V as pe, W as me, X as p, Y as he, Z as ge, _ as _e, _t as ve, a as ye, at as be, b as xe, bt as Se, c as Ce, ct as we, d as Te, dt as Ee, et as De, f as Oe, ft as ke, g as Ae, gt as je, h as Me, ht as Ne, i as m, it as Pe, j as Fe, k as Ie, l as Le, lt as h, m as g, mt as Re, n as _, nt as ze, o as Be, ot as Ve, p as v, pt as He, q as Ue, r as We, rt as Ge, s as Ke, st as qe, t as Je, tt as y, u as Ye, ut as Xe, v as Ze, vt as Qe, w as $e, wt as et, x as b, xt as tt, y as nt, yt as rt, z as it } from "./render-bpc-
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, Ct as i, D as a, E as o, Et as s, F as c, G as l, H as ee, I as te, J as u, K as ne, L as re, M as ie, N as ae, O as oe, P as se, Q as d, R as ce, S as f, St as le, T as ue, Tt as de, U as fe, V as pe, W as me, X as p, Y as he, Z as ge, _ as _e, _t as ve, a as ye, at as be, b as xe, bt as Se, c as Ce, ct as we, d as Te, dt as Ee, et as De, f as Oe, ft as ke, g as Ae, gt as je, h as Me, ht as Ne, i as m, it as Pe, j as Fe, k as Ie, l as Le, lt as h, m as g, mt as Re, n as _, nt as ze, o as Be, ot as Ve, p as v, pt as He, q as Ue, r as We, rt as Ge, s as Ke, st as qe, t as Je, tt as y, u as Ye, ut as Xe, v as Ze, vt as Qe, w as $e, wt as et, x as b, xt as tt, y as nt, yt as rt, z as it } from "./render-bpc-Bgb7rsgM.js";
|
|
2
2
|
import { t as at } from "./runtime-BnrDRLyH.js";
|
|
3
3
|
import x from "chroma-js";
|
|
4
4
|
//#region src/recommendations/intent.ts
|
package/dist/lib/lib.iife.js
CHANGED
|
@@ -249,7 +249,8 @@ body {
|
|
|
249
249
|
display: none;
|
|
250
250
|
}
|
|
251
251
|
`,document.head.appendChild(e)}function L_(e){let t=e?nh(e):null,n=e=>typeof e==`number`&&t?t(e):String(e);return e=>{if(e&&typeof e==`object`){if(`data`in e&&typeof e.data==`number`)return n(e.data);let t=e;if(`label`in t&&`value`in t)return`${t.label}: ${n(t.value)}`;if(`series`in t&&`value`in t)return`${t.series}: ${n(t.value)}`;if(`value`in t)return n(t.value)}return String(e)}}function R_(e){let t=e?.format??L_(e?.numberFormat),n=null,r=[];return{name:`tooltip`,install(){I_(),n=document.createElement(`div`),n.className=F_,document.body.appendChild(n)},postDraw(e){e.base.selectAll(`.bc-bar, .bc-dot, .bc-arc`).each(function(){let e=this,i=()=>{if(!n)return;let r=$(e).datum();n.textContent=t(r),n.style.display=`block`,P_(e,n,{placement:`top`,middleware:[j_(8),N_(),M_()]}).then(({x:e,y:t})=>{n&&(n.style.left=`${e}px`,n.style.top=`${t}px`)})},a=()=>{n&&(n.style.display=`none`)};e.addEventListener(`mouseenter`,i),e.addEventListener(`mouseleave`,a),r.push(()=>{e.removeEventListener(`mouseenter`,i),e.removeEventListener(`mouseleave`,a)})})},destroy(){for(let e of r)e();r.length=0,n&&=(n.remove(),null)}}}function z_(e){switch(e){case Qr.Solid:return`none`;case Qr.Dotted:return`2,2`;case Qr.Dashed:default:return`4,3`}}function B_(e){let t=e?.color??`#999`,n=e?.dashArray??z_(e?.style),r=e?.direction??Zr.Both,i=e?.orientation??Hr.Vertical,a=[];return{name:`crosshair`,install(){},postDraw(o){let s=o.base,c=e?.width??0,l=e?.height??0,u=r===Zr.Both||r===Zr.Vertical,d=r===Zr.Both||r===Zr.Horizontal,f=u?s.append(`line`).attr(`class`,`bc-crosshair bc-crosshair-v`).attr(`y1`,0).attr(`y2`,l).attr(`stroke`,t).attr(`stroke-width`,1).style(`stroke-dasharray`,n).attr(`pointer-events`,`none`).style(`display`,`none`):null,p=d?s.append(`line`).attr(`class`,`bc-crosshair bc-crosshair-h`).attr(`x1`,0).attr(`x2`,c).attr(`stroke`,t).attr(`stroke-width`,1).style(`stroke-dasharray`,n).attr(`pointer-events`,`none`).style(`display`,`none`):null;s.selectAll(`.bc-dot, .bc-bar`).each(function(){let e=this,t=()=>{let t=$(e),n,r;if(e.tagName===`circle`)n=parseFloat(t.attr(`cx`)),r=parseFloat(t.attr(`cy`));else{let e=parseFloat(t.attr(`x`)),a=parseFloat(t.attr(`width`)),o=parseFloat(t.attr(`y`)),s=parseFloat(t.attr(`height`));i===Hr.Horizontal?(n=e+a,r=o+s/2):(n=e+a/2,r=o)}f&&f.attr(`x1`,n).attr(`x2`,n).style(`display`,null),p&&p.attr(`y1`,r).attr(`y2`,r).style(`display`,null)},n=()=>{f&&f.style(`display`,`none`),p&&p.style(`display`,`none`)};e.addEventListener(`mouseenter`,t),e.addEventListener(`mouseleave`,n),a.push(()=>{e.removeEventListener(`mouseenter`,t),e.removeEventListener(`mouseleave`,n)})})},destroy(){for(let e of a)e();a.length=0}}}function V_(e){let t=e.querySelector(`.bc-annotation-line`);if(!(!t||!t.hasAttribute(`data-line-style`)))return{style:t.getAttribute(`data-line-style`),fromX:parseFloat(t.getAttribute(`data-line-from-x`)||`0`),fromY:parseFloat(t.getAttribute(`data-line-from-y`)||`0`),toX:parseFloat(t.getAttribute(`data-line-to-x`)||`0`),toY:parseFloat(t.getAttribute(`data-line-to-y`)||`0`),departVertical:t.getAttribute(`data-line-depart-vertical`)===`true`}}function H_(e){let t=new Map,n=e.querySelectorAll(`g[data-annotation-id]`);for(let e of n){let n=e.getAttribute(`data-annotation-id`),r=V_(e);try{let i=e.getBBox();t.set(n,{id:n,element:e,rect:{x:i.x,y:i.y,width:i.width,height:i.height},line:r})}catch{t.set(n,{id:n,element:e,rect:{x:0,y:0,width:0,height:0},line:r})}}return t}var U_={N:{dx:0,dy:-1},NE:{dx:.707,dy:-.707},E:{dx:1,dy:0},SE:{dx:.707,dy:.707},S:{dx:0,dy:1},SW:{dx:-.707,dy:.707},W:{dx:-1,dy:0},NW:{dx:-.707,dy:-.707},center:{dx:0,dy:0}},W_={N:{nx:0,ny:-1},NE:{nx:1,ny:-1},E:{nx:1,ny:0},SE:{nx:1,ny:1},S:{nx:0,ny:1},SW:{nx:-1,ny:1},W:{nx:-1,ny:0},NW:{nx:-1,ny:-1},center:{nx:0,ny:0}};Lr.N,Lr.W,Lr.NE,Lr.NW,Lr.E,Lr.N,Lr.SE,Lr.NE,Lr.S,Lr.E,Lr.SW,Lr.SE,Lr.W,Lr.S,Lr.NW,Lr.SW,Lr.Center,Lr.Center;function G_(e,t){let n=U_[e]??U_.NW;return{dx:n.dx*t,dy:n.dy*t}}function K_(e){return`step`in e&&!(`bandwidth`in e)}function q_(e){if(`bandwidth`in e||K_(e))return!1;let t=e.domain();return t.length>0&&t[0]instanceof Date}function J_(e,t){if(`bandwidth`in e){let n=e;return(n(t)??0)+n.bandwidth()/2}return K_(e)?e(t)??0:q_(e)?e(new Date(t)):e(Number(t))}function Y_(e,t){let n=(t.left+t.right)/2,r=(t.top+t.bottom)/2,i=W_[e]??W_.N;return{x:n+i.nx*(t.right-t.left)/2,y:r+i.ny*(t.bottom-t.top)/2}}function X_(e,t,n,r,i){if(`bandwidth`in t){let a=t,o=a(e.label)??0,s=a.bandwidth(),c=n(e.value),l=n(0);return i===`horizontal`?Y_(r,{left:l,right:c,top:o,bottom:o+s}):Y_(r,{left:o,right:o+s,top:c,bottom:l})}let a=J_(t,e.label),o=n(e.value),s=U_[r]??U_.N;return{x:a+s.dx*2,y:o+s.dy*2}}function Z_(e,t,n,r=4){let i=e.x+e.width/2,a=e.y+e.height/2;if(t===i&&n===a)return{x:i,y:a};let o=t>=e.x&&t<=e.x+e.width,s=n>=e.y&&n<=e.y+e.height,c=[];if(o&&(n<a?c.push({x:i,y:e.y-r,dist:Math.abs(a-n)}):c.push({x:i,y:e.y+e.height+r,dist:Math.abs(n-a)})),s&&(t>i?c.push({x:e.x+e.width+r,y:a,dist:Math.abs(t-i)}):c.push({x:e.x-r,y:a,dist:Math.abs(i-t)})),c.length>0){c.sort((e,t)=>e.dist-t.dist);let{x:e,y:t}=c[0];return{x:e,y:t}}let l=[{x:i,y:e.y-r},{x:i,y:e.y+e.height+r},{x:e.x+e.width+r,y:a},{x:e.x-r,y:a}],u=l[0],d=(u.x-t)**2+(u.y-n)**2;for(let e=1;e<l.length;e++){let r=(l[e].x-t)**2+(l[e].y-n)**2;r<d&&(u=l[e],d=r)}return u}function Q_(e,t){if(!e)return`bc-arrow`;let n=t??`#666`,r=`bc-arrow-${n.replace(/[^a-zA-Z0-9]/g,``)}`;return e.querySelector(`#${r}`)||($(e).select(`defs`).empty()?$(e).append(`defs`):$(e).select(`defs`)).append(`marker`).attr(`id`,r).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,8).attr(`markerHeight`,8).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1 1 L 9 5 L 1 9`).attr(`fill`,`none`).attr(`stroke`,n).attr(`stroke-width`,1.5).attr(`stroke-linecap`,`round`).attr(`stroke-linejoin`,`round`),r}function $_(e){switch(e){case zr.Dotted:return`2,3`;case zr.Dashed:return`5,4`;default:return``}}function ev(e,t,n,r={}){let i=e.append(`circle`).attr(`class`,`bc-annotation-circle`).attr(`cx`,t).attr(`cy`,n).attr(`r`,r.size??4).attr(`fill`,`none`).attr(`stroke`,r.color??`#666`).attr(`stroke-width`,1.5),a=$_(r.style??zr.Solid);a&&i.attr(`stroke-dasharray`,a)}var tv=1/Math.tan(40*Math.PI/180);function nv(e,t,n){if(n){let n=t.y>=e.y?1:-1,r=Math.max(Math.abs(t.y-e.y)-Math.abs(t.x-e.x)*tv,12);return{x:e.x,y:e.y+n*r}}let r=t.x>=e.x?1:-1,i=Math.max(Math.abs(t.x-e.x)-Math.abs(t.y-e.y)*tv,12);return{x:e.x+r*i,y:e.y}}function rv(e,t,n){let r=nv(e,t,n);return`M ${e.x} ${e.y} L ${r.x} ${r.y} L ${t.x} ${t.y}`}function iv(e,t,n,r=Rr.Direct,i={}){let a;switch(r){case Rr.CurveLeft:case Rr.CurveRight:{let e=n.x-t.x,i=n.y-t.y,o=Math.sqrt(e*e+i*i)*.8,s=+(r===Rr.CurveRight);a=`M ${t.x} ${t.y} A ${o} ${o} 0 0 ${s} ${n.x} ${n.y}`;break}case Rr.Elbow:a=rv(t,n,i.departVertical??!1);break;default:a=`M ${t.x} ${t.y} L ${n.x} ${n.y}`}let o=i.color??`#666`,s=e.append(`path`).attr(`class`,`bc-annotation-line`).attr(`d`,a).attr(`fill`,`none`).attr(`stroke`,o).attr(`stroke-width`,i.lineWeight??1).attr(`pathLength`,`1`).attr(`data-line-style`,r).attr(`data-line-from-x`,String(t.x)).attr(`data-line-from-y`,String(t.y)).attr(`data-line-to-x`,String(n.x)).attr(`data-line-to-y`,String(n.y)).attr(`data-line-depart-vertical`,String(i.departVertical??!1));if(i.showArrow===!0){let t=Q_(e.node()?.ownerSVGElement??null,o);s.attr(`marker-end`,`url(#${t})`)}}function av(e,t,n,r,i={}){let a=i.textAnchor??`middle`,o=i.textOutline!==!1,s=e.append(`text`).attr(`class`,`bc-annotation-text`).attr(`x`,n).attr(`y`,r).attr(`text-anchor`,a).attr(`font-size`,`12px`).attr(`fill`,i.textColor??`currentColor`);o&&s.attr(`stroke`,i.backgroundColor??`#fff`).attr(`stroke-width`,3).attr(`paint-order`,`stroke`);let c=t.split(`
|
|
252
|
-
`);if(c.length>1||i.maxWidth&&i.maxWidth>0){if(i.maxWidth&&i.maxWidth>0)ov(s,t,i.maxWidth);else for(let e=0;e<c.length;e++)s.append(`tspan`).attr(`x`,s.attr(`x`)).attr(`dy`,e===0?`0`:`1.2em`).text(c[e])}else s.text(t)}function ov(e,t,n){let r=t.split(/\s+/),i=``,a=0;for(let t of r){let r=i?`${i} ${t}`:t;i&&r.length*7>n?(e.append(`tspan`).attr(`x`,e.attr(`x`)).attr(`dy`,a===0?`0`:`1.2em`).text(i),i=t,a++):i=r}i&&e.append(`tspan`).attr(`x`,e.attr(`x`)).attr(`dy`,a===0?`0`:`1.2em`).text(i)}function sv(e,t,n=Vr.Center){if(`bandwidth`in t){let r=t,i=r(String(e))??0,a=r.bandwidth(),o=r.step()-a;return n===`start`?i-o/2:n===`end`?i+a+o/2:i+a/2}if(K_(t)){let r=t(String(e))??0,i=t.step()/2;return n===`start`?r-i:n===`end`?r+i:r}return q_(t)?t(new Date(String(e))):t(Number(e))}function cv(e,t){return t(Number(e))}function lv(e,t){if(typeof e==`number`)return t/2+e/100*t;let n=String(e);return n.endsWith(`%`)?t/2+parseFloat(n)/100*t:parseFloat(n)||0}function uv(e,t){if(e==null)return;if(typeof e==`number`)return e||void 0;let n=String(e);return n.endsWith(`%`)?parseFloat(n)/100*t:parseFloat(n)||void 0}function dv(e){return e<-4?`end`:e>4?`start`:`middle`}function fv(e,t,n){if(`bandwidth`in t){let r=t;return{x:(r(e.label)??0)+r.bandwidth()/2,y:n(e.value)}}return{x:J_(t,e.label),y:n(e.value)}}function pv(e,t,n,r){let i=`target`in t?t.target:void 0;if(!i)return;let a=n.data.find(e=>e.label===i);if(!a)return;let o=e.append(`g`).attr(`data-annotation-index`,String(r)),s=t.key;s&&o.attr(`data-annotation-id`,s);let c=t,l=c.anchorDirection??Lr.N,u=X_(a,n.scaleX,n.scaleY,l,n.orientation),d,f,p=t;if(p.dx!=null||p.dy!=null){let{x:e,y:t}=fv(a,n.scaleX,n.scaleY);d=e+(Number(p.dx)||40),f=t+(Number(p.dy)||-40)}else if(p.direction!=null&&p.textOffsetX==null){let{x:e,y:t}=fv(a,n.scaleX,n.scaleY),r=p.direction,i=G_(r,p.anchorDistance??60);d=e+i.dx,f=t+i.dy}else d=u.x+(c.textOffsetX??-42),f=u.y+(c.textOffsetY??-42);let m=t.circleColor??`#666`,h=t;h.showCircle&&ev(o,u.x,u.y,{size:h.circleSize,style:h.circleStyle,color:m});let g=Math.max(4,Math.min(d,n.width-4)),_=Math.max(4,Math.min(f,n.height-4));if(t.text){let e=dv(d-u.x);av(o,t.text,g,_-4,{textColor:t.textColor,maxWidth:uv(t.maxWidth,n.width),textAnchor:e,backgroundColor:n.backgroundColor,textOutline:t.textOutline})}if(p.dx!=null||p.dy!=null?c.showLine!==!1:c.showLine===!0||c.showArrow===!0){let e={x:g,y:_},t=!1,n=o.select(`.bc-annotation-text`).node();if(n)try{let r=n.getBBox();if(r.width>0&&r.height>0){e=Z_(r,u.x,u.y);let n=r.x+r.width/2;t=Math.abs(e.x-n)<1}}catch{}let r=c.showCircle?(c.circleSize??4)+(c.lineTargetDistance??5):c.lineTargetDistance??0,i=u.x,a=u.y;if(r>0){let t=u.x-e.x,n=u.y-e.y,o=Math.sqrt(t*t+n*n);if(o>0){let e=u.x-t/o*r,s=u.y-n/o*r,c=U_[l]??U_.N;i=Math.abs(c.dx)>.01?e:u.x,a=Math.abs(c.dy)>.01?s:u.y}}iv(o,e,{x:i,y:a},c.lineStyle??Rr.Direct,{showArrow:c.showArrow,lineWeight:c.lineWeight,color:m,departVertical:t})}}function mv(e,t,n,r,i){if(t.kind!==Br.Range)return;let a=e.append(`g`).attr(`data-annotation-index`,String(r)),o=t.key;o&&a.attr(`data-annotation-id`,o);let s=t.orientation??Hr.Vertical,c,l,u,d;if(n.orientation===Hr.Horizontal){if(s===Hr.Vertical){let e=sv(t.start,n.scaleX,t.startAnchor),r=sv(t.end,n.scaleX,t.endAnchor);l=Math.min(e,r),d=Math.abs(r-e),c=0,u=n.width}else{let e=cv(t.start,n.scaleY),r=cv(t.end,n.scaleY);c=Math.min(e,r),u=Math.abs(r-e),l=0,d=n.height}}else if(s===Hr.Vertical){let e=sv(t.start,n.scaleX,t.startAnchor),r=sv(t.end,n.scaleX,t.endAnchor);c=Math.min(e,r),u=Math.abs(r-e),l=0,d=n.height}else{let e=cv(t.start,n.scaleY),r=cv(t.end,n.scaleY);l=Math.min(e,r),d=Math.abs(r-e),c=0,u=n.width}if(a.append(`rect`).attr(`class`,`bc-annotation-range`).attr(`x`,c).attr(`y`,l).attr(`width`,u).attr(`height`,d).attr(`fill`,t.bgColor??`#ccc`).attr(`opacity`,(t.bgOpacity??20)/100),t.text){let e=s===Hr.Vertical?u:d,o=uv(t.maxWidth,n.width)??Math.max(e,50),f=U_[t.direction??`center`]??U_.center,p=.5+f.dx*.5,m=.5+f.dy*.5,h=Math.max(4,Math.min(c+u*p,n.width-4)),g=`middle`;p<.25?g=`start`:p>.75&&(g=`end`);let _=l+4+12,v=i?i.append(`g`).attr(`data-annotation-index`,String(r)):a;if(av(v,t.text,h,_,{textColor:t.textColor,maxWidth:o,textAnchor:g,backgroundColor:n.backgroundColor,textOutline:t.textOutline}),m>.25){let e=v.select(`.bc-annotation-text`).node();if(e)try{let t=e.getBBox(),n=0;n=m>.75?l+d-4-(t.y+t.height):l+d/2-(t.y+t.height/2),Math.abs(n)>.5&&e.setAttribute(`transform`,`translate(0, ${n})`)}catch{}}}}function hv(e,t,n,r){if(t.kind!==`free`)return;let i=e.append(`g`).attr(`data-annotation-index`,String(r)),a=t.key;a&&i.attr(`data-annotation-id`,a);let o=lv(t.x,n.width),s=lv(t.y,n.height);if(t.text){av(i,t.text,o,s,{textColor:t.textColor,maxWidth:uv(t.maxWidth,n.width),textAnchor:`middle`,backgroundColor:n.backgroundColor,textOutline:t.textOutline});let e=i.select(`.bc-annotation-text`).node();if(e)try{let t=e.getBBox(),n=s-(t.y+t.height/2);Math.abs(n)>.5&&e.setAttribute(`transform`,`translate(0, ${n})`)}catch{}}}function gv(e,t,n,r){return`M ${e} ${t} L ${n+.45*(e-n)} ${t} L ${n} ${r}`}function _v(e,t){let n=e.hasAttribute(`marker-end`),r=V_(e.parentElement);if(n&&r){let n=$(e),i=e.getAttribute(`d`),a=`M ${r.fromX} ${r.fromY} L ${r.fromX} ${r.fromY}`;if(n.attr(`d`,a),r.style===Rr.Elbow){let e={tipX:r.toX,tipY:r.toY,calloutX:r.fromX,calloutY:r.fromY},i={tipX:r.fromX,tipY:r.fromY,calloutX:r.fromX,calloutY:r.fromY};n.transition().duration(t).ease(nu).attrTween(`d`,()=>{let t=rc(i,e);return e=>{let n=t(e);return gv(n.calloutX,n.calloutY,n.tipX,n.tipY)}})}else if(r.style===Rr.CurveLeft||r.style===Rr.CurveRight){let e={x:r.fromX,y:r.fromY},a={x:r.toX,y:r.toY},o=a.x-e.x,s=a.y-e.y,c=Math.sqrt(o*o+s*s),l=c*.8,u=+(r.style===Rr.CurveRight),d=c/2,f=d<l?Math.sqrt(l*l-d*d):0,p=(e.x+a.x)/2,m=(e.y+a.y)/2,h=c>0?-s/c:0,g=c>0?o/c:0,_=u===1?1:-1,v=p+_*f*h,y=m+_*f*g,b=Math.atan2(e.y-y,e.x-v),x=Math.atan2(a.y-y,a.x-v)-b;u===1&&x<=0&&(x+=2*Math.PI),u===0&&x>=0&&(x-=2*Math.PI),n.transition().duration(t).ease(nu).attrTween(`d`,()=>t=>{if(t>=.98)return i;let n=b+t*x,r=v+l*Math.cos(n),a=y+l*Math.sin(n);return`M ${e.x} ${e.y} A ${l} ${l} 0 0 ${u} ${r} ${a}`})}else n.transition().duration(t).ease(nu).attrTween(`d`,()=>{let e=nc(r.fromX,r.toX),t=nc(r.fromY,r.toY);return n=>`M ${r.fromX} ${r.fromY} L ${e(n)} ${t(n)}`})}else e.setAttribute(`stroke-dasharray`,`1`),e.setAttribute(`stroke-dashoffset`,`1`),$(e).transition().duration(t).ease(nu).attr(`stroke-dashoffset`,`0`).on(`end`,()=>{e.removeAttribute(`stroke-dasharray`),e.removeAttribute(`stroke-dashoffset`)})}var vv=1;function yv(e,t){return e.style!==t.style||e.departVertical!==t.departVertical?!1:Math.abs(e.fromX-t.fromX)<=vv&&Math.abs(e.fromY-t.fromY)<=vv&&Math.abs(e.toX-t.toX)<=vv&&Math.abs(e.toY-t.toY)<=vv}function bv(e,t,n){let r=V_(e.parentElement);if(!r||yv(t,r))return;let i=$(e);if(t.style===Rr.Elbow&&r.style===Rr.Elbow){let e={tipX:t.toX,tipY:t.toY,calloutX:t.fromX,calloutY:t.fromY},a={tipX:r.toX,tipY:r.toY,calloutX:r.fromX,calloutY:r.fromY};i.attr(`d`,gv(e.calloutX,e.calloutY,e.tipX,e.tipY)),i.transition().duration(n).ease(ru).attrTween(`d`,()=>{let t=rc(e,a);return e=>{let n=t(e);return gv(n.calloutX,n.calloutY,n.tipX,n.tipY)}})}else{let a={x:t.fromX,y:t.fromY},o={x:t.toX,y:t.toY},s={x:r.fromX,y:r.fromY},c={x:r.toX,y:r.toY},l=e.getAttribute(`d`),u=`M ${a.x} ${a.y} L ${o.x} ${o.y}`;i.attr(`d`,u),i.transition().duration(n).ease(ru).attrTween(`d`,()=>{let e=rc(a,s),n=rc(o,c);return i=>{if(i>=.98)return l;let a=e(i),o=n(i);if(r.style===Rr.Direct||t.style===Rr.Direct)return`M ${a.x} ${a.y} L ${o.x} ${o.y}`;let s=o.x-a.x,c=o.y-a.y,u=Math.sqrt(s*s+c*c)*.8,d=+(r.style===Rr.CurveRight);return`M ${a.x} ${a.y} A ${u} ${u} 0 0 ${d} ${o.x} ${o.y}`}})}}function xv(e,t,n,r){if(r<=0)return;let i=[...e.querySelectorAll(`g[data-annotation-id]`),...t.querySelectorAll(`g[data-annotation-id]`)],a=new Set;for(let e of i){let t=e.getAttribute(`data-annotation-id`);a.add(t);let i=n.get(t);if(i){let t=e.querySelector(`.bc-annotation-line`);t&&i.line&&bv(t,i.line,r);try{let t=e.getBBox(),n=i.rect.x-t.x,a=i.rect.y-t.y;if(Math.abs(n)>.5||Math.abs(a)>.5){let t=e.querySelectorAll(`.bc-annotation-text, .bc-annotation-circle`);for(let e of t){let t=e;t.style.transition=`none`,t.setAttribute(`transform`,`translate(${n}, ${a})`),t.getBoundingClientRect(),t.style.transition=`transform ${r}ms ease`,t.setAttribute(`transform`,`translate(0, 0)`)}}}catch{}}else{let t=e.querySelector(`.bc-annotation-line`);t&&_v(t,r);let n=e.querySelectorAll(`.bc-annotation-text, .bc-annotation-circle`);for(let e of n){let t=e;t.style.opacity=`0`,t.getBoundingClientRect(),t.style.transition=`opacity ${r}ms ease`,t.style.opacity=`1`}}}for(let[t,i]of n)if(!a.has(t)){let t=i.element.cloneNode(!0);e.appendChild(t),t.style.opacity=`1`,t.getBoundingClientRect(),t.style.transition=`opacity ${r}ms ease`,t.style.opacity=`0`,setTimeout(()=>t.remove(),r)}}function Sv(e){if(!e)return;let t=parseFloat(e.getAttribute(`width`)||`0`),n=parseFloat(e.getAttribute(`height`)||`0`);if(!t||!n)return;let r=e.getBBox();if(r.width===0&&r.height===0)return;let i=r.x,a=r.y,o=r.x+r.width,s=r.y+r.height,c=i<0?i-8:0,l=a<0?a-8:0,u=o>t?o+8:t,d=s>n?s+8:n;(c<0||l<0||u>t||d>n)&&$(e).attr(`viewBox`,`${c} ${l} ${u-c} ${d-l}`).attr(`preserveAspectRatio`,`xMidYMid meet`)}function Cv(e,t,n){let r=e.ownerSVGElement??e;$(r).style(`overflow`,`visible`),Q_(r);let i=$(e),a;if(n.transition){if(n.priorAnnotations&&n.priorAnnotations.size>0)a=n.priorAnnotations;else{let t=e.querySelector(`.bc-annotations`),n=e.querySelector(`.bc-annotations-range`);if(t||n){if(a=new Map,t)for(let[e,n]of H_(t))a.set(e,n);if(n)for(let[e,t]of H_(n))a.set(e,t)}}}e.querySelectorAll(`.bc-annotations, .bc-annotations-range`).forEach(e=>e.remove());let o=i.insert(`g`,`:first-child`).attr(`class`,`bc-annotations-range`),s=i.append(`g`).attr(`class`,`bc-annotations`).attr(`data-ctx-width`,String(n.width)).attr(`data-ctx-height`,String(n.height));for(let e=0;e<t.length;e++){let r=t[e];switch(r.kind??Br.Point){case Br.Point:pv(s,r,n,e);break;case Br.Range:mv(o,r,n,e,s);break;case Br.Free:hv(s,r,n,e)}}if(n.transition){let e=yh(500);xv(s.node(),o.node(),a??new Map,e)}Sv(r)}function wv(e,t){return{name:`annotations`,install(){},postDraw(n){let r=n.base,i=r.node()?.ownerSVGElement??r.node();i&&$(i).style(`overflow`,`visible`),Q_(i);let a=r.node()?.parentNode,o=a&&a!==i?$(a):r,s=o.node(),c;if(t.transition){if(t.priorAnnotations&&t.priorAnnotations.size>0)c=t.priorAnnotations;else if(s){let e=s.querySelector(`.bc-annotations`),t=s.querySelector(`.bc-annotations-range`);if(e||t){if(c=new Map,e)for(let[t,n]of H_(e))c.set(t,n);if(t)for(let[e,n]of H_(t))c.set(e,n)}}}s&&s.querySelectorAll(`.bc-annotations, .bc-annotations-range`).forEach(e=>e.remove());let l=o.insert(`g`,`:first-child`).attr(`class`,`bc-annotations-range`),u=o.append(`g`).attr(`class`,`bc-annotations`).attr(`data-ctx-width`,String(t.width)).attr(`data-ctx-height`,String(t.height));for(let n=0;n<e.length;n++){let r=e[n];switch(r.kind??Br.Point){case Br.Point:pv(u,r,t,n);break;case Br.Range:mv(l,r,t,n,u);break;case Br.Free:hv(u,r,t,n)}}if(t.transition){let e=yh(500);xv(u.node(),l.node(),c??new Map,e)}Sv(i)}}}function Tv(e){return new Map((e??[]).map(e=>[e.target,e.color]))}var Ev=new WeakMap;function Dv(e){return Ev.get(e)}function Ov(e,t){Ev.set(e,t)}var kv=0,Av=new WeakMap;function jv(e,t,n,r){let i=Av.get(t);i||(i=new Map,Av.set(t,i));let a=i.get(n);a||(a=`bc-clip-${++kv}`,i.set(n,a));let o=$(e).select(`defs`).empty()?$(e).append(`defs`):$(e).select(`defs`),s=o.select(`#${a}`);return s.empty()?o.append(`clipPath`).attr(`id`,a).append(`rect`).attr(`x`,r.x).attr(`y`,r.y).attr(`width`,r.width).attr(`height`,r.height):s.select(`rect`).attr(`x`,r.x).attr(`y`,r.y).attr(`width`,r.width).attr(`height`,r.height),a}var Mv=class extends Jm{initialize(){}};function Nv(e){return new Mv(e)}var Pv=`bc-scene`,Fv=500,Iv=new Set,Lv=new WeakMap;function Rv(e){let t=Lv.get(e);return t||(t=new Bv(e),Lv.set(e,t)),t}function zv(e){Lv.delete(e)}var Bv=class{container;_state=`idle`;_transition=null;_buffer=[];register(e){this._buffer.push(e)}constructor(e){this.container=e}get state(){return this._state}get activeTransition(){return this._transition}beginCommit(){(this._state===`committing`||this._state===`animating`)&&this.interrupt(),this._state=`committing`}commit(e={}){if(this._state!==`committing`){console.warn(`[blueprint-chart] commit() called from state '${this._state}' — call beginCommit() first; ignored.`);return}let t=e.mode??`transform`;if(t!==`transform`){Iv.has(t)||(Iv.add(t),console.warn(`[blueprint-chart] transition mode '${t}' is not yet implemented; falling back to snap.`));let e=this._buffer;this._buffer=[],this._state=`animating`;for(let t of e)try{t()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}this._state=`idle`;return}let n=e.duration??Fv,r=this.effectiveDuration(n),i=this._buffer;if(this._buffer=[],r<=0){this._state=`animating`;for(let e of i)try{e()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}this._state=`idle`;return}this._state=`animating`;let a=$l(Pv).duration(r).ease(ru);this._transition=a;for(let e of i)try{e()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}a.on(`end`,()=>{this._transition===a&&(this._transition=null,this._state=`idle`)}),a.on(`interrupt`,()=>{this._transition===a&&(this._transition=null,this._state=`idle`)})}effectiveDuration(e){return e<=0?0:typeof window>`u`||typeof window.matchMedia!=`function`?e:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:e}interrupt(){this._buffer=[],this._transition=null,$(this.container).interrupt(Pv),$(this.container).selectAll(`*`).interrupt(Pv),this._state=`idle`}run(e,t={}){this.beginCommit();try{e()}catch(e){console.warn(`[blueprint-chart] scene-transition commit failed:`,e),this._state=`idle`;return}this.commit(t)}destroy(){this.interrupt(),zv(this.container)}};function Vv(e,t){let n=new Map;return e.querySelectorAll(`[data-bc-role="${t}"]`).forEach(e=>{let t=e.getAttribute(`data-bc-key`);t!=null&&n.set(t,e)}),n}function Hv(e,t){return e.tagName===t.tagName}function Uv(e,t){$(e).interrupt(Pv);let n={};for(let r of t){let t=e.getAttribute(r);t!==null&&(n[r]=t)}return n}function Wv(e,t){let n=Gv(e),r=Gv(t);if(n.skeleton!==r.skeleton||n.nums.length!==r.nums.length)return n=>n<.5?e:t;let{skeleton:i,nums:a}=n,{nums:o}=r;return n=>{if(n<=0)return e;if(n>=1)return t;let r=0;return i.replace(/#/g,()=>{let e=a[r]+(o[r]-a[r])*n;return r++,Kv(e)})}}function Gv(e){let t=[];return{skeleton:e.replace(/-?\d*\.?\d+(?:e[-+]?\d+)?/gi,e=>(t.push(parseFloat(e)),`#`)),nums:t}}function Kv(e){let t=Math.round(e*1e3)/1e3;return Object.is(t,-0)?`0`:String(t)}var qv={opacity:0},Jv=new Set([`d`,`transform`]),Yv=new Set([`stroke-dasharray`]);function Xv(e,t){if(e.state===`idle`||e.state===`animating`){Zv(t);return}e.register(()=>Qv(e,t))}function Zv(e){let t=$(e.parent).selectAll(e.selector).data(e.data,t=>e.key(t));t.exit().remove();let n=e.insert(t.enter());$v(n,e),n.merge(t).each(function(t){ny(this,e.attrs(t))})}function Qv(e,t){let n=e.activeTransition,r=$(t.parent).selectAll(t.selector).data(t.data,e=>t.key(e)),i=ty(t),a=r.exit();n?a.each(function(){let e=this,r=$(e).datum();ry(e,t.exitTo?t.exitTo(r):qv,n).on(`end.featureJoin-exit`,()=>e.parentNode?.removeChild(e))}):a.remove();let o=Vv(e.container,t.role),s=t.insert(r.enter());$v(s,t),s.each(function(e){let r=this,a=t.attrs(e);if(n){let s=o.get(ey(t.key(e)));if(s&&Hv(s,r)){ny(r,Uv(s,i)),ry(r,a,n);return}ny(r,t.enterFrom?t.enterFrom(e):a),ry(r,a,n)}else ny(r,a)}),r.each(function(e){let r=this,a=t.attrs(e);n?(Uv(r,i),ry(r,a,n)):ny(r,a)})}function $v(e,t){e.attr(`data-bc-role`,t.role),e.attr(`data-bc-key`,e=>ey(t.key(e)))}function ey(e){return e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g,`␟`)}function ty(e){return e.data.length===0?[]:Object.keys(e.attrs(e.data[0]))}function ny(e,t){for(let[n,r]of Object.entries(t))e.setAttribute(n,String(r))}function ry(e,t,n){let r=$(e).transition(n);for(let[n,i]of Object.entries(t))if(Jv.has(n)){let e=String(i);r.attrTween(n,function(){return Wv(this.getAttribute(n)??e,e)})}else Yv.has(n)?e.setAttribute(n,String(i)):r.attr(n,String(i));return r}function iy(e,t){if(!t.active||!t.from)return;let n=t.svg.querySelector(`#${t.clipId} rect`);ay(e,{group:t.group,clipRect:n,from:t.from,to:t.to})}function ay(e,t){let{group:n,clipRect:r,from:i,to:a}=t,o=`translate(${a.left},${a.top})`,s=`translate(${i.left},${i.top})`;e.register(()=>{let t=e.activeTransition;if(!t){n.setAttribute(`transform`,o),r&&(r.setAttribute(`width`,String(a.width)),r.setAttribute(`height`,String(a.height)));return}n.setAttribute(`transform`,s),$(n).transition(t).attrTween(`transform`,function(){return Wv(this.getAttribute(`transform`)??s,o)}),r&&(r.setAttribute(`width`,String(i.width)),r.setAttribute(`height`,String(i.height)),$(r).transition(t).attr(`width`,a.width).attr(`height`,a.height))})}var oy=.35;function sy(e){return new Set((e??[]).map(e=>e.target))}function cy(e,t,n=1){return e.size===0||e.has(t)?n:oy}var ly=11,uy=6.2,dy=ly,fy=8,py=4,my=14;function hy(e){return e.length*uy}function gy(e){let t=hy(e.text);return e.placement===`inside`?e.orientation===`horizontal`?t<=e.barWidth-fy&&dy<=e.barHeight:dy<=e.barHeight-py&&t<=e.barWidth:(e.orientation===`vertical`?e.barWidth:e.barHeight)>=my}var _y=[`#4e79a7`],vy=13;function yy(e,t,n={},r=!1){xh(r);let i=null,a,o,s,c=[],l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,s=t?.plotRect,l.detach(),t?.chartType===`bar-vertical`?c=Array.from(e.querySelectorAll(`.bc-frame .bc-bar`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=gh(u).width,f=n.categoryLabelLine===!0,p=ph(t.values,n.verticalAxis?.range,n.verticalAxis?.numberFormat,n.verticalAxis?.scaleType),m=f?Fr.Off:n.horizontalAxis?.labelPosition,h=hh(d,n.verticalAxis?.labelPosition,m,n.verticalAxis?.direction,p);if(!f){let e=Math.max(0,d-(h.left??50)-(h.right??20)),r=Hh(t.labels,e,n.horizontalAxis);r!==void 0&&(h.bottom=r)}let{chartArea:g,width:_,height:v,margin:y}=vh(u,h),b=v-(f?vy:0),x=ih(o,y),S={left:y.left,top:y.top,width:_,height:b},C=Sy(t,n),w=C.map(e=>({label:e,value:t.values[t.labels.indexOf(e)]})),T=n.swapLabelValue===!0,E=n.waterfall===!0,D=[];if(E){let e=0;for(let t of w){let n=e;e+=t.value,D.push({label:t.label,value:t.value,y0:n,y1:e,isTotal:!1})}n.waterfallTotal&&D.push({label:`Total`,value:e,y0:0,y1:e,isTotal:!0})}let O=E?D.map(e=>e.label):C,k=Gu().domain(O).range([0,_]).padding(ui(n.barGap)),A=n.verticalAxis?.scaleType===`log`,[ee,j]=di(E?D.flatMap(e=>[e.y0,e.y1]):w.map(e=>e.value),n.verticalAxis?.range,n.verticalAxis?.scaleType);if(n.valueLabels&&ee<0&&n.verticalAxis?.range?.min==null){let e=j-ee;ee-=e*.1}let M=A?dd().domain([ee,j]).nice().range([b,0]):sd().domain([ee,j]).nice().range([b,0]);l.attach(g,x);let N=T&&n.valueLabels&&!E?(()=>{let e=new Map(w.map(e=>[e.label,e.value]));return{...n.horizontalAxis,width:_,tickFormat:t=>String(e.get(t)??t)}})():{...n.horizontalAxis,width:_},P=f?{...N,labelPosition:Fr.Off}:N;l.update({vertical:{scale:M,height:v,options:{...n.verticalAxis,gridWidth:_,topPadding:y.top}},horizontal:{scale:k,height:v,options:P}}),!A&&ee<0&&j>0&&$(g).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,0).attr(`x2`,_).attr(`y1`,M(0)).attr(`y2`,M(0)).attr(`stroke`,`#666`).attr(`stroke-width`,1);let F=Tv(n.colorizes),I=new Set((n.highlights??[]).map(e=>e.target)),L=g.ownerSVGElement,R=jv(L,e,`bars`,{x:0,y:0,width:_,height:b}),z=$(L).select(`defs`),B=R.replace(/^bc-clip-/,``),V=$(g).append(`g`).attr(`clip-path`,`url(#${R})`);if(n.barBackground){let e=(n.colors??_y)[0],t=E?O:w.map(e=>e.label);V.selectAll(`.bc-bar-bg`).data(t,e=>e).enter().append(`rect`).attr(`class`,`bc-bar-bg`).attr(`x`,e=>k(e)??0).attr(`y`,0).attr(`width`,k.bandwidth()).attr(`height`,b).attr(`fill`,e).attr(`opacity`,.18)}let H=E?O:w.map(e=>e.label);if(n.barSeparators&&H.length>1){let e=k.step();for(let t=1;t<H.length;t++){let n=(k(H[t-1])??0)+k.bandwidth()+(e-k.bandwidth())/2;V.append(`line`).attr(`class`,`bc-bar-separator`).attr(`x1`,n).attr(`x2`,n).attr(`y1`,0).attr(`y2`,b).attr(`stroke`,`currentColor`).attr(`opacity`,.15)}}if(!E&&n.connectedColumns&&w.length>1){let e=n.colors??_y,t=n.connectionsOpacity??.15;for(let n=0;n<w.length-1;n++){let r=w[n],i=w[n+1];if(r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(k(r.label)??0)+k.bandwidth(),o=k(i.label)??0,s=Math.min(M(0),M(r.value)),c=Math.min(M(0),M(i.value)),l=M(0),u=F.get(r.label)??e[0],d=F.get(i.label)??e[0],f;if(u===d)f=u;else{let e=`bc-conn-grad-${B}-${n}`,t=z.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`100%`).attr(`y1`,`0%`).attr(`y2`,`0%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,u),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,d),f=`url(#${e})`}V.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${a},${s} ${o},${c} ${o},${l} ${a},${l}`).attr(`fill`,f).attr(`opacity`,t).attr(`pointer-events`,`none`)}}let U=$(g).append(`g`);if(E){let e=n.colors??_y,t=`#333`;if(n.connectedColumns&&D.length>1){let e=n.colors??_y,t=n.connectionsOpacity??.15;for(let n=0;n<D.length-1;n++){let r=D[n],i=D[n+1];if(i.isTotal||r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(k(r.label)??0)+k.bandwidth(),o=k(i.label)??0,s=M(r.y1),c=M(i.y1),l=M(r.y0),u=M(i.y0),d=F.get(r.label)??e[0],f=F.get(i.label)??e[0],p;if(d===f)p=d;else{let e=`bc-conn-grad-${B}-${n}`,t=z.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`100%`).attr(`y1`,`0%`).attr(`y2`,`0%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,d),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,f),p=`url(#${e})`}V.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${a},${s} ${o},${c} ${o},${u} ${a},${l}`).attr(`fill`,p).attr(`opacity`,t).attr(`pointer-events`,`none`)}}for(let e=0;e<D.length-1;e++){let t=D[e],n=D[e+1];if(n.isTotal)break;V.append(`line`).attr(`class`,`bc-waterfall-connector`).attr(`x1`,(k(t.label)??0)+k.bandwidth()).attr(`x2`,k(n.label)??0).attr(`y1`,M(t.y1)).attr(`y2`,M(t.y1)).attr(`stroke`,`currentColor`).attr(`stroke-dasharray`,`2,2`).attr(`opacity`,.3)}if(V.selectAll(`.bc-bar`).data(D,e=>e.label).enter().append(`rect`).attr(`class`,`bc-bar`).attr(`x`,e=>k(e.label)??0).attr(`y`,e=>Math.min(M(e.y0),M(e.y1))).attr(`width`,k.bandwidth()).attr(`height`,e=>Math.abs(M(e.y0)-M(e.y1))).attr(`fill`,n=>n.isTotal?t:F.get(n.label)??e[0]).attr(`opacity`,e=>I.size>0?cy(I,e.label):null),n.valueLabels){let r=n.valueLabelPosition??Xr.Auto,i=nh(n.verticalAxis?.numberFormat??``),a=e=>i?i(e):String(e);U.selectAll(`.bc-value-label`).data(D,e=>e.label).enter().append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`x`,e=>(k(e.label)??0)+k.bandwidth()/2).attr(`y`,e=>{let t=Math.min(M(e.y0),M(e.y1)),n=Math.abs(M(e.y0)-M(e.y1));return r===Xr.Inside?t+n/2:t-4}).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,r===Xr.Inside?`central`:`auto`).attr(`fill`,n=>r===Xr.Inside?sr(n.isTotal?t:F.get(n.label)??e[0]):`currentColor`).text(e=>T?e.label:a(e.isTotal?e.y1:e.value))}}else{let t=Rv(e),i=V.append(`g`).node();if(r)for(let e of c)i.appendChild(e);Xv(t,{role:`mark-per-category`,parent:i,selector:`.bc-bar`,data:w,key:e=>e.label,insert:e=>e.append(`rect`).attr(`class`,`bc-bar`),attrs:e=>({x:k(e.label)??0,y:Math.min(M(0),M(e.value)),width:k.bandwidth(),height:Math.abs(M(e.value)-M(0)),fill:F.get(e.label)??(n.colors??_y)[0],opacity:cy(I,e.label)})}),iy(t,{svg:L,clipId:R,group:g,from:s,to:S,active:r&&c.length>0});let o=Nv(V);n.tooltips&&o.use(R_({numberFormat:n.verticalAxis?.numberFormat})),n.crosshair&&o.use(B_({width:_,height:b,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor})),n.annotations?.length&&o.use(wv(n.annotations,{scaleX:k,scaleY:M,data:w,width:_,height:b,backgroundColor:lr(e),transition:r,priorAnnotations:a}));let l=()=>o.draw(w);t.state===`committing`?t.register(l):l(),n.valueLabels&&xy(U,w,k,M,{position:n.valueLabelPosition,colorOverrides:F,colors:n.colors??_y,transition:r,swapLabelValue:T,percent:n.valueLabels===`percent`,total:Li(w,e=>e.value)})}if(f){let e=$(g).append(`g`).attr(`class`,`bc-category-labels`);for(let t of O)e.append(`text`).attr(`class`,`bc-category-label`).attr(`x`,(k(t)??0)+k.bandwidth()/2).attr(`y`,b+vy/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).attr(`font-size`,`10px`).attr(`font-weight`,`600`).attr(`fill`,`currentColor`).text(t)}Ov(e,{chartType:`bar-vertical`,margin:y,plotRect:S}),i&&(Ch(V.node()),Th(e,i))}function by(e,t,n,r){let i=Math.abs(n(e.value)-n(0)),a=r===Xr.Inside,o=(t(e.label)??0)+t.bandwidth()/2,s,c;return e.value<0?a?(s=n(e.value)-i/2,c=`central`):(s=n(e.value)+4,c=`hanging`):a?(s=n(e.value)+i/2,c=`central`):(s=n(e.value)-4,c=`auto`),{tx:o,ty:s,anchor:`middle`,baseline:c,isInside:a}}function xy(e,t,n,r,i){let a=i.position??Xr.Auto,o=e=>i.swapLabelValue?e.label:i.percent&&i.total!==void 0?rh(e.value,i.total):String(e.value),s=e.select(`.bc-value-label-group`);s.empty()&&(s=e.append(`g`).attr(`class`,`bc-value-label-group`));let c=e.node().ownerSVGElement?.parentElement,l=Rv(c),u=t.filter(e=>gy({text:o(e),placement:a===Xr.Inside?`inside`:`outside`,orientation:`vertical`,barWidth:n.bandwidth(),barHeight:Math.abs(r(e.value)-r(0))}));Xv(l,{role:`value-label`,parent:s.node(),selector:`.bc-value-label`,data:u,key:e=>e.label,insert:e=>e.append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`),attrs:e=>{let t=by(e,n,r,a);return{x:t.tx,y:t.ty,"text-anchor":t.anchor,"dominant-baseline":t.baseline,fill:t.isInside?sr(i.colorOverrides.get(e.label)??i.colors[0]):`currentColor`}}}),s.selectAll(`.bc-value-label`).data(u,e=>e.label).text(o)}function Sy(e,t){let n=e.labels.map((t,n)=>({label:t,value:e.values[n]}));return t.sort===Kr.Ascending?n.sort((e,t)=>e.value-t.value):t.sort===Kr.Descending&&n.sort((e,t)=>t.value-e.value),n.map(e=>e.label)}var Cy=[`#4e79a7`],wy=13,Ty=`11px sans-serif`,Ey=4;function Dy(e){try{let t=document.createElement(`canvas`).getContext(`2d`);if(t)return t.font=Ty,Math.ceil(t.measureText(e).width)}catch{}return e.length*6.5}function Oy(e,t,n={},r=!1){xh(r);let i=null,a,o,s=[],c,l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,c=t?.plotRect,l.detach(),t?.chartType===`bar-horizontal`?s=Array.from(e.querySelectorAll(`.bc-frame .bc-bar`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=gh(u).width,f=d>0&&d<400&&n.verticalAxis?.labelPosition!==`outside`,p=n.categoryLabelLine===!0||f,m=mh(t.labels),h=hh(d,p?Fr.Off:n.verticalAxis?.labelPosition,n.horizontalAxis?.labelPosition,n.verticalAxis?.direction,m,n.horizontalAxis?.showAxis),g=n.valueLabelPosition??Xr.Auto,_=n.swapLabelValue===!0;if(n.valueLabels&&g!==Xr.Inside){if(_){let e=Dy(t.labels.reduce((e,t)=>e.length>t.length?e:t,``))+Ey;h.right=Math.max(h.right??15,e)}else{let e=Math.max(...t.values),n=Math.min(...t.values),r=e>0?Dy(String(e))+Ey:0,i=n<0?Dy(String(n))+Ey:0;h.right=Math.max(h.right??15,r),i>0&&(h.left=(h.left??50)+i)}}let{chartArea:v,width:y,height:b,margin:x}=vh(u,h),S={left:x.left,top:x.top,width:y,height:b},C=p?wy:0,w=ih(o,x),T=jy(t,n),E=T.map(e=>({label:e,value:t.values[t.labels.indexOf(e)]})),D=n.waterfall===!0,O=[];if(D){let e=0;for(let t of E){let n=e;e+=t.value,O.push({label:t.label,value:t.value,x0:n,x1:e,isTotal:!1})}n.waterfallTotal&&O.push({label:`Total`,value:e,x0:0,x1:e,isTotal:!0})}let k=n.horizontalAxis?.scaleType===`log`,[A,ee]=di(D?O.flatMap(e=>[e.x0,e.x1]):E.map(e=>e.value),n.horizontalAxis?.range,n.horizontalAxis?.scaleType),j=k?dd().domain([A,ee]).nice().range([0,y]):sd().domain([A,ee]).nice().range([0,y]),M=D?O.map(e=>e.label):T,N=Gu().domain(M).range([0,b]).padding(ui(n.barGap)),P=_&&n.valueLabels&&!D?(()=>{let e=new Map(E.map(e=>[e.label,e.value]));return{...n.verticalAxis,topPadding:x.top,tickFormat:t=>String(e.get(t)??t)}})():{...n.verticalAxis,topPadding:x.top},F=p?{...P,labelPosition:Fr.Off,...f?{showAxis:!1}:{}}:P;l.attach(v,w),l.update({horizontal:{scale:j,height:b,options:{...n.horizontalAxis,width:y}},vertical:{scale:N,height:b,options:F},order:`horizontal-first`}),!k&&A<0&&ee>0&&$(v).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,j(0)).attr(`x2`,j(0)).attr(`y1`,0).attr(`y2`,b).attr(`stroke`,`#666`).attr(`stroke-width`,1);let I=Tv(n.colorizes),L=new Set((n.highlights??[]).map(e=>e.target)),R=v.ownerSVGElement,z=jv(R,e,`bars`,{x:0,y:0,width:y,height:b}),B=$(R).select(`defs`),V=z.replace(/^bc-clip-/,``),H=$(v).append(`g`).attr(`clip-path`,`url(#${z})`);if(n.barBackground){let e=(n.colors??Cy)[0],t=D?M:E.map(e=>e.label);H.selectAll(`.bc-bar-bg`).data(t,e=>e).enter().append(`rect`).attr(`class`,`bc-bar-bg`).attr(`x`,0).attr(`y`,e=>(N(e)??0)+C).attr(`width`,y).attr(`height`,N.bandwidth()-C).attr(`fill`,e).attr(`opacity`,.18)}let U=D?M:E.map(e=>e.label);if(n.barSeparators&&U.length>1){let e=N.step();for(let t=1;t<U.length;t++){let n=(N(U[t-1])??0)+N.bandwidth()+(e-N.bandwidth())/2;H.append(`line`).attr(`class`,`bc-bar-separator`).attr(`x1`,0).attr(`x2`,y).attr(`y1`,n).attr(`y2`,n).attr(`stroke`,`currentColor`).attr(`opacity`,.15)}}if(!D&&n.connectedColumns&&E.length>1){let e=n.colors??Cy,t=n.connectionsOpacity??.15;for(let n=0;n<E.length-1;n++){let r=E[n],i=E[n+1];if(r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(N(r.label)??0)+N.bandwidth(),o=(N(i.label)??0)+C,s=Math.max(j(0),j(r.value)),c=Math.max(j(0),j(i.value)),l=j(0),u=I.get(r.label)??e[0],d=I.get(i.label)??e[0],f;if(u===d)f=u;else{let e=`bc-conn-grad-${V}-${n}`,t=B.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`0%`).attr(`y1`,`0%`).attr(`y2`,`100%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,u),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,d),f=`url(#${e})`}H.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${s},${a} ${c},${o} ${l},${o} ${l},${a}`).attr(`fill`,f).attr(`opacity`,t).attr(`pointer-events`,`none`)}}if(D){let e=n.colors??Cy,t=`#333`;if(n.connectedColumns&&O.length>1){let e=n.colors??Cy,t=n.connectionsOpacity??.15;for(let n=0;n<O.length-1;n++){let r=O[n],i=O[n+1];if(i.isTotal||r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(N(r.label)??0)+N.bandwidth(),o=(N(i.label)??0)+C,s=j(r.x1),c=j(i.x1),l=j(r.x0),u=j(i.x0),d=I.get(r.label)??e[0],f=I.get(i.label)??e[0],p;if(d===f)p=d;else{let e=`bc-conn-grad-${V}-${n}`,t=B.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`0%`).attr(`y1`,`0%`).attr(`y2`,`100%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,d),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,f),p=`url(#${e})`}H.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${s},${a} ${c},${o} ${u},${o} ${l},${a}`).attr(`fill`,p).attr(`opacity`,t).attr(`pointer-events`,`none`)}}for(let e=0;e<O.length-1;e++){let t=O[e],n=O[e+1];if(n.isTotal)break;H.append(`line`).attr(`class`,`bc-waterfall-connector`).attr(`x1`,j(t.x1)).attr(`x2`,j(t.x1)).attr(`y1`,(N(t.label)??0)+N.bandwidth()).attr(`y2`,(N(n.label)??0)+C).attr(`stroke`,`currentColor`).attr(`stroke-dasharray`,`2,2`).attr(`opacity`,.3)}if(H.selectAll(`.bc-bar`).data(O,e=>e.label).enter().append(`rect`).attr(`class`,`bc-bar`).attr(`x`,e=>Math.min(j(e.x0),j(e.x1))).attr(`y`,e=>(N(e.label)??0)+C).attr(`width`,e=>Math.abs(j(e.x1)-j(e.x0))).attr(`height`,N.bandwidth()-C).attr(`fill`,n=>n.isTotal?t:I.get(n.label)??e[0]).attr(`opacity`,e=>L.size>0?cy(L,e.label):null),n.valueLabels){let r=g,i=nh(n.horizontalAxis?.numberFormat??``),a=e=>i?i(e):String(e);$(v).append(`g`).selectAll(`.bc-value-label`).data(O,e=>e.label).enter().append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`dominant-baseline`,`central`).attr(`y`,e=>(N(e.label)??0)+C+(N.bandwidth()-C)/2).attr(`x`,e=>{let t=Math.max(j(e.x0),j(e.x1));return r===Xr.Inside?t-4:t+4}).attr(`text-anchor`,r===Xr.Inside?`end`:`start`).attr(`fill`,n=>r===Xr.Inside?sr(n.isTotal?t:I.get(n.label)??e[0]):`currentColor`).text(e=>_?e.label:a(e.isTotal?e.x1:e.value))}}else{let t=Rv(e),i=H.append(`g`).node();if(r)for(let e of s)i.appendChild(e);Xv(t,{role:`mark-per-category`,parent:i,selector:`.bc-bar`,data:E,key:e=>e.label,insert:e=>e.append(`rect`).attr(`class`,`bc-bar`),attrs:e=>({x:Math.min(j(0),j(e.value)),y:(N(e.label)??0)+C,width:Math.abs(j(e.value)-j(0)),height:N.bandwidth()-C,fill:I.get(e.label)??(n.colors??Cy)[0],opacity:cy(L,e.label)})}),iy(t,{svg:R,clipId:z,group:v,from:c,to:S,active:r&&s.length>0});let o=Nv(H);n.tooltips&&o.use(R_({numberFormat:n.horizontalAxis?.numberFormat})),n.crosshair&&o.use(B_({width:y,height:b,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor,orientation:Hr.Horizontal})),n.annotations?.length&&o.use(wv(n.annotations,{scaleX:N,scaleY:j,data:E,width:y,height:b,backgroundColor:lr(e),orientation:Hr.Horizontal,transition:r,priorAnnotations:a}));let l=()=>o.draw(E);t.state===`committing`?t.register(l):l(),n.valueLabels&&Ay($(v).append(`g`),E,j,N,{position:g,colorOverrides:I,colors:n.colors??Cy,transition:r,swapLabelValue:_,categoryLabelOffset:C,percent:n.valueLabels===`percent`,total:Li(E,e=>e.value)})}if(p){let e=$(v).append(`g`).attr(`class`,`bc-category-labels`);for(let t of M){let n=N(t)??0;e.append(`text`).attr(`class`,`bc-category-label`).attr(`x`,2).attr(`y`,n+wy/2).attr(`text-anchor`,`start`).attr(`dominant-baseline`,`central`).attr(`font-size`,`10px`).attr(`font-weight`,`600`).attr(`fill`,`currentColor`).text(t)}}Ov(e,{chartType:`bar-horizontal`,margin:x,plotRect:S}),i&&(Ch(H.node()),Th(e,i))}function ky(e,t,n,r,i=0){let a=r===Xr.Inside,o=(n(e.label)??0)+i+(n.bandwidth()-i)/2,s,c;if(e.value<0){let n=Math.min(t(0),t(e.value));a?(s=n+4,c=`start`):(s=n-4,c=`end`)}else{let n=t(e.value);a?(s=n-4,c=`end`):(s=n+4,c=`start`)}return{tx:s,ty:o,anchor:c,isInside:a}}function Ay(e,t,n,r,i){let a=i.position??Xr.Auto,o=i.categoryLabelOffset??0,s=e=>i.swapLabelValue?e.label:i.percent&&i.total!==void 0?rh(e.value,i.total):String(e.value),c=e.select(`.bc-value-label-group`);c.empty()&&(c=e.append(`g`).attr(`class`,`bc-value-label-group`));let l=e.node().ownerSVGElement?.parentElement,u=Rv(l),d=t.filter(e=>gy({text:s(e),placement:a===Xr.Inside?`inside`:`outside`,orientation:`horizontal`,barWidth:Math.abs(n(e.value)-n(0)),barHeight:r.bandwidth()}));Xv(u,{role:`value-label`,parent:c.node(),selector:`.bc-value-label`,data:d,key:e=>e.label,insert:e=>e.append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`dominant-baseline`,`central`),attrs:e=>{let t=ky(e,n,r,a,o);return{x:t.tx,y:t.ty,"text-anchor":t.anchor,fill:t.isInside?sr(i.colorOverrides.get(e.label)??i.colors[0]):`currentColor`}}}),c.selectAll(`.bc-value-label`).data(d,e=>e.label).text(s)}function jy(e,t){let n=e.labels.map((t,n)=>({label:t,value:e.values[n]}));return t.sort===Kr.Ascending?n.sort((e,t)=>e.value-t.value):t.sort===Kr.Descending&&n.sort((e,t)=>t.value-e.value),n.map(e=>e.label)}var My=[`#4e79a7`,`#f28e2b`,`#e15759`,`#76b7b2`,`#59a14f`,`#edc948`,`#b07aa1`,`#ff9da7`],Ny=200,Py=.2,Fy=class extends Jm{initialize(){this.configDefine(`colors`,{defaultValue:My}),this.configDefine(`yOffset`,{defaultValue:-10}),this.configDefine(`layout`,{defaultValue:`horizontal`}),this.configDefine(`valueSuffixes`,{defaultValue:[]}),this.configDefine(`maxWidth`,{defaultValue:0});let e=this.base.append(`g`).attr(`class`,`bc-legend`),t=e=>{let t=this.config(`colors`),n=this.config(`layout`),r=this.config(`valueSuffixes`),i=this.base.node()?.ownerSVGElement?.parentElement??document.documentElement,a=getComputedStyle(i).getPropertyValue(`--bc-text-color`).trim()||`#555`,o=this.config(`maxWidth`),s=0,c=0;e.each(function(e,i){let l=$(this),u=r[i],d=16+(u?e.length+1+u.length:e.length)*7+12;n===`horizontal`&&o>0&&s>0&&s+d>o&&(s=0,c+=20),l.attr(`transform`,`translate(${s},${c})`).attr(`data-series`,e).style(`cursor`,`default`);let f=l.select(`rect`);f.empty()&&(f=l.append(`rect`).attr(`width`,12).attr(`height`,12)),f.attr(`fill`,t[i%t.length]);let p=l.select(`text`);p.empty()&&(p=l.append(`text`).attr(`x`,16).attr(`y`,10).attr(`font-size`,`12px`)),p.attr(`fill`,a),p.selectAll(`tspan`).remove(),u?(p.text(null),p.append(`tspan`).attr(`font-weight`,`bold`).text(e),p.append(`tspan`).text(` ${u}`)):p.text(e),n===`vertical`?c+=20:s+=d})};this.layer(`items`,e,{dataBind:(e,t)=>e.selectAll(`.bc-legend-item`).data(t,e=>e),insert:e=>e.append(`g`).attr(`class`,`bc-legend-item`),events:{enter:t,update:t}})}preDraw(){let e=this.config(`yOffset`);this.base.select(`.bc-legend`).attr(`transform`,`translate(0,${e})`)}};function Iy(e){let t=$(e).selectAll(`.bc-legend-item`);if(t.empty())return;let n=null,r=null;function i(n){r=n,t.each(function(){let e=$(this),t=e.attr(`data-series`)===n;e.transition().duration(150).style(`opacity`,t?1:Py)}),$(e).selectAll(`[data-series]`).filter(function(){return!this.closest(`.bc-legend`)}).each(function(){let e=$(this),t=e.attr(`data-series`)===n,r=this.classList.contains(`bc-direct-label`)||this.classList.contains(`bc-value-label`);e.transition().duration(150).style(`opacity`,t?1:r?0:Py)})}function a(){r=null,t.transition().duration(150).style(`opacity`,1),$(e).selectAll(`[data-series]`).filter(function(){return!this.closest(`.bc-legend`)}).transition().duration(150).style(`opacity`,null)}t.on(`mouseenter.bcHighlight`,null).on(`mouseleave.bcHighlight`,null).on(`mouseenter.bcHighlight`,function(){let e=$(this).attr(`data-series`)??``;n&&clearTimeout(n),n=setTimeout(()=>i(e),yh(Ny))}).on(`mouseleave.bcHighlight`,()=>{n&&=(clearTimeout(n),null),r!==null&&a()})}function Ly(e,t,n=My,r=-10,i=`top`,a=`start`,o=0,s=0,c=0,l=[],u={}){let d=i===`left`||i===`right`?`vertical`:`horizontal`,f=new Fy($(e));f.config({colors:n,yOffset:r,layout:d,valueSuffixes:l,maxWidth:o}),f.draw(t);let p=e.querySelector(`.bc-legend`);if(p){let e,n,i=t.map((e,t)=>{let n=l[t];return n?e.length+1+n.length:e.length});if(d===`horizontal`){let t=i.map(e=>16+e*7+12),r=1,a=0,s=0;for(let e of t)o>0&&a>0&&a+e>o?(s=Math.max(s,a),r++,a=e):a+=e;s=Math.max(s,a),e=s,n=r*20}else e=Math.max(...i)*7+16+8,n=t.length*20;let f=u.left??0,m=u.right??0,h=c,g=r;d===`horizontal`?h+=a===`middle`?-f+(o+f+m-e)/2:a===`end`?o+m-e:-f:a===`middle`?g+=(s-n)/2:a===`end`&&(g+=s-n),p.setAttribute(`transform`,`translate(${h},${g})`)}return Iy(e),p}function Ry(e,t,n){if(e.length===0)return{width:0,height:0};if(t===`left`||t===`right`)return{width:Math.max(...e.map(e=>e.length))*7+16+8,height:e.length*20};let r=e.map(e=>16+e.length*7+12);if(!n||n<=0)return{width:r.reduce((e,t)=>e+t,0),height:20};let i=1,a=0,o=0;for(let e of r)a>0&&a+e>n?(o=Math.max(o,a),i++,a=e):a+=e;return o=Math.max(o,a),{width:o,height:i*20}}function zy(e){return e.length===0?0:Math.max(...e.map(e=>e.length))*7+10}function By(e,t){return t?.find(t=>t.name===e)}function Vy(e,t,n,r){return By(e,r)?.color??n[t%n.length]}function Hy(e,t){return By(e,t)?.dash??`solid`}function Uy(e,t){return By(e,t)?.lineWidth??2}function Wy(e,t,n){let r=By(e,n);return!r?.interpolation||r.interpolation===`global`?t:r.interpolation}function Gy(e,t){return By(e,t)?.hidden??!1}function Ky(e,t,n){let r=By(e,n);return!r?.labelMode||r.labelMode===`global`?t:r.labelMode}function qy(e,t,n){let r=By(e,n);return r?.valueLabels===void 0?t:r.valueLabels}function Jy(e,t){return By(e,t)?.opacity??1}function Yy(e,t,n){let r=By(e,n);if(r?.lineSymbols!==!1&&(r?.lineSymbols===!0||t))return{name:e,symbolShape:r?.symbolShape??t?.symbolShape,symbolShowOn:r?.symbolShowOn??t?.symbolShowOn,symbolStyle:r?.symbolStyle??t?.symbolStyle,symbolSize:r?.symbolSize??t?.symbolSize,symbolOpacity:r?.symbolOpacity??t?.symbolOpacity,lineSymbols:!0}}var Xy=[`#4e79a7`,`#f28e2b`,`#e15759`,`#76b7b2`,`#59a14f`,`#edc948`,`#b07aa1`,`#ff9da7`];function Zy(e,t,n={},r=!1){xh(r);let i=null,a,o,s=[],c,l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,c=t?.plotRect,l.detach(),t?.chartType===`bar-multi`?s=Array.from(e.querySelectorAll(`.bc-frame .bc-bar-multi`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=t.series??[],f=d.filter(e=>!Gy(e.name,n.seriesOverrides)),p=f.map(e=>e.name),m=n.colors??Xy,h=n.seriesOverrides,g=n.directLabelling===!0||n.directLabelling===`auto`&&n.legend!==!0||!!n.directLabelling&&n.directLabelling!==`auto`,_=g?`direct`:n.legend===!1?`none`:`legend`,v=n.legend!==!1&&!g,y=gh(u).width,b=n.legendPosition??`top`,x=y>0&&y<350&&(b===`left`||b===`right`)?`top`:b,S=n.legendAnchor??`start`,C=f.flatMap(e=>e.values),w=ph(C,n.verticalAxis?.range,n.verticalAxis?.numberFormat,n.verticalAxis?.scaleType),T=hh(y,n.verticalAxis?.labelPosition,n.horizontalAxis?.labelPosition,n.verticalAxis?.direction,w),E=Math.max(0,y-(T.left??50)-(T.right??20)),D=Hh(t.labels,E,n.horizontalAxis);D!==void 0&&(T.bottom=D);let O=T.top!=null,k=Math.max(0,y-(T.left??50)-(T.right??20)),A=v?Ry(p,x,k):{width:0,height:0},ee=v?A.height+15:0,j={...T};v&&x===`top`&&(j.top=ee+(O?15:0)),v&&x===`bottom`&&(j.bottom=(j.bottom??24)+ee),v&&x===`left`&&(j.left=(j.left??50)+A.width+10),v&&x===`right`&&(j.right=(j.right??20)+A.width+10);let{chartArea:M,width:N,height:P,margin:F}=vh(u,j),I=ih(o,F),[L,R]=di(C,n.verticalAxis?.range,n.verticalAxis?.scaleType);if(n.valueLabels&&L<0&&n.verticalAxis?.range?.min==null){let e=R-L;L-=e*.1}let z=t.labels;if(n.sortMode===`total`){let e=t.labels.map((e,t)=>({label:e,index:t,total:f.reduce((e,n)=>e+(n.values[t]??0),0)}));e.sort((e,t)=>t.total-e.total),z=e.map(e=>e.label)}let B=Gu().domain(z).range([0,N]).padding(ui(n.barGap)),V=Gu().domain(p).range([0,B.bandwidth()]).padding(.05),H=n.verticalAxis?.scaleType===`log`,U=H?dd().domain([L,R]).nice().range([P,0]):sd().domain([L,R]).nice().range([P,0]);l.attach(M,I),l.update({vertical:{scale:U,height:P,options:{...n.verticalAxis,gridWidth:N,topPadding:F.top}},horizontal:{scale:B,height:P,options:{...n.horizontalAxis,width:N}}}),!H&&L<0&&R>0&&$(M).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,0).attr(`x2`,N).attr(`y1`,U(0)).attr(`y2`,U(0)).attr(`stroke`,`#666`).attr(`stroke-width`,1);let te=new Map;n.sortMode===`within-groups`&&t.labels.forEach((e,t)=>{let n=f.map(e=>({name:e.name,value:e.values[t]}));n.sort((e,t)=>t.value-e.value),n.forEach((t,n)=>{te.set(`${e}\0${t.name}`,p[n])})});let ne=[];t.labels.forEach((e,t)=>{f.forEach(r=>{let i=d.findIndex(e=>e.name===r.name),a=n.sortMode===`within-groups`?te.get(`${e}\0${r.name}`)??r.name:r.name;ne.push({label:e,series:a,seriesName:r.name,value:r.values[t],seriesIndex:i})})});let re=n.valueLabels??!1,ie=M.ownerSVGElement,ae=jv(ie,e,`bars`,{x:0,y:0,width:N,height:P}),oe=$(M).append(`g`).attr(`clip-path`,`url(#${ae})`),se=Rv(e),ce=sy(n.highlights),W=Tv(n.colorizes),G=oe.append(`g`).node();if(r)for(let e of s)e.removeAttribute(`opacity`),e.removeAttribute(`fill-opacity`),G.appendChild(e);Xv(se,{role:`mark-per-cell`,parent:G,selector:`.bc-bar-multi`,data:ne,key:e=>`${e.label}\0${e.seriesName}`,insert:e=>e.append(`rect`).attr(`class`,`bc-bar bc-bar-multi`),attrs:e=>{let t=Vy(e.seriesName,e.seriesIndex,m,h),n=Jy(e.seriesName,h),r={"data-series":e.seriesName,x:(B(e.label)??0)+(V(e.series)??0),y:Math.min(U(0),U(e.value)),width:V.bandwidth(),height:Math.abs(U(e.value)-U(0)),fill:W.get(e.seriesName)??t};return n<1&&(r[`fill-opacity`]=n),ce.size>0?{...r,opacity:cy(ce,e.seriesName)}:r}});let le={left:F.left,top:F.top,width:N,height:P};iy(se,{svg:ie,clipId:ae,group:M,from:c,to:le,active:r&&s.length>0});let K=Nv(oe);if(n.tooltips&&K.use(R_({numberFormat:n.verticalAxis?.numberFormat})),n.crosshair&&K.use(B_({width:N,height:P,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor})),n.annotations?.length){let i=t.labels.map((e,t)=>({label:e,value:Math.max(...f.map(e=>e.values[t]??0))}));K.use(wv(n.annotations,{scaleX:B,scaleY:U,data:i,width:N,height:P,backgroundColor:lr(e),transition:r,priorAnnotations:a}))}let ue=()=>K.draw(ne);se.state===`committing`?se.register(ue):ue(),Ov(e,{chartType:`bar-multi`,margin:F,plotRect:le}),i&&(Ch(oe.node()),Th(e,i));let de=new Set;f.forEach(e=>{Ky(e.name,_,h)===`direct`&&de.add(e.name)});let fe=de.size>0,pe=lr(e),me=typeof n.directLabelling==`string`?n.directLabelling:n.directLabelling?ei.Auto:ei.Off,he=n.directLabelAnchor??`middle`,ge=n.valueLabelPosition??Xr.Auto;function _e(){return ge===Xr.Inside?Xr.Inside:(Xr.Outside,Xr.Outside)}function ve(e){return me===ei.Inside?Xr.Inside:me===ei.Outside?Xr.Outside:re?_e():Xr.Outside}function ye(e,t,n){return n===`start`?e+12:n===`end`?e+t-4:e+t/2}let be=$(M).append(`g`).attr(`class`,`bc-value-labels`);ne.forEach(e=>{if(!qy(e.seriesName,re,h))return;let t=(B(e.label)??0)+(V(e.series)??0)+V.bandwidth()/2,n=Math.min(U(0),U(e.value)),r=Math.abs(U(e.value)-U(0)),i=_e(),a=fe&&de.has(e.seriesName),o=e.value<0,s=n+r,c,l,u;i===Xr.Inside?(l=sr(Vy(e.seriesName,e.seriesIndex,m,h)),u=`central`,c=a&&ve(r)===Xr.Inside?ye(n,r,he)+14:n+r/2):(l=`currentColor`,o?(c=a&&ve(r)===Xr.Outside?s+16:s+4,u=`hanging`):(c=a&&ve(r)===Xr.Outside?n-16:n-4,u=`auto`)),gy({text:String(e.value),placement:i===Xr.Inside?`inside`:`outside`,orientation:`vertical`,barWidth:V.bandwidth(),barHeight:r})&&be.append(`text`).attr(`class`,`bc-value-label`).attr(`data-series`,e.seriesName).attr(`x`,t).attr(`y`,c).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,u).attr(`font-size`,`11px`).attr(`fill`,l).text(String(e.value))}),ne.forEach(e=>{if(!de.has(e.seriesName))return;let t=(B(e.label)??0)+(V(e.series)??0)+V.bandwidth()/2,n=Math.min(U(0),U(e.value)),r=Math.abs(U(e.value)-U(0)),i=h?.find(t=>t.name===e.seriesName)?.labelText||e.seriesName,a=ve(r),o=Vy(e.seriesName,e.seriesIndex,m,h),s=$(M).append(`text`).attr(`class`,`bc-direct-label`).attr(`data-series`,e.seriesName).attr(`x`,t).attr(`text-anchor`,`middle`).attr(`font-size`,`10px`).text(i);if(a===Xr.Inside){let e=ye(n,r,he);s.attr(`y`,e).attr(`fill`,sr(o)),he===`middle`&&s.attr(`dominant-baseline`,`central`)}else s.attr(`y`,n-4).attr(`fill`,ur(o,pe))});let xe=p.filter(e=>Ky(e,_,h)===`legend`);if(v&&xe.length>0){let e=xe.map(e=>Vy(e,d.findIndex(t=>t.name===e),m,h)),t=0,n=0;if(x===`top`){let e=O?15:0;n=-(A.height+10+e)}else x===`bottom`?n=P+25:x===`left`?t=-(A.width+10):x===`right`&&(t=N+10);Ly(M,xe,e,n,x,S,N,P,t,[],{left:F.left,right:F.right})}}var Qy={linear:Np,monotoneX:_m,step:ym,stepBefore:bm,stepAfter:xm,basis:am,cardinal:cm,catmullRom:dm};function $y(e){return e&&Qy[e]||Np}var eb=`bc-tooltip`,tb=new WeakMap;function nb(e){let t=tb.get(e);t&&(tb.delete(e),t())}function rb(){if(document.getElementById(`bc-tooltip-styles`))return;let e=document.createElement(`style`);e.id=`bc-tooltip-styles`,e.textContent=`
|
|
252
|
+
`);if(c.length>1||i.maxWidth&&i.maxWidth>0){if(i.maxWidth&&i.maxWidth>0)ov(s,t,i.maxWidth);else for(let e=0;e<c.length;e++)s.append(`tspan`).attr(`x`,s.attr(`x`)).attr(`dy`,e===0?`0`:`1.2em`).text(c[e])}else s.text(t)}function ov(e,t,n){let r=0,i=t=>{e.append(`tspan`).attr(`x`,e.attr(`x`)).attr(`dy`,r===0?`0`:`1.2em`).text(t),r++};for(let e of t.split(`
|
|
253
|
+
`)){let t=``;for(let r of e.split(/\s+/).filter(Boolean)){let e=t?`${t} ${r}`:r;t&&e.length*7>n?(i(t),t=r):t=e}i(t)}}function sv(e,t,n=Vr.Center){if(`bandwidth`in t){let r=t,i=r(String(e))??0,a=r.bandwidth(),o=r.step()-a;return n===`start`?i-o/2:n===`end`?i+a+o/2:i+a/2}if(K_(t)){let r=t(String(e))??0,i=t.step()/2;return n===`start`?r-i:n===`end`?r+i:r}return q_(t)?t(new Date(String(e))):t(Number(e))}function cv(e,t){return t(Number(e))}function lv(e,t){if(typeof e==`number`)return t/2+e/100*t;let n=String(e);return n.endsWith(`%`)?t/2+parseFloat(n)/100*t:parseFloat(n)||0}function uv(e,t){if(e==null)return;if(typeof e==`number`)return e||void 0;let n=String(e);return n.endsWith(`%`)?parseFloat(n)/100*t:parseFloat(n)||void 0}function dv(e){return e<-4?`end`:e>4?`start`:`middle`}function fv(e,t,n){if(`bandwidth`in t){let r=t;return{x:(r(e.label)??0)+r.bandwidth()/2,y:n(e.value)}}return{x:J_(t,e.label),y:n(e.value)}}function pv(e,t,n,r){let i=`target`in t?t.target:void 0;if(!i)return;let a=n.data.find(e=>e.label===i);if(!a)return;let o=e.append(`g`).attr(`data-annotation-index`,String(r)),s=t.key;s&&o.attr(`data-annotation-id`,s);let c=t,l=c.anchorDirection??Lr.N,u=X_(a,n.scaleX,n.scaleY,l,n.orientation),d,f,p=t;if(p.dx!=null||p.dy!=null){let{x:e,y:t}=fv(a,n.scaleX,n.scaleY);d=e+(Number(p.dx)||40),f=t+(Number(p.dy)||-40)}else if(p.direction!=null&&p.textOffsetX==null){let{x:e,y:t}=fv(a,n.scaleX,n.scaleY),r=p.direction,i=G_(r,p.anchorDistance??60);d=e+i.dx,f=t+i.dy}else d=u.x+(c.textOffsetX??-42),f=u.y+(c.textOffsetY??-42);let m=t.circleColor??`#666`,h=t;h.showCircle&&ev(o,u.x,u.y,{size:h.circleSize,style:h.circleStyle,color:m});let g=Math.max(4,Math.min(d,n.width-4)),_=Math.max(4,Math.min(f,n.height-4));if(t.text){let e=dv(d-u.x);av(o,t.text,g,_-4,{textColor:t.textColor,maxWidth:uv(t.maxWidth,n.width)??n.width*.4,textAnchor:e,backgroundColor:n.backgroundColor,textOutline:t.textOutline})}if(p.dx!=null||p.dy!=null?c.showLine!==!1:c.showLine===!0||c.showArrow===!0){let e={x:g,y:_},t=!1,n=o.select(`.bc-annotation-text`).node();if(n)try{let r=n.getBBox();if(r.width>0&&r.height>0){e=Z_(r,u.x,u.y);let n=r.x+r.width/2;t=Math.abs(e.x-n)<1}}catch{}let r=c.showCircle?(c.circleSize??4)+(c.lineTargetDistance??5):c.lineTargetDistance??0,i=u.x,a=u.y;if(r>0){let t=u.x-e.x,n=u.y-e.y,o=Math.sqrt(t*t+n*n);if(o>0){let e=u.x-t/o*r,s=u.y-n/o*r,c=U_[l]??U_.N;i=Math.abs(c.dx)>.01?e:u.x,a=Math.abs(c.dy)>.01?s:u.y}}iv(o,e,{x:i,y:a},c.lineStyle??Rr.Direct,{showArrow:c.showArrow,lineWeight:c.lineWeight,color:m,departVertical:t})}}function mv(e,t,n,r,i){if(t.kind!==Br.Range)return;let a=e.append(`g`).attr(`data-annotation-index`,String(r)),o=t.key;o&&a.attr(`data-annotation-id`,o);let s=t.orientation??Hr.Vertical,c,l,u,d;if(n.orientation===Hr.Horizontal){if(s===Hr.Vertical){let e=sv(t.start,n.scaleX,t.startAnchor),r=sv(t.end,n.scaleX,t.endAnchor);l=Math.min(e,r),d=Math.abs(r-e),c=0,u=n.width}else{let e=cv(t.start,n.scaleY),r=cv(t.end,n.scaleY);c=Math.min(e,r),u=Math.abs(r-e),l=0,d=n.height}}else if(s===Hr.Vertical){let e=sv(t.start,n.scaleX,t.startAnchor),r=sv(t.end,n.scaleX,t.endAnchor);c=Math.min(e,r),u=Math.abs(r-e),l=0,d=n.height}else{let e=cv(t.start,n.scaleY),r=cv(t.end,n.scaleY);l=Math.min(e,r),d=Math.abs(r-e),c=0,u=n.width}if(a.append(`rect`).attr(`class`,`bc-annotation-range`).attr(`x`,c).attr(`y`,l).attr(`width`,u).attr(`height`,d).attr(`fill`,t.bgColor??`#ccc`).attr(`opacity`,(t.bgOpacity??20)/100),t.text){let e=s===Hr.Vertical?u:d,o=uv(t.maxWidth,n.width)??Math.max(e,50),f=U_[t.direction??`center`]??U_.center,p=.5+f.dx*.5,m=.5+f.dy*.5,h=Math.max(4,Math.min(c+u*p,n.width-4)),g=`middle`;p<.25?g=`start`:p>.75&&(g=`end`);let _=l+4+12,v=i?i.append(`g`).attr(`data-annotation-index`,String(r)):a;if(av(v,t.text,h,_,{textColor:t.textColor,maxWidth:o,textAnchor:g,backgroundColor:n.backgroundColor,textOutline:t.textOutline}),m>.25){let e=v.select(`.bc-annotation-text`).node();if(e)try{let t=e.getBBox(),n=0;n=m>.75?l+d-4-(t.y+t.height):l+d/2-(t.y+t.height/2),Math.abs(n)>.5&&e.setAttribute(`transform`,`translate(0, ${n})`)}catch{}}}}function hv(e,t,n,r){if(t.kind!==`free`)return;let i=e.append(`g`).attr(`data-annotation-index`,String(r)),a=t.key;a&&i.attr(`data-annotation-id`,a);let o=lv(t.x,n.width),s=lv(t.y,n.height);if(t.text){av(i,t.text,o,s,{textColor:t.textColor,maxWidth:uv(t.maxWidth,n.width)??n.width*.4,textAnchor:`middle`,backgroundColor:n.backgroundColor,textOutline:t.textOutline});let e=i.select(`.bc-annotation-text`).node();if(e)try{let t=e.getBBox(),n=s-(t.y+t.height/2);Math.abs(n)>.5&&e.setAttribute(`transform`,`translate(0, ${n})`)}catch{}}}function gv(e,t,n,r){return`M ${e} ${t} L ${n+.45*(e-n)} ${t} L ${n} ${r}`}function _v(e,t){let n=e.hasAttribute(`marker-end`),r=V_(e.parentElement);if(n&&r){let n=$(e),i=e.getAttribute(`d`),a=`M ${r.fromX} ${r.fromY} L ${r.fromX} ${r.fromY}`;if(n.attr(`d`,a),r.style===Rr.Elbow){let e={tipX:r.toX,tipY:r.toY,calloutX:r.fromX,calloutY:r.fromY},i={tipX:r.fromX,tipY:r.fromY,calloutX:r.fromX,calloutY:r.fromY};n.transition().duration(t).ease(nu).attrTween(`d`,()=>{let t=rc(i,e);return e=>{let n=t(e);return gv(n.calloutX,n.calloutY,n.tipX,n.tipY)}})}else if(r.style===Rr.CurveLeft||r.style===Rr.CurveRight){let e={x:r.fromX,y:r.fromY},a={x:r.toX,y:r.toY},o=a.x-e.x,s=a.y-e.y,c=Math.sqrt(o*o+s*s),l=c*.8,u=+(r.style===Rr.CurveRight),d=c/2,f=d<l?Math.sqrt(l*l-d*d):0,p=(e.x+a.x)/2,m=(e.y+a.y)/2,h=c>0?-s/c:0,g=c>0?o/c:0,_=u===1?1:-1,v=p+_*f*h,y=m+_*f*g,b=Math.atan2(e.y-y,e.x-v),x=Math.atan2(a.y-y,a.x-v)-b;u===1&&x<=0&&(x+=2*Math.PI),u===0&&x>=0&&(x-=2*Math.PI),n.transition().duration(t).ease(nu).attrTween(`d`,()=>t=>{if(t>=.98)return i;let n=b+t*x,r=v+l*Math.cos(n),a=y+l*Math.sin(n);return`M ${e.x} ${e.y} A ${l} ${l} 0 0 ${u} ${r} ${a}`})}else n.transition().duration(t).ease(nu).attrTween(`d`,()=>{let e=nc(r.fromX,r.toX),t=nc(r.fromY,r.toY);return n=>`M ${r.fromX} ${r.fromY} L ${e(n)} ${t(n)}`})}else e.setAttribute(`stroke-dasharray`,`1`),e.setAttribute(`stroke-dashoffset`,`1`),$(e).transition().duration(t).ease(nu).attr(`stroke-dashoffset`,`0`).on(`end`,()=>{e.removeAttribute(`stroke-dasharray`),e.removeAttribute(`stroke-dashoffset`)})}var vv=1;function yv(e,t){return e.style!==t.style||e.departVertical!==t.departVertical?!1:Math.abs(e.fromX-t.fromX)<=vv&&Math.abs(e.fromY-t.fromY)<=vv&&Math.abs(e.toX-t.toX)<=vv&&Math.abs(e.toY-t.toY)<=vv}function bv(e,t,n){let r=V_(e.parentElement);if(!r||yv(t,r))return;let i=$(e);if(t.style===Rr.Elbow&&r.style===Rr.Elbow){let e={tipX:t.toX,tipY:t.toY,calloutX:t.fromX,calloutY:t.fromY},a={tipX:r.toX,tipY:r.toY,calloutX:r.fromX,calloutY:r.fromY};i.attr(`d`,gv(e.calloutX,e.calloutY,e.tipX,e.tipY)),i.transition().duration(n).ease(ru).attrTween(`d`,()=>{let t=rc(e,a);return e=>{let n=t(e);return gv(n.calloutX,n.calloutY,n.tipX,n.tipY)}})}else{let a={x:t.fromX,y:t.fromY},o={x:t.toX,y:t.toY},s={x:r.fromX,y:r.fromY},c={x:r.toX,y:r.toY},l=e.getAttribute(`d`),u=`M ${a.x} ${a.y} L ${o.x} ${o.y}`;i.attr(`d`,u),i.transition().duration(n).ease(ru).attrTween(`d`,()=>{let e=rc(a,s),n=rc(o,c);return i=>{if(i>=.98)return l;let a=e(i),o=n(i);if(r.style===Rr.Direct||t.style===Rr.Direct)return`M ${a.x} ${a.y} L ${o.x} ${o.y}`;let s=o.x-a.x,c=o.y-a.y,u=Math.sqrt(s*s+c*c)*.8,d=+(r.style===Rr.CurveRight);return`M ${a.x} ${a.y} A ${u} ${u} 0 0 ${d} ${o.x} ${o.y}`}})}}function xv(e,t,n,r){if(r<=0)return;let i=[...e.querySelectorAll(`g[data-annotation-id]`),...t.querySelectorAll(`g[data-annotation-id]`)],a=new Set;for(let e of i){let t=e.getAttribute(`data-annotation-id`);a.add(t);let i=n.get(t);if(i){let t=e.querySelector(`.bc-annotation-line`);t&&i.line&&bv(t,i.line,r);try{let t=e.getBBox(),n=i.rect.x-t.x,a=i.rect.y-t.y;if(Math.abs(n)>.5||Math.abs(a)>.5){let t=e.querySelectorAll(`.bc-annotation-text, .bc-annotation-circle`);for(let e of t){let t=e;t.style.transition=`none`,t.setAttribute(`transform`,`translate(${n}, ${a})`),t.getBoundingClientRect(),t.style.transition=`transform ${r}ms ease`,t.setAttribute(`transform`,`translate(0, 0)`)}}}catch{}}else{let t=e.querySelector(`.bc-annotation-line`);t&&_v(t,r);let n=e.querySelectorAll(`.bc-annotation-text, .bc-annotation-circle`);for(let e of n){let t=e;t.style.opacity=`0`,t.getBoundingClientRect(),t.style.transition=`opacity ${r}ms ease`,t.style.opacity=`1`}}}for(let[t,i]of n)if(!a.has(t)){let t=i.element.cloneNode(!0);e.appendChild(t),t.style.opacity=`1`,t.getBoundingClientRect(),t.style.transition=`opacity ${r}ms ease`,t.style.opacity=`0`,setTimeout(()=>t.remove(),r)}}function Sv(e){if(!e)return;let t=parseFloat(e.getAttribute(`width`)||`0`),n=parseFloat(e.getAttribute(`height`)||`0`);if(!t||!n)return;let r=e.getBBox();if(r.width===0&&r.height===0)return;let i=r.x,a=r.y,o=r.x+r.width,s=r.y+r.height,c=i<0?i-8:0,l=a<0?a-8:0,u=o>t?o+8:t,d=s>n?s+8:n;(c<0||l<0||u>t||d>n)&&$(e).attr(`viewBox`,`${c} ${l} ${u-c} ${d-l}`).attr(`preserveAspectRatio`,`xMidYMid meet`)}function Cv(e,t,n){let r=e.ownerSVGElement??e;$(r).style(`overflow`,`visible`),Q_(r);let i=$(e),a;if(n.transition){if(n.priorAnnotations&&n.priorAnnotations.size>0)a=n.priorAnnotations;else{let t=e.querySelector(`.bc-annotations`),n=e.querySelector(`.bc-annotations-range`);if(t||n){if(a=new Map,t)for(let[e,n]of H_(t))a.set(e,n);if(n)for(let[e,t]of H_(n))a.set(e,t)}}}e.querySelectorAll(`.bc-annotations, .bc-annotations-range`).forEach(e=>e.remove());let o=i.insert(`g`,`:first-child`).attr(`class`,`bc-annotations-range`),s=i.append(`g`).attr(`class`,`bc-annotations`).attr(`data-ctx-width`,String(n.width)).attr(`data-ctx-height`,String(n.height));for(let e=0;e<t.length;e++){let r=t[e];switch(r.kind??Br.Point){case Br.Point:pv(s,r,n,e);break;case Br.Range:mv(o,r,n,e,s);break;case Br.Free:hv(s,r,n,e)}}if(n.transition){let e=yh(500);xv(s.node(),o.node(),a??new Map,e)}Sv(r)}function wv(e,t){return{name:`annotations`,install(){},postDraw(n){let r=n.base,i=r.node()?.ownerSVGElement??r.node();i&&$(i).style(`overflow`,`visible`),Q_(i);let a=r.node()?.parentNode,o=a&&a!==i?$(a):r,s=o.node(),c;if(t.transition){if(t.priorAnnotations&&t.priorAnnotations.size>0)c=t.priorAnnotations;else if(s){let e=s.querySelector(`.bc-annotations`),t=s.querySelector(`.bc-annotations-range`);if(e||t){if(c=new Map,e)for(let[t,n]of H_(e))c.set(t,n);if(t)for(let[e,n]of H_(t))c.set(e,n)}}}s&&s.querySelectorAll(`.bc-annotations, .bc-annotations-range`).forEach(e=>e.remove());let l=o.insert(`g`,`:first-child`).attr(`class`,`bc-annotations-range`),u=o.append(`g`).attr(`class`,`bc-annotations`).attr(`data-ctx-width`,String(t.width)).attr(`data-ctx-height`,String(t.height));for(let n=0;n<e.length;n++){let r=e[n];switch(r.kind??Br.Point){case Br.Point:pv(u,r,t,n);break;case Br.Range:mv(l,r,t,n,u);break;case Br.Free:hv(u,r,t,n)}}if(t.transition){let e=yh(500);xv(u.node(),l.node(),c??new Map,e)}Sv(i)}}}function Tv(e){return new Map((e??[]).map(e=>[e.target,e.color]))}var Ev=new WeakMap;function Dv(e){return Ev.get(e)}function Ov(e,t){Ev.set(e,t)}var kv=0,Av=new WeakMap;function jv(e,t,n,r){let i=Av.get(t);i||(i=new Map,Av.set(t,i));let a=i.get(n);a||(a=`bc-clip-${++kv}`,i.set(n,a));let o=$(e).select(`defs`).empty()?$(e).append(`defs`):$(e).select(`defs`),s=o.select(`#${a}`);return s.empty()?o.append(`clipPath`).attr(`id`,a).append(`rect`).attr(`x`,r.x).attr(`y`,r.y).attr(`width`,r.width).attr(`height`,r.height):s.select(`rect`).attr(`x`,r.x).attr(`y`,r.y).attr(`width`,r.width).attr(`height`,r.height),a}var Mv=class extends Jm{initialize(){}};function Nv(e){return new Mv(e)}var Pv=`bc-scene`,Fv=500,Iv=new Set,Lv=new WeakMap;function Rv(e){let t=Lv.get(e);return t||(t=new Bv(e),Lv.set(e,t)),t}function zv(e){Lv.delete(e)}var Bv=class{container;_state=`idle`;_transition=null;_buffer=[];register(e){this._buffer.push(e)}constructor(e){this.container=e}get state(){return this._state}get activeTransition(){return this._transition}beginCommit(){(this._state===`committing`||this._state===`animating`)&&this.interrupt(),this._state=`committing`}commit(e={}){if(this._state!==`committing`){console.warn(`[blueprint-chart] commit() called from state '${this._state}' — call beginCommit() first; ignored.`);return}let t=e.mode??`transform`;if(t!==`transform`){Iv.has(t)||(Iv.add(t),console.warn(`[blueprint-chart] transition mode '${t}' is not yet implemented; falling back to snap.`));let e=this._buffer;this._buffer=[],this._state=`animating`;for(let t of e)try{t()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}this._state=`idle`;return}let n=e.duration??Fv,r=this.effectiveDuration(n),i=this._buffer;if(this._buffer=[],r<=0){this._state=`animating`;for(let e of i)try{e()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}this._state=`idle`;return}this._state=`animating`;let a=$l(Pv).duration(r).ease(ru);this._transition=a;for(let e of i)try{e()}catch(e){console.warn(`[blueprint-chart] feature flush failed:`,e)}a.on(`end`,()=>{this._transition===a&&(this._transition=null,this._state=`idle`)}),a.on(`interrupt`,()=>{this._transition===a&&(this._transition=null,this._state=`idle`)})}effectiveDuration(e){return e<=0?0:typeof window>`u`||typeof window.matchMedia!=`function`?e:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:e}interrupt(){this._buffer=[],this._transition=null,$(this.container).interrupt(Pv),$(this.container).selectAll(`*`).interrupt(Pv),this._state=`idle`}run(e,t={}){this.beginCommit();try{e()}catch(e){console.warn(`[blueprint-chart] scene-transition commit failed:`,e),this._state=`idle`;return}this.commit(t)}destroy(){this.interrupt(),zv(this.container)}};function Vv(e,t){let n=new Map;return e.querySelectorAll(`[data-bc-role="${t}"]`).forEach(e=>{let t=e.getAttribute(`data-bc-key`);t!=null&&n.set(t,e)}),n}function Hv(e,t){return e.tagName===t.tagName}function Uv(e,t){$(e).interrupt(Pv);let n={};for(let r of t){let t=e.getAttribute(r);t!==null&&(n[r]=t)}return n}function Wv(e,t){let n=Gv(e),r=Gv(t);if(n.skeleton!==r.skeleton||n.nums.length!==r.nums.length)return n=>n<.5?e:t;let{skeleton:i,nums:a}=n,{nums:o}=r;return n=>{if(n<=0)return e;if(n>=1)return t;let r=0;return i.replace(/#/g,()=>{let e=a[r]+(o[r]-a[r])*n;return r++,Kv(e)})}}function Gv(e){let t=[];return{skeleton:e.replace(/-?\d*\.?\d+(?:e[-+]?\d+)?/gi,e=>(t.push(parseFloat(e)),`#`)),nums:t}}function Kv(e){let t=Math.round(e*1e3)/1e3;return Object.is(t,-0)?`0`:String(t)}var qv={opacity:0},Jv=new Set([`d`,`transform`]),Yv=new Set([`stroke-dasharray`]);function Xv(e,t){if(e.state===`idle`||e.state===`animating`){Zv(t);return}e.register(()=>Qv(e,t))}function Zv(e){let t=$(e.parent).selectAll(e.selector).data(e.data,t=>e.key(t));t.exit().remove();let n=e.insert(t.enter());$v(n,e),n.merge(t).each(function(t){ny(this,e.attrs(t))})}function Qv(e,t){let n=e.activeTransition,r=$(t.parent).selectAll(t.selector).data(t.data,e=>t.key(e)),i=ty(t),a=r.exit();n?a.each(function(){let e=this,r=$(e).datum();ry(e,t.exitTo?t.exitTo(r):qv,n).on(`end.featureJoin-exit`,()=>e.parentNode?.removeChild(e))}):a.remove();let o=Vv(e.container,t.role),s=t.insert(r.enter());$v(s,t),s.each(function(e){let r=this,a=t.attrs(e);if(n){let s=o.get(ey(t.key(e)));if(s&&Hv(s,r)){ny(r,Uv(s,i)),ry(r,a,n);return}ny(r,t.enterFrom?t.enterFrom(e):a),ry(r,a,n)}else ny(r,a)}),r.each(function(e){let r=this,a=t.attrs(e);n?(Uv(r,i),ry(r,a,n)):ny(r,a)})}function $v(e,t){e.attr(`data-bc-role`,t.role),e.attr(`data-bc-key`,e=>ey(t.key(e)))}function ey(e){return e.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g,`␟`)}function ty(e){return e.data.length===0?[]:Object.keys(e.attrs(e.data[0]))}function ny(e,t){for(let[n,r]of Object.entries(t))e.setAttribute(n,String(r))}function ry(e,t,n){let r=$(e).transition(n);for(let[n,i]of Object.entries(t))if(Jv.has(n)){let e=String(i);r.attrTween(n,function(){return Wv(this.getAttribute(n)??e,e)})}else Yv.has(n)?e.setAttribute(n,String(i)):r.attr(n,String(i));return r}function iy(e,t){if(!t.active||!t.from)return;let n=t.svg.querySelector(`#${t.clipId} rect`);ay(e,{group:t.group,clipRect:n,from:t.from,to:t.to})}function ay(e,t){let{group:n,clipRect:r,from:i,to:a}=t,o=`translate(${a.left},${a.top})`,s=`translate(${i.left},${i.top})`;e.register(()=>{let t=e.activeTransition;if(!t){n.setAttribute(`transform`,o),r&&(r.setAttribute(`width`,String(a.width)),r.setAttribute(`height`,String(a.height)));return}n.setAttribute(`transform`,s),$(n).transition(t).attrTween(`transform`,function(){return Wv(this.getAttribute(`transform`)??s,o)}),r&&(r.setAttribute(`width`,String(i.width)),r.setAttribute(`height`,String(i.height)),$(r).transition(t).attr(`width`,a.width).attr(`height`,a.height))})}var oy=.35;function sy(e){return new Set((e??[]).map(e=>e.target))}function cy(e,t,n=1){return e.size===0||e.has(t)?n:oy}var ly=11,uy=6.2,dy=ly,fy=8,py=4,my=14;function hy(e){return e.length*uy}function gy(e){let t=hy(e.text);return e.placement===`inside`?e.orientation===`horizontal`?t<=e.barWidth-fy&&dy<=e.barHeight:dy<=e.barHeight-py&&t<=e.barWidth:(e.orientation===`vertical`?e.barWidth:e.barHeight)>=my}var _y=[`#4e79a7`],vy=13;function yy(e,t,n={},r=!1){xh(r);let i=null,a,o,s,c=[],l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,s=t?.plotRect,l.detach(),t?.chartType===`bar-vertical`?c=Array.from(e.querySelectorAll(`.bc-frame .bc-bar`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=gh(u).width,f=n.categoryLabelLine===!0,p=ph(t.values,n.verticalAxis?.range,n.verticalAxis?.numberFormat,n.verticalAxis?.scaleType),m=f?Fr.Off:n.horizontalAxis?.labelPosition,h=hh(d,n.verticalAxis?.labelPosition,m,n.verticalAxis?.direction,p);if(!f){let e=Math.max(0,d-(h.left??50)-(h.right??20)),r=Hh(t.labels,e,n.horizontalAxis);r!==void 0&&(h.bottom=r)}let{chartArea:g,width:_,height:v,margin:y}=vh(u,h),b=v-(f?vy:0),x=ih(o,y),S={left:y.left,top:y.top,width:_,height:b},C=Sy(t,n),w=C.map(e=>({label:e,value:t.values[t.labels.indexOf(e)]})),T=n.swapLabelValue===!0,E=n.waterfall===!0,D=[];if(E){let e=0;for(let t of w){let n=e;e+=t.value,D.push({label:t.label,value:t.value,y0:n,y1:e,isTotal:!1})}n.waterfallTotal&&D.push({label:`Total`,value:e,y0:0,y1:e,isTotal:!0})}let O=E?D.map(e=>e.label):C,k=Gu().domain(O).range([0,_]).padding(ui(n.barGap)),A=n.verticalAxis?.scaleType===`log`,[ee,j]=di(E?D.flatMap(e=>[e.y0,e.y1]):w.map(e=>e.value),n.verticalAxis?.range,n.verticalAxis?.scaleType);if(n.valueLabels&&ee<0&&n.verticalAxis?.range?.min==null){let e=j-ee;ee-=e*.1}let M=A?dd().domain([ee,j]).nice().range([b,0]):sd().domain([ee,j]).nice().range([b,0]);l.attach(g,x);let N=T&&n.valueLabels&&!E?(()=>{let e=new Map(w.map(e=>[e.label,e.value]));return{...n.horizontalAxis,width:_,tickFormat:t=>String(e.get(t)??t)}})():{...n.horizontalAxis,width:_},P=f?{...N,labelPosition:Fr.Off}:N;l.update({vertical:{scale:M,height:v,options:{...n.verticalAxis,gridWidth:_,topPadding:y.top}},horizontal:{scale:k,height:v,options:P}}),!A&&ee<0&&j>0&&$(g).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,0).attr(`x2`,_).attr(`y1`,M(0)).attr(`y2`,M(0)).attr(`stroke`,`#666`).attr(`stroke-width`,1);let F=Tv(n.colorizes),I=new Set((n.highlights??[]).map(e=>e.target)),L=g.ownerSVGElement,R=jv(L,e,`bars`,{x:0,y:0,width:_,height:b}),z=$(L).select(`defs`),B=R.replace(/^bc-clip-/,``),V=$(g).append(`g`).attr(`clip-path`,`url(#${R})`);if(n.barBackground){let e=(n.colors??_y)[0],t=E?O:w.map(e=>e.label);V.selectAll(`.bc-bar-bg`).data(t,e=>e).enter().append(`rect`).attr(`class`,`bc-bar-bg`).attr(`x`,e=>k(e)??0).attr(`y`,0).attr(`width`,k.bandwidth()).attr(`height`,b).attr(`fill`,e).attr(`opacity`,.18)}let H=E?O:w.map(e=>e.label);if(n.barSeparators&&H.length>1){let e=k.step();for(let t=1;t<H.length;t++){let n=(k(H[t-1])??0)+k.bandwidth()+(e-k.bandwidth())/2;V.append(`line`).attr(`class`,`bc-bar-separator`).attr(`x1`,n).attr(`x2`,n).attr(`y1`,0).attr(`y2`,b).attr(`stroke`,`currentColor`).attr(`opacity`,.15)}}if(!E&&n.connectedColumns&&w.length>1){let e=n.colors??_y,t=n.connectionsOpacity??.15;for(let n=0;n<w.length-1;n++){let r=w[n],i=w[n+1];if(r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(k(r.label)??0)+k.bandwidth(),o=k(i.label)??0,s=Math.min(M(0),M(r.value)),c=Math.min(M(0),M(i.value)),l=M(0),u=F.get(r.label)??e[0],d=F.get(i.label)??e[0],f;if(u===d)f=u;else{let e=`bc-conn-grad-${B}-${n}`,t=z.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`100%`).attr(`y1`,`0%`).attr(`y2`,`0%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,u),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,d),f=`url(#${e})`}V.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${a},${s} ${o},${c} ${o},${l} ${a},${l}`).attr(`fill`,f).attr(`opacity`,t).attr(`pointer-events`,`none`)}}let U=$(g).append(`g`);if(E){let e=n.colors??_y,t=`#333`;if(n.connectedColumns&&D.length>1){let e=n.colors??_y,t=n.connectionsOpacity??.15;for(let n=0;n<D.length-1;n++){let r=D[n],i=D[n+1];if(i.isTotal||r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(k(r.label)??0)+k.bandwidth(),o=k(i.label)??0,s=M(r.y1),c=M(i.y1),l=M(r.y0),u=M(i.y0),d=F.get(r.label)??e[0],f=F.get(i.label)??e[0],p;if(d===f)p=d;else{let e=`bc-conn-grad-${B}-${n}`,t=z.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`100%`).attr(`y1`,`0%`).attr(`y2`,`0%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,d),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,f),p=`url(#${e})`}V.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${a},${s} ${o},${c} ${o},${u} ${a},${l}`).attr(`fill`,p).attr(`opacity`,t).attr(`pointer-events`,`none`)}}for(let e=0;e<D.length-1;e++){let t=D[e],n=D[e+1];if(n.isTotal)break;V.append(`line`).attr(`class`,`bc-waterfall-connector`).attr(`x1`,(k(t.label)??0)+k.bandwidth()).attr(`x2`,k(n.label)??0).attr(`y1`,M(t.y1)).attr(`y2`,M(t.y1)).attr(`stroke`,`currentColor`).attr(`stroke-dasharray`,`2,2`).attr(`opacity`,.3)}if(V.selectAll(`.bc-bar`).data(D,e=>e.label).enter().append(`rect`).attr(`class`,`bc-bar`).attr(`x`,e=>k(e.label)??0).attr(`y`,e=>Math.min(M(e.y0),M(e.y1))).attr(`width`,k.bandwidth()).attr(`height`,e=>Math.abs(M(e.y0)-M(e.y1))).attr(`fill`,n=>n.isTotal?t:F.get(n.label)??e[0]).attr(`opacity`,e=>I.size>0?cy(I,e.label):null),n.valueLabels){let r=n.valueLabelPosition??Xr.Auto,i=nh(n.verticalAxis?.numberFormat??``),a=e=>i?i(e):String(e);U.selectAll(`.bc-value-label`).data(D,e=>e.label).enter().append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`x`,e=>(k(e.label)??0)+k.bandwidth()/2).attr(`y`,e=>{let t=Math.min(M(e.y0),M(e.y1)),n=Math.abs(M(e.y0)-M(e.y1));return r===Xr.Inside?t+n/2:t-4}).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,r===Xr.Inside?`central`:`auto`).attr(`fill`,n=>r===Xr.Inside?sr(n.isTotal?t:F.get(n.label)??e[0]):`currentColor`).text(e=>T?e.label:a(e.isTotal?e.y1:e.value))}}else{let t=Rv(e),i=V.append(`g`).node();if(r)for(let e of c)i.appendChild(e);Xv(t,{role:`mark-per-category`,parent:i,selector:`.bc-bar`,data:w,key:e=>e.label,insert:e=>e.append(`rect`).attr(`class`,`bc-bar`),attrs:e=>({x:k(e.label)??0,y:Math.min(M(0),M(e.value)),width:k.bandwidth(),height:Math.abs(M(e.value)-M(0)),fill:F.get(e.label)??(n.colors??_y)[0],opacity:cy(I,e.label)})}),iy(t,{svg:L,clipId:R,group:g,from:s,to:S,active:r&&c.length>0});let o=Nv(V);n.tooltips&&o.use(R_({numberFormat:n.verticalAxis?.numberFormat})),n.crosshair&&o.use(B_({width:_,height:b,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor})),n.annotations?.length&&o.use(wv(n.annotations,{scaleX:k,scaleY:M,data:w,width:_,height:b,backgroundColor:lr(e),transition:r,priorAnnotations:a}));let l=()=>o.draw(w);t.state===`committing`?t.register(l):l(),n.valueLabels&&xy(U,w,k,M,{position:n.valueLabelPosition,colorOverrides:F,colors:n.colors??_y,transition:r,swapLabelValue:T,percent:n.valueLabels===`percent`,total:Li(w,e=>e.value)})}if(f){let e=$(g).append(`g`).attr(`class`,`bc-category-labels`);for(let t of O)e.append(`text`).attr(`class`,`bc-category-label`).attr(`x`,(k(t)??0)+k.bandwidth()/2).attr(`y`,b+vy/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).attr(`font-size`,`10px`).attr(`font-weight`,`600`).attr(`fill`,`currentColor`).text(t)}Ov(e,{chartType:`bar-vertical`,margin:y,plotRect:S}),i&&(Ch(V.node()),Th(e,i))}function by(e,t,n,r){let i=Math.abs(n(e.value)-n(0)),a=r===Xr.Inside,o=(t(e.label)??0)+t.bandwidth()/2,s,c;return e.value<0?a?(s=n(e.value)-i/2,c=`central`):(s=n(e.value)+4,c=`hanging`):a?(s=n(e.value)+i/2,c=`central`):(s=n(e.value)-4,c=`auto`),{tx:o,ty:s,anchor:`middle`,baseline:c,isInside:a}}function xy(e,t,n,r,i){let a=i.position??Xr.Auto,o=e=>i.swapLabelValue?e.label:i.percent&&i.total!==void 0?rh(e.value,i.total):String(e.value),s=e.select(`.bc-value-label-group`);s.empty()&&(s=e.append(`g`).attr(`class`,`bc-value-label-group`));let c=e.node().ownerSVGElement?.parentElement,l=Rv(c),u=t.filter(e=>gy({text:o(e),placement:a===Xr.Inside?`inside`:`outside`,orientation:`vertical`,barWidth:n.bandwidth(),barHeight:Math.abs(r(e.value)-r(0))}));Xv(l,{role:`value-label`,parent:s.node(),selector:`.bc-value-label`,data:u,key:e=>e.label,insert:e=>e.append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`),attrs:e=>{let t=by(e,n,r,a);return{x:t.tx,y:t.ty,"text-anchor":t.anchor,"dominant-baseline":t.baseline,fill:t.isInside?sr(i.colorOverrides.get(e.label)??i.colors[0]):`currentColor`}}}),s.selectAll(`.bc-value-label`).data(u,e=>e.label).text(o)}function Sy(e,t){let n=e.labels.map((t,n)=>({label:t,value:e.values[n]}));return t.sort===Kr.Ascending?n.sort((e,t)=>e.value-t.value):t.sort===Kr.Descending&&n.sort((e,t)=>t.value-e.value),n.map(e=>e.label)}var Cy=[`#4e79a7`],wy=13,Ty=`11px sans-serif`,Ey=4;function Dy(e){try{let t=document.createElement(`canvas`).getContext(`2d`);if(t)return t.font=Ty,Math.ceil(t.measureText(e).width)}catch{}return e.length*6.5}function Oy(e,t,n={},r=!1){xh(r);let i=null,a,o,s=[],c,l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,c=t?.plotRect,l.detach(),t?.chartType===`bar-horizontal`?s=Array.from(e.querySelectorAll(`.bc-frame .bc-bar`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=gh(u).width,f=d>0&&d<400&&n.verticalAxis?.labelPosition!==`outside`,p=n.categoryLabelLine===!0||f,m=mh(t.labels),h=hh(d,p?Fr.Off:n.verticalAxis?.labelPosition,n.horizontalAxis?.labelPosition,n.verticalAxis?.direction,m,n.horizontalAxis?.showAxis),g=n.valueLabelPosition??Xr.Auto,_=n.swapLabelValue===!0;if(n.valueLabels&&g!==Xr.Inside){if(_){let e=Dy(t.labels.reduce((e,t)=>e.length>t.length?e:t,``))+Ey;h.right=Math.max(h.right??15,e)}else{let e=Math.max(...t.values),n=Math.min(...t.values),r=e>0?Dy(String(e))+Ey:0,i=n<0?Dy(String(n))+Ey:0;h.right=Math.max(h.right??15,r),i>0&&(h.left=(h.left??50)+i)}}let{chartArea:v,width:y,height:b,margin:x}=vh(u,h),S={left:x.left,top:x.top,width:y,height:b},C=p?wy:0,w=ih(o,x),T=jy(t,n),E=T.map(e=>({label:e,value:t.values[t.labels.indexOf(e)]})),D=n.waterfall===!0,O=[];if(D){let e=0;for(let t of E){let n=e;e+=t.value,O.push({label:t.label,value:t.value,x0:n,x1:e,isTotal:!1})}n.waterfallTotal&&O.push({label:`Total`,value:e,x0:0,x1:e,isTotal:!0})}let k=n.horizontalAxis?.scaleType===`log`,[A,ee]=di(D?O.flatMap(e=>[e.x0,e.x1]):E.map(e=>e.value),n.horizontalAxis?.range,n.horizontalAxis?.scaleType),j=k?dd().domain([A,ee]).nice().range([0,y]):sd().domain([A,ee]).nice().range([0,y]),M=D?O.map(e=>e.label):T,N=Gu().domain(M).range([0,b]).padding(ui(n.barGap)),P=_&&n.valueLabels&&!D?(()=>{let e=new Map(E.map(e=>[e.label,e.value]));return{...n.verticalAxis,topPadding:x.top,tickFormat:t=>String(e.get(t)??t)}})():{...n.verticalAxis,topPadding:x.top},F=p?{...P,labelPosition:Fr.Off,...f?{showAxis:!1}:{}}:P;l.attach(v,w),l.update({horizontal:{scale:j,height:b,options:{...n.horizontalAxis,width:y}},vertical:{scale:N,height:b,options:F},order:`horizontal-first`}),!k&&A<0&&ee>0&&$(v).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,j(0)).attr(`x2`,j(0)).attr(`y1`,0).attr(`y2`,b).attr(`stroke`,`#666`).attr(`stroke-width`,1);let I=Tv(n.colorizes),L=new Set((n.highlights??[]).map(e=>e.target)),R=v.ownerSVGElement,z=jv(R,e,`bars`,{x:0,y:0,width:y,height:b}),B=$(R).select(`defs`),V=z.replace(/^bc-clip-/,``),H=$(v).append(`g`).attr(`clip-path`,`url(#${z})`);if(n.barBackground){let e=(n.colors??Cy)[0],t=D?M:E.map(e=>e.label);H.selectAll(`.bc-bar-bg`).data(t,e=>e).enter().append(`rect`).attr(`class`,`bc-bar-bg`).attr(`x`,0).attr(`y`,e=>(N(e)??0)+C).attr(`width`,y).attr(`height`,N.bandwidth()-C).attr(`fill`,e).attr(`opacity`,.18)}let U=D?M:E.map(e=>e.label);if(n.barSeparators&&U.length>1){let e=N.step();for(let t=1;t<U.length;t++){let n=(N(U[t-1])??0)+N.bandwidth()+(e-N.bandwidth())/2;H.append(`line`).attr(`class`,`bc-bar-separator`).attr(`x1`,0).attr(`x2`,y).attr(`y1`,n).attr(`y2`,n).attr(`stroke`,`currentColor`).attr(`opacity`,.15)}}if(!D&&n.connectedColumns&&E.length>1){let e=n.colors??Cy,t=n.connectionsOpacity??.15;for(let n=0;n<E.length-1;n++){let r=E[n],i=E[n+1];if(r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(N(r.label)??0)+N.bandwidth(),o=(N(i.label)??0)+C,s=Math.max(j(0),j(r.value)),c=Math.max(j(0),j(i.value)),l=j(0),u=I.get(r.label)??e[0],d=I.get(i.label)??e[0],f;if(u===d)f=u;else{let e=`bc-conn-grad-${V}-${n}`,t=B.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`0%`).attr(`y1`,`0%`).attr(`y2`,`100%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,u),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,d),f=`url(#${e})`}H.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${s},${a} ${c},${o} ${l},${o} ${l},${a}`).attr(`fill`,f).attr(`opacity`,t).attr(`pointer-events`,`none`)}}if(D){let e=n.colors??Cy,t=`#333`;if(n.connectedColumns&&O.length>1){let e=n.colors??Cy,t=n.connectionsOpacity??.15;for(let n=0;n<O.length-1;n++){let r=O[n],i=O[n+1];if(i.isTotal||r.value==null||i.value==null||Number.isNaN(r.value)||Number.isNaN(i.value)||r.value===0||i.value===0)continue;let a=(N(r.label)??0)+N.bandwidth(),o=(N(i.label)??0)+C,s=j(r.x1),c=j(i.x1),l=j(r.x0),u=j(i.x0),d=I.get(r.label)??e[0],f=I.get(i.label)??e[0],p;if(d===f)p=d;else{let e=`bc-conn-grad-${V}-${n}`,t=B.append(`linearGradient`).attr(`id`,e).attr(`x1`,`0%`).attr(`x2`,`0%`).attr(`y1`,`0%`).attr(`y2`,`100%`);t.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,d),t.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,f),p=`url(#${e})`}H.append(`polygon`).attr(`class`,`bc-bar-connection`).attr(`points`,`${s},${a} ${c},${o} ${u},${o} ${l},${a}`).attr(`fill`,p).attr(`opacity`,t).attr(`pointer-events`,`none`)}}for(let e=0;e<O.length-1;e++){let t=O[e],n=O[e+1];if(n.isTotal)break;H.append(`line`).attr(`class`,`bc-waterfall-connector`).attr(`x1`,j(t.x1)).attr(`x2`,j(t.x1)).attr(`y1`,(N(t.label)??0)+N.bandwidth()).attr(`y2`,(N(n.label)??0)+C).attr(`stroke`,`currentColor`).attr(`stroke-dasharray`,`2,2`).attr(`opacity`,.3)}if(H.selectAll(`.bc-bar`).data(O,e=>e.label).enter().append(`rect`).attr(`class`,`bc-bar`).attr(`x`,e=>Math.min(j(e.x0),j(e.x1))).attr(`y`,e=>(N(e.label)??0)+C).attr(`width`,e=>Math.abs(j(e.x1)-j(e.x0))).attr(`height`,N.bandwidth()-C).attr(`fill`,n=>n.isTotal?t:I.get(n.label)??e[0]).attr(`opacity`,e=>L.size>0?cy(L,e.label):null),n.valueLabels){let r=g,i=nh(n.horizontalAxis?.numberFormat??``),a=e=>i?i(e):String(e);$(v).append(`g`).selectAll(`.bc-value-label`).data(O,e=>e.label).enter().append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`dominant-baseline`,`central`).attr(`y`,e=>(N(e.label)??0)+C+(N.bandwidth()-C)/2).attr(`x`,e=>{let t=Math.max(j(e.x0),j(e.x1));return r===Xr.Inside?t-4:t+4}).attr(`text-anchor`,r===Xr.Inside?`end`:`start`).attr(`fill`,n=>r===Xr.Inside?sr(n.isTotal?t:I.get(n.label)??e[0]):`currentColor`).text(e=>_?e.label:a(e.isTotal?e.x1:e.value))}}else{let t=Rv(e),i=H.append(`g`).node();if(r)for(let e of s)i.appendChild(e);Xv(t,{role:`mark-per-category`,parent:i,selector:`.bc-bar`,data:E,key:e=>e.label,insert:e=>e.append(`rect`).attr(`class`,`bc-bar`),attrs:e=>({x:Math.min(j(0),j(e.value)),y:(N(e.label)??0)+C,width:Math.abs(j(e.value)-j(0)),height:N.bandwidth()-C,fill:I.get(e.label)??(n.colors??Cy)[0],opacity:cy(L,e.label)})}),iy(t,{svg:R,clipId:z,group:v,from:c,to:S,active:r&&s.length>0});let o=Nv(H);n.tooltips&&o.use(R_({numberFormat:n.horizontalAxis?.numberFormat})),n.crosshair&&o.use(B_({width:y,height:b,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor,orientation:Hr.Horizontal})),n.annotations?.length&&o.use(wv(n.annotations,{scaleX:N,scaleY:j,data:E,width:y,height:b,backgroundColor:lr(e),orientation:Hr.Horizontal,transition:r,priorAnnotations:a}));let l=()=>o.draw(E);t.state===`committing`?t.register(l):l(),n.valueLabels&&Ay($(v).append(`g`),E,j,N,{position:g,colorOverrides:I,colors:n.colors??Cy,transition:r,swapLabelValue:_,categoryLabelOffset:C,percent:n.valueLabels===`percent`,total:Li(E,e=>e.value)})}if(p){let e=$(v).append(`g`).attr(`class`,`bc-category-labels`);for(let t of M){let n=N(t)??0;e.append(`text`).attr(`class`,`bc-category-label`).attr(`x`,2).attr(`y`,n+wy/2).attr(`text-anchor`,`start`).attr(`dominant-baseline`,`central`).attr(`font-size`,`10px`).attr(`font-weight`,`600`).attr(`fill`,`currentColor`).text(t)}}Ov(e,{chartType:`bar-horizontal`,margin:x,plotRect:S}),i&&(Ch(H.node()),Th(e,i))}function ky(e,t,n,r,i=0){let a=r===Xr.Inside,o=(n(e.label)??0)+i+(n.bandwidth()-i)/2,s,c;if(e.value<0){let n=Math.min(t(0),t(e.value));a?(s=n+4,c=`start`):(s=n-4,c=`end`)}else{let n=t(e.value);a?(s=n-4,c=`end`):(s=n+4,c=`start`)}return{tx:s,ty:o,anchor:c,isInside:a}}function Ay(e,t,n,r,i){let a=i.position??Xr.Auto,o=i.categoryLabelOffset??0,s=e=>i.swapLabelValue?e.label:i.percent&&i.total!==void 0?rh(e.value,i.total):String(e.value),c=e.select(`.bc-value-label-group`);c.empty()&&(c=e.append(`g`).attr(`class`,`bc-value-label-group`));let l=e.node().ownerSVGElement?.parentElement,u=Rv(l),d=t.filter(e=>gy({text:s(e),placement:a===Xr.Inside?`inside`:`outside`,orientation:`horizontal`,barWidth:Math.abs(n(e.value)-n(0)),barHeight:r.bandwidth()}));Xv(u,{role:`value-label`,parent:c.node(),selector:`.bc-value-label`,data:d,key:e=>e.label,insert:e=>e.append(`text`).attr(`class`,`bc-value-label`).attr(`font-size`,`11px`).attr(`dominant-baseline`,`central`),attrs:e=>{let t=ky(e,n,r,a,o);return{x:t.tx,y:t.ty,"text-anchor":t.anchor,fill:t.isInside?sr(i.colorOverrides.get(e.label)??i.colors[0]):`currentColor`}}}),c.selectAll(`.bc-value-label`).data(d,e=>e.label).text(s)}function jy(e,t){let n=e.labels.map((t,n)=>({label:t,value:e.values[n]}));return t.sort===Kr.Ascending?n.sort((e,t)=>e.value-t.value):t.sort===Kr.Descending&&n.sort((e,t)=>t.value-e.value),n.map(e=>e.label)}var My=[`#4e79a7`,`#f28e2b`,`#e15759`,`#76b7b2`,`#59a14f`,`#edc948`,`#b07aa1`,`#ff9da7`],Ny=200,Py=.2,Fy=class extends Jm{initialize(){this.configDefine(`colors`,{defaultValue:My}),this.configDefine(`yOffset`,{defaultValue:-10}),this.configDefine(`layout`,{defaultValue:`horizontal`}),this.configDefine(`valueSuffixes`,{defaultValue:[]}),this.configDefine(`maxWidth`,{defaultValue:0});let e=this.base.append(`g`).attr(`class`,`bc-legend`),t=e=>{let t=this.config(`colors`),n=this.config(`layout`),r=this.config(`valueSuffixes`),i=this.base.node()?.ownerSVGElement?.parentElement??document.documentElement,a=getComputedStyle(i).getPropertyValue(`--bc-text-color`).trim()||`#555`,o=this.config(`maxWidth`),s=0,c=0;e.each(function(e,i){let l=$(this),u=r[i],d=16+(u?e.length+1+u.length:e.length)*7+12;n===`horizontal`&&o>0&&s>0&&s+d>o&&(s=0,c+=20),l.attr(`transform`,`translate(${s},${c})`).attr(`data-series`,e).style(`cursor`,`default`);let f=l.select(`rect`);f.empty()&&(f=l.append(`rect`).attr(`width`,12).attr(`height`,12)),f.attr(`fill`,t[i%t.length]);let p=l.select(`text`);p.empty()&&(p=l.append(`text`).attr(`x`,16).attr(`y`,10).attr(`font-size`,`12px`)),p.attr(`fill`,a),p.selectAll(`tspan`).remove(),u?(p.text(null),p.append(`tspan`).attr(`font-weight`,`bold`).text(e),p.append(`tspan`).text(` ${u}`)):p.text(e),n===`vertical`?c+=20:s+=d})};this.layer(`items`,e,{dataBind:(e,t)=>e.selectAll(`.bc-legend-item`).data(t,e=>e),insert:e=>e.append(`g`).attr(`class`,`bc-legend-item`),events:{enter:t,update:t}})}preDraw(){let e=this.config(`yOffset`);this.base.select(`.bc-legend`).attr(`transform`,`translate(0,${e})`)}};function Iy(e){let t=$(e).selectAll(`.bc-legend-item`);if(t.empty())return;let n=null,r=null;function i(n){r=n,t.each(function(){let e=$(this),t=e.attr(`data-series`)===n;e.transition().duration(150).style(`opacity`,t?1:Py)}),$(e).selectAll(`[data-series]`).filter(function(){return!this.closest(`.bc-legend`)}).each(function(){let e=$(this),t=e.attr(`data-series`)===n,r=this.classList.contains(`bc-direct-label`)||this.classList.contains(`bc-value-label`);e.transition().duration(150).style(`opacity`,t?1:r?0:Py)})}function a(){r=null,t.transition().duration(150).style(`opacity`,1),$(e).selectAll(`[data-series]`).filter(function(){return!this.closest(`.bc-legend`)}).transition().duration(150).style(`opacity`,null)}t.on(`mouseenter.bcHighlight`,null).on(`mouseleave.bcHighlight`,null).on(`mouseenter.bcHighlight`,function(){let e=$(this).attr(`data-series`)??``;n&&clearTimeout(n),n=setTimeout(()=>i(e),yh(Ny))}).on(`mouseleave.bcHighlight`,()=>{n&&=(clearTimeout(n),null),r!==null&&a()})}function Ly(e,t,n=My,r=-10,i=`top`,a=`start`,o=0,s=0,c=0,l=[],u={}){let d=i===`left`||i===`right`?`vertical`:`horizontal`,f=new Fy($(e));f.config({colors:n,yOffset:r,layout:d,valueSuffixes:l,maxWidth:o}),f.draw(t);let p=e.querySelector(`.bc-legend`);if(p){let e,n,i=t.map((e,t)=>{let n=l[t];return n?e.length+1+n.length:e.length});if(d===`horizontal`){let t=i.map(e=>16+e*7+12),r=1,a=0,s=0;for(let e of t)o>0&&a>0&&a+e>o?(s=Math.max(s,a),r++,a=e):a+=e;s=Math.max(s,a),e=s,n=r*20}else e=Math.max(...i)*7+16+8,n=t.length*20;let f=u.left??0,m=u.right??0,h=c,g=r;d===`horizontal`?h+=a===`middle`?-f+(o+f+m-e)/2:a===`end`?o+m-e:-f:a===`middle`?g+=(s-n)/2:a===`end`&&(g+=s-n),p.setAttribute(`transform`,`translate(${h},${g})`)}return Iy(e),p}function Ry(e,t,n){if(e.length===0)return{width:0,height:0};if(t===`left`||t===`right`)return{width:Math.max(...e.map(e=>e.length))*7+16+8,height:e.length*20};let r=e.map(e=>16+e.length*7+12);if(!n||n<=0)return{width:r.reduce((e,t)=>e+t,0),height:20};let i=1,a=0,o=0;for(let e of r)a>0&&a+e>n?(o=Math.max(o,a),i++,a=e):a+=e;return o=Math.max(o,a),{width:o,height:i*20}}function zy(e){return e.length===0?0:Math.max(...e.map(e=>e.length))*7+10}function By(e,t){return t?.find(t=>t.name===e)}function Vy(e,t,n,r){return By(e,r)?.color??n[t%n.length]}function Hy(e,t){return By(e,t)?.dash??`solid`}function Uy(e,t){return By(e,t)?.lineWidth??2}function Wy(e,t,n){let r=By(e,n);return!r?.interpolation||r.interpolation===`global`?t:r.interpolation}function Gy(e,t){return By(e,t)?.hidden??!1}function Ky(e,t,n){let r=By(e,n);return!r?.labelMode||r.labelMode===`global`?t:r.labelMode}function qy(e,t,n){let r=By(e,n);return r?.valueLabels===void 0?t:r.valueLabels}function Jy(e,t){return By(e,t)?.opacity??1}function Yy(e,t,n){let r=By(e,n);if(r?.lineSymbols!==!1&&(r?.lineSymbols===!0||t))return{name:e,symbolShape:r?.symbolShape??t?.symbolShape,symbolShowOn:r?.symbolShowOn??t?.symbolShowOn,symbolStyle:r?.symbolStyle??t?.symbolStyle,symbolSize:r?.symbolSize??t?.symbolSize,symbolOpacity:r?.symbolOpacity??t?.symbolOpacity,lineSymbols:!0}}var Xy=[`#4e79a7`,`#f28e2b`,`#e15759`,`#76b7b2`,`#59a14f`,`#edc948`,`#b07aa1`,`#ff9da7`];function Zy(e,t,n={},r=!1){xh(r);let i=null,a,o,s=[],c,l=Qh.for(e);if(r){let t=Dv(e);o=t?.margin,c=t?.plotRect,l.detach(),t?.chartType===`bar-multi`?s=Array.from(e.querySelectorAll(`.bc-frame .bc-bar-multi`)):t&&(i=wh(e)),a=new Map;for(let t of e.querySelectorAll(`.bc-frame .bc-annotations, .bc-frame .bc-annotations-range`))for(let[e,n]of H_(t))a.set(e,n);e.replaceChildren()}let{body:u}=$m(e,n.frame),d=t.series??[],f=d.filter(e=>!Gy(e.name,n.seriesOverrides)),p=f.map(e=>e.name),m=n.colors??Xy,h=n.seriesOverrides,g=n.directLabelling===!0||n.directLabelling===`auto`&&n.legend!==!0||!!n.directLabelling&&n.directLabelling!==`auto`,_=g?`direct`:n.legend===!1?`none`:`legend`,v=n.legend!==!1&&!g,y=gh(u).width,b=n.legendPosition??`top`,x=y>0&&y<350&&(b===`left`||b===`right`)?`top`:b,S=n.legendAnchor??`start`,C=f.flatMap(e=>e.values),w=ph(C,n.verticalAxis?.range,n.verticalAxis?.numberFormat,n.verticalAxis?.scaleType),T=hh(y,n.verticalAxis?.labelPosition,n.horizontalAxis?.labelPosition,n.verticalAxis?.direction,w),E=Math.max(0,y-(T.left??50)-(T.right??20)),D=Hh(t.labels,E,n.horizontalAxis);D!==void 0&&(T.bottom=D);let O=T.top!=null,k=Math.max(0,y-(T.left??50)-(T.right??20)),A=v?Ry(p,x,k):{width:0,height:0},ee=v?A.height+15:0,j={...T};v&&x===`top`&&(j.top=ee+(O?15:0)),v&&x===`bottom`&&(j.bottom=(j.bottom??24)+ee),v&&x===`left`&&(j.left=(j.left??50)+A.width+10),v&&x===`right`&&(j.right=(j.right??20)+A.width+10);let{chartArea:M,width:N,height:P,margin:F}=vh(u,j),I=ih(o,F),[L,R]=di(C,n.verticalAxis?.range,n.verticalAxis?.scaleType);if(n.valueLabels&&L<0&&n.verticalAxis?.range?.min==null){let e=R-L;L-=e*.1}let z=t.labels;if(n.sortMode===`total`){let e=t.labels.map((e,t)=>({label:e,index:t,total:f.reduce((e,n)=>e+(n.values[t]??0),0)}));e.sort((e,t)=>t.total-e.total),z=e.map(e=>e.label)}let B=Gu().domain(z).range([0,N]).padding(ui(n.barGap)),V=Gu().domain(p).range([0,B.bandwidth()]).padding(.05),H=n.verticalAxis?.scaleType===`log`,U=H?dd().domain([L,R]).nice().range([P,0]):sd().domain([L,R]).nice().range([P,0]);l.attach(M,I),l.update({vertical:{scale:U,height:P,options:{...n.verticalAxis,gridWidth:N,topPadding:F.top}},horizontal:{scale:B,height:P,options:{...n.horizontalAxis,width:N}}}),!H&&L<0&&R>0&&$(M).append(`line`).attr(`class`,`bc-zero-baseline`).attr(`x1`,0).attr(`x2`,N).attr(`y1`,U(0)).attr(`y2`,U(0)).attr(`stroke`,`#666`).attr(`stroke-width`,1);let te=new Map;n.sortMode===`within-groups`&&t.labels.forEach((e,t)=>{let n=f.map(e=>({name:e.name,value:e.values[t]}));n.sort((e,t)=>t.value-e.value),n.forEach((t,n)=>{te.set(`${e}\0${t.name}`,p[n])})});let ne=[];t.labels.forEach((e,t)=>{f.forEach(r=>{let i=d.findIndex(e=>e.name===r.name),a=n.sortMode===`within-groups`?te.get(`${e}\0${r.name}`)??r.name:r.name;ne.push({label:e,series:a,seriesName:r.name,value:r.values[t],seriesIndex:i})})});let re=n.valueLabels??!1,ie=M.ownerSVGElement,ae=jv(ie,e,`bars`,{x:0,y:0,width:N,height:P}),oe=$(M).append(`g`).attr(`clip-path`,`url(#${ae})`),se=Rv(e),ce=sy(n.highlights),W=Tv(n.colorizes),G=oe.append(`g`).node();if(r)for(let e of s)e.removeAttribute(`opacity`),e.removeAttribute(`fill-opacity`),G.appendChild(e);Xv(se,{role:`mark-per-cell`,parent:G,selector:`.bc-bar-multi`,data:ne,key:e=>`${e.label}\0${e.seriesName}`,insert:e=>e.append(`rect`).attr(`class`,`bc-bar bc-bar-multi`),attrs:e=>{let t=Vy(e.seriesName,e.seriesIndex,m,h),n=Jy(e.seriesName,h),r={"data-series":e.seriesName,x:(B(e.label)??0)+(V(e.series)??0),y:Math.min(U(0),U(e.value)),width:V.bandwidth(),height:Math.abs(U(e.value)-U(0)),fill:W.get(e.seriesName)??t};return n<1&&(r[`fill-opacity`]=n),ce.size>0?{...r,opacity:cy(ce,e.seriesName)}:r}});let le={left:F.left,top:F.top,width:N,height:P};iy(se,{svg:ie,clipId:ae,group:M,from:c,to:le,active:r&&s.length>0});let K=Nv(oe);if(n.tooltips&&K.use(R_({numberFormat:n.verticalAxis?.numberFormat})),n.crosshair&&K.use(B_({width:N,height:P,direction:n.crosshairDirection,style:n.crosshairStyle,color:n.crosshairColor})),n.annotations?.length){let i=t.labels.map((e,t)=>({label:e,value:Math.max(...f.map(e=>e.values[t]??0))}));K.use(wv(n.annotations,{scaleX:B,scaleY:U,data:i,width:N,height:P,backgroundColor:lr(e),transition:r,priorAnnotations:a}))}let ue=()=>K.draw(ne);se.state===`committing`?se.register(ue):ue(),Ov(e,{chartType:`bar-multi`,margin:F,plotRect:le}),i&&(Ch(oe.node()),Th(e,i));let de=new Set;f.forEach(e=>{Ky(e.name,_,h)===`direct`&&de.add(e.name)});let fe=de.size>0,pe=lr(e),me=typeof n.directLabelling==`string`?n.directLabelling:n.directLabelling?ei.Auto:ei.Off,he=n.directLabelAnchor??`middle`,ge=n.valueLabelPosition??Xr.Auto;function _e(){return ge===Xr.Inside?Xr.Inside:(Xr.Outside,Xr.Outside)}function ve(e){return me===ei.Inside?Xr.Inside:me===ei.Outside?Xr.Outside:re?_e():Xr.Outside}function ye(e,t,n){return n===`start`?e+12:n===`end`?e+t-4:e+t/2}let be=$(M).append(`g`).attr(`class`,`bc-value-labels`);ne.forEach(e=>{if(!qy(e.seriesName,re,h))return;let t=(B(e.label)??0)+(V(e.series)??0)+V.bandwidth()/2,n=Math.min(U(0),U(e.value)),r=Math.abs(U(e.value)-U(0)),i=_e(),a=fe&&de.has(e.seriesName),o=e.value<0,s=n+r,c,l,u;i===Xr.Inside?(l=sr(Vy(e.seriesName,e.seriesIndex,m,h)),u=`central`,c=a&&ve(r)===Xr.Inside?ye(n,r,he)+14:n+r/2):(l=`currentColor`,o?(c=a&&ve(r)===Xr.Outside?s+16:s+4,u=`hanging`):(c=a&&ve(r)===Xr.Outside?n-16:n-4,u=`auto`)),gy({text:String(e.value),placement:i===Xr.Inside?`inside`:`outside`,orientation:`vertical`,barWidth:V.bandwidth(),barHeight:r})&&be.append(`text`).attr(`class`,`bc-value-label`).attr(`data-series`,e.seriesName).attr(`x`,t).attr(`y`,c).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,u).attr(`font-size`,`11px`).attr(`fill`,l).text(String(e.value))}),ne.forEach(e=>{if(!de.has(e.seriesName))return;let t=(B(e.label)??0)+(V(e.series)??0)+V.bandwidth()/2,n=Math.min(U(0),U(e.value)),r=Math.abs(U(e.value)-U(0)),i=h?.find(t=>t.name===e.seriesName)?.labelText||e.seriesName,a=ve(r),o=Vy(e.seriesName,e.seriesIndex,m,h),s=$(M).append(`text`).attr(`class`,`bc-direct-label`).attr(`data-series`,e.seriesName).attr(`x`,t).attr(`text-anchor`,`middle`).attr(`font-size`,`10px`).text(i);if(a===Xr.Inside){let e=ye(n,r,he);s.attr(`y`,e).attr(`fill`,sr(o)),he===`middle`&&s.attr(`dominant-baseline`,`central`)}else s.attr(`y`,n-4).attr(`fill`,ur(o,pe))});let xe=p.filter(e=>Ky(e,_,h)===`legend`);if(v&&xe.length>0){let e=xe.map(e=>Vy(e,d.findIndex(t=>t.name===e),m,h)),t=0,n=0;if(x===`top`){let e=O?15:0;n=-(A.height+10+e)}else x===`bottom`?n=P+25:x===`left`?t=-(A.width+10):x===`right`&&(t=N+10);Ly(M,xe,e,n,x,S,N,P,t,[],{left:F.left,right:F.right})}}var Qy={linear:Np,monotoneX:_m,step:ym,stepBefore:bm,stepAfter:xm,basis:am,cardinal:cm,catmullRom:dm};function $y(e){return e&&Qy[e]||Np}var eb=`bc-tooltip`,tb=new WeakMap;function nb(e){let t=tb.get(e);t&&(tb.delete(e),t())}function rb(){if(document.getElementById(`bc-tooltip-styles`))return;let e=document.createElement(`style`);e.id=`bc-tooltip-styles`,e.textContent=`
|
|
253
254
|
.${eb} {
|
|
254
255
|
position: absolute;
|
|
255
256
|
pointer-events: none;
|
|
@@ -2092,12 +2092,17 @@ function $t(e, t, n, r, i = {}) {
|
|
|
2092
2092
|
} else s.text(t);
|
|
2093
2093
|
}
|
|
2094
2094
|
function en(e, t, n) {
|
|
2095
|
-
let r =
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2095
|
+
let r = 0, i = (t) => {
|
|
2096
|
+
e.append("tspan").attr("x", e.attr("x")).attr("dy", r === 0 ? "0" : "1.2em").text(t), r++;
|
|
2097
|
+
};
|
|
2098
|
+
for (let e of t.split("\n")) {
|
|
2099
|
+
let t = "";
|
|
2100
|
+
for (let r of e.split(/\s+/).filter(Boolean)) {
|
|
2101
|
+
let e = t ? `${t} ${r}` : r;
|
|
2102
|
+
t && e.length * 7 > n ? (i(t), t = r) : t = e;
|
|
2103
|
+
}
|
|
2104
|
+
i(t);
|
|
2099
2105
|
}
|
|
2100
|
-
i && e.append("tspan").attr("x", e.attr("x")).attr("dy", a === 0 ? "0" : "1.2em").text(i);
|
|
2101
2106
|
}
|
|
2102
2107
|
function tn(e, t, n = I.Center) {
|
|
2103
2108
|
if ("bandwidth" in t) {
|
|
@@ -2170,7 +2175,7 @@ function cn(e, t, n, r) {
|
|
|
2170
2175
|
let e = on(d - u.x);
|
|
2171
2176
|
$t(o, t.text, g, _ - 4, {
|
|
2172
2177
|
textColor: t.textColor,
|
|
2173
|
-
maxWidth: an(t.maxWidth, n.width),
|
|
2178
|
+
maxWidth: an(t.maxWidth, n.width) ?? n.width * .4,
|
|
2174
2179
|
textAnchor: e,
|
|
2175
2180
|
backgroundColor: n.backgroundColor,
|
|
2176
2181
|
textOutline: t.textOutline
|
|
@@ -2259,7 +2264,7 @@ function un(e, t, n, r) {
|
|
|
2259
2264
|
if (t.text) {
|
|
2260
2265
|
$t(i, t.text, o, s, {
|
|
2261
2266
|
textColor: t.textColor,
|
|
2262
|
-
maxWidth: an(t.maxWidth, n.width),
|
|
2267
|
+
maxWidth: an(t.maxWidth, n.width) ?? n.width * .4,
|
|
2263
2268
|
textAnchor: "middle",
|
|
2264
2269
|
backgroundColor: n.backgroundColor,
|
|
2265
2270
|
textOutline: t.textOutline
|
|
@@ -2245,12 +2245,17 @@ function sn(e, t, n, r, i = {}) {
|
|
|
2245
2245
|
} else s.text(t);
|
|
2246
2246
|
}
|
|
2247
2247
|
function cn(e, t, n) {
|
|
2248
|
-
let r =
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2248
|
+
let r = 0, i = (t) => {
|
|
2249
|
+
e.append("tspan").attr("x", e.attr("x")).attr("dy", r === 0 ? "0" : "1.2em").text(t), r++;
|
|
2250
|
+
};
|
|
2251
|
+
for (let e of t.split("\n")) {
|
|
2252
|
+
let t = "";
|
|
2253
|
+
for (let r of e.split(/\s+/).filter(Boolean)) {
|
|
2254
|
+
let e = t ? `${t} ${r}` : r;
|
|
2255
|
+
t && e.length * 7 > n ? (i(t), t = r) : t = e;
|
|
2256
|
+
}
|
|
2257
|
+
i(t);
|
|
2252
2258
|
}
|
|
2253
|
-
i && e.append("tspan").attr("x", e.attr("x")).attr("dy", a === 0 ? "0" : "1.2em").text(i);
|
|
2254
2259
|
}
|
|
2255
2260
|
function ln(e, t, n = A.Center) {
|
|
2256
2261
|
if ("bandwidth" in t) {
|
|
@@ -2323,7 +2328,7 @@ function mn(e, t, n, r) {
|
|
|
2323
2328
|
let e = fn(d - u.x);
|
|
2324
2329
|
sn(o, t.text, g, _ - 4, {
|
|
2325
2330
|
textColor: t.textColor,
|
|
2326
|
-
maxWidth: $(t.maxWidth, n.width),
|
|
2331
|
+
maxWidth: $(t.maxWidth, n.width) ?? n.width * .4,
|
|
2327
2332
|
textAnchor: e,
|
|
2328
2333
|
backgroundColor: n.backgroundColor,
|
|
2329
2334
|
textOutline: t.textOutline
|
|
@@ -2412,7 +2417,7 @@ function gn(e, t, n, r) {
|
|
|
2412
2417
|
if (t.text) {
|
|
2413
2418
|
sn(i, t.text, o, s, {
|
|
2414
2419
|
textColor: t.textColor,
|
|
2415
|
-
maxWidth: $(t.maxWidth, n.width),
|
|
2420
|
+
maxWidth: $(t.maxWidth, n.width) ?? n.width * .4,
|
|
2416
2421
|
textAnchor: "middle",
|
|
2417
2422
|
backgroundColor: n.backgroundColor,
|
|
2418
2423
|
textOutline: t.textOutline
|
package/dist/runtime.js
CHANGED