@ambuj.bhaskar/react-component-library 0.24.4-alpha → 0.24.5-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -34
- package/bin/cli.js +87 -87
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +50 -37
- package/dist/index.umd.js +1 -1
- package/package.json +102 -102
package/dist/index.js
CHANGED
|
@@ -32596,34 +32596,39 @@ function J5e({
|
|
|
32596
32596
|
input: e,
|
|
32597
32597
|
type: t,
|
|
32598
32598
|
lineVariant: n,
|
|
32599
|
-
lineTension: r
|
|
32599
|
+
lineTension: r,
|
|
32600
|
+
opacity: o,
|
|
32601
|
+
lineStroke: i,
|
|
32602
|
+
colors: a
|
|
32600
32603
|
}) {
|
|
32601
|
-
const
|
|
32604
|
+
const s = a, l = t === "doughnut" || t === "pie";
|
|
32602
32605
|
return {
|
|
32603
32606
|
labels: e.labels,
|
|
32604
32607
|
datasets: e.datasets.map(
|
|
32605
|
-
(
|
|
32606
|
-
var
|
|
32607
|
-
return
|
|
32608
|
-
label:
|
|
32609
|
-
data:
|
|
32610
|
-
backgroundColor:
|
|
32611
|
-
(
|
|
32612
|
-
|
|
32608
|
+
(u, d) => {
|
|
32609
|
+
var h;
|
|
32610
|
+
return l ? {
|
|
32611
|
+
label: u.label,
|
|
32612
|
+
data: u.data,
|
|
32613
|
+
backgroundColor: u.colors && u.colors.length === u.data.length ? (h = u.colors) == null ? void 0 : h.map((C) => lf(C, o)) : u.data.map(
|
|
32614
|
+
(C, m) => lf(
|
|
32615
|
+
s[m % s.length],
|
|
32616
|
+
o
|
|
32613
32617
|
)
|
|
32614
32618
|
),
|
|
32615
|
-
borderColor:
|
|
32616
|
-
(
|
|
32619
|
+
borderColor: u.colors && u.colors.length === u.data.length ? u.colors : u.data.map(
|
|
32620
|
+
(C, m) => s[m % s.length]
|
|
32617
32621
|
),
|
|
32618
32622
|
borderWidth: 2
|
|
32619
32623
|
} : {
|
|
32620
|
-
label:
|
|
32621
|
-
data:
|
|
32624
|
+
label: u.label,
|
|
32625
|
+
data: u.data,
|
|
32622
32626
|
backgroundColor: lf(
|
|
32623
|
-
|
|
32627
|
+
u.color || s[d % s.length],
|
|
32628
|
+
o
|
|
32624
32629
|
),
|
|
32625
|
-
borderColor:
|
|
32626
|
-
borderWidth: t === "line" ?
|
|
32630
|
+
borderColor: u.color || s[d % s.length],
|
|
32631
|
+
borderWidth: t === "line" ? i : 1,
|
|
32627
32632
|
fill: n == "fill",
|
|
32628
32633
|
tension: r ?? 0.4
|
|
32629
32634
|
};
|
|
@@ -32694,16 +32699,18 @@ function e4e({
|
|
|
32694
32699
|
}
|
|
32695
32700
|
}) : r;
|
|
32696
32701
|
}
|
|
32697
|
-
function lf(e) {
|
|
32702
|
+
function lf(e, t = 0.1) {
|
|
32698
32703
|
if (/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e)) {
|
|
32699
|
-
|
|
32700
|
-
|
|
32704
|
+
let r = e.substring(1);
|
|
32705
|
+
r.length === 3 && (r = r.split("").map((s) => s + s).join(""));
|
|
32706
|
+
const o = parseInt(r.substring(0, 2), 16), i = parseInt(r.substring(2, 4), 16), a = parseInt(r.substring(4, 6), 16);
|
|
32707
|
+
return `rgba(${o}, ${i}, ${a}, ${t})`;
|
|
32701
32708
|
} else if (e.startsWith("rgba")) {
|
|
32702
|
-
const [
|
|
32703
|
-
return `rgba(${
|
|
32709
|
+
const [r, o, i] = e.substring(5, e.length - 1).split(",").map((a) => a.trim()).slice(0, 3);
|
|
32710
|
+
return `rgba(${r}, ${o}, ${i}, ${t})`;
|
|
32704
32711
|
} else if (e.startsWith("rgb")) {
|
|
32705
|
-
const [
|
|
32706
|
-
return `rgba(${
|
|
32712
|
+
const [r, o, i] = e.substring(4, e.length - 1).split(",").map((a) => a.trim());
|
|
32713
|
+
return `rgba(${r}, ${o}, ${i}, ${t})`;
|
|
32707
32714
|
} else
|
|
32708
32715
|
throw new Error(`Unsupported color format: ${e}`);
|
|
32709
32716
|
}
|
|
@@ -32734,34 +32741,40 @@ const SRe = ({
|
|
|
32734
32741
|
barVariant: r,
|
|
32735
32742
|
lineVariant: o,
|
|
32736
32743
|
lineTension: i,
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32740
|
-
|
|
32744
|
+
opacity: a = 0.1,
|
|
32745
|
+
lineStroke: s,
|
|
32746
|
+
width: l,
|
|
32747
|
+
height: u,
|
|
32748
|
+
backgroundColor: d,
|
|
32749
|
+
className: h = "",
|
|
32750
|
+
colors: C = ["#4e79a7", "#f28e2b", "#e15759", "#76b7b2"]
|
|
32741
32751
|
}) => {
|
|
32742
32752
|
e === "line" ? r4e() : e === "bar" ? t4e() : (e === "doughnut" || e === "pie") && n4e();
|
|
32743
|
-
const
|
|
32753
|
+
const m = J5e({
|
|
32744
32754
|
input: t,
|
|
32745
32755
|
type: e,
|
|
32746
32756
|
lineVariant: o,
|
|
32747
|
-
lineTension: i
|
|
32748
|
-
|
|
32757
|
+
lineTension: i,
|
|
32758
|
+
opacity: a,
|
|
32759
|
+
lineStroke: s,
|
|
32760
|
+
colors: C
|
|
32761
|
+
}), A = fl.merge(
|
|
32749
32762
|
{ maintainAspectRatio: !1 },
|
|
32750
32763
|
e4e({ type: e, barVariant: r }),
|
|
32751
32764
|
n
|
|
32752
|
-
),
|
|
32765
|
+
), p = {
|
|
32753
32766
|
line: G5e,
|
|
32754
32767
|
bar: Y5e,
|
|
32755
32768
|
doughnut: q5e,
|
|
32756
32769
|
pie: X5e
|
|
32757
32770
|
}[e];
|
|
32758
32771
|
return /* @__PURE__ */ K.jsx(
|
|
32759
|
-
|
|
32772
|
+
p,
|
|
32760
32773
|
{
|
|
32761
|
-
data:
|
|
32762
|
-
options:
|
|
32763
|
-
style: { width:
|
|
32764
|
-
className: `awi-chart ${
|
|
32774
|
+
data: m,
|
|
32775
|
+
options: A,
|
|
32776
|
+
style: { width: l, height: u, backgroundColor: d },
|
|
32777
|
+
className: `awi-chart ${h}`
|
|
32765
32778
|
}
|
|
32766
32779
|
);
|
|
32767
32780
|
}, D6 = (e, t) => {
|
package/dist/index.umd.js
CHANGED
|
@@ -354,7 +354,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
354
354
|
* Released under the MIT License
|
|
355
355
|
*/class cJ{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,n,r,o){const i=n.listeners[o],a=n.duration;i.forEach(s=>s({chart:t,initial:n.initial,numSteps:a,currentStep:Math.min(r-n.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=U_.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((r,o)=>{if(!r.running||!r.items.length)return;const i=r.items;let a=i.length-1,s=!1,l;for(;a>=0;--a)l=i[a],l._active?(l._total>r.duration&&(r.duration=l._total),l.tick(t),s=!0):(i[a]=i[i.length-1],i.pop());s&&(o.draw(),this._notify(o,r,t,"progress")),i.length||(r.running=!1,this._notify(o,r,t,"complete"),r.initial=!1),n+=i.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let r=n.get(t);return r||(r={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,r)),r}listen(t,n,r){this._getAnims(t).listeners[n].push(r)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((r,o)=>Math.max(r,o._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const r=n.items;let o=r.length-1;for(;o>=0;--o)r[o].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var ji=new cJ;const by="transparent",uJ={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const r=W_(e||by),o=r.valid&&W_(t||by);return o&&o.valid?o.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class dJ{constructor(t,n,r,o){const i=n[r];o=Ac([t.to,o,i,t.from]);const a=Ac([t.from,i,o]);this._active=!0,this._fn=t.fn||uJ[t.type||typeof a],this._easing=Zs[t.easing]||Zs.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=r,this._from=a,this._to=o,this._promises=void 0}active(){return this._active}update(t,n,r){if(this._active){this._notify(!1);const o=this._target[this._prop],i=r-this._start,a=this._duration-i;this._start=r,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=i,this._loop=!!t.loop,this._to=Ac([t.to,n,o,t.from]),this._from=Ac([t.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,r=this._duration,o=this._prop,i=this._from,a=this._loop,s=this._to;let l;if(this._active=i!==s&&(a||n<r),!this._active){this._target[o]=s,this._notify(!0);return}if(n<0){this._target[o]=i;return}l=n/r%2,l=a&&l>1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(i,s,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,r)=>{t.push({res:n,rej:r})})}_notify(t){const n=t?"res":"rej",r=this._promises||[];for(let o=0;o<r.length;o++)r[o][n]()}}class _y{constructor(t,n){this._chart=t,this._properties=new Map,this.configure(n)}configure(t){if(!A1(t))return;const n=Object.keys(Dr.animation),r=this._properties;Object.getOwnPropertyNames(t).forEach(o=>{const i=t[o];if(!A1(i))return;const a={};for(const s of n)a[s]=i[s];(Kr(i.properties)&&i.properties||[o]).forEach(s=>{(s===o||!r.has(s))&&r.set(s,a)})})}_animateOptions(t,n){const r=n.options,o=hJ(t,r);if(!o)return[];const i=this._createAnimations(o,r);return r.$shared&&fJ(t.options.$animations,r).then(()=>{t.options=r},()=>{}),i}_createAnimations(t,n){const r=this._properties,o=[],i=t.$animations||(t.$animations={}),a=Object.keys(n),s=Date.now();let l;for(l=a.length-1;l>=0;--l){const u=a[l];if(u.charAt(0)==="$")continue;if(u==="options"){o.push(...this._animateOptions(t,n));continue}const d=n[u];let h=i[u];const g=r.get(u);if(h)if(g&&h.active()){h.update(g,d,s);continue}else h.cancel();if(!g||!g.duration){t[u]=d;continue}i[u]=h=new dJ(g,t,u,d),o.push(h)}return o}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const r=this._createAnimations(t,n);if(r.length)return ji.add(this._chart,r),!0}}function fJ(e,t){const n=[],r=Object.keys(t);for(let o=0;o<r.length;o++){const i=e[r[o]];i&&i.active()&&n.push(i.wait())}return Promise.all(n)}function hJ(e,t){if(!t)return;let n=e.options;if(!n){e.options=t;return}return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function yy(e,t){const n=e&&e.options||{},r=n.reverse,o=n.min===void 0?t:0,i=n.max===void 0?t:0;return{start:r?i:o,end:r?o:i}}function gJ(e,t,n){if(n===!1)return!1;const r=yy(e,n),o=yy(t,n);return{top:o.end,right:r.end,bottom:o.start,left:r.start}}function CJ(e){let t,n,r,o;return A1(e)?(t=e.top,n=e.right,r=e.bottom,o=e.left):t=n=r=o=e,{top:t,right:n,bottom:r,left:o,disabled:e===!1}}function xy(e,t){const n=[],r=e._getSortedDatasetMetas(t);let o,i;for(o=0,i=r.length;o<i;++o)n.push(r[o].index);return n}function wy(e,t,n,r={}){const o=e.keys,i=r.mode==="single";let a,s,l,u;if(t===null)return;let d=!1;for(a=0,s=o.length;a<s;++a){if(l=+o[a],l===n){if(d=!0,r.all)continue;break}u=e.values[l],w0(u)&&(i||t===0||Ko(t)===Ko(u))&&(t+=u)}return!d&&!r.all?0:t}function mJ(e,t){const{iScale:n,vScale:r}=t,o=n.axis==="x"?"x":"y",i=r.axis==="x"?"x":"y",a=Object.keys(e),s=new Array(a.length);let l,u,d;for(l=0,u=a.length;l<u;++l)d=a[l],s[l]={[o]:d,[i]:e[d]};return s}function af(e,t){const n=e&&e.options.stacked;return n||n===void 0&&t.stack!==void 0}function pJ(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}function vJ(e){const{min:t,max:n,minDefined:r,maxDefined:o}=e.getUserBounds();return{min:r?t:Number.NEGATIVE_INFINITY,max:o?n:Number.POSITIVE_INFINITY}}function AJ(e,t,n){const r=e[t]||(e[t]={});return r[n]||(r[n]={})}function Ey(e,t,n,r){for(const o of t.getMatchingVisibleMetas(r).reverse()){const i=e[o.index];if(n&&i>0||!n&&i<0)return o.index}return null}function Sy(e,t){const{chart:n,_cachedMeta:r}=e,o=n._stacks||(n._stacks={}),{iScale:i,vScale:a,index:s}=r,l=i.axis,u=a.axis,d=pJ(i,a,r),h=t.length;let g;for(let m=0;m<h;++m){const v=t[m],{[l]:A,[u]:p}=v,w=v._stacks||(v._stacks={});g=w[u]=AJ(o,d,A),g[s]=p,g._top=Ey(g,a,!0,r.type),g._bottom=Ey(g,a,!1,r.type);const y=g._visualValues||(g._visualValues={});y[s]=p}}function sf(e,t){const n=e.scales;return Object.keys(n).filter(r=>n[r].axis===t).shift()}function bJ(e,t){return N9(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function _J(e,t,n){return N9(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function Qs(e,t){const n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t=t||e._parsed;for(const o of t){const i=o._stacks;if(!i||i[r]===void 0||i[r][n]===void 0)return;delete i[r][n],i[r]._visualValues!==void 0&&i[r]._visualValues[n]!==void 0&&delete i[r]._visualValues[n]}}}const lf=e=>e==="reset"||e==="none",My=(e,t)=>t?e:Object.assign({},e),yJ=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:xy(n,!0),values:null};class z9{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=af(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Qs(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,r=this.getDataset(),o=(h,g,m,v)=>h==="x"?g:h==="r"?v:m,i=n.xAxisID=h1(r.xAxisID,sf(t,"x")),a=n.yAxisID=h1(r.yAxisID,sf(t,"y")),s=n.rAxisID=h1(r.rAxisID,sf(t,"r")),l=n.indexAxis,u=n.iAxisID=o(l,i,a,s),d=n.vAxisID=o(l,a,i,s);n.xScale=this.getScaleForId(i),n.yScale=this.getScaleForId(a),n.rScale=this.getScaleForId(s),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(d)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&j_(this._data,this),t._stacked&&Qs(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),r=this._data;if(A1(n)){const o=this._cachedMeta;this._data=mJ(n,o)}else if(r!==n){if(r){j_(r,this);const o=this._cachedMeta;Qs(o),o._parsed=[]}n&&Object.isExtensible(n)&&iX(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,r=this.getDataset();let o=!1;this._dataCheck();const i=n._stacked;n._stacked=af(n.vScale,n),n.stack!==r.stack&&(o=!0,Qs(n),n.stack=r.stack),this._resyncElements(t),(o||i!==n._stacked)&&(Sy(this,n._parsed),n._stacked=af(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),r=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(r,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:r,_data:o}=this,{iScale:i,_stacked:a}=r,s=i.axis;let l=t===0&&n===o.length?!0:r._sorted,u=t>0&&r._parsed[t-1],d,h,g;if(this._parsing===!1)r._parsed=o,r._sorted=!0,g=o;else{Kr(o[t])?g=this.parseArrayData(r,o,t,n):A1(o[t])?g=this.parseObjectData(r,o,t,n):g=this.parsePrimitiveData(r,o,t,n);const m=()=>h[s]===null||u&&h[s]<u[s];for(d=0;d<n;++d)r._parsed[d+t]=h=g[d],l&&(m()&&(l=!1),u=h);r._sorted=l}a&&Sy(this,g)}parsePrimitiveData(t,n,r,o){const{iScale:i,vScale:a}=t,s=i.axis,l=a.axis,u=i.getLabels(),d=i===a,h=new Array(o);let g,m,v;for(g=0,m=o;g<m;++g)v=g+r,h[g]={[s]:d||i.parse(u[v],v),[l]:a.parse(n[v],v)};return h}parseArrayData(t,n,r,o){const{xScale:i,yScale:a}=t,s=new Array(o);let l,u,d,h;for(l=0,u=o;l<u;++l)d=l+r,h=n[d],s[l]={x:i.parse(h[0],d),y:a.parse(h[1],d)};return s}parseObjectData(t,n,r,o){const{xScale:i,yScale:a}=t,{xAxisKey:s="x",yAxisKey:l="y"}=this._parsing,u=new Array(o);let d,h,g,m;for(d=0,h=o;d<h;++d)g=d+r,m=n[g],u[d]={x:i.parse(O9(m,s),g),y:a.parse(O9(m,l),g)};return u}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,n,r){const o=this.chart,i=this._cachedMeta,a=n[t.axis],s={keys:xy(o,!0),values:n._stacks[t.axis]._visualValues};return wy(s,a,i.index,{mode:r})}updateRangeFromParsed(t,n,r,o){const i=r[n.axis];let a=i===null?NaN:i;const s=o&&r._stacks[n.axis];o&&s&&(o.values=s,a=wy(o,i,this._cachedMeta.index)),t.min=Math.min(t.min,a),t.max=Math.max(t.max,a)}getMinMax(t,n){const r=this._cachedMeta,o=r._parsed,i=r._sorted&&t===r.iScale,a=o.length,s=this._getOtherScale(t),l=yJ(n,r,this.chart),u={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:d,max:h}=vJ(s);let g,m;function v(){m=o[g];const A=m[s.axis];return!w0(m[t.axis])||d>A||h<A}for(g=0;g<a&&!(!v()&&(this.updateRangeFromParsed(u,t,m,l),i));++g);if(i){for(g=a-1;g>=0;--g)if(!v()){this.updateRangeFromParsed(u,t,m,l);break}}return u}getAllParsedValues(t){const n=this._cachedMeta._parsed,r=[];let o,i,a;for(o=0,i=n.length;o<i;++o)a=n[o][t.axis],w0(a)&&r.push(a);return r}getMaxOverflow(){return!1}getLabelAndValue(t){const n=this._cachedMeta,r=n.iScale,o=n.vScale,i=this.getParsed(t);return{label:r?""+r.getLabelForValue(i[r.axis]):"",value:o?""+o.getLabelForValue(i[o.axis]):""}}_update(t){const n=this._cachedMeta;this.update(t||"default"),n._clip=CJ(h1(this.options.clip,gJ(n.xScale,n.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,n=this.chart,r=this._cachedMeta,o=r.data||[],i=n.chartArea,a=[],s=this._drawStart||0,l=this._drawCount||o.length-s,u=this.options.drawActiveElementsOnTop;let d;for(r.dataset&&r.dataset.draw(t,i,s,l),d=s;d<s+l;++d){const h=o[d];h.hidden||(h.active&&u?a.push(h):h.draw(t,i))}for(d=0;d<a.length;++d)a[d].draw(t,i)}getStyle(t,n){const r=n?"active":"default";return t===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(r):this.resolveDataElementOptions(t||0,r)}getContext(t,n,r){const o=this.getDataset();let i;if(t>=0&&t<this._cachedMeta.data.length){const a=this._cachedMeta.data[t];i=a.$context||(a.$context=_J(this.getContext(),t,a)),i.parsed=this.getParsed(t),i.raw=o.data[t],i.index=i.dataIndex=t}else i=this.$context||(this.$context=bJ(this.chart.getContext(),this.index)),i.dataset=o,i.index=i.datasetIndex=this.index;return i.active=!!n,i.mode=r,i}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,n){return this._resolveElementOptions(this.dataElementType.id,n,t)}_resolveElementOptions(t,n="default",r){const o=n==="active",i=this._cachedDataOpts,a=t+"-"+n,s=i[a],l=this.enableOptionSharing&&zs(r);if(s)return My(s,l);const u=this.chart.config,d=u.datasetElementScopeKeys(this._type,t),h=o?[`${t}Hover`,"hover",t,""]:[t,""],g=u.getOptionScopes(this.getDataset(),d),m=Object.keys(Dr.elements[t]),v=()=>this.getContext(r,o,n),A=u.resolveNamedOptions(g,m,v,h);return A.$shared&&(A.$shared=l,i[a]=Object.freeze(My(A,l))),A}_resolveAnimations(t,n,r){const o=this.chart,i=this._cachedDataOpts,a=`animation-${n}`,s=i[a];if(s)return s;let l;if(o.options.animation!==!1){const d=this.chart.config,h=d.datasetAnimationScopeKeys(this._type,n),g=d.getOptionScopes(this.getDataset(),h);l=d.createResolver(g,this.getContext(t,r,n))}const u=new _y(o,l&&l.animations);return l&&l._cacheable&&(i[a]=Object.freeze(u)),u}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||lf(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const r=this.resolveDataElementOptions(t,n),o=this._sharedOptions,i=this.getSharedOptions(r),a=this.includeOptions(n,i)||i!==o;return this.updateSharedOptions(i,n,r),{sharedOptions:i,includeOptions:a}}updateElement(t,n,r,o){lf(o)?Object.assign(t,r):this._resolveAnimations(n,o).update(t,r)}updateSharedOptions(t,n,r){t&&!lf(n)&&this._resolveAnimations(void 0,n).update(t,r)}_setStyle(t,n,r,o){t.active=o;const i=this.getStyle(n,o);this._resolveAnimations(n,r,o).update(t,{options:!o&&this.getSharedOptions(i)||i})}removeHoverStyle(t,n,r){this._setStyle(t,r,"active",!1)}setHoverStyle(t,n,r){this._setStyle(t,r,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,r=this._cachedMeta.data;for(const[s,l,u]of this._syncList)this[s](l,u);this._syncList=[];const o=r.length,i=n.length,a=Math.min(i,o);a&&this.parse(0,a),i>o?this._insertElements(o,i-o,t):i<o&&this._removeElements(i,o-i)}_insertElements(t,n,r=!0){const o=this._cachedMeta,i=o.data,a=t+n;let s;const l=u=>{for(u.length+=n,s=u.length-1;s>=a;s--)u[s]=u[s-n]};for(l(i),s=t;s<a;++s)i[s]=new this.dataElementType;this._parsing&&l(o._parsed),this.parse(t,n),r&&this.updateElements(i,t,n,"reset")}updateElements(t,n,r,o){}_removeElements(t,n){const r=this._cachedMeta;if(this._parsing){const o=r._parsed.splice(t,n);r._stacked&&Qs(r,o)}r.data.splice(t,n)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[n,r,o]=t;this[n](r,o)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,n){n&&this._sync(["_removeElements",t,n]);const r=arguments.length-2;r&&this._sync(["_insertElements",t,r])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}En(z9,"defaults",{}),En(z9,"datasetElementType",null),En(z9,"dataElementType",null);function xJ(e,t){if(!e._cache.$bar){const n=e.getMatchingVisibleMetas(t);let r=[];for(let o=0,i=n.length;o<i;o++)r=r.concat(n[o].controller.getAllParsedValues(e));e._cache.$bar=V_(r.sort((o,i)=>o-i))}return e._cache.$bar}function wJ(e){const t=e.iScale,n=xJ(t,e.type);let r=t._length,o,i,a,s;const l=()=>{a===32767||a===-32768||(zs(s)&&(r=Math.min(r,Math.abs(a-s)||r)),s=a)};for(o=0,i=n.length;o<i;++o)a=t.getPixelForValue(n[o]),l();for(s=void 0,o=0,i=t.ticks.length;o<i;++o)a=t.getPixelForTick(o),l();return r}function EJ(e,t,n,r){const o=n.barThickness;let i,a;return $1(o)?(i=t.min*n.categoryPercentage,a=n.barPercentage):(i=o*r,a=1),{chunk:i/r,ratio:a,start:t.pixels[e]-i/2}}function SJ(e,t,n,r){const o=t.pixels,i=o[e];let a=e>0?o[e-1]:null,s=e<o.length-1?o[e+1]:null;const l=n.categoryPercentage;a===null&&(a=i-(s===null?t.end-t.start:s-i)),s===null&&(s=i+i-a);const u=i-(i-Math.min(a,s))/2*l;return{chunk:Math.abs(s-a)/2*l/r,ratio:n.barPercentage,start:u}}function MJ(e,t,n,r){const o=n.parse(e[0],r),i=n.parse(e[1],r),a=Math.min(o,i),s=Math.max(o,i);let l=a,u=s;Math.abs(a)>Math.abs(s)&&(l=s,u=a),t[n.axis]=u,t._custom={barStart:l,barEnd:u,start:o,end:i,min:a,max:s}}function Hy(e,t,n,r){return Kr(e)?MJ(e,t,n,r):t[n.axis]=n.parse(e,r),t}function Ly(e,t,n,r){const o=e.iScale,i=e.vScale,a=o.getLabels(),s=o===i,l=[];let u,d,h,g;for(u=n,d=n+r;u<d;++u)g=t[u],h={},h[o.axis]=s||o.parse(a[u],u),l.push(Hy(g,h,i,u));return l}function cf(e){return e&&e.barStart!==void 0&&e.barEnd!==void 0}function HJ(e,t,n){return e!==0?Ko(e):(t.isHorizontal()?1:-1)*(t.min>=n?1:-1)}function LJ(e){let t,n,r,o,i;return e.horizontal?(t=e.base>e.x,n="left",r="right"):(t=e.base<e.y,n="bottom",r="top"),t?(o="end",i="start"):(o="start",i="end"),{start:n,end:r,reverse:t,top:o,bottom:i}}function BJ(e,t,n,r){let o=t.borderSkipped;const i={};if(!o){e.borderSkipped=i;return}if(o===!0){e.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}const{start:a,end:s,reverse:l,top:u,bottom:d}=LJ(e);o==="middle"&&n&&(e.enableBorderRadius=!0,(n._top||0)===r?o=u:(n._bottom||0)===r?o=d:(i[By(d,a,s,l)]=!0,o=u)),i[By(o,a,s,l)]=!0,e.borderSkipped=i}function By(e,t,n,r){return r?(e=OJ(e,t,n),e=Oy(e,n,t)):e=Oy(e,t,n),e}function OJ(e,t,n){return e===t?n:e===n?t:e}function Oy(e,t,n){return e==="start"?t:e==="end"?n:e}function IJ(e,{inflateAmount:t},n){e.inflateAmount=t==="auto"?n===1?.33:0:t}class Ec extends z9{parsePrimitiveData(t,n,r,o){return Ly(t,n,r,o)}parseArrayData(t,n,r,o){return Ly(t,n,r,o)}parseObjectData(t,n,r,o){const{iScale:i,vScale:a}=t,{xAxisKey:s="x",yAxisKey:l="y"}=this._parsing,u=i.axis==="x"?s:l,d=a.axis==="x"?s:l,h=[];let g,m,v,A;for(g=r,m=r+o;g<m;++g)A=n[g],v={},v[i.axis]=i.parse(O9(A,u),g),h.push(Hy(O9(A,d),v,a,g));return h}updateRangeFromParsed(t,n,r,o){super.updateRangeFromParsed(t,n,r,o);const i=r._custom;i&&n===this._cachedMeta.vScale&&(t.min=Math.min(t.min,i.min),t.max=Math.max(t.max,i.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const n=this._cachedMeta,{iScale:r,vScale:o}=n,i=this.getParsed(t),a=i._custom,s=cf(a)?"["+a.start+", "+a.end+"]":""+o.getLabelForValue(i[o.axis]);return{label:""+r.getLabelForValue(i[r.axis]),value:s}}initialize(){this.enableOptionSharing=!0,super.initialize();const t=this._cachedMeta;t.stack=this.getDataset().stack}update(t){const n=this._cachedMeta;this.updateElements(n.data,0,n.data.length,t)}updateElements(t,n,r,o){const i=o==="reset",{index:a,_cachedMeta:{vScale:s}}=this,l=s.getBasePixel(),u=s.isHorizontal(),d=this._getRuler(),{sharedOptions:h,includeOptions:g}=this._getSharedOptions(n,o);for(let m=n;m<n+r;m++){const v=this.getParsed(m),A=i||$1(v[s.axis])?{base:l,head:l}:this._calculateBarValuePixels(m),p=this._calculateBarIndexPixels(m,d),w=(v._stacks||{})[s.axis],y={horizontal:u,base:A.base,enableBorderRadius:!w||cf(v._custom)||a===w._top||a===w._bottom,x:u?A.head:p.center,y:u?p.center:A.head,height:u?p.size:Math.abs(A.size),width:u?Math.abs(A.size):p.size};g&&(y.options=h||this.resolveDataElementOptions(m,t[m].active?"active":o));const x=y.options||t[m].options;BJ(y,x,w,a),IJ(y,x,d.ratio),this.updateElement(t[m],m,y,o)}}_getStacks(t,n){const{iScale:r}=this._cachedMeta,o=r.getMatchingVisibleMetas(this._type).filter(d=>d.controller.options.grouped),i=r.options.stacked,a=[],s=this._cachedMeta.controller.getParsed(n),l=s&&s[r.axis],u=d=>{const h=d._parsed.find(m=>m[r.axis]===l),g=h&&h[d.vScale.axis];if($1(g)||isNaN(g))return!0};for(const d of o)if(!(n!==void 0&&u(d))&&((i===!1||a.indexOf(d.stack)===-1||i===void 0&&d.stack===void 0)&&a.push(d.stack),d.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,n,r){const o=this._getStacks(t,r),i=n!==void 0?o.indexOf(n):-1;return i===-1?o.length-1:i}_getRuler(){const t=this.options,n=this._cachedMeta,r=n.iScale,o=[];let i,a;for(i=0,a=n.data.length;i<a;++i)o.push(r.getPixelForValue(this.getParsed(i)[r.axis],i));const s=t.barThickness;return{min:s||wJ(n),pixels:o,start:r._startPixel,end:r._endPixel,stackCount:this._getStackCount(),scale:r,grouped:t.grouped,ratio:s?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:n,_stacked:r,index:o},options:{base:i,minBarLength:a}}=this,s=i||0,l=this.getParsed(t),u=l._custom,d=cf(u);let h=l[n.axis],g=0,m=r?this.applyStack(n,l,r):h,v,A;m!==h&&(g=m-h,m=h),d&&(h=u.barStart,m=u.barEnd-u.barStart,h!==0&&Ko(h)!==Ko(u.barEnd)&&(g=0),g+=h);const p=!$1(i)&&!d?i:g;let w=n.getPixelForValue(p);if(this.chart.getDataVisibility(t)?v=n.getPixelForValue(g+m):v=w,A=v-w,Math.abs(A)<a){A=HJ(A,n,s)*a,h===s&&(w-=A/2);const y=n.getPixelForDecimal(0),x=n.getPixelForDecimal(1),E=Math.min(y,x),S=Math.max(y,x);w=Math.max(Math.min(w,S),E),v=w+A,r&&!d&&(l._stacks[n.axis]._visualValues[o]=n.getValueForPixel(v)-n.getValueForPixel(w))}if(w===n.getPixelForValue(s)){const y=Ko(A)*n.getLineWidthForValue(s)/2;w+=y,A-=y}return{size:A,base:w,head:v,center:v+A/2}}_calculateBarIndexPixels(t,n){const r=n.scale,o=this.options,i=o.skipNull,a=h1(o.maxBarThickness,1/0);let s,l;if(n.grouped){const u=i?this._getStackCount(t):n.stackCount,d=o.barThickness==="flex"?SJ(t,n,o,u):EJ(t,n,o,u),h=this._getStackIndex(this.index,this._cachedMeta.stack,i?t:void 0);s=d.start+d.chunk*h+d.chunk/2,l=Math.min(a,d.chunk*d.ratio)}else s=r.getPixelForValue(this.getParsed(t)[r.axis],t),l=Math.min(a,n.min*n.ratio);return{base:s-l/2,head:s+l/2,center:s,size:l}}draw(){const t=this._cachedMeta,n=t.vScale,r=t.data,o=r.length;let i=0;for(;i<o;++i)this.getParsed(i)[n.axis]!==null&&!r[i].hidden&&r[i].draw(this._ctx)}}En(Ec,"id","bar"),En(Ec,"defaults",{datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}}),En(Ec,"overrides",{scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}});function kJ(e,t,n){let r=1,o=1,i=0,a=0;if(t<_r){const s=e,l=s+t,u=Math.cos(s),d=Math.sin(s),h=Math.cos(l),g=Math.sin(l),m=(x,E,S)=>Us(x,s,l,!0)?1:Math.max(E,E*n,S,S*n),v=(x,E,S)=>Us(x,s,l,!0)?-1:Math.min(E,E*n,S,S*n),A=m(0,u,h),p=m(Qr,d,g),w=v(Vr,u,h),y=v(Vr+Qr,d,g);r=(A-w)/2,o=(p-y)/2,i=-(A+w)/2,a=-(p+y)/2}return{ratioX:r,ratioY:o,offsetX:i,offsetY:a}}class K3 extends z9{constructor(t,n){super(t,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,n){const r=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=r;else{let i=l=>+r[l];if(A1(r[t])){const{key:l="value"}=this._parsing;i=u=>+O9(r[u],l)}let a,s;for(a=t,s=t+n;a<s;++a)o._parsed[a]=i(a)}}_getRotation(){return Fi(this.options.rotation-90)}_getCircumference(){return Fi(this.options.circumference)}_getRotationExtents(){let t=_r,n=-_r;for(let r=0;r<this.chart.data.datasets.length;++r)if(this.chart.isDatasetVisible(r)&&this.chart.getDatasetMeta(r).type===this._type){const o=this.chart.getDatasetMeta(r).controller,i=o._getRotation(),a=o._getCircumference();t=Math.min(t,i),n=Math.max(n,i+a)}return{rotation:t,circumference:n-t}}update(t){const n=this.chart,{chartArea:r}=n,o=this._cachedMeta,i=o.data,a=this.getMaxBorderWidth()+this.getMaxOffset(i)+this.options.spacing,s=Math.max((Math.min(r.width,r.height)-a)/2,0),l=Math.min(Vq(this.options.cutout,s),1),u=this._getRingWeight(this.index),{circumference:d,rotation:h}=this._getRotationExtents(),{ratioX:g,ratioY:m,offsetX:v,offsetY:A}=kJ(h,d,l),p=(r.width-a)/g,w=(r.height-a)/m,y=Math.max(Math.min(p,w)/2,0),x=I_(this.options.radius,y),E=Math.max(x*l,0),S=(x-E)/this._getVisibleDatasetWeightTotal();this.offsetX=v*x,this.offsetY=A*x,o.total=this.calculateTotal(),this.outerRadius=x-S*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-S*u,0),this.updateElements(i,0,i.length,t)}_circumference(t,n){const r=this.options,o=this._cachedMeta,i=this._getCircumference();return n&&r.animation.animateRotate||!this.chart.getDataVisibility(t)||o._parsed[t]===null||o.data[t].hidden?0:this.calculateCircumference(o._parsed[t]*i/_r)}updateElements(t,n,r,o){const i=o==="reset",a=this.chart,s=a.chartArea,u=a.options.animation,d=(s.left+s.right)/2,h=(s.top+s.bottom)/2,g=i&&u.animateScale,m=g?0:this.innerRadius,v=g?0:this.outerRadius,{sharedOptions:A,includeOptions:p}=this._getSharedOptions(n,o);let w=this._getRotation(),y;for(y=0;y<n;++y)w+=this._circumference(y,i);for(y=n;y<n+r;++y){const x=this._circumference(y,i),E=t[y],S={x:d+this.offsetX,y:h+this.offsetY,startAngle:w,endAngle:w+x,circumference:x,outerRadius:v,innerRadius:m};p&&(S.options=A||this.resolveDataElementOptions(y,E.active?"active":o)),w+=x,this.updateElement(E,y,S,o)}}calculateTotal(){const t=this._cachedMeta,n=t.data;let r=0,o;for(o=0;o<n.length;o++){const i=t._parsed[o];i!==null&&!isNaN(i)&&this.chart.getDataVisibility(o)&&!n[o].hidden&&(r+=Math.abs(i))}return r}calculateCircumference(t){const n=this._cachedMeta.total;return n>0&&!isNaN(t)?_r*(Math.abs(t)/n):0}getLabelAndValue(t){const n=this._cachedMeta,r=this.chart,o=r.data.labels||[],i=Gd(n._parsed[t],r.options.locale);return{label:o[t]||"",value:i}}getMaxBorderWidth(t){let n=0;const r=this.chart;let o,i,a,s,l;if(!t){for(o=0,i=r.data.datasets.length;o<i;++o)if(r.isDatasetVisible(o)){a=r.getDatasetMeta(o),t=a.data,s=a.controller;break}}if(!t)return 0;for(o=0,i=t.length;o<i;++o)l=s.resolveDataElementOptions(o),l.borderAlign!=="inner"&&(n=Math.max(n,l.borderWidth||0,l.hoverBorderWidth||0));return n}getMaxOffset(t){let n=0;for(let r=0,o=t.length;r<o;++r){const i=this.resolveDataElementOptions(r);n=Math.max(n,i.offset||0,i.hoverOffset||0)}return n}_getRingWeightOffset(t){let n=0;for(let r=0;r<t;++r)this.chart.isDatasetVisible(r)&&(n+=this._getRingWeight(r));return n}_getRingWeight(t){return Math.max(h1(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}En(K3,"id","doughnut"),En(K3,"defaults",{datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"}),En(K3,"descriptors",{_scriptable:t=>t!=="spacing",_indexable:t=>t!=="spacing"&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")}),En(K3,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const n=t.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:r,color:o}}=t.legend.options;return n.labels.map((i,a)=>{const l=t.getDatasetMeta(0).controller.getStyle(a);return{text:i,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:o,lineWidth:l.borderWidth,pointStyle:r,hidden:!t.getDataVisibility(a),index:a}})}return[]}},onClick(t,n,r){r.chart.toggleDataVisibility(n.index),r.chart.update()}}}});class Sc extends z9{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const n=this._cachedMeta,{dataset:r,data:o=[],_dataset:i}=n,a=this.chart._animationsDisabled;let{start:s,count:l}=lX(n,o,a);this._drawStart=s,this._drawCount=l,cX(n)&&(s=0,l=o.length),r._chart=this.chart,r._datasetIndex=this.index,r._decimated=!!i._decimated,r.points=o;const u=this.resolveDatasetElementOptions(t);this.options.showLine||(u.borderWidth=0),u.segment=this.options.segment,this.updateElement(r,void 0,{animated:!a,options:u},t),this.updateElements(o,s,l,t)}updateElements(t,n,r,o){const i=o==="reset",{iScale:a,vScale:s,_stacked:l,_dataset:u}=this._cachedMeta,{sharedOptions:d,includeOptions:h}=this._getSharedOptions(n,o),g=a.axis,m=s.axis,{spanGaps:v,segment:A}=this.options,p=Vs(v)?v:Number.POSITIVE_INFINITY,w=this.chart._animationsDisabled||i||o==="none",y=n+r,x=t.length;let E=n>0&&this.getParsed(n-1);for(let S=0;S<x;++S){const M=t[S],H=w?M:{};if(S<n||S>=y){H.skip=!0;continue}const O=this.getParsed(S),D=$1(O[m]),P=H[g]=a.getPixelForValue(O[g],S),N=H[m]=i||D?s.getBasePixel():s.getPixelForValue(l?this.applyStack(s,O,l):O[m],S);H.skip=isNaN(P)||isNaN(N)||D,H.stop=S>0&&Math.abs(O[g]-E[g])>p,A&&(H.parsed=O,H.raw=u.data[S]),h&&(H.options=d||this.resolveDataElementOptions(S,M.active?"active":o)),w||this.updateElement(M,S,H,o),E=O}}getMaxOverflow(){const t=this._cachedMeta,n=t.dataset,r=n.options&&n.options.borderWidth||0,o=t.data||[];if(!o.length)return r;const i=o[0].size(this.resolveDataElementOptions(0)),a=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(r,i,a)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}En(Sc,"id","line"),En(Sc,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),En(Sc,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class uf extends K3{}En(uf,"id","pie"),En(uf,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});function j9(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class df{constructor(t){En(this,"options");this.options=t||{}}static override(t){Object.assign(df.prototype,t)}init(){}formats(){return j9()}parse(){return j9()}format(){return j9()}add(){return j9()}diff(){return j9()}startOf(){return j9()}endOf(){return j9()}}var DJ={_date:df};function PJ(e,t,n,r){const{controller:o,data:i,_sorted:a}=e,s=o._cachedMeta.iScale,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!=="r"&&a&&i.length){const u=s._reversePixels?rX:k9;if(r){if(o._sharedOptions){const d=i[0],h=typeof d.getRange=="function"&&d.getRange(t);if(h){const g=u(i,t,n-h),m=u(i,t,n+h);return{lo:g.lo,hi:m.hi}}}}else{const d=u(i,t,n);if(l){const{vScale:h}=o._cachedMeta,{_parsed:g}=e,m=g.slice(0,d.lo+1).reverse().findIndex(A=>!$1(A[h.axis]));d.lo-=Math.max(0,m);const v=g.slice(d.hi).findIndex(A=>!$1(A[h.axis]));d.hi+=Math.max(0,v)}return d}}return{lo:0,hi:i.length-1}}function Ws(e,t,n,r,o){const i=e.getSortedVisibleDatasetMetas(),a=n[t];for(let s=0,l=i.length;s<l;++s){const{index:u,data:d}=i[s],{lo:h,hi:g}=PJ(i[s],t,a,o);for(let m=h;m<=g;++m){const v=d[m];v.skip||r(v,u,m)}}}function NJ(e){const t=e.indexOf("x")!==-1,n=e.indexOf("y")!==-1;return function(r,o){const i=t?Math.abs(r.x-o.x):0,a=n?Math.abs(r.y-o.y):0;return Math.sqrt(Math.pow(i,2)+Math.pow(a,2))}}function ff(e,t,n,r,o){const i=[];return!o&&!e.isPointInArea(t)||Ws(e,n,t,function(s,l,u){!o&&!Ks(s,e.chartArea,0)||s.inRange(t.x,t.y,r)&&i.push({element:s,datasetIndex:l,index:u})},!0),i}function TJ(e,t,n,r){let o=[];function i(a,s,l){const{startAngle:u,endAngle:d}=a.getProps(["startAngle","endAngle"],r),{angle:h}=F_(a,{x:t.x,y:t.y});Us(h,u,d)&&o.push({element:a,datasetIndex:s,index:l})}return Ws(e,n,t,i),o}function RJ(e,t,n,r,o,i){let a=[];const s=NJ(n);let l=Number.POSITIVE_INFINITY;function u(d,h,g){const m=d.inRange(t.x,t.y,o);if(r&&!m)return;const v=d.getCenterPoint(o);if(!(!!i||e.isPointInArea(v))&&!m)return;const p=s(t,v);p<l?(a=[{element:d,datasetIndex:h,index:g}],l=p):p===l&&a.push({element:d,datasetIndex:h,index:g})}return Ws(e,n,t,u),a}function hf(e,t,n,r,o,i){return!i&&!e.isPointInArea(t)?[]:n==="r"&&!r?TJ(e,t,n,o):RJ(e,t,n,r,o,i)}function Iy(e,t,n,r,o){const i=[],a=n==="x"?"inXRange":"inYRange";let s=!1;return Ws(e,n,t,(l,u,d)=>{l[a]&&l[a](t[n],o)&&(i.push({element:l,datasetIndex:u,index:d}),s=s||l.inRange(t.x,t.y,o))}),r&&!s?[]:i}var FJ={evaluateInteractionItems:Ws,modes:{index(e,t,n,r){const o=R9(t,e),i=n.axis||"x",a=n.includeInvisible||!1,s=n.intersect?ff(e,o,i,r,a):hf(e,o,i,!1,r,a),l=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(u=>{const d=s[0].index,h=u.data[d];h&&!h.skip&&l.push({element:h,datasetIndex:u.index,index:d})}),l):[]},dataset(e,t,n,r){const o=R9(t,e),i=n.axis||"xy",a=n.includeInvisible||!1;let s=n.intersect?ff(e,o,i,r,a):hf(e,o,i,!1,r,a);if(s.length>0){const l=s[0].datasetIndex,u=e.getDatasetMeta(l).data;s=[];for(let d=0;d<u.length;++d)s.push({element:u[d],datasetIndex:l,index:d})}return s},point(e,t,n,r){const o=R9(t,e),i=n.axis||"xy",a=n.includeInvisible||!1;return ff(e,o,i,r,a)},nearest(e,t,n,r){const o=R9(t,e),i=n.axis||"xy",a=n.includeInvisible||!1;return hf(e,o,i,n.intersect,r,a)},x(e,t,n,r){const o=R9(t,e);return Iy(e,o,"x",n.intersect,r)},y(e,t,n,r){const o=R9(t,e);return Iy(e,o,"y",n.intersect,r)}}};const ky=["left","top","right","bottom"];function Gs(e,t){return e.filter(n=>n.pos===t)}function Dy(e,t){return e.filter(n=>ky.indexOf(n.pos)===-1&&n.box.axis===t)}function Ys(e,t){return e.sort((n,r)=>{const o=t?r:n,i=t?n:r;return o.weight===i.weight?o.index-i.index:o.weight-i.weight})}function zJ(e){const t=[];let n,r,o,i,a,s;for(n=0,r=(e||[]).length;n<r;++n)o=e[n],{position:i,options:{stack:a,stackWeight:s=1}}=o,t.push({index:n,box:o,pos:i,horizontal:o.isHorizontal(),weight:o.weight,stack:a&&i+a,stackWeight:s});return t}function jJ(e){const t={};for(const n of e){const{stack:r,pos:o,stackWeight:i}=n;if(!r||!ky.includes(o))continue;const a=t[r]||(t[r]={count:0,placed:0,weight:0,size:0});a.count++,a.weight+=i}return t}function VJ(e,t){const n=jJ(e),{vBoxMaxWidth:r,hBoxMaxHeight:o}=t;let i,a,s;for(i=0,a=e.length;i<a;++i){s=e[i];const{fullSize:l}=s.box,u=n[s.stack],d=u&&s.stackWeight/u.weight;s.horizontal?(s.width=d?d*r:l&&t.availableWidth,s.height=o):(s.width=r,s.height=d?d*o:l&&t.availableHeight)}return n}function UJ(e){const t=zJ(e),n=Ys(t.filter(u=>u.box.fullSize),!0),r=Ys(Gs(t,"left"),!0),o=Ys(Gs(t,"right")),i=Ys(Gs(t,"top"),!0),a=Ys(Gs(t,"bottom")),s=Dy(t,"x"),l=Dy(t,"y");return{fullSize:n,leftAndTop:r.concat(i),rightAndBottom:o.concat(l).concat(a).concat(s),chartArea:Gs(t,"chartArea"),vertical:r.concat(o).concat(l),horizontal:i.concat(a).concat(s)}}function Py(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Ny(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function ZJ(e,t,n,r){const{pos:o,box:i}=n,a=e.maxPadding;if(!A1(o)){n.size&&(e[o]-=n.size);const h=r[n.stack]||{size:0,count:1};h.size=Math.max(h.size,n.horizontal?i.height:i.width),n.size=h.size/h.count,e[o]+=n.size}i.getPadding&&Ny(a,i.getPadding());const s=Math.max(0,t.outerWidth-Py(a,e,"left","right")),l=Math.max(0,t.outerHeight-Py(a,e,"top","bottom")),u=s!==e.w,d=l!==e.h;return e.w=s,e.h=l,n.horizontal?{same:u,other:d}:{same:d,other:u}}function $J(e){const t=e.maxPadding;function n(r){const o=Math.max(t[r]-e[r],0);return e[r]+=o,o}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function KJ(e,t){const n=t.maxPadding;function r(o){const i={left:0,top:0,right:0,bottom:0};return o.forEach(a=>{i[a]=Math.max(t[a],n[a])}),i}return r(e?["left","right"]:["top","bottom"])}function qs(e,t,n,r){const o=[];let i,a,s,l,u,d;for(i=0,a=e.length,u=0;i<a;++i){s=e[i],l=s.box,l.update(s.width||t.w,s.height||t.h,KJ(s.horizontal,t));const{same:h,other:g}=ZJ(t,n,s,r);u|=h&&o.length,d=d||g,l.fullSize||o.push(s)}return u&&qs(o,t,n,r)||d}function Mc(e,t,n,r,o){e.top=n,e.left=t,e.right=t+r,e.bottom=n+o,e.width=r,e.height=o}function Ty(e,t,n,r){const o=n.padding;let{x:i,y:a}=t;for(const s of e){const l=s.box,u=r[s.stack]||{count:1,placed:0,weight:1},d=s.stackWeight/u.weight||1;if(s.horizontal){const h=t.w*d,g=u.size||l.height;zs(u.start)&&(a=u.start),l.fullSize?Mc(l,o.left,a,n.outerWidth-o.right-o.left,g):Mc(l,t.left+u.placed,a,h,g),u.start=a,u.placed+=h,a=l.bottom}else{const h=t.h*d,g=u.size||l.width;zs(u.start)&&(i=u.start),l.fullSize?Mc(l,i,o.top,g,n.outerHeight-o.bottom-o.top):Mc(l,i,t.top+u.placed,g,h),u.start=i,u.placed+=h,i=l.right}}t.x=i,t.y=a}var Na={addBox(e,t){e.boxes||(e.boxes=[]),t.fullSize=t.fullSize||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw(n){t.draw(n)}}]},e.boxes.push(t)},removeBox(e,t){const n=e.boxes?e.boxes.indexOf(t):-1;n!==-1&&e.boxes.splice(n,1)},configure(e,t,n){t.fullSize=n.fullSize,t.position=n.position,t.weight=n.weight},update(e,t,n,r){if(!e)return;const o=mo(e.options.layout.padding),i=Math.max(t-o.width,0),a=Math.max(n-o.height,0),s=UJ(e.boxes),l=s.vertical,u=s.horizontal;J1(e.boxes,A=>{typeof A.beforeLayout=="function"&&A.beforeLayout()});const d=l.reduce((A,p)=>p.box.options&&p.box.options.display===!1?A:A+1,0)||1,h=Object.freeze({outerWidth:t,outerHeight:n,padding:o,availableWidth:i,availableHeight:a,vBoxMaxWidth:i/2/d,hBoxMaxHeight:a/2}),g=Object.assign({},o);Ny(g,mo(r));const m=Object.assign({maxPadding:g,w:i,h:a,x:o.left,y:o.top},o),v=VJ(l.concat(u),h);qs(s.fullSize,m,h,v),qs(l,m,h,v),qs(u,m,h,v)&&qs(l,m,h,v),$J(m),Ty(s.leftAndTop,m,h,v),m.x+=m.w,m.y+=m.h,Ty(s.rightAndBottom,m,h,v),e.chartArea={left:m.left,top:m.top,right:m.left+m.w,bottom:m.top+m.h,height:m.h,width:m.w},J1(s.chartArea,A=>{const p=A.box;Object.assign(p,e.chartArea),p.update(m.w,m.h,{left:0,top:0,right:0,bottom:0})})}};class Ry{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,r){}removeEventListener(t,n,r){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,r,o){return n=Math.max(0,n||t.width),r=r||t.height,{width:n,height:Math.max(0,o?Math.floor(n/o):r)}}isAttached(t){return!0}updateConfig(t){}}class QJ extends Ry{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const Hc="$chartjs",WJ={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Fy=e=>e===null||e==="";function GJ(e,t){const n=e.style,r=e.getAttribute("height"),o=e.getAttribute("width");if(e[Hc]={initial:{height:r,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",Fy(o)){const i=uy(e,"width");i!==void 0&&(e.width=i)}if(Fy(r))if(e.style.height==="")e.height=e.width/(t||2);else{const i=uy(e,"height");i!==void 0&&(e.height=i)}return e}const zy=qX?{passive:!0}:!1;function YJ(e,t,n){e&&e.addEventListener(t,n,zy)}function qJ(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,zy)}function XJ(e,t){const n=WJ[e.type]||e.type,{x:r,y:o}=R9(e,t);return{type:n,chart:t,native:e,x:r!==void 0?r:null,y:o!==void 0?o:null}}function Lc(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function JJ(e,t,n){const r=e.canvas,o=new MutationObserver(i=>{let a=!1;for(const s of i)a=a||Lc(s.addedNodes,r),a=a&&!Lc(s.removedNodes,r);a&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function eee(e,t,n){const r=e.canvas,o=new MutationObserver(i=>{let a=!1;for(const s of i)a=a||Lc(s.removedNodes,r),a=a&&!Lc(s.addedNodes,r);a&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const Xs=new Map;let jy=0;function Vy(){const e=window.devicePixelRatio;e!==jy&&(jy=e,Xs.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function tee(e,t){Xs.size||window.addEventListener("resize",Vy),Xs.set(e,t)}function nee(e){Xs.delete(e),Xs.size||window.removeEventListener("resize",Vy)}function ree(e,t,n){const r=e.canvas,o=r&&of(r);if(!o)return;const i=Z_((s,l)=>{const u=o.clientWidth;n(s,l),u<o.clientWidth&&n()},window),a=new ResizeObserver(s=>{const l=s[0],u=l.contentRect.width,d=l.contentRect.height;u===0&&d===0||i(u,d)});return a.observe(o),tee(e,i),a}function gf(e,t,n){n&&n.disconnect(),t==="resize"&&nee(e)}function oee(e,t,n){const r=e.canvas,o=Z_(i=>{e.ctx!==null&&n(XJ(i,e))},e);return YJ(r,t,o),o}class iee extends Ry{acquireContext(t,n){const r=t&&t.getContext&&t.getContext("2d");return r&&r.canvas===t?(GJ(t,n),r):null}releaseContext(t){const n=t.canvas;if(!n[Hc])return!1;const r=n[Hc].initial;["height","width"].forEach(i=>{const a=r[i];$1(a)?n.removeAttribute(i):n.setAttribute(i,a)});const o=r.style||{};return Object.keys(o).forEach(i=>{n.style[i]=o[i]}),n.width=n.width,delete n[Hc],!0}addEventListener(t,n,r){this.removeEventListener(t,n);const o=t.$proxies||(t.$proxies={}),a={attach:JJ,detach:eee,resize:ree}[n]||oee;o[n]=a(t,n,r)}removeEventListener(t,n){const r=t.$proxies||(t.$proxies={}),o=r[n];if(!o)return;({attach:gf,detach:gf,resize:gf}[n]||qJ)(t,n,o),r[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,r,o){return YX(t,n,r,o)}isAttached(t){const n=t&&of(t);return!!(n&&n.isConnected)}}function aee(e){return!rf()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?QJ:iee}let Ta=(uu=class{constructor(){En(this,"x");En(this,"y");En(this,"active",!1);En(this,"options");En(this,"$animations")}tooltipPosition(t){const{x:n,y:r}=this.getProps(["x","y"],t);return{x:n,y:r}}hasValue(){return Vs(this.x)&&Vs(this.y)}getProps(t,n){const r=this.$animations;if(!n||!r)return this;const o={};return t.forEach(i=>{o[i]=r[i]&&r[i].active()?r[i]._to:this[i]}),o}},En(uu,"defaults",{}),En(uu,"defaultRoutes"),uu);function see(e,t){const n=e.options.ticks,r=lee(e),o=Math.min(n.maxTicksLimit||r,r),i=n.major.enabled?uee(t):[],a=i.length,s=i[0],l=i[a-1],u=[];if(a>o)return dee(t,u,i,a/o),u;const d=cee(i,t,o);if(a>0){let h,g;const m=a>1?Math.round((l-s)/(a-1)):null;for(Bc(t,u,d,$1(m)?0:s-m,s),h=0,g=a-1;h<g;h++)Bc(t,u,d,i[h],i[h+1]);return Bc(t,u,d,l,$1(m)?t.length:l+m),u}return Bc(t,u,d),u}function lee(e){const t=e.options.offset,n=e._tickSize(),r=e._length/n+(t?0:1),o=e._maxLength/n;return Math.floor(Math.min(r,o))}function cee(e,t,n){const r=fee(e),o=t.length/n;if(!r)return Math.max(o,1);const i=Yq(r);for(let a=0,s=i.length-1;a<s;a++){const l=i[a];if(l>o)return l}return Math.max(o,1)}function uee(e){const t=[];let n,r;for(n=0,r=e.length;n<r;n++)e[n].major&&t.push(n);return t}function dee(e,t,n,r){let o=0,i=n[0],a;for(r=Math.ceil(r),a=0;a<e.length;a++)a===i&&(t.push(e[a]),o++,i=n[o*r])}function Bc(e,t,n,r,o){const i=h1(r,0),a=Math.min(h1(o,e.length),e.length);let s=0,l,u,d;for(n=Math.ceil(n),o&&(l=o-r,n=l/Math.floor(l/n)),d=i;d<0;)s++,d=Math.round(i+s*n);for(u=Math.max(i,0);u<a;u++)u===d&&(t.push(e[u]),s++,d=Math.round(i+s*n))}function fee(e){const t=e.length;let n,r;if(t<2)return!1;for(r=e[0],n=1;n<t;++n)if(e[n]-e[n-1]!==r)return!1;return r}const hee=e=>e==="left"?"right":e==="right"?"left":e,Uy=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,Zy=(e,t)=>Math.min(t||e,e);function $y(e,t){const n=[],r=e.length/t,o=e.length;let i=0;for(;i<o;i+=r)n.push(e[Math.floor(i)]);return n}function gee(e,t,n){const r=e.ticks.length,o=Math.min(t,r-1),i=e._startPixel,a=e._endPixel,s=1e-6;let l=e.getPixelForTick(o),u;if(!(n&&(r===1?u=Math.max(l-i,a-l):t===0?u=(e.getPixelForTick(1)-l)/2:u=(l-e.getPixelForTick(o-1))/2,l+=o<t?u:-u,l<i-s||l>a+s)))return l}function Cee(e,t){J1(e,n=>{const r=n.gc,o=r.length/2;let i;if(o>t){for(i=0;i<o;++i)delete n.data[r[i]];r.splice(0,o)}})}function Js(e){return e.drawTicks?e.tickLength:0}function Ky(e,t){if(!e.display)return 0;const n=e2(e.font,t),r=mo(e.padding);return(Kr(e.text)?e.text.length:1)*n.lineHeight+r.height}function mee(e,t){return N9(e,{scale:t,type:"scale"})}function pee(e,t,n){return N9(e,{tick:n,index:t,type:"tick"})}function vee(e,t,n){let r=$_(e);return(n&&t!=="right"||!n&&t==="right")&&(r=hee(r)),r}function Aee(e,t,n,r){const{top:o,left:i,bottom:a,right:s,chart:l}=e,{chartArea:u,scales:d}=l;let h=0,g,m,v;const A=a-o,p=s-i;if(e.isHorizontal()){if(m=_2(r,i,s),A1(n)){const w=Object.keys(n)[0],y=n[w];v=d[w].getPixelForValue(y)+A-t}else n==="center"?v=(u.bottom+u.top)/2+A-t:v=Uy(e,n,t);g=s-i}else{if(A1(n)){const w=Object.keys(n)[0],y=n[w];m=d[w].getPixelForValue(y)-p+t}else n==="center"?m=(u.left+u.right)/2-p+t:m=Uy(e,n,t);v=_2(r,a,o),h=n==="left"?-Qr:Qr}return{titleX:m,titleY:v,maxWidth:g,rotation:h}}class Q3 extends Ta{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,n){return t}getUserBounds(){let{_userMin:t,_userMax:n,_suggestedMin:r,_suggestedMax:o}=this;return t=$o(t,Number.POSITIVE_INFINITY),n=$o(n,Number.NEGATIVE_INFINITY),r=$o(r,Number.POSITIVE_INFINITY),o=$o(o,Number.NEGATIVE_INFINITY),{min:$o(t,r),max:$o(n,o),minDefined:w0(t),maxDefined:w0(n)}}getMinMax(t){let{min:n,max:r,minDefined:o,maxDefined:i}=this.getUserBounds(),a;if(o&&i)return{min:n,max:r};const s=this.getMatchingVisibleMetas();for(let l=0,u=s.length;l<u;++l)a=s[l].controller.getMinMax(this,t),o||(n=Math.min(n,a.min)),i||(r=Math.max(r,a.max));return n=i&&n>r?r:n,r=o&&n>r?n:r,{min:$o(n,$o(r,n)),max:$o(r,$o(n,r))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){hr(this.options.beforeUpdate,[this])}update(t,n,r){const{beginAtZero:o,grace:i,ticks:a}=this.options,s=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=r=Object.assign({left:0,right:0,top:0,bottom:0},r),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+r.left+r.right:this.height+r.top+r.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=HX(this,i,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=s<this.ticks.length;this._convertTicksToLabels(l?$y(this.ticks,s):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),a.display&&(a.autoSkip||a.source==="auto")&&(this.ticks=see(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),l&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t=this.options.reverse,n,r;this.isHorizontal()?(n=this.left,r=this.right):(n=this.top,r=this.bottom,t=!t),this._startPixel=n,this._endPixel=r,this._reversePixels=t,this._length=r-n,this._alignToPixels=this.options.alignToPixels}afterUpdate(){hr(this.options.afterUpdate,[this])}beforeSetDimensions(){hr(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){hr(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),hr(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){hr(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const n=this.options.ticks;let r,o,i;for(r=0,o=t.length;r<o;r++)i=t[r],i.label=hr(n.callback,[i.value,r,t],this)}afterTickToLabelConversion(){hr(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){hr(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,n=t.ticks,r=Zy(this.ticks.length,t.ticks.maxTicksLimit),o=n.minRotation||0,i=n.maxRotation;let a=o,s,l,u;if(!this._isVisible()||!n.display||o>=i||r<=1||!this.isHorizontal()){this.labelRotation=o;return}const d=this._getLabelSizes(),h=d.widest.width,g=d.highest.height,m=E0(this.chart.width-h,0,this.maxWidth);s=t.offset?this.maxWidth/r:m/(r-1),h+6>s&&(s=m/(r-(t.offset?.5:1)),l=this.maxHeight-Js(t.grid)-n.padding-Ky(t.title,this.chart.options.font),u=Math.sqrt(h*h+g*g),a=eX(Math.min(Math.asin(E0((d.highest.height+6)/s,-1,1)),Math.asin(E0(l/u,-1,1))-Math.asin(E0(g/u,-1,1)))),a=Math.max(o,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){hr(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){hr(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:r,title:o,grid:i}}=this,a=this._isVisible(),s=this.isHorizontal();if(a){const l=Ky(o,n.options.font);if(s?(t.width=this.maxWidth,t.height=Js(i)+l):(t.height=this.maxHeight,t.width=Js(i)+l),r.display&&this.ticks.length){const{first:u,last:d,widest:h,highest:g}=this._getLabelSizes(),m=r.padding*2,v=Fi(this.labelRotation),A=Math.cos(v),p=Math.sin(v);if(s){const w=r.mirror?0:p*h.width+A*g.height;t.height=Math.min(this.maxHeight,t.height+w+m)}else{const w=r.mirror?0:A*h.width+p*g.height;t.width=Math.min(this.maxWidth,t.width+w+m)}this._calculatePadding(u,d,p,A)}}this._handleMargins(),s?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,r,o){const{ticks:{align:i,padding:a},position:s}=this.options,l=this.labelRotation!==0,u=s!=="top"&&this.axis==="x";if(this.isHorizontal()){const d=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let g=0,m=0;l?u?(g=o*t.width,m=r*n.height):(g=r*t.height,m=o*n.width):i==="start"?m=n.width:i==="end"?g=t.width:i!=="inner"&&(g=t.width/2,m=n.width/2),this.paddingLeft=Math.max((g-d+a)*this.width/(this.width-d),0),this.paddingRight=Math.max((m-h+a)*this.width/(this.width-h),0)}else{let d=n.height/2,h=t.height/2;i==="start"?(d=0,h=t.height):i==="end"&&(d=n.height,h=0),this.paddingTop=d+a,this.paddingBottom=h+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){hr(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,r;for(n=0,r=t.length;n<r;n++)$1(t[n].label)&&(t.splice(n,1),r--,n--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const n=this.options.ticks.sampleSize;let r=this.ticks;n<r.length&&(r=$y(r,n)),this._labelSizes=t=this._computeLabelSizes(r,r.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,n,r){const{ctx:o,_longestTextCache:i}=this,a=[],s=[],l=Math.floor(n/Zy(n,r));let u=0,d=0,h,g,m,v,A,p,w,y,x,E,S;for(h=0;h<n;h+=l){if(v=t[h].label,A=this._resolveTickFontOptions(h),o.font=p=A.string,w=i[p]=i[p]||{data:{},gc:[]},y=A.lineHeight,x=E=0,!$1(v)&&!Kr(v))x=X_(o,w.data,w.gc,x,v),E=y;else if(Kr(v))for(g=0,m=v.length;g<m;++g)S=v[g],!$1(S)&&!Kr(S)&&(x=X_(o,w.data,w.gc,x,S),E+=y);a.push(x),s.push(E),u=Math.max(x,u),d=Math.max(E,d)}Cee(i,n);const M=a.indexOf(u),H=s.indexOf(d),O=D=>({width:a[D]||0,height:s[D]||0});return{first:O(0),last:O(n-1),widest:O(M),highest:O(H),widths:a,heights:s}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return nX(this._alignToPixels?P9(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&t<n.length){const r=n[t];return r.$context||(r.$context=pee(this.getContext(),t,r))}return this.$context||(this.$context=mee(this.chart.getContext(),this))}_tickSize(){const t=this.options.ticks,n=Fi(this.labelRotation),r=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),i=this._getLabelSizes(),a=t.autoSkipPadding||0,s=i?i.widest.width+a:0,l=i?i.highest.height+a:0;return this.isHorizontal()?l*r>s*o?s/r:l/o:l*o<s*r?l/r:s/o}_isVisible(){const t=this.options.display;return t!=="auto"?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const n=this.axis,r=this.chart,o=this.options,{grid:i,position:a,border:s}=o,l=i.offset,u=this.isHorizontal(),h=this.ticks.length+(l?1:0),g=Js(i),m=[],v=s.setContext(this.getContext()),A=v.display?v.width:0,p=A/2,w=function(F){return P9(r,F,A)};let y,x,E,S,M,H,O,D,P,N,T,z;if(a==="top")y=w(this.bottom),H=this.bottom-g,D=y-p,N=w(t.top)+p,z=t.bottom;else if(a==="bottom")y=w(this.top),N=t.top,z=w(t.bottom)-p,H=y+p,D=this.top+g;else if(a==="left")y=w(this.right),M=this.right-g,O=y-p,P=w(t.left)+p,T=t.right;else if(a==="right")y=w(this.left),P=t.left,T=w(t.right)-p,M=y+p,O=this.left+g;else if(n==="x"){if(a==="center")y=w((t.top+t.bottom)/2+.5);else if(A1(a)){const F=Object.keys(a)[0],$=a[F];y=w(this.chart.scales[F].getPixelForValue($))}N=t.top,z=t.bottom,H=y+p,D=H+g}else if(n==="y"){if(a==="center")y=w((t.left+t.right)/2);else if(A1(a)){const F=Object.keys(a)[0],$=a[F];y=w(this.chart.scales[F].getPixelForValue($))}M=y-p,O=M-g,P=t.left,T=t.right}const j=h1(o.ticks.maxTicksLimit,h),R=Math.max(1,Math.ceil(h/j));for(x=0;x<h;x+=R){const F=this.getContext(x),$=i.setContext(F),Z=s.setContext(F),q=$.lineWidth,K=$.color,U=Z.dash||[],G=Z.dashOffset,J=$.tickWidth,Y=$.tickColor,ee=$.tickBorderDash||[],oe=$.tickBorderDashOffset;E=gee(this,x,l),E!==void 0&&(S=P9(r,E,q),u?M=O=P=T=S:H=D=N=z=S,m.push({tx1:M,ty1:H,tx2:O,ty2:D,x1:P,y1:N,x2:T,y2:z,width:q,color:K,borderDash:U,borderDashOffset:G,tickWidth:J,tickColor:Y,tickBorderDash:ee,tickBorderDashOffset:oe}))}return this._ticksLength=h,this._borderValue=y,m}_computeLabelItems(t){const n=this.axis,r=this.options,{position:o,ticks:i}=r,a=this.isHorizontal(),s=this.ticks,{align:l,crossAlign:u,padding:d,mirror:h}=i,g=Js(r.grid),m=g+d,v=h?-d:m,A=-Fi(this.labelRotation),p=[];let w,y,x,E,S,M,H,O,D,P,N,T,z="middle";if(o==="top")M=this.bottom-v,H=this._getXAxisLabelAlignment();else if(o==="bottom")M=this.top+v,H=this._getXAxisLabelAlignment();else if(o==="left"){const R=this._getYAxisLabelAlignment(g);H=R.textAlign,S=R.x}else if(o==="right"){const R=this._getYAxisLabelAlignment(g);H=R.textAlign,S=R.x}else if(n==="x"){if(o==="center")M=(t.top+t.bottom)/2+m;else if(A1(o)){const R=Object.keys(o)[0],F=o[R];M=this.chart.scales[R].getPixelForValue(F)+m}H=this._getXAxisLabelAlignment()}else if(n==="y"){if(o==="center")S=(t.left+t.right)/2-m;else if(A1(o)){const R=Object.keys(o)[0],F=o[R];S=this.chart.scales[R].getPixelForValue(F)}H=this._getYAxisLabelAlignment(g).textAlign}n==="y"&&(l==="start"?z="top":l==="end"&&(z="bottom"));const j=this._getLabelSizes();for(w=0,y=s.length;w<y;++w){x=s[w],E=x.label;const R=i.setContext(this.getContext(w));O=this.getPixelForTick(w)+i.labelOffset,D=this._resolveTickFontOptions(w),P=D.lineHeight,N=Kr(E)?E.length:1;const F=N/2,$=R.color,Z=R.textStrokeColor,q=R.textStrokeWidth;let K=H;a?(S=O,H==="inner"&&(w===y-1?K=this.options.reverse?"left":"right":w===0?K=this.options.reverse?"right":"left":K="center"),o==="top"?u==="near"||A!==0?T=-N*P+P/2:u==="center"?T=-j.highest.height/2-F*P+P:T=-j.highest.height+P/2:u==="near"||A!==0?T=P/2:u==="center"?T=j.highest.height/2-F*P:T=j.highest.height-N*P,h&&(T*=-1),A!==0&&!R.showLabelBackdrop&&(S+=P/2*Math.sin(A))):(M=O,T=(1-N)*P/2);let U;if(R.showLabelBackdrop){const G=mo(R.backdropPadding),J=j.heights[w],Y=j.widths[w];let ee=T-G.top,oe=0-G.left;switch(z){case"middle":ee-=J/2;break;case"bottom":ee-=J;break}switch(H){case"center":oe-=Y/2;break;case"right":oe-=Y;break;case"inner":w===y-1?oe-=Y:w>0&&(oe-=Y/2);break}U={left:oe,top:ee,width:Y+G.width,height:J+G.height,color:R.backdropColor}}p.push({label:E,font:D,textOffset:T,options:{rotation:A,color:$,strokeColor:Z,strokeWidth:q,textAlign:K,textBaseline:z,translation:[S,M],backdrop:U}})}return p}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-Fi(this.labelRotation))return t==="top"?"left":"right";let o="center";return n.align==="start"?o="left":n.align==="end"?o="right":n.align==="inner"&&(o="inner"),o}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:r,mirror:o,padding:i}}=this.options,a=this._getLabelSizes(),s=t+i,l=a.widest.width;let u,d;return n==="left"?o?(d=this.right+i,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d+=l)):(d=this.right-s,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d=this.left)):n==="right"?o?(d=this.left+i,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d-=l)):(d=this.left+s,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d=this.right)):u="right",{textAlign:u,x:d}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:r,top:o,width:i,height:a}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(r,o,i,a),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const o=this.ticks.findIndex(i=>i.value===t);return o>=0?n.setContext(this.getContext(o)).lineWidth:0}drawGrid(t){const n=this.options.grid,r=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let i,a;const s=(l,u,d)=>{!d.width||!d.color||(r.save(),r.lineWidth=d.width,r.strokeStyle=d.color,r.setLineDash(d.borderDash||[]),r.lineDashOffset=d.borderDashOffset,r.beginPath(),r.moveTo(l.x,l.y),r.lineTo(u.x,u.y),r.stroke(),r.restore())};if(n.display)for(i=0,a=o.length;i<a;++i){const l=o[i];n.drawOnChartArea&&s({x:l.x1,y:l.y1},{x:l.x2,y:l.y2},l),n.drawTicks&&s({x:l.tx1,y:l.ty1},{x:l.tx2,y:l.ty2},{color:l.tickColor,width:l.tickWidth,borderDash:l.tickBorderDash,borderDashOffset:l.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:n,options:{border:r,grid:o}}=this,i=r.setContext(this.getContext()),a=r.display?i.width:0;if(!a)return;const s=o.setContext(this.getContext(0)).lineWidth,l=this._borderValue;let u,d,h,g;this.isHorizontal()?(u=P9(t,this.left,a)-a/2,d=P9(t,this.right,s)+s/2,h=g=l):(h=P9(t,this.top,a)-a/2,g=P9(t,this.bottom,s)+s/2,u=d=l),n.save(),n.lineWidth=i.width,n.strokeStyle=i.color,n.beginPath(),n.moveTo(u,h),n.lineTo(d,g),n.stroke(),n.restore()}drawLabels(t){if(!this.options.ticks.display)return;const r=this.ctx,o=this._computeLabelArea();o&&Cc(r,o);const i=this.getLabelItems(t);for(const a of i){const s=a.options,l=a.font,u=a.label,d=a.textOffset;pc(r,u,0,d,l,s)}o&&mc(r)}drawTitle(){const{ctx:t,options:{position:n,title:r,reverse:o}}=this;if(!r.display)return;const i=e2(r.font),a=mo(r.padding),s=r.align;let l=i.lineHeight/2;n==="bottom"||n==="center"||A1(n)?(l+=a.bottom,Kr(r.text)&&(l+=i.lineHeight*(r.text.length-1))):l+=a.top;const{titleX:u,titleY:d,maxWidth:h,rotation:g}=Aee(this,l,n,s);pc(t,r.text,0,0,i,{color:r.color,maxWidth:h,rotation:g,textAlign:vee(s,n,o),textBaseline:"middle",translation:[u,d]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,n=t.ticks&&t.ticks.z||0,r=h1(t.grid&&t.grid.z,-1),o=h1(t.border&&t.border.z,0);return!this._isVisible()||this.draw!==Q3.prototype.draw?[{z:n,draw:i=>{this.draw(i)}}]:[{z:r,draw:i=>{this.drawBackground(),this.drawGrid(i),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:i=>{this.drawLabels(i)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),r=this.axis+"AxisID",o=[];let i,a;for(i=0,a=n.length;i<a;++i){const s=n[i];s[r]===this.id&&(!t||s.type===t)&&o.push(s)}return o}_resolveTickFontOptions(t){const n=this.options.ticks.setContext(this.getContext(t));return e2(n.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Oc{constructor(t,n,r){this.type=t,this.scope=n,this.override=r,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const n=Object.getPrototypeOf(t);let r;yee(n)&&(r=this.register(n));const o=this.items,i=t.id,a=this.scope+"."+i;if(!i)throw new Error("class does not have id: "+t);return i in o||(o[i]=t,bee(t,a,r),this.override&&Dr.override(t.id,t.overrides)),a}get(t){return this.items[t]}unregister(t){const n=this.items,r=t.id,o=this.scope;r in n&&delete n[r],o&&r in Dr[o]&&(delete Dr[o][r],this.override&&delete D9[r])}}function bee(e,t,n){const r=Rs(Object.create(null),[n?Dr.get(n):{},Dr.get(t),e.defaults]);Dr.set(t,r),e.defaultRoutes&&_ee(t,e.defaultRoutes),e.descriptors&&Dr.describe(t,e.descriptors)}function _ee(e,t){Object.keys(t).forEach(n=>{const r=n.split("."),o=r.pop(),i=[e].concat(r).join("."),a=t[n].split("."),s=a.pop(),l=a.join(".");Dr.route(i,o,l,s)})}function yee(e){return"id"in e&&"defaults"in e}class xee{constructor(){this.controllers=new Oc(z9,"datasets",!0),this.elements=new Oc(Ta,"elements"),this.plugins=new Oc(Object,"plugins"),this.scales=new Oc(Q3,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,r){[...n].forEach(o=>{const i=r||this._getRegistryForType(o);r||i.isForType(o)||i===this.plugins&&o.id?this._exec(t,i,o):J1(o,a=>{const s=r||this._getRegistryForType(a);this._exec(t,s,a)})})}_exec(t,n,r){const o=Ud(t);hr(r["before"+o],[],r),n[t](r),hr(r["after"+o],[],r)}_getRegistryForType(t){for(let n=0;n<this._typedRegistries.length;n++){const r=this._typedRegistries[n];if(r.isForType(t))return r}return this.plugins}_get(t,n,r){const o=n.get(t);if(o===void 0)throw new Error('"'+t+'" is not a registered '+r+".");return o}}var Wo=new xee;class wee{constructor(){this._init=[]}notify(t,n,r,o){n==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const i=o?this._descriptors(t).filter(o):this._descriptors(t),a=this._notify(i,t,n,r);return n==="afterDestroy"&&(this._notify(i,t,"stop"),this._notify(this._init,t,"uninstall")),a}_notify(t,n,r,o){o=o||{};for(const i of t){const a=i.plugin,s=a[r],l=[n,o,i.options];if(hr(s,l,a)===!1&&o.cancelable)return!1}return!0}invalidate(){$1(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),n}_createDescriptors(t,n){const r=t&&t.config,o=h1(r.options&&r.options.plugins,{}),i=Eee(r);return o===!1&&!n?[]:Mee(t,i,o,n)}_notifyStateChanges(t){const n=this._oldCache||[],r=this._cache,o=(i,a)=>i.filter(s=>!a.some(l=>s.plugin.id===l.plugin.id));this._notify(o(n,r),t,"stop"),this._notify(o(r,n),t,"start")}}function Eee(e){const t={},n=[],r=Object.keys(Wo.plugins.items);for(let i=0;i<r.length;i++)n.push(Wo.getPlugin(r[i]));const o=e.plugins||[];for(let i=0;i<o.length;i++){const a=o[i];n.indexOf(a)===-1&&(n.push(a),t[a.id]=!0)}return{plugins:n,localIds:t}}function See(e,t){return!t&&e===!1?null:e===!0?{}:e}function Mee(e,{plugins:t,localIds:n},r,o){const i=[],a=e.getContext();for(const s of t){const l=s.id,u=See(r[l],o);u!==null&&i.push({plugin:s,options:Hee(e.config,{plugin:s,local:n[l]},u,a)})}return i}function Hee(e,{plugin:t,local:n},r,o){const i=e.pluginScopeKeys(t),a=e.getOptionScopes(r,i);return n&&t.defaults&&a.push(t.defaults),e.createResolver(a,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Cf(e,t){const n=Dr.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||"x"}function Lee(e,t){let n=e;return e==="_index_"?n=t:e==="_value_"&&(n=t==="x"?"y":"x"),n}function Bee(e,t){return e===t?"_index_":"_value_"}function Qy(e){if(e==="x"||e==="y"||e==="r")return e}function Oee(e){if(e==="top"||e==="bottom")return"x";if(e==="left"||e==="right")return"y"}function mf(e,...t){if(Qy(e))return e;for(const n of t){const r=n.axis||Oee(n.position)||e.length>1&&Qy(e[0].toLowerCase());if(r)return r}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Wy(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function Iee(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(r=>r.xAxisID===e||r.yAxisID===e);if(n.length)return Wy(e,"x",n[0])||Wy(e,"y",n[0])}return{}}function kee(e,t){const n=D9[e.type]||{scales:{}},r=t.scales||{},o=Cf(e.type,t),i=Object.create(null);return Object.keys(r).forEach(a=>{const s=r[a];if(!A1(s))return console.error(`Invalid scale configuration for scale: ${a}`);if(s._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);const l=mf(a,s,Iee(a,e),Dr.scales[s.type]),u=Bee(l,o),d=n.scales||{};i[a]=Fs(Object.create(null),[{axis:l},s,d[l],d[u]])}),e.data.datasets.forEach(a=>{const s=a.type||e.type,l=a.indexAxis||Cf(s,t),d=(D9[s]||{}).scales||{};Object.keys(d).forEach(h=>{const g=Lee(h,l),m=a[g+"AxisID"]||g;i[m]=i[m]||Object.create(null),Fs(i[m],[{axis:g},r[m],d[h]])})}),Object.keys(i).forEach(a=>{const s=i[a];Fs(s,[Dr.scales[s.type],Dr.scale])}),i}function Gy(e){const t=e.options||(e.options={});t.plugins=h1(t.plugins,{}),t.scales=kee(e,t)}function Yy(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function Dee(e){return e=e||{},e.data=Yy(e.data),Gy(e),e}const qy=new Map,Xy=new Set;function Ic(e,t){let n=qy.get(e);return n||(n=t(),qy.set(e,n),Xy.add(n)),n}const e4=(e,t,n)=>{const r=O9(t,n);r!==void 0&&e.add(r)};class Pee{constructor(t){this._config=Dee(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Yy(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Gy(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Ic(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Ic(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Ic(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,r=this.type;return Ic(`${r}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const r=this._scopeCache;let o=r.get(t);return(!o||n)&&(o=new Map,r.set(t,o)),o}getOptionScopes(t,n,r){const{options:o,type:i}=this,a=this._cachedScopes(t,r),s=a.get(n);if(s)return s;const l=new Set;n.forEach(d=>{t&&(l.add(t),d.forEach(h=>e4(l,t,h))),d.forEach(h=>e4(l,o,h)),d.forEach(h=>e4(l,D9[i]||{},h)),d.forEach(h=>e4(l,Dr,h)),d.forEach(h=>e4(l,Yd,h))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),Xy.has(n)&&a.set(n,u),u}chartOptionScopes(){const{options:t,type:n}=this;return[t,D9[n]||{},Dr.datasets[n]||{},{type:n},Dr,Yd]}resolveNamedOptions(t,n,r,o=[""]){const i={$shared:!0},{resolver:a,subPrefixes:s}=Jy(this._resolverCache,t,o);let l=a;if(Tee(a,n)){i.$shared=!1,r=Pa(r)?r():r;const u=this.createResolver(t,r,s);l=U3(a,r,u)}for(const u of n)i[u]=l[u];return i}createResolver(t,n,r=[""],o){const{resolver:i}=Jy(this._resolverCache,t,r);return A1(n)?U3(i,n,void 0,o):i}}function Jy(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));const o=n.join();let i=r.get(o);return i||(i={resolver:ef(t,n),subPrefixes:n.filter(s=>!s.toLowerCase().includes("hover"))},r.set(o,i)),i}const Nee=e=>A1(e)&&Object.getOwnPropertyNames(e).some(t=>Pa(e[t]));function Tee(e,t){const{isScriptable:n,isIndexable:r}=ny(e);for(const o of t){const i=n(o),a=r(o),s=(a||i)&&e[o];if(i&&(Pa(s)||Nee(s))||a&&Kr(s))return!0}return!1}var Ree="4.4.9";const Fee=["top","bottom","left","right","chartArea"];function ex(e,t){return e==="top"||e==="bottom"||Fee.indexOf(e)===-1&&t==="x"}function tx(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function nx(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),hr(n&&n.onComplete,[e],t)}function zee(e){const t=e.chart,n=t.options.animation;hr(n&&n.onProgress,[e],t)}function rx(e){return rf()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const kc={},ox=e=>{const t=rx(e);return Object.values(kc).filter(n=>n.canvas===t).pop()};function jee(e,t,n){const r=Object.keys(e);for(const o of r){const i=+o;if(i>=t){const a=e[o];delete e[o],(n>0||i>t)&&(e[i+n]=a)}}}function Vee(e,t,n,r){return!n||e.type==="mouseout"?null:r?t:e}let W3=(r9=class{static register(...t){Wo.add(...t),ix()}static unregister(...t){Wo.remove(...t),ix()}constructor(t,n){const r=this.config=new Pee(n),o=rx(t),i=ox(o);if(i)throw new Error("Canvas is already in use. Chart with ID '"+i.id+"' must be destroyed before the canvas with ID '"+i.canvas.id+"' can be reused.");const a=r.createResolver(r.chartOptionScopes(),this.getContext());this.platform=new(r.platform||aee(o)),this.platform.updateConfig(r);const s=this.platform.acquireContext(o,a.aspectRatio),l=s&&s.canvas,u=l&&l.height,d=l&&l.width;if(this.id=jq(),this.ctx=s,this.canvas=l,this.width=d,this.height=u,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new wee,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=aX(h=>this.update(h),a.resizeDelay||0),this._dataChanges=[],kc[this.id]=this,!s||!l){console.error("Failed to create chart: can't acquire context from the given item");return}ji.listen(this,"complete",nx),ji.listen(this,"progress",zee),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:r,height:o,_aspectRatio:i}=this;return $1(t)?n&&i?i:o?r/o:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Wo}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():cy(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return J_(this.canvas,this.ctx),this}stop(){return ji.stop(this),this}resize(t,n){ji.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const r=this.options,o=this.canvas,i=r.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(o,t,n,i),s=r.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,cy(this,s,!0)&&(this.notifyPlugins("resize",{size:a}),hr(r.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};J1(n,(r,o)=>{r.id=o})}buildOrUpdateScales(){const t=this.options,n=t.scales,r=this.scales,o=Object.keys(r).reduce((a,s)=>(a[s]=!1,a),{});let i=[];n&&(i=i.concat(Object.keys(n).map(a=>{const s=n[a],l=mf(a,s),u=l==="r",d=l==="x";return{options:s,dposition:u?"chartArea":d?"bottom":"left",dtype:u?"radialLinear":d?"category":"linear"}}))),J1(i,a=>{const s=a.options,l=s.id,u=mf(l,s),d=h1(s.type,a.dtype);(s.position===void 0||ex(s.position,u)!==ex(a.dposition))&&(s.position=a.dposition),o[l]=!0;let h=null;if(l in r&&r[l].type===d)h=r[l];else{const g=Wo.getScale(d);h=new g({id:l,type:d,ctx:this.ctx,chart:this}),r[h.id]=h}h.init(s,t)}),J1(o,(a,s)=>{a||delete r[s]}),J1(r,a=>{Na.configure(this,a,a.options),Na.addBox(this,a)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,r=t.length;if(t.sort((o,i)=>o.index-i.index),r>n){for(let o=n;o<r;++o)this._destroyDatasetMeta(o);t.splice(n,r-n)}this._sortedMetasets=t.slice(0).sort(tx("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:n}}=this;t.length>n.length&&delete this._stacks,t.forEach((r,o)=>{n.filter(i=>i===r._dataset).length===0&&this._destroyDatasetMeta(o)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let r,o;for(this._removeUnreferencedMetasets(),r=0,o=n.length;r<o;r++){const i=n[r];let a=this.getDatasetMeta(r);const s=i.type||this.config.type;if(a.type&&a.type!==s&&(this._destroyDatasetMeta(r),a=this.getDatasetMeta(r)),a.type=s,a.indexAxis=i.indexAxis||Cf(s,this.options),a.order=i.order||0,a.index=r,a.label=""+i.label,a.visible=this.isDatasetVisible(r),a.controller)a.controller.updateIndex(r),a.controller.linkScales();else{const l=Wo.getController(s),{datasetElementType:u,dataElementType:d}=Dr.datasets[s];Object.assign(l,{dataElementType:Wo.getElement(d),datasetElementType:u&&Wo.getElement(u)}),a.controller=new l(this,r),t.push(a.controller)}}return this._updateMetasets(),t}_resetElements(){J1(this.data.datasets,(t,n)=>{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const r=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),o=this._animationsDisabled=!r.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const i=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let u=0,d=this.data.datasets.length;u<d;u++){const{controller:h}=this.getDatasetMeta(u),g=!o&&i.indexOf(h)===-1;h.buildOrUpdateElements(g),a=Math.max(+h.getMaxOverflow(),a)}a=this._minPadding=r.layout.autoPadding?a:0,this._updateLayout(a),o||J1(i,u=>{u.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(tx("z","_idx"));const{_active:s,_lastEvent:l}=this;l?this._eventHandler(l,!0):s.length&&this._updateHoverStyles(s,s,!0),this.render()}_updateScales(){J1(this.scales,t=>{Na.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),r=new Set(t.events);(!P_(n,r)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:r,start:o,count:i}of n){const a=r==="_removeElements"?-i:i;jee(t,o,a)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,r=i=>new Set(t.filter(a=>a[0]===i).map((a,s)=>s+","+a.splice(1).join(","))),o=r(0);for(let i=1;i<n;i++)if(!P_(o,r(i)))return;return Array.from(o).map(i=>i.split(",")).map(i=>({method:i[1],start:+i[2],count:+i[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Na.update(this,this.width,this.height,t);const n=this.chartArea,r=n.width<=0||n.height<=0;this._layers=[],J1(this.boxes,o=>{r&&o.position==="chartArea"||(o.configure&&o.configure(),this._layers.push(...o._layers()))},this),this._layers.forEach((o,i)=>{o._idx=i}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,r=this.data.datasets.length;n<r;++n)this.getDatasetMeta(n).controller.configure();for(let n=0,r=this.data.datasets.length;n<r;++n)this._updateDataset(n,Pa(t)?t({datasetIndex:n}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,n){const r=this.getDatasetMeta(t),o={meta:r,index:t,mode:n,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",o)!==!1&&(r.controller._update(n),o.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",o))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(ji.has(this)?this.attached&&!ji.running(this)&&ji.start(this):(this.draw(),nx({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:r,height:o}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(r,o)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;const n=this._layers;for(t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(this.chartArea);for(this._drawDatasets();t<n.length;++t)n[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const n=this._sortedMetasets,r=[];let o,i;for(o=0,i=n.length;o<i;++o){const a=n[o];(!t||a.visible)&&r.push(a)}return r}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;const t=this.getSortedVisibleDatasetMetas();for(let n=t.length-1;n>=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,r={meta:t,index:t.index,cancelable:!0},o=Ay(this,t);this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(o&&Cc(n,o),t.controller.draw(),o&&mc(n),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return Ks(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,r,o){const i=FJ.modes[n];return typeof i=="function"?i(this,t,r,o):[]}getDatasetMeta(t){const n=this.data.datasets[t],r=this._metasets;let o=r.filter(i=>i&&i._dataset===n).pop();return o||(o={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},r.push(o)),o}getContext(){return this.$context||(this.$context=N9(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const r=this.getDatasetMeta(t);return typeof r.hidden=="boolean"?!r.hidden:!n.hidden}setDatasetVisibility(t,n){const r=this.getDatasetMeta(t);r.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,r){const o=r?"show":"hide",i=this.getDatasetMeta(t),a=i.controller._resolveAnimations(void 0,o);zs(n)?(i.data[n].hidden=!r,this.update()):(this.setDatasetVisibility(t,r),a.update(i,{visible:r}),this.update(s=>s.datasetIndex===t?o:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),ji.remove(this),t=0,n=this.data.datasets.length;t<n;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:n}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),J_(t,n),this.platform.releaseContext(n),this.canvas=null,this.ctx=null),delete kc[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,n=this.platform,r=(i,a)=>{n.addEventListener(this,i,a),t[i]=a},o=(i,a,s)=>{i.offsetX=a,i.offsetY=s,this._eventHandler(i)};J1(this.options.events,i=>r(i,o))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,r=(l,u)=>{n.addEventListener(this,l,u),t[l]=u},o=(l,u)=>{t[l]&&(n.removeEventListener(this,l,u),delete t[l])},i=(l,u)=>{this.canvas&&this.resize(l,u)};let a;const s=()=>{o("attach",s),this.attached=!0,this.resize(),r("resize",i),r("detach",a)};a=()=>{this.attached=!1,o("resize",i),this._stop(),this._resize(0,0),r("attach",s)},n.isAttached(this.canvas)?s():a()}unbindEvents(){J1(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},J1(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,r){const o=r?"set":"remove";let i,a,s,l;for(n==="dataset"&&(i=this.getDatasetMeta(t[0].datasetIndex),i.controller["_"+o+"DatasetHoverStyle"]()),s=0,l=t.length;s<l;++s){a=t[s];const u=a&&this.getDatasetMeta(a.datasetIndex).controller;u&&u[o+"HoverStyle"](a.element,a.datasetIndex,a.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const n=this._active||[],r=t.map(({datasetIndex:i,index:a})=>{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[a],index:a}});!dc(r,n)&&(this._active=r,this._lastEvent=null,this._updateHoverStyles(r,n))}notifyPlugins(t,n,r){return this._plugins.notify(this,t,n,r)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,r){const o=this.options.hover,i=(l,u)=>l.filter(d=>!u.some(h=>d.datasetIndex===h.datasetIndex&&d.index===h.index)),a=i(n,t),s=r?t:i(t,n);a.length&&this.updateHoverStyle(a,o.mode,!1),s.length&&o.mode&&this.updateHoverStyle(s,o.mode,!0)}_eventHandler(t,n){const r={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},o=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",r,o)===!1)return;const i=this._handleEvent(t,n,r.inChartArea);return r.cancelable=!1,this.notifyPlugins("afterEvent",r,o),(i||r.changed)&&this.render(),this}_handleEvent(t,n,r){const{_active:o=[],options:i}=this,a=n,s=this._getActiveElements(t,o,r,a),l=Qq(t),u=Vee(t,this._lastEvent,r,l);r&&(this._lastEvent=null,hr(i.onHover,[t,s,this],this),l&&hr(i.onClick,[t,s,this],this));const d=!dc(s,o);return(d||n)&&(this._active=s,this._updateHoverStyles(s,o,n)),this._lastEvent=u,d}_getActiveElements(t,n,r,o){if(t.type==="mouseout")return[];if(!r)return n;const i=this.options.hover;return this.getElementsAtEventForMode(t,i.mode,i,o)}},En(r9,"defaults",Dr),En(r9,"instances",kc),En(r9,"overrides",D9),En(r9,"registry",Wo),En(r9,"version",Ree),En(r9,"getChart",ox),r9);function ix(){return J1(W3.instances,e=>e._plugins.invalidate())}function Uee(e,t,n){const{startAngle:r,pixelMargin:o,x:i,y:a,outerRadius:s,innerRadius:l}=t;let u=o/s;e.beginPath(),e.arc(i,a,s,r-u,n+u),l>o?(u=o/l,e.arc(i,a,l,n+u,r-u,!0)):e.arc(i,a,o,n+Qr,r-Qr),e.closePath(),e.clip()}function Zee(e){return Jd(e,["outerStart","outerEnd","innerStart","innerEnd"])}function $ee(e,t,n,r){const o=Zee(e.options.borderRadius),i=(n-t)/2,a=Math.min(i,r*t/2),s=l=>{const u=(n-Math.min(i,l))*r/2;return E0(l,0,Math.min(i,u))};return{outerStart:s(o.outerStart),outerEnd:s(o.outerEnd),innerStart:E0(o.innerStart,0,a),innerEnd:E0(o.innerEnd,0,a)}}function G3(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function Dc(e,t,n,r,o,i){const{x:a,y:s,startAngle:l,pixelMargin:u,innerRadius:d}=t,h=Math.max(t.outerRadius+r+n-u,0),g=d>0?d+r+n+u:0;let m=0;const v=o-l;if(r){const R=d>0?d-r:0,F=h>0?h-r:0,$=(R+F)/2,Z=$!==0?v*$/($+r):v;m=(v-Z)/2}const A=Math.max(.001,v*h-n/Vr)/h,p=(v-A)/2,w=l+p+m,y=o-p-m,{outerStart:x,outerEnd:E,innerStart:S,innerEnd:M}=$ee(t,g,h,y-w),H=h-x,O=h-E,D=w+x/H,P=y-E/O,N=g+S,T=g+M,z=w+S/N,j=y-M/T;if(e.beginPath(),i){const R=(D+P)/2;if(e.arc(a,s,h,D,R),e.arc(a,s,h,R,P),E>0){const q=G3(O,P,a,s);e.arc(q.x,q.y,E,P,y+Qr)}const F=G3(T,y,a,s);if(e.lineTo(F.x,F.y),M>0){const q=G3(T,j,a,s);e.arc(q.x,q.y,M,y+Qr,j+Math.PI)}const $=(y-M/g+(w+S/g))/2;if(e.arc(a,s,g,y-M/g,$,!0),e.arc(a,s,g,$,w+S/g,!0),S>0){const q=G3(N,z,a,s);e.arc(q.x,q.y,S,z+Math.PI,w-Qr)}const Z=G3(H,w,a,s);if(e.lineTo(Z.x,Z.y),x>0){const q=G3(H,D,a,s);e.arc(q.x,q.y,x,w-Qr,D)}}else{e.moveTo(a,s);const R=Math.cos(D)*h+a,F=Math.sin(D)*h+s;e.lineTo(R,F);const $=Math.cos(P)*h+a,Z=Math.sin(P)*h+s;e.lineTo($,Z)}e.closePath()}function Kee(e,t,n,r,o){const{fullCircles:i,startAngle:a,circumference:s}=t;let l=t.endAngle;if(i){Dc(e,t,n,r,l,o);for(let u=0;u<i;++u)e.fill();isNaN(s)||(l=a+(s%_r||_r))}return Dc(e,t,n,r,l,o),e.fill(),l}function Qee(e,t,n,r,o){const{fullCircles:i,startAngle:a,circumference:s,options:l}=t,{borderWidth:u,borderJoinStyle:d,borderDash:h,borderDashOffset:g}=l,m=l.borderAlign==="inner";if(!u)return;e.setLineDash(h||[]),e.lineDashOffset=g,m?(e.lineWidth=u*2,e.lineJoin=d||"round"):(e.lineWidth=u,e.lineJoin=d||"bevel");let v=t.endAngle;if(i){Dc(e,t,n,r,v,o);for(let A=0;A<i;++A)e.stroke();isNaN(s)||(v=a+(s%_r||_r))}m&&Uee(e,t,v),i||(Dc(e,t,n,r,v,o),e.stroke())}class t4 extends Ta{constructor(n){super();En(this,"circumference");En(this,"endAngle");En(this,"fullCircles");En(this,"innerRadius");En(this,"outerRadius");En(this,"pixelMargin");En(this,"startAngle");this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,r,o){const i=this.getProps(["x","y"],o),{angle:a,distance:s}=F_(i,{x:n,y:r}),{startAngle:l,endAngle:u,innerRadius:d,outerRadius:h,circumference:g}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],o),m=(this.options.spacing+this.options.borderWidth)/2,v=h1(g,u-l),A=Us(a,l,u)&&l!==u,p=v>=_r||A,w=zi(s,d+m,h+m);return p&&w}getCenterPoint(n){const{x:r,y:o,startAngle:i,endAngle:a,innerRadius:s,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:u,spacing:d}=this.options,h=(i+a)/2,g=(s+l+d+u)/2;return{x:r+Math.cos(h)*g,y:o+Math.sin(h)*g}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:r,circumference:o}=this,i=(r.offset||0)/4,a=(r.spacing||0)/2,s=r.circular;if(this.pixelMargin=r.borderAlign==="inner"?.33:0,this.fullCircles=o>_r?Math.floor(o/_r):0,o===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*i,Math.sin(l)*i);const u=1-Math.sin(Math.min(Vr,o||0)),d=i*u;n.fillStyle=r.backgroundColor,n.strokeStyle=r.borderColor,Kee(n,this,d,a,s),Qee(n,this,d,a,s),n.restore()}}En(t4,"id","arc"),En(t4,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),En(t4,"defaultRoutes",{backgroundColor:"backgroundColor"}),En(t4,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function ax(e,t,n=t){e.lineCap=h1(n.borderCapStyle,t.borderCapStyle),e.setLineDash(h1(n.borderDash,t.borderDash)),e.lineDashOffset=h1(n.borderDashOffset,t.borderDashOffset),e.lineJoin=h1(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=h1(n.borderWidth,t.borderWidth),e.strokeStyle=h1(n.borderColor,t.borderColor)}function Wee(e,t,n){e.lineTo(n.x,n.y)}function Gee(e){return e.stepped?AX:e.tension||e.cubicInterpolationMode==="monotone"?bX:Wee}function sx(e,t,n={}){const r=e.length,{start:o=0,end:i=r-1}=n,{start:a,end:s}=t,l=Math.max(o,a),u=Math.min(i,s),d=o<a&&i<a||o>s&&i>s;return{count:r,start:l,loop:t.loop,ilen:u<l&&!d?r+u-l:u-l}}function Yee(e,t,n,r){const{points:o,options:i}=t,{count:a,start:s,loop:l,ilen:u}=sx(o,n,r),d=Gee(i);let{move:h=!0,reverse:g}=r||{},m,v,A;for(m=0;m<=u;++m)v=o[(s+(g?u-m:m))%a],!v.skip&&(h?(e.moveTo(v.x,v.y),h=!1):d(e,A,v,g,i.stepped),A=v);return l&&(v=o[(s+(g?u:0))%a],d(e,A,v,g,i.stepped)),!!l}function qee(e,t,n,r){const o=t.points,{count:i,start:a,ilen:s}=sx(o,n,r),{move:l=!0,reverse:u}=r||{};let d=0,h=0,g,m,v,A,p,w;const y=E=>(a+(u?s-E:E))%i,x=()=>{A!==p&&(e.lineTo(d,p),e.lineTo(d,A),e.lineTo(d,w))};for(l&&(m=o[y(0)],e.moveTo(m.x,m.y)),g=0;g<=s;++g){if(m=o[y(g)],m.skip)continue;const E=m.x,S=m.y,M=E|0;M===v?(S<A?A=S:S>p&&(p=S),d=(h*d+E)/++h):(x(),e.lineTo(E,S),v=M,h=0,A=p=S),w=S}x()}function pf(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!n?qee:Yee}function Xee(e){return e.stepped?XX:e.tension||e.cubicInterpolationMode==="monotone"?JX:F9}function Jee(e,t,n,r){let o=t._path;o||(o=t._path=new Path2D,t.path(o,n,r)&&o.closePath()),ax(e,t.options),e.stroke(o)}function ete(e,t,n,r){const{segments:o,options:i}=t,a=pf(t);for(const s of o)ax(e,i,s.style),e.beginPath(),a(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}const tte=typeof Path2D=="function";function nte(e,t,n,r){tte&&!t.options.segment?Jee(e,t,n,r):ete(e,t,n,r)}class Ra extends Ta{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,n){const r=this.options;if((r.tension||r.cubicInterpolationMode==="monotone")&&!r.stepped&&!this._pointsUpdated){const o=r.spanGaps?this._loop:this._fullLoop;ZX(this._points,r,t,o,n),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=iJ(this,this.options.segment))}first(){const t=this.segments,n=this.points;return t.length&&n[t[0].start]}last(){const t=this.segments,n=this.points,r=t.length;return r&&n[t[r-1].end]}interpolate(t,n){const r=this.options,o=t[n],i=this.points,a=my(this,{property:n,start:o,end:o});if(!a.length)return;const s=[],l=Xee(r);let u,d;for(u=0,d=a.length;u<d;++u){const{start:h,end:g}=a[u],m=i[h],v=i[g];if(m===v){s.push(m);continue}const A=Math.abs((o-m[n])/(v[n]-m[n])),p=l(m,v,A,r.stepped);p[n]=t[n],s.push(p)}return s.length===1?s[0]:s}pathSegment(t,n,r){return pf(this)(t,this,n,r)}path(t,n,r){const o=this.segments,i=pf(this);let a=this._loop;n=n||0,r=r||this.points.length-n;for(const s of o)a&=i(t,this,s,{start:n,end:n+r-1});return!!a}draw(t,n,r,o){const i=this.options||{};(this.points||[]).length&&i.borderWidth&&(t.save(),nte(t,this,r,o),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}En(Ra,"id","line"),En(Ra,"defaults",{borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0}),En(Ra,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"}),En(Ra,"descriptors",{_scriptable:!0,_indexable:t=>t!=="borderDash"&&t!=="fill"});function lx(e,t,n,r){const o=e.options,{[n]:i}=e.getProps([n],r);return Math.abs(t-i)<o.radius+o.hitRadius}class Pc extends Ta{constructor(n){super();En(this,"parsed");En(this,"skip");En(this,"stop");this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,n&&Object.assign(this,n)}inRange(n,r,o){const i=this.options,{x:a,y:s}=this.getProps(["x","y"],o);return Math.pow(n-a,2)+Math.pow(r-s,2)<Math.pow(i.hitRadius+i.radius,2)}inXRange(n,r){return lx(this,n,"x",r)}inYRange(n,r){return lx(this,n,"y",r)}getCenterPoint(n){const{x:r,y:o}=this.getProps(["x","y"],n);return{x:r,y:o}}size(n){n=n||this.options||{};let r=n.radius||0;r=Math.max(r,r&&n.hoverRadius||0);const o=r&&n.borderWidth||0;return(r+o)*2}draw(n,r){const o=this.options;this.skip||o.radius<.1||!Ks(this,r,this.size(o)/2)||(n.strokeStyle=o.borderColor,n.lineWidth=o.borderWidth,n.fillStyle=o.backgroundColor,Xd(n,o,this.x,this.y))}getRange(){const n=this.options||{};return n.radius+n.hitRadius}}En(Pc,"id","point"),En(Pc,"defaults",{borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0}),En(Pc,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});function cx(e,t){const{x:n,y:r,base:o,width:i,height:a}=e.getProps(["x","y","base","width","height"],t);let s,l,u,d,h;return e.horizontal?(h=a/2,s=Math.min(n,o),l=Math.max(n,o),u=r-h,d=r+h):(h=i/2,s=n-h,l=n+h,u=Math.min(r,o),d=Math.max(r,o)),{left:s,top:u,right:l,bottom:d}}function Fa(e,t,n,r){return e?0:E0(t,n,r)}function rte(e,t,n){const r=e.options.borderWidth,o=e.borderSkipped,i=ty(r);return{t:Fa(o.top,i.top,0,n),r:Fa(o.right,i.right,0,t),b:Fa(o.bottom,i.bottom,0,n),l:Fa(o.left,i.left,0,t)}}function ote(e,t,n){const{enableBorderRadius:r}=e.getProps(["enableBorderRadius"]),o=e.options.borderRadius,i=V3(o),a=Math.min(t,n),s=e.borderSkipped,l=r||A1(o);return{topLeft:Fa(!l||s.top||s.left,i.topLeft,0,a),topRight:Fa(!l||s.top||s.right,i.topRight,0,a),bottomLeft:Fa(!l||s.bottom||s.left,i.bottomLeft,0,a),bottomRight:Fa(!l||s.bottom||s.right,i.bottomRight,0,a)}}function ite(e){const t=cx(e),n=t.right-t.left,r=t.bottom-t.top,o=rte(e,n/2,r/2),i=ote(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r,radius:i},inner:{x:t.left+o.l,y:t.top+o.t,w:n-o.l-o.r,h:r-o.t-o.b,radius:{topLeft:Math.max(0,i.topLeft-Math.max(o.t,o.l)),topRight:Math.max(0,i.topRight-Math.max(o.t,o.r)),bottomLeft:Math.max(0,i.bottomLeft-Math.max(o.b,o.l)),bottomRight:Math.max(0,i.bottomRight-Math.max(o.b,o.r))}}}}function vf(e,t,n,r){const o=t===null,i=n===null,s=e&&!(o&&i)&&cx(e,r);return s&&(o||zi(t,s.left,s.right))&&(i||zi(n,s.top,s.bottom))}function ate(e){return e.topLeft||e.topRight||e.bottomLeft||e.bottomRight}function ste(e,t){e.rect(t.x,t.y,t.w,t.h)}function Af(e,t,n={}){const r=e.x!==n.x?-t:0,o=e.y!==n.y?-t:0,i=(e.x+e.w!==n.x+n.w?t:0)-r,a=(e.y+e.h!==n.y+n.h?t:0)-o;return{x:e.x+r,y:e.y+o,w:e.w+i,h:e.h+a,radius:e.radius}}class Nc extends Ta{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:n,options:{borderColor:r,backgroundColor:o}}=this,{inner:i,outer:a}=ite(this),s=ate(a.radius)?vc:ste;t.save(),(a.w!==i.w||a.h!==i.h)&&(t.beginPath(),s(t,Af(a,n,i)),t.clip(),s(t,Af(i,-n,a)),t.fillStyle=r,t.fill("evenodd")),t.beginPath(),s(t,Af(i,n)),t.fillStyle=o,t.fill(),t.restore()}inRange(t,n,r){return vf(this,t,n,r)}inXRange(t,n){return vf(this,t,null,n)}inYRange(t,n){return vf(this,null,t,n)}getCenterPoint(t){const{x:n,y:r,base:o,horizontal:i}=this.getProps(["x","y","base","horizontal"],t);return{x:i?(n+o)/2:n,y:i?r:(r+o)/2}}getRange(t){return t==="x"?this.width/2:this.height/2}}En(Nc,"id","bar"),En(Nc,"defaults",{borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0}),En(Nc,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});function lte(e,t,n){const r=e.segments,o=e.points,i=t.points,a=[];for(const s of r){let{start:l,end:u}=s;u=_f(l,u,o);const d=bf(n,o[l],o[u],s.loop);if(!t.segments){a.push({source:s,target:d,start:o[l],end:o[u]});continue}const h=my(t,d);for(const g of h){const m=bf(n,i[g.start],i[g.end],g.loop),v=Cy(s,o,m);for(const A of v)a.push({source:A,target:g,start:{[n]:ux(d,m,"start",Math.max)},end:{[n]:ux(d,m,"end",Math.min)}})}}return a}function bf(e,t,n,r){if(r)return;let o=t[e],i=n[e];return e==="angle"&&(o=Qo(o),i=Qo(i)),{property:e,start:o,end:i}}function cte(e,t){const{x:n=null,y:r=null}=e||{},o=t.points,i=[];return t.segments.forEach(({start:a,end:s})=>{s=_f(a,s,o);const l=o[a],u=o[s];r!==null?(i.push({x:l.x,y:r}),i.push({x:u.x,y:r})):n!==null&&(i.push({x:n,y:l.y}),i.push({x:n,y:u.y}))}),i}function _f(e,t,n){for(;t>e;t--){const r=n[t];if(!isNaN(r.x)&&!isNaN(r.y))break}return t}function ux(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function dx(e,t){let n=[],r=!1;return Kr(e)?(r=!0,n=e):n=cte(e,t),n.length?new Ra({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function fx(e){return e&&e.fill!==!1}function ute(e,t,n){let o=e[t].fill;const i=[t];let a;if(!n)return o;for(;o!==!1&&i.indexOf(o)===-1;){if(!w0(o))return o;if(a=e[o],!a)return!1;if(a.visible)return o;i.push(o),o=a.fill}return!1}function dte(e,t,n){const r=Cte(e);if(A1(r))return isNaN(r.value)?!1:r;let o=parseFloat(r);return w0(o)&&Math.floor(o)===o?fte(r[0],t,o,n):["origin","start","end","stack","shape"].indexOf(r)>=0&&r}function fte(e,t,n,r){return(e==="-"||e==="+")&&(n=t+n),n===t||n<0||n>=r?!1:n}function hte(e,t){let n=null;return e==="start"?n=t.bottom:e==="end"?n=t.top:A1(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function gte(e,t,n){let r;return e==="start"?r=n:e==="end"?r=t.options.reverse?t.min:t.max:A1(e)?r=e.value:r=t.getBaseValue(),r}function Cte(e){const t=e.options,n=t.fill;let r=h1(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?"origin":r}function mte(e){const{scale:t,index:n,line:r}=e,o=[],i=r.segments,a=r.points,s=pte(t,n);s.push(dx({x:null,y:t.bottom},r));for(let l=0;l<i.length;l++){const u=i[l];for(let d=u.start;d<=u.end;d++)vte(o,a[d],s)}return new Ra({points:o,options:{}})}function pte(e,t){const n=[],r=e.getMatchingVisibleMetas("line");for(let o=0;o<r.length;o++){const i=r[o];if(i.index===t)break;i.hidden||n.unshift(i.dataset)}return n}function vte(e,t,n){const r=[];for(let o=0;o<n.length;o++){const i=n[o],{first:a,last:s,point:l}=Ate(i,t,"x");if(!(!l||a&&s)){if(a)r.unshift(l);else if(e.push(l),!s)break}}e.push(...r)}function Ate(e,t,n){const r=e.interpolate(t,n);if(!r)return{};const o=r[n],i=e.segments,a=e.points;let s=!1,l=!1;for(let u=0;u<i.length;u++){const d=i[u],h=a[d.start][n],g=a[d.end][n];if(zi(o,h,g)){s=o===h,l=o===g;break}}return{first:s,last:l,point:r}}class hx{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,n,r){const{x:o,y:i,radius:a}=this;return n=n||{start:0,end:_r},t.arc(o,i,a,n.end,n.start,!0),!r.bounds}interpolate(t){const{x:n,y:r,radius:o}=this,i=t.angle;return{x:n+Math.cos(i)*o,y:r+Math.sin(i)*o,angle:i}}}function bte(e){const{chart:t,fill:n,line:r}=e;if(w0(n))return _te(t,n);if(n==="stack")return mte(e);if(n==="shape")return!0;const o=yte(e);return o instanceof hx?o:dx(o,r)}function _te(e,t){const n=e.getDatasetMeta(t);return n&&e.isDatasetVisible(t)?n.dataset:null}function yte(e){return(e.scale||{}).getPointPositionForValue?wte(e):xte(e)}function xte(e){const{scale:t={},fill:n}=e,r=hte(n,t);if(w0(r)){const o=t.isHorizontal();return{x:o?r:null,y:o?null:r}}return null}function wte(e){const{scale:t,fill:n}=e,r=t.options,o=t.getLabels().length,i=r.reverse?t.max:t.min,a=gte(n,t,i),s=[];if(r.grid.circular){const l=t.getPointPositionForValue(0,i);return new hx({x:l.x,y:l.y,radius:t.getDistanceFromCenterForValue(a)})}for(let l=0;l<o;++l)s.push(t.getPointPositionForValue(l,a));return s}function yf(e,t,n){const r=bte(t),{chart:o,index:i,line:a,scale:s,axis:l}=t,u=a.options,d=u.fill,h=u.backgroundColor,{above:g=h,below:m=h}=d||{},v=o.getDatasetMeta(i),A=Ay(o,v);r&&a.points.length&&(Cc(e,n),Ete(e,{line:a,target:r,above:g,below:m,area:n,scale:s,axis:l,clip:A}),mc(e))}function Ete(e,t){const{line:n,target:r,above:o,below:i,area:a,scale:s,clip:l}=t,u=n._loop?"angle":t.axis;e.save(),u==="x"&&i!==o&&(gx(e,r,a.top),Cx(e,{line:n,target:r,color:o,scale:s,property:u,clip:l}),e.restore(),e.save(),gx(e,r,a.bottom)),Cx(e,{line:n,target:r,color:i,scale:s,property:u,clip:l}),e.restore()}function gx(e,t,n){const{segments:r,points:o}=t;let i=!0,a=!1;e.beginPath();for(const s of r){const{start:l,end:u}=s,d=o[l],h=o[_f(l,u,o)];i?(e.moveTo(d.x,d.y),i=!1):(e.lineTo(d.x,n),e.lineTo(d.x,d.y)),a=!!t.pathSegment(e,s,{move:a}),a?e.closePath():e.lineTo(h.x,n)}e.lineTo(t.first().x,n),e.closePath(),e.clip()}function Cx(e,t){const{line:n,target:r,property:o,color:i,scale:a,clip:s}=t,l=lte(n,r,o);for(const{source:u,target:d,start:h,end:g}of l){const{style:{backgroundColor:m=i}={}}=u,v=r!==!0;e.save(),e.fillStyle=m,Ste(e,a,s,v&&bf(o,h,g)),e.beginPath();const A=!!n.pathSegment(e,u);let p;if(v){A?e.closePath():mx(e,r,g,o);const w=!!r.pathSegment(e,d,{move:A,reverse:!0});p=A&&w,p||mx(e,r,h,o)}e.closePath(),e.fill(p?"evenodd":"nonzero"),e.restore()}}function Ste(e,t,n,r){const o=t.chart.chartArea,{property:i,start:a,end:s}=r||{};if(i==="x"||i==="y"){let l,u,d,h;i==="x"?(l=a,u=o.top,d=s,h=o.bottom):(l=o.left,u=a,d=o.right,h=s),e.beginPath(),n&&(l=Math.max(l,n.left),d=Math.min(d,n.right),u=Math.max(u,n.top),h=Math.min(h,n.bottom)),e.rect(l,u,d-l,h-u),e.clip()}}function mx(e,t,n,r){const o=t.interpolate(n,r);o&&e.lineTo(o.x,o.y)}var Mte={id:"filler",afterDatasetsUpdate(e,t,n){const r=(e.data.datasets||[]).length,o=[];let i,a,s,l;for(a=0;a<r;++a)i=e.getDatasetMeta(a),s=i.dataset,l=null,s&&s.options&&s instanceof Ra&&(l={visible:e.isDatasetVisible(a),index:a,fill:dte(s,a,r),chart:e,axis:i.controller.options.indexAxis,scale:i.vScale,line:s}),i.$filler=l,o.push(l);for(a=0;a<r;++a)l=o[a],!(!l||l.fill===!1)&&(l.fill=ute(o,a,n.propagate))},beforeDraw(e,t,n){const r=n.drawTime==="beforeDraw",o=e.getSortedVisibleDatasetMetas(),i=e.chartArea;for(let a=o.length-1;a>=0;--a){const s=o[a].$filler;s&&(s.line.updateControlPoints(i,s.axis),r&&s.fill&&yf(e.ctx,s,i))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!=="beforeDatasetsDraw")return;const r=e.getSortedVisibleDatasetMetas();for(let o=r.length-1;o>=0;--o){const i=r[o].$filler;fx(i)&&yf(e.ctx,i,e.chartArea)}},beforeDatasetDraw(e,t,n){const r=t.meta.$filler;!fx(r)||n.drawTime!=="beforeDatasetDraw"||yf(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const px=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},Hte=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class vx extends Ta{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,r){this.maxWidth=t,this.maxHeight=n,this._margins=r,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=hr(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(r=>t.filter(r,this.chart.data))),t.sort&&(n=n.sort((r,o)=>t.sort(r,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const r=t.labels,o=e2(r.font),i=o.size,a=this._computeTitleHeight(),{boxWidth:s,itemHeight:l}=px(r,i);let u,d;n.font=o.string,this.isHorizontal()?(u=this.maxWidth,d=this._fitRows(a,i,s,l)+10):(d=this.maxHeight,u=this._fitCols(a,o,s,l)+10),this.width=Math.min(u,t.maxWidth||this.maxWidth),this.height=Math.min(d,t.maxHeight||this.maxHeight)}_fitRows(t,n,r,o){const{ctx:i,maxWidth:a,options:{labels:{padding:s}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],d=o+s;let h=t;i.textAlign="left",i.textBaseline="middle";let g=-1,m=-d;return this.legendItems.forEach((v,A)=>{const p=r+n/2+i.measureText(v.text).width;(A===0||u[u.length-1]+p+2*s>a)&&(h+=d,u[u.length-(A>0?0:1)]=0,m+=d,g++),l[A]={left:0,top:m,row:g,width:p,height:o},u[u.length-1]+=p+s}),h}_fitCols(t,n,r,o){const{ctx:i,maxHeight:a,options:{labels:{padding:s}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],d=a-t;let h=s,g=0,m=0,v=0,A=0;return this.legendItems.forEach((p,w)=>{const{itemWidth:y,itemHeight:x}=Lte(r,n,i,p,o);w>0&&m+x+2*s>d&&(h+=g+s,u.push({width:g,height:m}),v+=g+s,A++,g=m=0),l[w]={left:v,top:m,col:A,width:y,height:x},g=Math.max(g,y),m+=x+s}),h+=g,u.push({width:g,height:m}),h}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:r,labels:{padding:o},rtl:i}}=this,a=$3(i,this.left,this.width);if(this.isHorizontal()){let s=0,l=_2(r,this.left+o,this.right-this.lineWidths[s]);for(const u of n)s!==u.row&&(s=u.row,l=_2(r,this.left+o,this.right-this.lineWidths[s])),u.top+=this.top+t+o,u.left=a.leftForLtr(a.x(l),u.width),l+=u.width+o}else{let s=0,l=_2(r,this.top+t+o,this.bottom-this.columnSizes[s].height);for(const u of n)u.col!==s&&(s=u.col,l=_2(r,this.top+t+o,this.bottom-this.columnSizes[s].height)),u.top=l,u.left+=this.left+o,u.left=a.leftForLtr(a.x(u.left),u.width),l+=u.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;Cc(t,this),this._draw(),mc(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:r,ctx:o}=this,{align:i,labels:a}=t,s=Dr.color,l=$3(t.rtl,this.left,this.width),u=e2(a.font),{padding:d}=a,h=u.size,g=h/2;let m;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=u.string;const{boxWidth:v,boxHeight:A,itemHeight:p}=px(a,h),w=function(M,H,O){if(isNaN(v)||v<=0||isNaN(A)||A<0)return;o.save();const D=h1(O.lineWidth,1);if(o.fillStyle=h1(O.fillStyle,s),o.lineCap=h1(O.lineCap,"butt"),o.lineDashOffset=h1(O.lineDashOffset,0),o.lineJoin=h1(O.lineJoin,"miter"),o.lineWidth=D,o.strokeStyle=h1(O.strokeStyle,s),o.setLineDash(h1(O.lineDash,[])),a.usePointStyle){const P={radius:A*Math.SQRT2/2,pointStyle:O.pointStyle,rotation:O.rotation,borderWidth:D},N=l.xPlus(M,v/2),T=H+g;ey(o,P,N,T,a.pointStyleWidth&&v)}else{const P=H+Math.max((h-A)/2,0),N=l.leftForLtr(M,v),T=V3(O.borderRadius);o.beginPath(),Object.values(T).some(z=>z!==0)?vc(o,{x:N,y:P,w:v,h:A,radius:T}):o.rect(N,P,v,A),o.fill(),D!==0&&o.stroke()}o.restore()},y=function(M,H,O){pc(o,O.text,M,H+p/2,u,{strikethrough:O.hidden,textAlign:l.textAlign(O.textAlign)})},x=this.isHorizontal(),E=this._computeTitleHeight();x?m={x:_2(i,this.left+d,this.right-r[0]),y:this.top+d+E,line:0}:m={x:this.left+d,y:_2(i,this.top+E+d,this.bottom-n[0].height),line:0},dy(this.ctx,t.textDirection);const S=p+d;this.legendItems.forEach((M,H)=>{o.strokeStyle=M.fontColor,o.fillStyle=M.fontColor;const O=o.measureText(M.text).width,D=l.textAlign(M.textAlign||(M.textAlign=a.textAlign)),P=v+g+O;let N=m.x,T=m.y;l.setWidth(this.width),x?H>0&&N+P+d>this.right&&(T=m.y+=S,m.line++,N=m.x=_2(i,this.left+d,this.right-r[m.line])):H>0&&T+S>this.bottom&&(N=m.x=N+n[m.line].width+d,m.line++,T=m.y=_2(i,this.top+E+d,this.bottom-n[m.line].height));const z=l.x(N);if(w(z,T,M),N=sX(D,N+v+g,x?N+P:this.right,t.rtl),y(l.x(N),T,M),x)m.x+=P+d;else if(typeof M.text!="string"){const j=u.lineHeight;m.y+=Ax(M,j)+d}else m.y+=S}),fy(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,r=e2(n.font),o=mo(n.padding);if(!n.display)return;const i=$3(t.rtl,this.left,this.width),a=this.ctx,s=n.position,l=r.size/2,u=o.top+l;let d,h=this.left,g=this.width;if(this.isHorizontal())g=Math.max(...this.lineWidths),d=this.top+u,h=_2(t.align,h,this.right-g);else{const v=this.columnSizes.reduce((A,p)=>Math.max(A,p.height),0);d=u+_2(t.align,this.top,this.bottom-v-t.labels.padding-this._computeTitleHeight())}const m=_2(s,h,h+g);a.textAlign=i.textAlign($_(s)),a.textBaseline="middle",a.strokeStyle=n.color,a.fillStyle=n.color,a.font=r.string,pc(a,n.text,m,d,r)}_computeTitleHeight(){const t=this.options.title,n=e2(t.font),r=mo(t.padding);return t.display?n.lineHeight+r.height:0}_getLegendItemAt(t,n){let r,o,i;if(zi(t,this.left,this.right)&&zi(n,this.top,this.bottom)){for(i=this.legendHitBoxes,r=0;r<i.length;++r)if(o=i[r],zi(t,o.left,o.left+o.width)&&zi(n,o.top,o.top+o.height))return this.legendItems[r]}return null}handleEvent(t){const n=this.options;if(!Ite(t.type,n))return;const r=this._getLegendItemAt(t.x,t.y);if(t.type==="mousemove"||t.type==="mouseout"){const o=this._hoveredItem,i=Hte(o,r);o&&!i&&hr(n.onLeave,[t,o,this],this),this._hoveredItem=r,r&&!i&&hr(n.onHover,[t,r,this],this)}else r&&hr(n.onClick,[t,r,this],this)}}function Lte(e,t,n,r,o){const i=Bte(r,e,t,n),a=Ote(o,r,t.lineHeight);return{itemWidth:i,itemHeight:a}}function Bte(e,t,n,r){let o=e.text;return o&&typeof o!="string"&&(o=o.reduce((i,a)=>i.length>a.length?i:a)),t+n.size/2+r.measureText(o).width}function Ote(e,t,n){let r=e;return typeof t.text!="string"&&(r=Ax(t,n)),r}function Ax(e,t){const n=e.text?e.text.length:0;return t*n}function Ite(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var xf={id:"legend",_element:vx,start(e,t,n){const r=e.legend=new vx({ctx:e.ctx,options:n,chart:e});Na.configure(e,r,n),Na.addBox(e,r)},stop(e){Na.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const r=e.legend;Na.configure(e,r,n),r.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const r=t.datasetIndex,o=n.chart;o.isDatasetVisible(r)?(o.hide(r),t.hidden=!0):(o.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:o,color:i,useBorderRadius:a,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),d=mo(u.borderWidth);return{text:t[l.index].label,fillStyle:u.backgroundColor,fontColor:i,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(d.width+d.height)/4,strokeStyle:u.borderColor,pointStyle:r||u.pointStyle,rotation:u.rotation,textAlign:o||u.textAlign,borderRadius:a&&(s||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};const n4={average(e){if(!e.length)return!1;let t,n,r=new Set,o=0,i=0;for(t=0,n=e.length;t<n;++t){const s=e[t].element;if(s&&s.hasValue()){const l=s.tooltipPosition();r.add(l.x),o+=l.y,++i}}return i===0||r.size===0?!1:{x:[...r].reduce((s,l)=>s+l)/r.size,y:o/i}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,o=Number.POSITIVE_INFINITY,i,a,s;for(i=0,a=e.length;i<a;++i){const l=e[i].element;if(l&&l.hasValue()){const u=l.getCenterPoint(),d=$d(t,u);d<o&&(o=d,s=l)}}if(s){const l=s.tooltipPosition();n=l.x,r=l.y}return{x:n,y:r}}};function Go(e,t){return t&&(Kr(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function Vi(e){return(typeof e=="string"||e instanceof String)&&e.indexOf(`
|
|
356
356
|
`)>-1?e.split(`
|
|
357
|
-
`):e}function kte(e,t){const{element:n,datasetIndex:r,index:o}=t,i=e.getDatasetMeta(r).controller,{label:a,value:s}=i.getLabelAndValue(o);return{chart:e,label:a,parsed:i.getParsed(o),raw:e.data.datasets[r].data[o],formattedValue:s,dataset:i.getDataset(),dataIndex:o,datasetIndex:r,element:n}}function bx(e,t){const n=e.chart.ctx,{body:r,footer:o,title:i}=e,{boxWidth:a,boxHeight:s}=t,l=e2(t.bodyFont),u=e2(t.titleFont),d=e2(t.footerFont),h=i.length,g=o.length,m=r.length,v=mo(t.padding);let A=v.height,p=0,w=r.reduce((E,S)=>E+S.before.length+S.lines.length+S.after.length,0);if(w+=e.beforeBody.length+e.afterBody.length,h&&(A+=h*u.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),w){const E=t.displayColors?Math.max(s,l.lineHeight):l.lineHeight;A+=m*E+(w-m)*l.lineHeight+(w-1)*t.bodySpacing}g&&(A+=t.footerMarginTop+g*d.lineHeight+(g-1)*t.footerSpacing);let y=0;const x=function(E){p=Math.max(p,n.measureText(E).width+y)};return n.save(),n.font=u.string,J1(e.title,x),n.font=l.string,J1(e.beforeBody.concat(e.afterBody),x),y=t.displayColors?a+2+t.boxPadding:0,J1(r,E=>{J1(E.before,x),J1(E.lines,x),J1(E.after,x)}),y=0,n.font=d.string,J1(e.footer,x),n.restore(),p+=v.width,{width:p,height:A}}function Dte(e,t){const{y:n,height:r}=t;return n<r/2?"top":n>e.height-r/2?"bottom":"center"}function Pte(e,t,n,r){const{x:o,width:i}=r,a=n.caretSize+n.caretPadding;if(e==="left"&&o+i+a>t.width||e==="right"&&o-i-a<0)return!0}function Nte(e,t,n,r){const{x:o,width:i}=n,{width:a,chartArea:{left:s,right:l}}=e;let u="center";return r==="center"?u=o<=(s+l)/2?"left":"right":o<=i/2?u="left":o>=a-i/2&&(u="right"),Pte(u,e,t,n)&&(u="center"),u}function _x(e,t,n){const r=n.yAlign||t.yAlign||Dte(e,n);return{xAlign:n.xAlign||t.xAlign||Nte(e,t,n,r),yAlign:r}}function Tte(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function Rte(e,t,n){let{y:r,height:o}=e;return t==="top"?r+=n:t==="bottom"?r-=o+n:r-=o/2,r}function yx(e,t,n,r){const{caretSize:o,caretPadding:i,cornerRadius:a}=e,{xAlign:s,yAlign:l}=n,u=o+i,{topLeft:d,topRight:h,bottomLeft:g,bottomRight:m}=V3(a);let v=Tte(t,s);const A=Rte(t,l,u);return l==="center"?s==="left"?v+=u:s==="right"&&(v-=u):s==="left"?v-=Math.max(d,g)+o:s==="right"&&(v+=Math.max(h,m)+o),{x:E0(v,0,r.width-t.width),y:E0(A,0,r.height-t.height)}}function Tc(e,t,n){const r=mo(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function xx(e){return Go([],Vi(e))}function Fte(e,t,n){return N9(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function wx(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const Ex={beforeTitle:Ri,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex<r)return n[t.dataIndex]}return""},afterTitle:Ri,beforeBody:Ri,beforeLabel:Ri,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return $1(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:Ri,afterBody:Ri,beforeFooter:Ri,footer:Ri,afterFooter:Ri};function t2(e,t,n,r){const o=e[t].call(n,r);return typeof o>"u"?Ex[t].call(n,r):o}let Sx=(Im=class extends Ta{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),o=r.enabled&&n.options.animation&&r.animations,i=new _y(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=Fte(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,o=t2(r,"beforeTitle",this,t),i=t2(r,"title",this,t),a=t2(r,"afterTitle",this,t);let s=[];return s=Go(s,Vi(o)),s=Go(s,Vi(i)),s=Go(s,Vi(a)),s}getBeforeBody(t,n){return xx(t2(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,o=[];return J1(t,i=>{const a={before:[],lines:[],after:[]},s=wx(r,i);Go(a.before,Vi(t2(s,"beforeLabel",this,i))),Go(a.lines,t2(s,"label",this,i)),Go(a.after,Vi(t2(s,"afterLabel",this,i))),o.push(a)}),o}getAfterBody(t,n){return xx(t2(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,o=t2(r,"beforeFooter",this,t),i=t2(r,"footer",this,t),a=t2(r,"afterFooter",this,t);let s=[];return s=Go(s,Vi(o)),s=Go(s,Vi(i)),s=Go(s,Vi(a)),s}_createItems(t){const n=this._active,r=this.chart.data,o=[],i=[],a=[];let s=[],l,u;for(l=0,u=n.length;l<u;++l)s.push(kte(this.chart,n[l]));return t.filter&&(s=s.filter((d,h,g)=>t.filter(d,h,g,r))),t.itemSort&&(s=s.sort((d,h)=>t.itemSort(d,h,r))),J1(s,d=>{const h=wx(t.callbacks,d);o.push(t2(h,"labelColor",this,d)),i.push(t2(h,"labelPointStyle",this,d)),a.push(t2(h,"labelTextColor",this,d))}),this.labelColors=o,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=s,s}update(t,n){const r=this.options.setContext(this.getContext()),o=this._active;let i,a=[];if(!o.length)this.opacity!==0&&(i={opacity:0});else{const s=n4[r.position].call(this,o,this._eventPosition);a=this._createItems(r),this.title=this.getTitle(a,r),this.beforeBody=this.getBeforeBody(a,r),this.body=this.getBody(a,r),this.afterBody=this.getAfterBody(a,r),this.footer=this.getFooter(a,r);const l=this._size=bx(this,r),u=Object.assign({},s,l),d=_x(this.chart,r,u),h=yx(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,i={opacity:1,x:h.x,y:h.y,width:l.width,height:l.height,caretX:s.x,caretY:s.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,o){const i=this.getCaretPosition(t,r,o);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(t,n,r){const{xAlign:o,yAlign:i}=this,{caretSize:a,cornerRadius:s}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:h}=V3(s),{x:g,y:m}=t,{width:v,height:A}=n;let p,w,y,x,E,S;return i==="center"?(E=m+A/2,o==="left"?(p=g,w=p-a,x=E+a,S=E-a):(p=g+v,w=p+a,x=E-a,S=E+a),y=p):(o==="left"?w=g+Math.max(l,d)+a:o==="right"?w=g+v-Math.max(u,h)-a:w=this.caretX,i==="top"?(x=m,E=x-a,p=w-a,y=w+a):(x=m+A,E=x+a,p=w+a,y=w-a),S=x),{x1:p,x2:w,x3:y,y1:x,y2:E,y3:S}}drawTitle(t,n,r){const o=this.title,i=o.length;let a,s,l;if(i){const u=$3(r.rtl,this.x,this.width);for(t.x=Tc(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",a=e2(r.titleFont),s=r.titleSpacing,n.fillStyle=r.titleColor,n.font=a.string,l=0;l<i;++l)n.fillText(o[l],u.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+s,l+1===i&&(t.y+=r.titleMarginBottom-s)}}_drawColorBox(t,n,r,o,i){const a=this.labelColors[r],s=this.labelPointStyles[r],{boxHeight:l,boxWidth:u}=i,d=e2(i.bodyFont),h=Tc(this,"left",i),g=o.x(h),m=l<d.lineHeight?(d.lineHeight-l)/2:0,v=n.y+m;if(i.usePointStyle){const A={radius:Math.min(u,l)/2,pointStyle:s.pointStyle,rotation:s.rotation,borderWidth:1},p=o.leftForLtr(g,u)+u/2,w=v+l/2;t.strokeStyle=i.multiKeyBackground,t.fillStyle=i.multiKeyBackground,Xd(t,A,p,w),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,Xd(t,A,p,w)}else{t.lineWidth=A1(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const A=o.leftForLtr(g,u),p=o.leftForLtr(o.xPlus(g,1),u-2),w=V3(a.borderRadius);Object.values(w).some(y=>y!==0)?(t.beginPath(),t.fillStyle=i.multiKeyBackground,vc(t,{x:A,y:v,w:u,h:l,radius:w}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),vc(t,{x:p,y:v+1,w:u-2,h:l-2,radius:w}),t.fill()):(t.fillStyle=i.multiKeyBackground,t.fillRect(A,v,u,l),t.strokeRect(A,v,u,l),t.fillStyle=a.backgroundColor,t.fillRect(p,v+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:o}=this,{bodySpacing:i,bodyAlign:a,displayColors:s,boxHeight:l,boxWidth:u,boxPadding:d}=r,h=e2(r.bodyFont);let g=h.lineHeight,m=0;const v=$3(r.rtl,this.x,this.width),A=function(O){n.fillText(O,v.x(t.x+m),t.y+g/2),t.y+=g+i},p=v.textAlign(a);let w,y,x,E,S,M,H;for(n.textAlign=a,n.textBaseline="middle",n.font=h.string,t.x=Tc(this,p,r),n.fillStyle=r.bodyColor,J1(this.beforeBody,A),m=s&&p!=="right"?a==="center"?u/2+d:u+2+d:0,E=0,M=o.length;E<M;++E){for(w=o[E],y=this.labelTextColors[E],n.fillStyle=y,J1(w.before,A),x=w.lines,s&&x.length&&(this._drawColorBox(n,t,E,v,r),g=Math.max(h.lineHeight,l)),S=0,H=x.length;S<H;++S)A(x[S]),g=h.lineHeight;J1(w.after,A)}m=0,g=h.lineHeight,J1(this.afterBody,A),t.y-=i}drawFooter(t,n,r){const o=this.footer,i=o.length;let a,s;if(i){const l=$3(r.rtl,this.x,this.width);for(t.x=Tc(this,r.footerAlign,r),t.y+=r.footerMarginTop,n.textAlign=l.textAlign(r.footerAlign),n.textBaseline="middle",a=e2(r.footerFont),n.fillStyle=r.footerColor,n.font=a.string,s=0;s<i;++s)n.fillText(o[s],l.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+r.footerSpacing}}drawBackground(t,n,r,o){const{xAlign:i,yAlign:a}=this,{x:s,y:l}=t,{width:u,height:d}=r,{topLeft:h,topRight:g,bottomLeft:m,bottomRight:v}=V3(o.cornerRadius);n.fillStyle=o.backgroundColor,n.strokeStyle=o.borderColor,n.lineWidth=o.borderWidth,n.beginPath(),n.moveTo(s+h,l),a==="top"&&this.drawCaret(t,n,r,o),n.lineTo(s+u-g,l),n.quadraticCurveTo(s+u,l,s+u,l+g),a==="center"&&i==="right"&&this.drawCaret(t,n,r,o),n.lineTo(s+u,l+d-v),n.quadraticCurveTo(s+u,l+d,s+u-v,l+d),a==="bottom"&&this.drawCaret(t,n,r,o),n.lineTo(s+m,l+d),n.quadraticCurveTo(s,l+d,s,l+d-m),a==="center"&&i==="left"&&this.drawCaret(t,n,r,o),n.lineTo(s,l+h),n.quadraticCurveTo(s,l,s+h,l),n.closePath(),n.fill(),o.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,o=r&&r.x,i=r&&r.y;if(o||i){const a=n4[t.position].call(this,this._active,this._eventPosition);if(!a)return;const s=this._size=bx(this,t),l=Object.assign({},a,this._size),u=_x(n,t,l),d=yx(t,l,u,n);(o._to!==d.x||i._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=s.width,this.height=s.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},i={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const a=mo(n.padding),s=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&s&&(t.save(),t.globalAlpha=r,this.drawBackground(i,t,o,n),dy(t,n.textDirection),i.y+=a.top,this.drawTitle(i,t,n),this.drawBody(i,t,n),this.drawFooter(i,t,n),fy(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,o=t.map(({datasetIndex:s,index:l})=>{const u=this.chart.getDatasetMeta(s);if(!u)throw new Error("Cannot find a dataset at index "+s);return{datasetIndex:s,element:u.data[l],index:l}}),i=!dc(r,o),a=this._positionChanged(o,n);(i||a)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,i=this._active||[],a=this._getActiveElements(t,i,n,r),s=this._positionChanged(a,t),l=n||!dc(a,i)||s;return l&&(this._active=a,(o.enabled||o.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,o){const i=this.options;if(t.type==="mouseout")return[];if(!o)return n.filter(s=>this.chart.data.datasets[s.datasetIndex]&&this.chart.getDatasetMeta(s.datasetIndex).controller.getParsed(s.index)!==void 0);const a=this.chart.getElementsAtEventForMode(t,i.mode,i,r);return i.reverse&&a.reverse(),a}_positionChanged(t,n){const{caretX:r,caretY:o,options:i}=this,a=n4[i.position].call(this,t,n);return a!==!1&&(r!==a.x||o!==a.y)}},En(Im,"positioners",n4),Im);var wf={id:"tooltip",_element:Sx,positioners:n4,afterInit(e,t,n){n&&(e.tooltip=new Sx({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Ex},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const zte=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function jte(e,t,n,r){const o=e.indexOf(t);if(o===-1)return zte(e,t,n,r);const i=e.lastIndexOf(t);return o!==i?n:o}const Vte=(e,t)=>e===null?null:E0(Math.round(e),0,t);function Mx(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class r4 extends Q3{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const r=this.getLabels();for(const{index:o,label:i}of n)r[o]===i&&r.splice(o,1);this._addedLabels=[]}super.init(t)}parse(t,n){if($1(t))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===t?n:jte(r,t,h1(n,t),this._addedLabels),Vte(n,r.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:r,max:o}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(r=0),n||(o=this.getLabels().length-1)),this.min=r,this.max=o}buildTicks(){const t=this.min,n=this.max,r=this.options.offset,o=[];let i=this.getLabels();i=t===0&&n===i.length-1?i:i.slice(t,n+1),this._valueRange=Math.max(i.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let a=t;a<=n;a++)o.push({value:a});return o}getLabelForValue(t){return Mx.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}En(r4,"id","category"),En(r4,"defaults",{ticks:{callback:Mx}});function Ute(e,t){const n=[],{bounds:o,step:i,min:a,max:s,precision:l,count:u,maxTicks:d,maxDigits:h,includeBounds:g}=e,m=i||1,v=d-1,{min:A,max:p}=t,w=!$1(a),y=!$1(s),x=!$1(u),E=(p-A)/(h+1);let S=T_((p-A)/v/m)*m,M,H,O,D;if(S<1e-14&&!w&&!y)return[{value:A},{value:p}];D=Math.ceil(p/S)-Math.floor(A/S),D>v&&(S=T_(D*S/v/m)*m),$1(l)||(M=Math.pow(10,l),S=Math.ceil(S*M)/M),o==="ticks"?(H=Math.floor(A/S)*S,O=Math.ceil(p/S)*S):(H=A,O=p),w&&y&&i&&Xq((s-a)/i,S/1e3)?(D=Math.round(Math.min((s-a)/S,d)),S=(s-a)/D,H=a,O=s):x?(H=w?a:H,O=y?s:O,D=u-1,S=(O-H)/D):(D=(O-H)/S,js(D,Math.round(D),S/1e3)?D=Math.round(D):D=Math.ceil(D));const P=Math.max(R_(S),R_(H));M=Math.pow(10,$1(l)?P:l),H=Math.round(H*M)/M,O=Math.round(O*M)/M;let N=0;for(w&&(g&&H!==a?(n.push({value:a}),H<a&&N++,js(Math.round((H+N*S)*M)/M,a,Hx(a,E,e))&&N++):H<a&&N++);N<D;++N){const T=Math.round((H+N*S)*M)/M;if(y&&T>s)break;n.push({value:T})}return y&&g&&O!==s?n.length&&js(n[n.length-1].value,s,Hx(s,E,e))?n[n.length-1].value=s:n.push({value:s}):(!y||O===s)&&n.push({value:O}),n}function Hx(e,t,{horizontal:n,minRotation:r}){const o=Fi(r),i=(n?Math.sin(o):Math.cos(o))||.001,a=.75*t*(""+e).length;return Math.min(t/i,a)}class Zte extends Q3{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return $1(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:o,max:i}=this;const a=l=>o=n?o:l,s=l=>i=r?i:l;if(t){const l=Ko(o),u=Ko(i);l<0&&u<0?s(0):l>0&&u>0&&a(0)}if(o===i){let l=i===0?1:Math.abs(i*.05);s(i+l),t||a(o-l)}this.min=o,this.max=i}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,o;return r?(o=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const o={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},i=this._range||this,a=Ute(o,i);return t.bounds==="ticks"&&Jq(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const o=(r-n)/Math.max(t.length-1,1)/2;n-=o,r+=o}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return Gd(t,this.chart.options.locale,this.options.ticks.format)}}class o4 extends Zte{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=w0(t)?t:0,this.max=w0(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=Fi(this.options.ticks.minRotation),o=(t?Math.sin(r):Math.cos(r))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,i.lineHeight/o))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}En(o4,"id","linear"),En(o4,"defaults",{ticks:{callback:q_.formatters.numeric}});const Rc={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},n2=Object.keys(Rc);function Lx(e,t){return e-t}function Bx(e,t){if($1(t))return null;const n=e._adapter,{parser:r,round:o,isoWeekday:i}=e._parseOpts;let a=t;return typeof r=="function"&&(a=r(a)),w0(a)||(a=typeof r=="string"?n.parse(a,r):n.parse(a)),a===null?null:(o&&(a=o==="week"&&(Vs(i)||i===!0)?n.startOf(a,"isoWeek",i):n.startOf(a,o)),+a)}function Ox(e,t,n,r){const o=n2.length;for(let i=n2.indexOf(e);i<o-1;++i){const a=Rc[n2[i]],s=a.steps?a.steps:Number.MAX_SAFE_INTEGER;if(a.common&&Math.ceil((n-t)/(s*a.size))<=r)return n2[i]}return n2[o-1]}function $te(e,t,n,r,o){for(let i=n2.length-1;i>=n2.indexOf(n);i--){const a=n2[i];if(Rc[a].common&&e._adapter.diff(o,r,a)>=t-1)return a}return n2[n?n2.indexOf(n):0]}function Kte(e){for(let t=n2.indexOf(e)+1,n=n2.length;t<n;++t)if(Rc[n2[t]].common)return n2[t]}function Ix(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:r,hi:o}=Kd(n,t),i=n[r]>=t?n[r]:n[o];e[i]=!0}}function Qte(e,t,n,r){const o=e._adapter,i=+o.startOf(t[0].value,r),a=t[t.length-1].value;let s,l;for(s=i;s<=a;s=+o.add(s,1,r))l=n[s],l>=0&&(t[l].major=!0);return t}function kx(e,t,n){const r=[],o={},i=t.length;let a,s;for(a=0;a<i;++a)s=t[a],o[s]=a,r.push({value:s,major:!1});return i===0||!n?r:Qte(e,r,o,n)}class Fc extends Q3{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const r=t.time||(t.time={}),o=this._adapter=new DJ._date(t.adapters.date);o.init(n),Fs(r.displayFormats,o.formats()),this._parseOpts={parser:r.parser,round:r.round,isoWeekday:r.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:Bx(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,r=t.time.unit||"day";let{min:o,max:i,minDefined:a,maxDefined:s}=this.getUserBounds();function l(u){!a&&!isNaN(u.min)&&(o=Math.min(o,u.min)),!s&&!isNaN(u.max)&&(i=Math.max(i,u.max))}(!a||!s)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),o=w0(o)&&!isNaN(o)?o:+n.startOf(Date.now(),r),i=w0(i)&&!isNaN(i)?i:+n.endOf(Date.now(),r)+1,this.min=Math.min(o,i-1),this.max=Math.max(o+1,i)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],r=t[t.length-1]),{min:n,max:r}}buildTicks(){const t=this.options,n=t.time,r=t.ticks,o=r.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&o.length&&(this.min=this._userMin||o[0],this.max=this._userMax||o[o.length-1]);const i=this.min,a=this.max,s=oX(o,i,a);return this._unit=n.unit||(r.autoSkip?Ox(n.minUnit,this.min,this.max,this._getLabelCapacity(i)):$te(this,s.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:Kte(this._unit),this.initOffsets(o),t.reverse&&s.reverse(),kx(this,s,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,r=0,o,i;this.options.offset&&t.length&&(o=this.getDecimalForValue(t[0]),t.length===1?n=1-o:n=(this.getDecimalForValue(t[1])-o)/2,i=this.getDecimalForValue(t[t.length-1]),t.length===1?r=i:r=(i-this.getDecimalForValue(t[t.length-2]))/2);const a=t.length<3?.5:.25;n=E0(n,0,a),r=E0(r,0,a),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,o=this.options,i=o.time,a=i.unit||Ox(i.minUnit,n,r,this._getLabelCapacity(n)),s=h1(o.ticks.stepSize,1),l=a==="week"?i.isoWeekday:!1,u=Vs(l)||l===!0,d={};let h=n,g,m;if(u&&(h=+t.startOf(h,"isoWeek",l)),h=+t.startOf(h,u?"day":a),t.diff(r,n,a)>1e5*s)throw new Error(n+" and "+r+" are too far apart with stepSize of "+s+" "+a);const v=o.ticks.source==="data"&&this.getDataTimestamps();for(g=h,m=0;g<r;g=+t.add(g,s,a),m++)Ix(d,g,v);return(g===r||o.bounds==="ticks"||m===1)&&Ix(d,g,v),Object.keys(d).sort(Lx).map(A=>+A)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const o=this.options.time.displayFormats,i=this._unit,a=n||o[i];return this._adapter.format(t,a)}_tickFormatFunction(t,n,r,o){const i=this.options,a=i.ticks.callback;if(a)return hr(a,[t,n,r],this);const s=i.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&s[l],h=u&&s[u],g=r[n],m=u&&h&&g&&g.major;return this._adapter.format(t,o||(m?h:d))}generateTickLabels(t){let n,r,o;for(n=0,r=t.length;n<r;++n)o=t[n],o.label=this._tickFormatFunction(o.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,r=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+r)*n.factor)}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+r*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,r=this.ctx.measureText(t).width,o=Fi(this.isHorizontal()?n.maxRotation:n.minRotation),i=Math.cos(o),a=Math.sin(o),s=this._resolveTickFontOptions(0).size;return{w:r*i+s*a,h:r*a+s*i}}_getLabelCapacity(t){const n=this.options.time,r=n.displayFormats,o=r[n.unit]||r.millisecond,i=this._tickFormatFunction(t,0,kx(this,[t],this._majorUnit),o),a=this._getLabelSize(i),s=Math.floor(this.isHorizontal()?this.width/a.w:this.height/a.h)-1;return s>0?s:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,r=o.length;n<r;++n)t=t.concat(o[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,r;if(t.length)return t;const o=this.getLabels();for(n=0,r=o.length;n<r;++n)t.push(Bx(this,o[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return V_(t.sort(Lx))}}En(Fc,"id","time"),En(Fc,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function zc(e,t,n){let r=0,o=e.length-1,i,a,s,l;n?(t>=e[r].pos&&t<=e[o].pos&&({lo:r,hi:o}=k9(e,"pos",t)),{pos:i,time:s}=e[r],{pos:a,time:l}=e[o]):(t>=e[r].time&&t<=e[o].time&&({lo:r,hi:o}=k9(e,"time",t)),{time:i,pos:s}=e[r],{time:a,pos:l}=e[o]);const u=a-i;return u?s+(l-s)*(t-i)/u:s}class Dx extends Fc{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=zc(n,this.min),this._tableRange=zc(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,o=[],i=[];let a,s,l,u,d;for(a=0,s=t.length;a<s;++a)u=t[a],u>=n&&u<=r&&o.push(u);if(o.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(a=0,s=o.length;a<s;++a)d=o[a+1],l=o[a-1],u=o[a],Math.round((d+l)/2)!==u&&i.push({time:u,pos:a/(s-1)});return i}_generate(){const t=this.min,n=this.max;let r=super.getDataTimestamps();return(!r.includes(t)||!r.length)&&r.splice(0,0,t),(!r.includes(n)||r.length===1)&&r.push(n),r.sort((o,i)=>o-i)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(zc(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return zc(this._table,r*this._tableRange+this._minPos,!0)}}En(Dx,"id","timeseries"),En(Dx,"defaults",Fc.defaults);const Px="label";function Nx(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function Wte(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function Tx(e,t){e.labels=t}function Rx(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Px;const r=[];e.datasets=t.map(o=>{const i=e.datasets.find(a=>a[n]===o[n]);return!i||!o.data||r.includes(i)?{...o}:(r.push(i),Object.assign(i,o),i)})}function Gte(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Px;const n={labels:[],datasets:[]};return Tx(n,e.labels),Rx(n,e.datasets,t),n}function Yte(e,t){const{height:n=150,width:r=300,redraw:o=!1,datasetIdKey:i,type:a,data:s,options:l,plugins:u=[],fallbackContent:d,updateMode:h,...g}=e,m=I.useRef(null),v=I.useRef(null),A=()=>{m.current&&(v.current=new W3(m.current,{type:a,data:Gte(s,i),options:l&&{...l},plugins:u}),Nx(t,v.current))},p=()=>{Nx(t,null),v.current&&(v.current.destroy(),v.current=null)};return I.useEffect(()=>{!o&&v.current&&l&&Wte(v.current,l)},[o,l]),I.useEffect(()=>{!o&&v.current&&Tx(v.current.config.data,s.labels)},[o,s.labels]),I.useEffect(()=>{!o&&v.current&&s.datasets&&Rx(v.current.config.data,s.datasets,i)},[o,s.datasets]),I.useEffect(()=>{v.current&&(o?(p(),setTimeout(A)):v.current.update(h))},[o,l,s.labels,s.datasets,h]),I.useEffect(()=>{v.current&&(p(),setTimeout(A))},[a]),I.useEffect(()=>(A(),()=>p()),[]),I.createElement("canvas",{ref:m,role:"img",height:n,width:r,...g},d)}const qte=I.forwardRef(Yte);function jc(e,t){return W3.register(t),I.forwardRef((n,r)=>I.createElement(qte,{...n,ref:r,type:e}))}const Xte=jc("line",Sc),Jte=jc("bar",Ec),ene=jc("doughnut",K3),tne=jc("pie",uf);function nne({input:e,type:t,lineVariant:n,lineTension:r}){const o=["#4e79a7","#f28e2b","#e15759","#76b7b2"],i=t==="doughnut"||t==="pie";return{labels:e.labels,datasets:e.datasets.map((a,s)=>{var l;return i?{label:a.label,data:a.data,backgroundColor:a.colors&&a.colors.length===a.data.length?(l=a.colors)==null?void 0:l.map(u=>Ef(u)):a.data.map((u,d)=>Ef(o[d%o.length])),borderColor:a.colors&&a.colors.length===a.data.length?a.colors:a.data.map((u,d)=>o[d%o.length]),borderWidth:2}:{label:a.label,data:a.data,backgroundColor:Ef(a.color||o[s%o.length]),borderColor:a.color||o[s%o.length],borderWidth:t==="line"?2:1,fill:n=="fill",tension:r??.4}})}}function rne({barVariant:e,type:t}){const r={responsive:!0,plugins:{legend:{position:"bottom",labels:{font:{family:"Inter"},usePointStyle:!0,pointStyle:"circle",textAlign:"center"}},tooltip:{bodyFont:{family:"Inter"},titleFont:{family:"Inter"}}},scales:t==="doughnut"||t==="pie"?{}:{x:{ticks:{font:{family:"DM Mono"}},title:{font:{size:12,family:"Inter"}}},y:{ticks:{font:{family:"DM Mono"}},title:{font:{size:12,family:"Inter"}}}}};return t==="bar"&&e=="stacked"?Hs.merge({},r,{scales:{x:{stacked:!0},y:{stacked:!0}}}):r}function Ef(e){if(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e)){const n=e.substring(1),r=parseInt(n.substring(0,2),16),o=parseInt(n.substring(2,4),16),i=parseInt(n.substring(4,6),16);return`rgba(${r}, ${o}, ${i}, 0.1)`}else if(e.startsWith("rgba")){const[n,r,o,i]=e.substring(5,e.length-1).split(",");return`rgba(${n}, ${r}, ${o}, 0.1)`}else if(e.startsWith("rgb")){const[n,r,o]=e.substring(4,e.length-1).split(",");return`rgba(${n}, ${r}, ${o}, 0.1)`}else throw new Error(`Unsupported color format: ${e}`)}let Fx=!1;function one(){Fx||(W3.register(r4,o4,Nc,wf,xf),Fx=!0)}let zx=!1;function ine(){zx||(W3.register(t4,wf,xf,r4,o4),zx=!0)}let jx=!1;function ane(){jx||(W3.register(r4,o4,Pc,Ra,wf,xf,Mte),jx=!0)}const sne=({type:e,data:t,options:n,barVariant:r,lineVariant:o,lineTension:i,width:a,height:s,backgroundColor:l,className:u=""})=>{e==="line"?ane():e==="bar"?one():(e==="doughnut"||e==="pie")&&ine();const d=nne({input:t,type:e,lineVariant:o,lineTension:i}),h=Hs.merge({maintainAspectRatio:!1},rne({type:e,barVariant:r}),n),m={line:Xte,bar:Jte,doughnut:ene,pie:tne}[e];return Q.jsx(m,{data:d,options:h,style:{width:a,height:s,backgroundColor:l},className:`awi-chart ${u}`})},Vc=(e,t)=>{const n=e;return isNaN(n.getTime())?"":t==="date"?n.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}):n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0})},Vx=({data:e,className:t,isFocused:n=!1,borderColor:r="#eaebee",focusedBorderColor:o="#ffcc00",focusedBorderThickness:i="2px",width:a="100%",height:s="100%"})=>{const l=n?`${i} solid ${o}`:`1px solid ${r}`;return Q.jsxs("div",{className:"compact_event_card "+(t||"")+" "+(n?"focused":""),style:{width:a,height:s,border:l},children:[Q.jsx("img",{src:e==null?void 0:e.frameUrl,alt:"Alert"}),Q.jsxs("span",{className:"compact_event_card_content",children:[Q.jsx("header",{children:Q.jsx("h6",{children:e.appName})}),Q.jsxs("section",{className:"compact_event_card_details",children:[Q.jsx("h6",{children:e.location}),Q.jsxs("span",{children:[Q.jsx("p",{children:"Date"}),Q.jsx("h6",{title:Vc(e==null?void 0:e.timeStamp,"date"),children:Vc(e==null?void 0:e.timeStamp,"date")})]}),Q.jsxs("span",{children:[Q.jsx("p",{children:"Time"}),Q.jsx("h6",{title:Vc(e==null?void 0:e.timeStamp,"time"),className:"font_secondary",children:Vc(e==null?void 0:e.timeStamp,"time")})]})]}),Q.jsxs("footer",{children:[Q.jsx("span",{className:"status_indicator",style:{background:`linear-gradient(90deg, rgba(0,0,0,0), ${e==null?void 0:e.color})`}}),Q.jsx("p",{className:"font_secondary",children:e==null?void 0:e.severity})]})]})]})},lne={s:"18.75rem",m:"25rem",l:"31.25rem"},Y3=({className:e="",value:t=void 0,height:n="m",width:r="24rem",placement:o="flex-start",icon:i,backgroundColor:a,textColor:s,borderColor:l,disabledColor:u,iconPosition:d="after",iconColor:h="#292929",disabled:g=!1,onChange:m=()=>{},...v})=>(r=r||lne[n],Q.jsxs("div",{className:`input_wrapper h_${n} ${g?"disabled":""} icon_${d}`,style:{width:r,minWidth:r,justifyContent:o,"--c_input_text":s,"--c_input_border":l,"--c_input_background":a,"--c_input_background_disabled":u},children:[i&&Q.jsx(ki,{name:i,color:h}),Q.jsx("input",{disabled:g,className:`input ${e}`,value:t,onChange:m,...v})]}));var Sf={exports:{}};/*!
|
|
357
|
+
`):e}function kte(e,t){const{element:n,datasetIndex:r,index:o}=t,i=e.getDatasetMeta(r).controller,{label:a,value:s}=i.getLabelAndValue(o);return{chart:e,label:a,parsed:i.getParsed(o),raw:e.data.datasets[r].data[o],formattedValue:s,dataset:i.getDataset(),dataIndex:o,datasetIndex:r,element:n}}function bx(e,t){const n=e.chart.ctx,{body:r,footer:o,title:i}=e,{boxWidth:a,boxHeight:s}=t,l=e2(t.bodyFont),u=e2(t.titleFont),d=e2(t.footerFont),h=i.length,g=o.length,m=r.length,v=mo(t.padding);let A=v.height,p=0,w=r.reduce((E,S)=>E+S.before.length+S.lines.length+S.after.length,0);if(w+=e.beforeBody.length+e.afterBody.length,h&&(A+=h*u.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),w){const E=t.displayColors?Math.max(s,l.lineHeight):l.lineHeight;A+=m*E+(w-m)*l.lineHeight+(w-1)*t.bodySpacing}g&&(A+=t.footerMarginTop+g*d.lineHeight+(g-1)*t.footerSpacing);let y=0;const x=function(E){p=Math.max(p,n.measureText(E).width+y)};return n.save(),n.font=u.string,J1(e.title,x),n.font=l.string,J1(e.beforeBody.concat(e.afterBody),x),y=t.displayColors?a+2+t.boxPadding:0,J1(r,E=>{J1(E.before,x),J1(E.lines,x),J1(E.after,x)}),y=0,n.font=d.string,J1(e.footer,x),n.restore(),p+=v.width,{width:p,height:A}}function Dte(e,t){const{y:n,height:r}=t;return n<r/2?"top":n>e.height-r/2?"bottom":"center"}function Pte(e,t,n,r){const{x:o,width:i}=r,a=n.caretSize+n.caretPadding;if(e==="left"&&o+i+a>t.width||e==="right"&&o-i-a<0)return!0}function Nte(e,t,n,r){const{x:o,width:i}=n,{width:a,chartArea:{left:s,right:l}}=e;let u="center";return r==="center"?u=o<=(s+l)/2?"left":"right":o<=i/2?u="left":o>=a-i/2&&(u="right"),Pte(u,e,t,n)&&(u="center"),u}function _x(e,t,n){const r=n.yAlign||t.yAlign||Dte(e,n);return{xAlign:n.xAlign||t.xAlign||Nte(e,t,n,r),yAlign:r}}function Tte(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function Rte(e,t,n){let{y:r,height:o}=e;return t==="top"?r+=n:t==="bottom"?r-=o+n:r-=o/2,r}function yx(e,t,n,r){const{caretSize:o,caretPadding:i,cornerRadius:a}=e,{xAlign:s,yAlign:l}=n,u=o+i,{topLeft:d,topRight:h,bottomLeft:g,bottomRight:m}=V3(a);let v=Tte(t,s);const A=Rte(t,l,u);return l==="center"?s==="left"?v+=u:s==="right"&&(v-=u):s==="left"?v-=Math.max(d,g)+o:s==="right"&&(v+=Math.max(h,m)+o),{x:E0(v,0,r.width-t.width),y:E0(A,0,r.height-t.height)}}function Tc(e,t,n){const r=mo(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function xx(e){return Go([],Vi(e))}function Fte(e,t,n){return N9(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function wx(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const Ex={beforeTitle:Ri,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex<r)return n[t.dataIndex]}return""},afterTitle:Ri,beforeBody:Ri,beforeLabel:Ri,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return $1(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:Ri,afterBody:Ri,beforeFooter:Ri,footer:Ri,afterFooter:Ri};function t2(e,t,n,r){const o=e[t].call(n,r);return typeof o>"u"?Ex[t].call(n,r):o}let Sx=(Im=class extends Ta{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),o=r.enabled&&n.options.animation&&r.animations,i=new _y(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=Fte(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,o=t2(r,"beforeTitle",this,t),i=t2(r,"title",this,t),a=t2(r,"afterTitle",this,t);let s=[];return s=Go(s,Vi(o)),s=Go(s,Vi(i)),s=Go(s,Vi(a)),s}getBeforeBody(t,n){return xx(t2(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,o=[];return J1(t,i=>{const a={before:[],lines:[],after:[]},s=wx(r,i);Go(a.before,Vi(t2(s,"beforeLabel",this,i))),Go(a.lines,t2(s,"label",this,i)),Go(a.after,Vi(t2(s,"afterLabel",this,i))),o.push(a)}),o}getAfterBody(t,n){return xx(t2(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,o=t2(r,"beforeFooter",this,t),i=t2(r,"footer",this,t),a=t2(r,"afterFooter",this,t);let s=[];return s=Go(s,Vi(o)),s=Go(s,Vi(i)),s=Go(s,Vi(a)),s}_createItems(t){const n=this._active,r=this.chart.data,o=[],i=[],a=[];let s=[],l,u;for(l=0,u=n.length;l<u;++l)s.push(kte(this.chart,n[l]));return t.filter&&(s=s.filter((d,h,g)=>t.filter(d,h,g,r))),t.itemSort&&(s=s.sort((d,h)=>t.itemSort(d,h,r))),J1(s,d=>{const h=wx(t.callbacks,d);o.push(t2(h,"labelColor",this,d)),i.push(t2(h,"labelPointStyle",this,d)),a.push(t2(h,"labelTextColor",this,d))}),this.labelColors=o,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=s,s}update(t,n){const r=this.options.setContext(this.getContext()),o=this._active;let i,a=[];if(!o.length)this.opacity!==0&&(i={opacity:0});else{const s=n4[r.position].call(this,o,this._eventPosition);a=this._createItems(r),this.title=this.getTitle(a,r),this.beforeBody=this.getBeforeBody(a,r),this.body=this.getBody(a,r),this.afterBody=this.getAfterBody(a,r),this.footer=this.getFooter(a,r);const l=this._size=bx(this,r),u=Object.assign({},s,l),d=_x(this.chart,r,u),h=yx(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,i={opacity:1,x:h.x,y:h.y,width:l.width,height:l.height,caretX:s.x,caretY:s.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,o){const i=this.getCaretPosition(t,r,o);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(t,n,r){const{xAlign:o,yAlign:i}=this,{caretSize:a,cornerRadius:s}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:h}=V3(s),{x:g,y:m}=t,{width:v,height:A}=n;let p,w,y,x,E,S;return i==="center"?(E=m+A/2,o==="left"?(p=g,w=p-a,x=E+a,S=E-a):(p=g+v,w=p+a,x=E-a,S=E+a),y=p):(o==="left"?w=g+Math.max(l,d)+a:o==="right"?w=g+v-Math.max(u,h)-a:w=this.caretX,i==="top"?(x=m,E=x-a,p=w-a,y=w+a):(x=m+A,E=x+a,p=w+a,y=w-a),S=x),{x1:p,x2:w,x3:y,y1:x,y2:E,y3:S}}drawTitle(t,n,r){const o=this.title,i=o.length;let a,s,l;if(i){const u=$3(r.rtl,this.x,this.width);for(t.x=Tc(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",a=e2(r.titleFont),s=r.titleSpacing,n.fillStyle=r.titleColor,n.font=a.string,l=0;l<i;++l)n.fillText(o[l],u.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+s,l+1===i&&(t.y+=r.titleMarginBottom-s)}}_drawColorBox(t,n,r,o,i){const a=this.labelColors[r],s=this.labelPointStyles[r],{boxHeight:l,boxWidth:u}=i,d=e2(i.bodyFont),h=Tc(this,"left",i),g=o.x(h),m=l<d.lineHeight?(d.lineHeight-l)/2:0,v=n.y+m;if(i.usePointStyle){const A={radius:Math.min(u,l)/2,pointStyle:s.pointStyle,rotation:s.rotation,borderWidth:1},p=o.leftForLtr(g,u)+u/2,w=v+l/2;t.strokeStyle=i.multiKeyBackground,t.fillStyle=i.multiKeyBackground,Xd(t,A,p,w),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,Xd(t,A,p,w)}else{t.lineWidth=A1(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const A=o.leftForLtr(g,u),p=o.leftForLtr(o.xPlus(g,1),u-2),w=V3(a.borderRadius);Object.values(w).some(y=>y!==0)?(t.beginPath(),t.fillStyle=i.multiKeyBackground,vc(t,{x:A,y:v,w:u,h:l,radius:w}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),vc(t,{x:p,y:v+1,w:u-2,h:l-2,radius:w}),t.fill()):(t.fillStyle=i.multiKeyBackground,t.fillRect(A,v,u,l),t.strokeRect(A,v,u,l),t.fillStyle=a.backgroundColor,t.fillRect(p,v+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:o}=this,{bodySpacing:i,bodyAlign:a,displayColors:s,boxHeight:l,boxWidth:u,boxPadding:d}=r,h=e2(r.bodyFont);let g=h.lineHeight,m=0;const v=$3(r.rtl,this.x,this.width),A=function(O){n.fillText(O,v.x(t.x+m),t.y+g/2),t.y+=g+i},p=v.textAlign(a);let w,y,x,E,S,M,H;for(n.textAlign=a,n.textBaseline="middle",n.font=h.string,t.x=Tc(this,p,r),n.fillStyle=r.bodyColor,J1(this.beforeBody,A),m=s&&p!=="right"?a==="center"?u/2+d:u+2+d:0,E=0,M=o.length;E<M;++E){for(w=o[E],y=this.labelTextColors[E],n.fillStyle=y,J1(w.before,A),x=w.lines,s&&x.length&&(this._drawColorBox(n,t,E,v,r),g=Math.max(h.lineHeight,l)),S=0,H=x.length;S<H;++S)A(x[S]),g=h.lineHeight;J1(w.after,A)}m=0,g=h.lineHeight,J1(this.afterBody,A),t.y-=i}drawFooter(t,n,r){const o=this.footer,i=o.length;let a,s;if(i){const l=$3(r.rtl,this.x,this.width);for(t.x=Tc(this,r.footerAlign,r),t.y+=r.footerMarginTop,n.textAlign=l.textAlign(r.footerAlign),n.textBaseline="middle",a=e2(r.footerFont),n.fillStyle=r.footerColor,n.font=a.string,s=0;s<i;++s)n.fillText(o[s],l.x(t.x),t.y+a.lineHeight/2),t.y+=a.lineHeight+r.footerSpacing}}drawBackground(t,n,r,o){const{xAlign:i,yAlign:a}=this,{x:s,y:l}=t,{width:u,height:d}=r,{topLeft:h,topRight:g,bottomLeft:m,bottomRight:v}=V3(o.cornerRadius);n.fillStyle=o.backgroundColor,n.strokeStyle=o.borderColor,n.lineWidth=o.borderWidth,n.beginPath(),n.moveTo(s+h,l),a==="top"&&this.drawCaret(t,n,r,o),n.lineTo(s+u-g,l),n.quadraticCurveTo(s+u,l,s+u,l+g),a==="center"&&i==="right"&&this.drawCaret(t,n,r,o),n.lineTo(s+u,l+d-v),n.quadraticCurveTo(s+u,l+d,s+u-v,l+d),a==="bottom"&&this.drawCaret(t,n,r,o),n.lineTo(s+m,l+d),n.quadraticCurveTo(s,l+d,s,l+d-m),a==="center"&&i==="left"&&this.drawCaret(t,n,r,o),n.lineTo(s,l+h),n.quadraticCurveTo(s,l,s+h,l),n.closePath(),n.fill(),o.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,o=r&&r.x,i=r&&r.y;if(o||i){const a=n4[t.position].call(this,this._active,this._eventPosition);if(!a)return;const s=this._size=bx(this,t),l=Object.assign({},a,this._size),u=_x(n,t,l),d=yx(t,l,u,n);(o._to!==d.x||i._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=s.width,this.height=s.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},i={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const a=mo(n.padding),s=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&s&&(t.save(),t.globalAlpha=r,this.drawBackground(i,t,o,n),dy(t,n.textDirection),i.y+=a.top,this.drawTitle(i,t,n),this.drawBody(i,t,n),this.drawFooter(i,t,n),fy(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,o=t.map(({datasetIndex:s,index:l})=>{const u=this.chart.getDatasetMeta(s);if(!u)throw new Error("Cannot find a dataset at index "+s);return{datasetIndex:s,element:u.data[l],index:l}}),i=!dc(r,o),a=this._positionChanged(o,n);(i||a)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,i=this._active||[],a=this._getActiveElements(t,i,n,r),s=this._positionChanged(a,t),l=n||!dc(a,i)||s;return l&&(this._active=a,(o.enabled||o.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,o){const i=this.options;if(t.type==="mouseout")return[];if(!o)return n.filter(s=>this.chart.data.datasets[s.datasetIndex]&&this.chart.getDatasetMeta(s.datasetIndex).controller.getParsed(s.index)!==void 0);const a=this.chart.getElementsAtEventForMode(t,i.mode,i,r);return i.reverse&&a.reverse(),a}_positionChanged(t,n){const{caretX:r,caretY:o,options:i}=this,a=n4[i.position].call(this,t,n);return a!==!1&&(r!==a.x||o!==a.y)}},En(Im,"positioners",n4),Im);var wf={id:"tooltip",_element:Sx,positioners:n4,afterInit(e,t,n){n&&(e.tooltip=new Sx({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Ex},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const zte=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function jte(e,t,n,r){const o=e.indexOf(t);if(o===-1)return zte(e,t,n,r);const i=e.lastIndexOf(t);return o!==i?n:o}const Vte=(e,t)=>e===null?null:E0(Math.round(e),0,t);function Mx(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class r4 extends Q3{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const r=this.getLabels();for(const{index:o,label:i}of n)r[o]===i&&r.splice(o,1);this._addedLabels=[]}super.init(t)}parse(t,n){if($1(t))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===t?n:jte(r,t,h1(n,t),this._addedLabels),Vte(n,r.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:r,max:o}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(r=0),n||(o=this.getLabels().length-1)),this.min=r,this.max=o}buildTicks(){const t=this.min,n=this.max,r=this.options.offset,o=[];let i=this.getLabels();i=t===0&&n===i.length-1?i:i.slice(t,n+1),this._valueRange=Math.max(i.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let a=t;a<=n;a++)o.push({value:a});return o}getLabelForValue(t){return Mx.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}En(r4,"id","category"),En(r4,"defaults",{ticks:{callback:Mx}});function Ute(e,t){const n=[],{bounds:o,step:i,min:a,max:s,precision:l,count:u,maxTicks:d,maxDigits:h,includeBounds:g}=e,m=i||1,v=d-1,{min:A,max:p}=t,w=!$1(a),y=!$1(s),x=!$1(u),E=(p-A)/(h+1);let S=T_((p-A)/v/m)*m,M,H,O,D;if(S<1e-14&&!w&&!y)return[{value:A},{value:p}];D=Math.ceil(p/S)-Math.floor(A/S),D>v&&(S=T_(D*S/v/m)*m),$1(l)||(M=Math.pow(10,l),S=Math.ceil(S*M)/M),o==="ticks"?(H=Math.floor(A/S)*S,O=Math.ceil(p/S)*S):(H=A,O=p),w&&y&&i&&Xq((s-a)/i,S/1e3)?(D=Math.round(Math.min((s-a)/S,d)),S=(s-a)/D,H=a,O=s):x?(H=w?a:H,O=y?s:O,D=u-1,S=(O-H)/D):(D=(O-H)/S,js(D,Math.round(D),S/1e3)?D=Math.round(D):D=Math.ceil(D));const P=Math.max(R_(S),R_(H));M=Math.pow(10,$1(l)?P:l),H=Math.round(H*M)/M,O=Math.round(O*M)/M;let N=0;for(w&&(g&&H!==a?(n.push({value:a}),H<a&&N++,js(Math.round((H+N*S)*M)/M,a,Hx(a,E,e))&&N++):H<a&&N++);N<D;++N){const T=Math.round((H+N*S)*M)/M;if(y&&T>s)break;n.push({value:T})}return y&&g&&O!==s?n.length&&js(n[n.length-1].value,s,Hx(s,E,e))?n[n.length-1].value=s:n.push({value:s}):(!y||O===s)&&n.push({value:O}),n}function Hx(e,t,{horizontal:n,minRotation:r}){const o=Fi(r),i=(n?Math.sin(o):Math.cos(o))||.001,a=.75*t*(""+e).length;return Math.min(t/i,a)}class Zte extends Q3{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return $1(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:o,max:i}=this;const a=l=>o=n?o:l,s=l=>i=r?i:l;if(t){const l=Ko(o),u=Ko(i);l<0&&u<0?s(0):l>0&&u>0&&a(0)}if(o===i){let l=i===0?1:Math.abs(i*.05);s(i+l),t||a(o-l)}this.min=o,this.max=i}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,o;return r?(o=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const o={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},i=this._range||this,a=Ute(o,i);return t.bounds==="ticks"&&Jq(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const o=(r-n)/Math.max(t.length-1,1)/2;n-=o,r+=o}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return Gd(t,this.chart.options.locale,this.options.ticks.format)}}class o4 extends Zte{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=w0(t)?t:0,this.max=w0(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=Fi(this.options.ticks.minRotation),o=(t?Math.sin(r):Math.cos(r))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,i.lineHeight/o))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}En(o4,"id","linear"),En(o4,"defaults",{ticks:{callback:q_.formatters.numeric}});const Rc={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},n2=Object.keys(Rc);function Lx(e,t){return e-t}function Bx(e,t){if($1(t))return null;const n=e._adapter,{parser:r,round:o,isoWeekday:i}=e._parseOpts;let a=t;return typeof r=="function"&&(a=r(a)),w0(a)||(a=typeof r=="string"?n.parse(a,r):n.parse(a)),a===null?null:(o&&(a=o==="week"&&(Vs(i)||i===!0)?n.startOf(a,"isoWeek",i):n.startOf(a,o)),+a)}function Ox(e,t,n,r){const o=n2.length;for(let i=n2.indexOf(e);i<o-1;++i){const a=Rc[n2[i]],s=a.steps?a.steps:Number.MAX_SAFE_INTEGER;if(a.common&&Math.ceil((n-t)/(s*a.size))<=r)return n2[i]}return n2[o-1]}function $te(e,t,n,r,o){for(let i=n2.length-1;i>=n2.indexOf(n);i--){const a=n2[i];if(Rc[a].common&&e._adapter.diff(o,r,a)>=t-1)return a}return n2[n?n2.indexOf(n):0]}function Kte(e){for(let t=n2.indexOf(e)+1,n=n2.length;t<n;++t)if(Rc[n2[t]].common)return n2[t]}function Ix(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:r,hi:o}=Kd(n,t),i=n[r]>=t?n[r]:n[o];e[i]=!0}}function Qte(e,t,n,r){const o=e._adapter,i=+o.startOf(t[0].value,r),a=t[t.length-1].value;let s,l;for(s=i;s<=a;s=+o.add(s,1,r))l=n[s],l>=0&&(t[l].major=!0);return t}function kx(e,t,n){const r=[],o={},i=t.length;let a,s;for(a=0;a<i;++a)s=t[a],o[s]=a,r.push({value:s,major:!1});return i===0||!n?r:Qte(e,r,o,n)}class Fc extends Q3{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const r=t.time||(t.time={}),o=this._adapter=new DJ._date(t.adapters.date);o.init(n),Fs(r.displayFormats,o.formats()),this._parseOpts={parser:r.parser,round:r.round,isoWeekday:r.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:Bx(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,r=t.time.unit||"day";let{min:o,max:i,minDefined:a,maxDefined:s}=this.getUserBounds();function l(u){!a&&!isNaN(u.min)&&(o=Math.min(o,u.min)),!s&&!isNaN(u.max)&&(i=Math.max(i,u.max))}(!a||!s)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),o=w0(o)&&!isNaN(o)?o:+n.startOf(Date.now(),r),i=w0(i)&&!isNaN(i)?i:+n.endOf(Date.now(),r)+1,this.min=Math.min(o,i-1),this.max=Math.max(o+1,i)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],r=t[t.length-1]),{min:n,max:r}}buildTicks(){const t=this.options,n=t.time,r=t.ticks,o=r.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&o.length&&(this.min=this._userMin||o[0],this.max=this._userMax||o[o.length-1]);const i=this.min,a=this.max,s=oX(o,i,a);return this._unit=n.unit||(r.autoSkip?Ox(n.minUnit,this.min,this.max,this._getLabelCapacity(i)):$te(this,s.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:Kte(this._unit),this.initOffsets(o),t.reverse&&s.reverse(),kx(this,s,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,r=0,o,i;this.options.offset&&t.length&&(o=this.getDecimalForValue(t[0]),t.length===1?n=1-o:n=(this.getDecimalForValue(t[1])-o)/2,i=this.getDecimalForValue(t[t.length-1]),t.length===1?r=i:r=(i-this.getDecimalForValue(t[t.length-2]))/2);const a=t.length<3?.5:.25;n=E0(n,0,a),r=E0(r,0,a),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,o=this.options,i=o.time,a=i.unit||Ox(i.minUnit,n,r,this._getLabelCapacity(n)),s=h1(o.ticks.stepSize,1),l=a==="week"?i.isoWeekday:!1,u=Vs(l)||l===!0,d={};let h=n,g,m;if(u&&(h=+t.startOf(h,"isoWeek",l)),h=+t.startOf(h,u?"day":a),t.diff(r,n,a)>1e5*s)throw new Error(n+" and "+r+" are too far apart with stepSize of "+s+" "+a);const v=o.ticks.source==="data"&&this.getDataTimestamps();for(g=h,m=0;g<r;g=+t.add(g,s,a),m++)Ix(d,g,v);return(g===r||o.bounds==="ticks"||m===1)&&Ix(d,g,v),Object.keys(d).sort(Lx).map(A=>+A)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const o=this.options.time.displayFormats,i=this._unit,a=n||o[i];return this._adapter.format(t,a)}_tickFormatFunction(t,n,r,o){const i=this.options,a=i.ticks.callback;if(a)return hr(a,[t,n,r],this);const s=i.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&s[l],h=u&&s[u],g=r[n],m=u&&h&&g&&g.major;return this._adapter.format(t,o||(m?h:d))}generateTickLabels(t){let n,r,o;for(n=0,r=t.length;n<r;++n)o=t[n],o.label=this._tickFormatFunction(o.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,r=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+r)*n.factor)}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+r*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,r=this.ctx.measureText(t).width,o=Fi(this.isHorizontal()?n.maxRotation:n.minRotation),i=Math.cos(o),a=Math.sin(o),s=this._resolveTickFontOptions(0).size;return{w:r*i+s*a,h:r*a+s*i}}_getLabelCapacity(t){const n=this.options.time,r=n.displayFormats,o=r[n.unit]||r.millisecond,i=this._tickFormatFunction(t,0,kx(this,[t],this._majorUnit),o),a=this._getLabelSize(i),s=Math.floor(this.isHorizontal()?this.width/a.w:this.height/a.h)-1;return s>0?s:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,r=o.length;n<r;++n)t=t.concat(o[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,r;if(t.length)return t;const o=this.getLabels();for(n=0,r=o.length;n<r;++n)t.push(Bx(this,o[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return V_(t.sort(Lx))}}En(Fc,"id","time"),En(Fc,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function zc(e,t,n){let r=0,o=e.length-1,i,a,s,l;n?(t>=e[r].pos&&t<=e[o].pos&&({lo:r,hi:o}=k9(e,"pos",t)),{pos:i,time:s}=e[r],{pos:a,time:l}=e[o]):(t>=e[r].time&&t<=e[o].time&&({lo:r,hi:o}=k9(e,"time",t)),{time:i,pos:s}=e[r],{time:a,pos:l}=e[o]);const u=a-i;return u?s+(l-s)*(t-i)/u:s}class Dx extends Fc{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=zc(n,this.min),this._tableRange=zc(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,o=[],i=[];let a,s,l,u,d;for(a=0,s=t.length;a<s;++a)u=t[a],u>=n&&u<=r&&o.push(u);if(o.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(a=0,s=o.length;a<s;++a)d=o[a+1],l=o[a-1],u=o[a],Math.round((d+l)/2)!==u&&i.push({time:u,pos:a/(s-1)});return i}_generate(){const t=this.min,n=this.max;let r=super.getDataTimestamps();return(!r.includes(t)||!r.length)&&r.splice(0,0,t),(!r.includes(n)||r.length===1)&&r.push(n),r.sort((o,i)=>o-i)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(zc(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return zc(this._table,r*this._tableRange+this._minPos,!0)}}En(Dx,"id","timeseries"),En(Dx,"defaults",Fc.defaults);const Px="label";function Nx(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function Wte(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function Tx(e,t){e.labels=t}function Rx(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Px;const r=[];e.datasets=t.map(o=>{const i=e.datasets.find(a=>a[n]===o[n]);return!i||!o.data||r.includes(i)?{...o}:(r.push(i),Object.assign(i,o),i)})}function Gte(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Px;const n={labels:[],datasets:[]};return Tx(n,e.labels),Rx(n,e.datasets,t),n}function Yte(e,t){const{height:n=150,width:r=300,redraw:o=!1,datasetIdKey:i,type:a,data:s,options:l,plugins:u=[],fallbackContent:d,updateMode:h,...g}=e,m=I.useRef(null),v=I.useRef(null),A=()=>{m.current&&(v.current=new W3(m.current,{type:a,data:Gte(s,i),options:l&&{...l},plugins:u}),Nx(t,v.current))},p=()=>{Nx(t,null),v.current&&(v.current.destroy(),v.current=null)};return I.useEffect(()=>{!o&&v.current&&l&&Wte(v.current,l)},[o,l]),I.useEffect(()=>{!o&&v.current&&Tx(v.current.config.data,s.labels)},[o,s.labels]),I.useEffect(()=>{!o&&v.current&&s.datasets&&Rx(v.current.config.data,s.datasets,i)},[o,s.datasets]),I.useEffect(()=>{v.current&&(o?(p(),setTimeout(A)):v.current.update(h))},[o,l,s.labels,s.datasets,h]),I.useEffect(()=>{v.current&&(p(),setTimeout(A))},[a]),I.useEffect(()=>(A(),()=>p()),[]),I.createElement("canvas",{ref:m,role:"img",height:n,width:r,...g},d)}const qte=I.forwardRef(Yte);function jc(e,t){return W3.register(t),I.forwardRef((n,r)=>I.createElement(qte,{...n,ref:r,type:e}))}const Xte=jc("line",Sc),Jte=jc("bar",Ec),ene=jc("doughnut",K3),tne=jc("pie",uf);function nne({input:e,type:t,lineVariant:n,lineTension:r,opacity:o,lineStroke:i,colors:a}){const s=a,l=t==="doughnut"||t==="pie";return{labels:e.labels,datasets:e.datasets.map((u,d)=>{var h;return l?{label:u.label,data:u.data,backgroundColor:u.colors&&u.colors.length===u.data.length?(h=u.colors)==null?void 0:h.map(g=>Ef(g,o)):u.data.map((g,m)=>Ef(s[m%s.length],o)),borderColor:u.colors&&u.colors.length===u.data.length?u.colors:u.data.map((g,m)=>s[m%s.length]),borderWidth:2}:{label:u.label,data:u.data,backgroundColor:Ef(u.color||s[d%s.length],o),borderColor:u.color||s[d%s.length],borderWidth:t==="line"?i:1,fill:n=="fill",tension:r??.4}})}}function rne({barVariant:e,type:t}){const r={responsive:!0,plugins:{legend:{position:"bottom",labels:{font:{family:"Inter"},usePointStyle:!0,pointStyle:"circle",textAlign:"center"}},tooltip:{bodyFont:{family:"Inter"},titleFont:{family:"Inter"}}},scales:t==="doughnut"||t==="pie"?{}:{x:{ticks:{font:{family:"DM Mono"}},title:{font:{size:12,family:"Inter"}}},y:{ticks:{font:{family:"DM Mono"}},title:{font:{size:12,family:"Inter"}}}}};return t==="bar"&&e=="stacked"?Hs.merge({},r,{scales:{x:{stacked:!0},y:{stacked:!0}}}):r}function Ef(e,t=.1){if(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(e)){let r=e.substring(1);r.length===3&&(r=r.split("").map(s=>s+s).join(""));const o=parseInt(r.substring(0,2),16),i=parseInt(r.substring(2,4),16),a=parseInt(r.substring(4,6),16);return`rgba(${o}, ${i}, ${a}, ${t})`}else if(e.startsWith("rgba")){const[r,o,i]=e.substring(5,e.length-1).split(",").map(a=>a.trim()).slice(0,3);return`rgba(${r}, ${o}, ${i}, ${t})`}else if(e.startsWith("rgb")){const[r,o,i]=e.substring(4,e.length-1).split(",").map(a=>a.trim());return`rgba(${r}, ${o}, ${i}, ${t})`}else throw new Error(`Unsupported color format: ${e}`)}let Fx=!1;function one(){Fx||(W3.register(r4,o4,Nc,wf,xf),Fx=!0)}let zx=!1;function ine(){zx||(W3.register(t4,wf,xf,r4,o4),zx=!0)}let jx=!1;function ane(){jx||(W3.register(r4,o4,Pc,Ra,wf,xf,Mte),jx=!0)}const sne=({type:e,data:t,options:n,barVariant:r,lineVariant:o,lineTension:i,opacity:a=.1,lineStroke:s,width:l,height:u,backgroundColor:d,className:h="",colors:g=["#4e79a7","#f28e2b","#e15759","#76b7b2"]})=>{e==="line"?ane():e==="bar"?one():(e==="doughnut"||e==="pie")&&ine();const m=nne({input:t,type:e,lineVariant:o,lineTension:i,opacity:a,lineStroke:s,colors:g}),v=Hs.merge({maintainAspectRatio:!1},rne({type:e,barVariant:r}),n),p={line:Xte,bar:Jte,doughnut:ene,pie:tne}[e];return Q.jsx(p,{data:m,options:v,style:{width:l,height:u,backgroundColor:d},className:`awi-chart ${h}`})},Vc=(e,t)=>{const n=e;return isNaN(n.getTime())?"":t==="date"?n.toLocaleDateString(void 0,{day:"2-digit",month:"short",year:"numeric"}):n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0})},Vx=({data:e,className:t,isFocused:n=!1,borderColor:r="#eaebee",focusedBorderColor:o="#ffcc00",focusedBorderThickness:i="2px",width:a="100%",height:s="100%"})=>{const l=n?`${i} solid ${o}`:`1px solid ${r}`;return Q.jsxs("div",{className:"compact_event_card "+(t||"")+" "+(n?"focused":""),style:{width:a,height:s,border:l},children:[Q.jsx("img",{src:e==null?void 0:e.frameUrl,alt:"Alert"}),Q.jsxs("span",{className:"compact_event_card_content",children:[Q.jsx("header",{children:Q.jsx("h6",{children:e.appName})}),Q.jsxs("section",{className:"compact_event_card_details",children:[Q.jsx("h6",{children:e.location}),Q.jsxs("span",{children:[Q.jsx("p",{children:"Date"}),Q.jsx("h6",{title:Vc(e==null?void 0:e.timeStamp,"date"),children:Vc(e==null?void 0:e.timeStamp,"date")})]}),Q.jsxs("span",{children:[Q.jsx("p",{children:"Time"}),Q.jsx("h6",{title:Vc(e==null?void 0:e.timeStamp,"time"),className:"font_secondary",children:Vc(e==null?void 0:e.timeStamp,"time")})]})]}),Q.jsxs("footer",{children:[Q.jsx("span",{className:"status_indicator",style:{background:`linear-gradient(90deg, rgba(0,0,0,0), ${e==null?void 0:e.color})`}}),Q.jsx("p",{className:"font_secondary",children:e==null?void 0:e.severity})]})]})]})},lne={s:"18.75rem",m:"25rem",l:"31.25rem"},Y3=({className:e="",value:t=void 0,height:n="m",width:r="24rem",placement:o="flex-start",icon:i,backgroundColor:a,textColor:s,borderColor:l,disabledColor:u,iconPosition:d="after",iconColor:h="#292929",disabled:g=!1,onChange:m=()=>{},...v})=>(r=r||lne[n],Q.jsxs("div",{className:`input_wrapper h_${n} ${g?"disabled":""} icon_${d}`,style:{width:r,minWidth:r,justifyContent:o,"--c_input_text":s,"--c_input_border":l,"--c_input_background":a,"--c_input_background_disabled":u},children:[i&&Q.jsx(ki,{name:i,color:h}),Q.jsx("input",{disabled:g,className:`input ${e}`,value:t,onChange:m,...v})]}));var Sf={exports:{}};/*!
|
|
358
358
|
Copyright (c) 2018 Jed Watson.
|
|
359
359
|
Licensed under the MIT License (MIT), see
|
|
360
360
|
http://jedwatson.github.io/classnames
|