@grapecity/wijmo.chart 5.20252.44 → 5.20261.48

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/es2015-esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20252.44
3
+ * Wijmo Library 5.20261.48
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -11,4 +11,4 @@
11
11
  *
12
12
  */
13
13
 
14
- import{Point,Size,Rect,asEnum,asString,isNumber,asNumber,isString,assert,asBoolean,setCss,tryCast,DataType,isDate,isArray,Event,asType,copy,asFunction,Binding,EventArgs,asCollectionView,asInt,ObservableArray,Globalize,asDate,removeChild,isIE,hasClass,addClass,UtilitesClsNames,asArray,clamp,isUndefined,getElementRect,toggleClass,removeClass,isFunction,ControlClsNames,format,Control,Tooltip,CancelEventArgs,Color,mouseToPage,ControlStateClsNames,animate,_registerModule}from"@grapecity/wijmo";import*as selfModule from"@grapecity/wijmo.chart";export class _VolumeHelper{constructor(t,e,i,s,r){this._volumes=asArray(t);this._xVals=asArray(e);this._xDataMin=asNumber(i,!0,!1);this._xDataMax=asNumber(s,!0,!1);this._xDataType=asEnum(r,DataType,!0);this._calcData=[];this._init()}convert(t,e,i){var s=void 0,r=this._calcData.length,a=-1;if(this._hasXs&&this._xDataType===DataType.Date){if(-1===(a=this._xVals.indexOf(t)))for(var n=0;n<this._xVals.length;n++){if(n<this._xVals.length-1&&this._xVals[n]<=t&&t<=this._xVals[n+1]){a=n;break}if(0===n&&t<=this._xVals[n]){a=n;break}if(n===this._xVals.length-1&&this._xVals[n]<=t){a=n;break}}if(-1===a){a=this._xVals.indexOf(Math.floor(t));a=clamp(a,0,r-1)}}else if(this._hasXs){if(-1===(a=this._xVals.indexOf(t))){a=this._xVals.indexOf(Math.floor(t));a=clamp(a,0,r-1)}}else a=clamp(Math.round(t),0,r-1);if(0<=a&&a<r){this._hasXs&&(t=_VolumeHelper.convertToRange(t,0,r-1,this._xDataMin,this._xDataMax));s=((s=this._calcData[a].value+(t-a)*this._calcData[a].width-.5*this._calcData[a].width)-(e=this._getXVolume(e)))/((i=this._getXVolume(i))-e)}return s}convertBack(t,e,i){var s,r=void 0,a=this._calcData.length,n=-1;for(s=0;s<a;s++)if(this._calcData[s].x1<=t&&t<=this._calcData[s].x2||0===s&&t<=this._calcData[s].x2||s===a-1&&this._calcData[s].x1<=t){n=s;break}if(0<=n&&n<a){r=t/this._calcData[n].width-this._calcData[n].value/this._calcData[n].width+.5+s;this._hasXs&&(r=_VolumeHelper.convertToRange(r,this._xDataMin,this._xDataMax,0,a-1))}return r}_init(){this._hasXs=null!==this._xVals&&this._xVals.length>0;this._hasXs&&!isNumber(this._xDataMin)&&(this._xDataMin=Math.min.apply(null,this._xVals));this._hasXs&&!isNumber(this._xDataMax)&&(this._xDataMax=Math.max.apply(null,this._xVals));this._hasXs&&(this._hasXs=isNumber(this._xDataMin)&&isNumber(this._xDataMax));this._hasXs&&this._xDataType===DataType.Date&&this._fillGaps();var t=0,e=0,i=null!==this._volumes&&this._volumes.length>0?this._volumes.length:0;for(e=0;e<i;e++)t+=this._volumes[e]||0;var s,r,a=0;for(e=0;e<i;e++){s=a+(r=(this._volumes[e]||0)/t);this._calcData.push({value:s,width:r,x1:a,x2:s});a=this._calcData[e].value}}_getXVolume(t){var e=this._calcData.length,i=-1;if(this._hasXs){i=this._xVals.indexOf(t);for(var s=0;s<this._xVals.length;s++){if(s<this._xVals.length-1&&this._xVals[s]<=t&&t<=this._xVals[s+1]){i=s;break}if(0===s&&t<=this._xVals[s]){i=s;break}if(s===this._xVals.length-1&&this._xVals[s]<=t){i=s;break}}}this._hasXs&&(t=_VolumeHelper.convertToRange(t,0,e-1,this._xDataMin,this._xDataMax));-1===i&&(i=clamp(Math.round(t),0,e-1));return this._calcData[i].value+(t-i)*this._calcData[i].width-.5*this._calcData[i].width}static convertToRange(t,e,i,s,r){return e===i||s===r?0:(t-s)*(i-e)/(r-s)+e}_fillGaps(){if(!(this._xDataType!==DataType.Date||null===this._xVals||this._xVals.length<=0)){var t,e=this._xDataMin,i=this._xDataMax;for(t=1;e<i;t++){(e=new Date(e)).setDate(e.getDate()+1);if((e=e.valueOf())!==this._xVals[t]){this._xVals.splice(t,0,e);this._volumes.splice(t,0,0)}}}}}export class _Curve{constructor(t,e,i,s){this.monoX=!1;this.monoY=!1;let r=i||Math.min(t.length,e.length),a=0,n=0,h=0,l=0;if(r>3)for(var o=0;o<r-1;o++)if(o>0){n=Math.min(n,t[o]-t[o-1]);a=Math.max(a,t[o]-t[o-1]);l=Math.min(l,e[o]-e[o-1]);h=Math.max(h,e[o]-e[o-1])}this.monoX=a>0&&0===n||n<0&&0===a;this.monoY=h>0&&0===l||l<0&&0===h;this.monoX&&"spline"!==s?this.calc=n<0?new _SplineMono(t.reverse(),e.reverse(),i):new _SplineMono(t,e,i):this.calc=new _Spline(t,e,i)}calculate(){return this.calc.calculate()}}export class _Spline{constructor(t,e,i){this.k=.002;this._a=[];this._b=[];this._c=[];this._d=[];this.m=[[-.5,1.5,-1.5,.5],[1,-2.5,2,-.5],[-.5,0,.5,0],[0,1,0,0]];this._x=t;this._y=e;let s=this._len=i||Math.min(t.length,e.length);if(s>3)for(var r=0;r<s-1;r++){var a=0==r?new Point(t[r],e[r]):new Point(t[r-1],e[r-1]),n=new Point(t[r],e[r]),h=new Point(t[r+1],e[r+1]),l=r==s-2?new Point(t[r+1],e[r+1]):new Point(t[r+2],e[r+2]),o=new Point,_=new Point,d=new Point,c=new Point;o.x=a.x*this.m[0][0]+n.x*this.m[0][1]+h.x*this.m[0][2]+l.x*this.m[0][3];_.x=a.x*this.m[1][0]+n.x*this.m[1][1]+h.x*this.m[1][2]+l.x*this.m[1][3];d.x=a.x*this.m[2][0]+n.x*this.m[2][1]+h.x*this.m[2][2]+l.x*this.m[2][3];c.x=a.x*this.m[3][0]+n.x*this.m[3][1]+h.x*this.m[3][2]+l.x*this.m[3][3];o.y=a.y*this.m[0][0]+n.y*this.m[0][1]+h.y*this.m[0][2]+l.y*this.m[0][3];_.y=a.y*this.m[1][0]+n.y*this.m[1][1]+h.y*this.m[1][2]+l.y*this.m[1][3];d.y=a.y*this.m[2][0]+n.y*this.m[2][1]+h.y*this.m[2][2]+l.y*this.m[2][3];c.y=a.y*this.m[3][0]+n.y*this.m[3][1]+h.y*this.m[3][2]+l.y*this.m[3][3];this._a.push(o);this._b.push(_);this._c.push(d);this._d.push(c)}}calculatePoint(t){var e=Math.floor(t);e<0&&(e=0);e>this._len-2&&(e=this._len-2);var i=t-e;return{x:((this._a[e].x*i+this._b[e].x)*i+this._c[e].x)*i+this._d[e].x,y:((this._a[e].y*i+this._b[e].y)*i+this._c[e].y)*i+this._d[e].y}}calculate(){if(this._len<=3)return{xs:this._x,ys:this._y};let t=[],e=[],i=this.calculatePoint(0);t.push(i.x);e.push(i.y);const s=Math.min(this._len*this.k,.2);for(let r=s;r<=this._len-1;r+=s){let a=Math.ceil(r),n=this.calculatePoint(r);if(Math.abs(i.x-n.x)>=3||Math.abs(i.y-n.y)>=3){t.push(n.x);e.push(n.y);i=n}if(r+s>=a){t.push(this._x[a]);e.push(this._y[a])}}return{xs:t,ys:e}}}class _SplineMono{constructor(t,e,i){this._x=[];this._y=[];this._c1s=[];this._c2s=[];this._c3s=[];let s=this._len=i||Math.min(t.length,e.length);for(let i=0;i<s;i++){this._x.push(t[i]);this._y.push(e[i])}t=this._x;e=this._y;if(this._len<=3)return;let r=[],a=[],n=[];for(let i=0;i<s-1;i++){var h=t[i+1]-t[i],l=e[i+1]-e[i];a[i]=h;r[i]=l;n[i]=l/h}var o=this._c1s;o.push(n[0]);for(let t=0;t<a.length-1;t++){var _=n[t],d=n[t+1];if(_*d<=0)o.push(0);else{var c=a[t],u=a[t+1],g=c+u;o.push(3*g/((g+u)/_+(g+c)/d))}}o.push(n[n.length-1]);let f=this._c2s,p=this._c3s;for(let t=0;t<o.length-1;t++){var m=o[t],x=n[t],v=1/a[t],b=m+o[t+1]-x-x;f[t]=(x-m-b)*v;p[t]=b*v*v}}interpolate(t){let e=this._x.length-1;if(t>=this._x[e])return this._y[e];for(var i,s=0,r=this._c3s.length-1;s<=r;){i=Math.floor(.5*(s+r));var a=this._x[i];if(a<t)s=i+1;else{if(!(a>t))return this._y[i];r=i-1}}e=Math.max(0,r);var n=t-this._x[e];return this._y[e]+n*(this._c1s[e]+n*(this._c2s[e]+n*this._c3s[e]))}calculate(){if(this._len<=3)return{xs:this._x,ys:this._y};let t=[],e=[];const i=this._len,s=this._x[0],r=this._x[i-1],a=Math.min(.001*this._len,.2);for(let i=s;i<=r;i+=a){t.push(i);e.push(this.interpolate(i))}return{xs:t,ys:e}}}export const AxisClsNames={axisX:"wj-axis-x",axisXLabels:"wj-axis-x-labels",axisY:"wj-axis-y",axisYLabels:"wj-axis-y-labels",gridline:"wj-gridline",gridlineMinor:"wj-gridline-minor",line:"wj-line",tick:"wj-tick",tickMinor:"wj-tick-minor"};export const DataLabelClsNames={border:"wj-data-label-border",label:"wj-data-label",labels:"wj-data-labels",line:"wj-data-label-line"};export const FlexChartClsNames={footer:"wj-footer",header:"wj-header",hostElement:"wj-flexchart",label:"wj-label",legend:"wj-legend",plotArea:"wj-plot-area",title:"wj-title",touchDisabled:"wj-flexchart-touch-disabled"};export const FlexPieClsNames={hostElement:"wj-flexpie",slice:"wj-slice",sliceGroup:"wj-slice-group"};export const LegendClsNames={legend:"wj-legend",title:"wj-title"};export const LineMarkerClsNames={container:"wj-chart-linemarker-container",content:"wj-chart-linemarker-content",draggable:"wj-chart-linemarker-draggable",hline:"wj-chart-linemarker-hline",linemarker:"wj-chart-linemarker",vline:"wj-chart-linemarker-vline"};export const SeriesClsNames={group:"wj-series-group"};export class Palettes{static _isExtended(t){return-1!==this._values(Palettes.Diverging).indexOf(t)||-1!==this._values(Palettes.Qualitative).indexOf(t)||-1!==this._values(Palettes.SequentialSingle).indexOf(t)||-1!==this._values(Palettes.SequentialMulti).indexOf(t)}static _values(t){return Object.keys(t).map(e=>t[e])}}Palettes.standard=["#88bde6","#fbb258","#90cd97","#f6aac9","#bfa554","#bc99c7","#eddd46","#f07e6e","#8c8c8c"];Palettes.cocoa=["#466bb0","#c8b422","#14886e","#b54836","#6e5944","#8b3872","#73b22b","#b87320","#141414"];Palettes.coral=["#84d0e0","#f48256","#95c78c","#efa5d6","#ba8452","#ab95c2","#ede9d0","#e96b7d","#888888"];Palettes.dark=["#005fad","#f06400","#009330","#e400b1","#b65800","#6a279c","#d5a211","#dc0127","#000000"];Palettes.highcontrast=["#ff82b0","#0dda2c","#0021ab","#bcf28c","#19c23b","#890d3a","#607efd","#1b7700","#000000"];Palettes.light=["#ddca9a","#778deb","#cb9fbb","#b5eae2","#7270be","#a6c7a7","#9e95c7","#95b0c7","#9b9b9b"];Palettes.midnight=["#83aaca","#e37849","#14a46a","#e097da","#a26d54","#a584b7","#d89c54","#e86996","#2c343b"];Palettes.modern=["#2d9fc7","#ec993c","#89c235","#e377a4","#a68931","#a672a6","#d0c041","#e35855","#68706a"];Palettes.organic=["#9c88d9","#a3d767","#8ec3c0","#e9c3a9","#91ab36","#d4ccc0","#61bbd8","#e2d76f","#80715a"];Palettes.slate=["#7493cd","#f99820","#71b486","#e4a491","#cb883b","#ae83a4","#bacc5c","#e5746a","#505d65"];Palettes.zen=["#7bb5ae","#e2d287","#92b8da","#eac4cb","#7b8bbd","#c7d189","#b9a0c8","#dfb397","#a9a9a9"];Palettes.cyborg=["#2a9fd6","#77b300","#9933cc","#ff8800","#cc0000","#00cca3","#3d6dcc","#525252","#000000"];Palettes.superhero=["#5cb85c","#f0ad4e","#5bc0de","#d9534f","#9f5bde","#46db8c","#b6b86e","#4e5d6c","#2b3e4b"];Palettes.flatly=["#18bc9c","#3498db","#f39c12","#6cc1be","#99a549","#8f54b5","#e74c3c","#8a9899","#2c3e50"];Palettes.darkly=["#375a7f","#00bc8c","#3498db","#f39c12","#e74c3c","#8f61b3","#b08725","#4a4949","#000000"];Palettes.cerulan=["#033e76","#87c048","#59822c","#53b3eb","#fc6506","#d42323","#e3bb00","#cccccc","#222222"];Palettes.Qualitative={Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"]};Palettes.Diverging={BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]};Palettes.SequentialSingle={Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]};Palettes.SequentialMulti={BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]};export const empty={};export class PlotArea{constructor(t){this._row=0;this._col=0;this._rect=new Rect(0,0,0,0);copy(this,t)}get row(){return this._row}set row(t){if(t!=this._row){this._row=asInt(t,!0,!0);this._invalidate()}}get column(){return this._col}set column(t){if(t!=this._col){this._col=asInt(t,!0,!0);this._invalidate()}}get name(){return this._name}set name(t){t!=this._name&&(this._name=asString(t,!0))}get width(){return this._width}set width(t){if(t!=this._width){this._width=t;this._invalidate()}}get height(){return this._height}set height(t){if(t!=this._height){this._height=t;this._invalidate()}}get style(){return this._style}set style(t){if(t!=this._style){this._style=t;this._invalidate()}}_invalidate(){this._chart&&this._chart.invalidate()}_render(t){t.drawRect(this._rect.left,this._rect.top,this._rect.width,this._rect.height,null,this.style)}_setPlotX(t,e){this._rect.left=t;this._rect.width=e}_setPlotY(t,e){this._rect.top=t;this._rect.height=e}}export class PlotAreaCollection extends ObservableArray{getPlotArea(t){var e=this.indexOf(t);return e>-1?this[e]:null}indexOf(t){for(var e=0;e<this.length;e++)if(this[e].name==t)return e;return-1}_getWidth(t){for(var e=0;e<this.length;e++){var i=this[e];if(i.column==t&&0==i.row)return i.width}}_getHeight(t){for(var e=0;e<this.length;e++){var i=this[e];if(i.row==t&&0==i.column)return i.height}}_calculateWidths(t,e){if(e<=0)throw"ncols";for(var i=[],s=0;s<e;s++){var r=this._getWidth(s);i[s]=new _GridLength(r)}return this._calculateLengths(t,e,i)}_calculateHeights(t,e){if(e<=0)throw"nrows";for(var i=[],s=0;s<e;s++){var r=this._getHeight(s);i[s]=new _GridLength(r)}return this._calculateLengths(t,e,i)}_calculateLengths(t,e,i){for(var s=[e],r=0,a=0,n=0;n<e;n++)if(i[n].isAbsolute){s[n]=i[n].value;r+=s[n]}else i[n].isStar?a+=i[n].value:i[n].isAuto&&a++;var h=(t-r)/a;for(n=0;n<e;n++){i[n].isStar?s[n]=h*i[n].value:i[n].isAuto&&(s[n]=h);s[n]<0&&(s[n]=0)}return s}}var _GridUnitType;!function(t){t[t.Auto=0]="Auto";t[t.Pixel=1]="Pixel";t[t.Star=2]="Star"}(_GridUnitType||(_GridUnitType={}));class _GridLength{constructor(t=null){this._unitType=_GridUnitType.Auto;if(t)if((t=t.toString()).indexOf("*")>=0){this._unitType=_GridUnitType.Star;t=t.replace("*","");this._value=parseFloat(t);isNaN(this._value)&&(this._value=1)}else{this._unitType=_GridUnitType.Pixel;this._value=parseFloat(t);if(isNaN(this._value)){this._unitType=_GridUnitType.Auto;this._value=1}}}get value(){return this._value}get isStar(){return this._unitType==_GridUnitType.Star}get isAbsolute(){return this._unitType==_GridUnitType.Pixel}get isAuto(){return this._unitType==_GridUnitType.Auto}}export class _SvgRenderEngine{constructor(t){this._STROKE_JOIN="round";this._strokeWidth=1;this._fontSize=null;this._fontFamily=null;this._savedGradient={};this._bbCache={};this._baseUrl="";this._cssPriority=!0;this._readOnly=!1;this._isRtl=!1;this._precision=1;this._options=null;this._htmlText=!1;this._element=t;this._create();this._element&&this._element.appendChild(this._svg);let e=navigator.userAgent.toLowerCase();void 0===_SvgRenderEngine._isff&&(_SvgRenderEngine._isff=e.indexOf("firefox")>=0);void 0===_SvgRenderEngine._isSafari&&(_SvgRenderEngine._isSafari=e.indexOf("safari")>-1&&-1==e.indexOf("chrome"))}attach(t){this._element=t;if(t){t.insertBefore(this._svg,t.childNodes[0]);t.appendChild(this._svg)}}detach(){this._element&&this._element.removeChild(this._svg);for(;this._svg.firstChild;)removeChild(this._svg.firstChild)}beginRender(){for(;this._svg.firstChild;)removeChild(this._svg.firstChild);this._savedGradient={};this._bbCache={};this._svg.appendChild(this._defs);this._svg.appendChild(this._textGroup);this._isRtl=this._checkRtl()}endRender(){removeChild(this._textGroup)}setViewportSize(t,e){this._svg.setAttribute("width",t.toString());this._svg.setAttribute("height",e.toString())}get element(){return this._svg}get fill(){return this._fill}set fill(t){this._fill=t}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily=t}get stroke(){return this._stroke}set stroke(t){this._stroke=t}get strokeWidth(){return this._strokeWidth}set strokeWidth(t){this._strokeWidth=void 0===t?null:t}get textFill(){return this._textFill}set textFill(t){this._textFill=t}get cssPriority(){return this._cssPriority}set cssPriority(t){this._cssPriority=t}get readOnly(){return this._readOnly}set readOnly(t){this._readOnly=t}get precision(){return this._precision}set precision(t){this._precision=asNumber(t)}get group(){return this._group}get options(){return this._options}set options(t){this._options=t}addClipRect(t,e){if(t&&e){let r=this.precision;var i=document.createElementNS(_SvgRenderEngine.svgNS,"clipPath"),s=document.createElementNS(_SvgRenderEngine.svgNS,"rect");s.setAttribute("x",(t.left-1).toFixed(r));s.setAttribute("y",(t.top-1).toFixed(r));s.setAttribute("width",(t.width+2).toFixed(r));s.setAttribute("height",(t.height+2).toFixed(r));i.appendChild(s);i.setAttribute("id",e);this._svg.appendChild(i)}}drawEllipse(t,e,i,s,r,a){let n=document.createElementNS(_SvgRenderEngine.svgNS,"ellipse"),h=this.precision;this._applyColor(n,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(n,"stroke-width",this._strokeWidth.toString());this._applyColor(n,"fill",this._fill);n.setAttribute("cx",t.toFixed(h));n.setAttribute("cy",e.toFixed(h));n.setAttribute("rx",i.toFixed(h));n.setAttribute("ry",s.toFixed(h));r&&n.setAttribute("class",r);this._applyStyle(n,a);this._appendChild(n);return n}drawRect(t,e,i,s,r,a,n){let h=document.createElementNS(_SvgRenderEngine.svgNS,"rect"),l=this.precision;this._applyColor(h,"fill",this._fill);this._applyColor(h,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(h,"stroke-width",this._strokeWidth.toString());h.setAttribute("x",t.toFixed(l));isNaN(Number(e))||h.setAttribute("y",e.toFixed(l));i>0&&i<.05?h.setAttribute("width","0.1"):h.setAttribute("width",i.toFixed(l));s>0&&s<.05?h.setAttribute("height","0.1"):h.setAttribute("height",s.toFixed(l));n&&this._setClipPath(h,n);r&&h.setAttribute("class",r);this._applyStyle(h,a);this._appendChild(h);return h}drawLine(t,e,i,s,r,a){let n=document.createElementNS(_SvgRenderEngine.svgNS,"line"),h=this.precision;this._applyColor(n,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(n,"stroke-width",this._strokeWidth.toString());n.setAttribute("x1",t.toFixed(h));n.setAttribute("x2",i.toFixed(h));n.setAttribute("y1",e.toFixed(h));n.setAttribute("y2",s.toFixed(h));r&&n.setAttribute("class",r);this._applyStyle(n,a);this._appendChild(n);return n}drawLines(t,e,i,s,r,a){if(t&&e){var n=a||Math.min(t.length,e.length);if(n>0){let a=document.createElementNS(_SvgRenderEngine.svgNS,"polyline"),o=this.precision;this._applyColor(a,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(a,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(a,"stroke-linejoin",this._STROKE_JOIN)}a.setAttribute("fill","none");for(var h="",l=0;l<n;l++)h+=t[l].toFixed(o)+","+e[l].toFixed(o)+" ";a.setAttribute("points",h);i&&a.setAttribute("class",i);r&&this._setClipPath(a,r);this._applyStyle(a,s);this._appendChild(a);return a}}return null}drawSplines(t,e,i,s,r,a){if(t&&e){var n=new _Curve(t,e,a,this._options&&this._options.spline).calculate(),h=n.xs,l=n.ys,o=Math.min(h.length,l.length);if(o>0){let t=document.createElementNS(_SvgRenderEngine.svgNS,"polyline"),e=this.precision;this._applyColor(t,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(t,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(t,"stroke-linejoin",this._STROKE_JOIN)}t.setAttribute("fill","none");for(var _="",d=0;d<o;d++)_+=h[d].toFixed(e)+","+l[d].toFixed(e)+" ";t.setAttribute("points",_);i&&t.setAttribute("class",i);r&&this._setClipPath(t,r);this._applyStyle(t,s);this._appendChild(t);return t}}return null}drawPolygon(t,e,i,s,r){if(t&&e){var a=Math.min(t.length,e.length);if(a>0){let l=document.createElementNS(_SvgRenderEngine.svgNS,"polygon"),o=this.precision;this._applyColor(l,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(l,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(l,"stroke-linejoin",this._STROKE_JOIN)}this._applyColor(l,"fill",this._fill);for(var n="",h=0;h<a;h++)n+=t[h].toFixed(o)+","+e[h].toFixed(o)+" ";l.setAttribute("points",n);i&&l.setAttribute("class",i);r&&this._setClipPath(l,r);this._applyStyle(l,s);this._appendChild(l);return l}}return null}drawPieSegment(t,e,i,s,r,a,n,h){if(r>=2*Math.PI)return this.drawEllipse(t,e,i,i,a,n);let l=document.createElementNS(_SvgRenderEngine.svgNS,"path"),o=this.precision;this._applyColor(l,"fill",this._fill);this._applyColor(l,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(l,"stroke-width",this._strokeWidth.toString());var _=new Point(t,e);_.x+=i*Math.cos(s);_.y+=i*Math.sin(s);var d=s+r,c=new Point(t,e);c.x+=i*Math.cos(d);c.y+=i*Math.sin(d);var u=" 0 0,1 ";Math.abs(r)>Math.PI&&(u=" 0 1,1 ");var g="M "+_.x.toFixed(o)+","+_.y.toFixed(o);g+=" A "+i.toFixed(o)+","+i.toFixed(o)+u;g+=c.x.toFixed(o)+","+c.y.toFixed(o);g+=" L "+t.toFixed(o)+","+e.toFixed(o)+" z";l.setAttribute("d",g);h&&this._setClipPath(l,h);a&&l.setAttribute("class",a);this._applyStyle(l,n);this._appendChild(l);return l}drawDonutSegment(t,e,i,s,r,a,n,h,l){var o=!1;if(a>=2*Math.PI){o=!0;a-=.001}let _=document.createElementNS(_SvgRenderEngine.svgNS,"path"),d=this.precision+2;this._applyColor(_,"fill",this._fill);this._applyColor(_,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(_,"stroke-width",this._strokeWidth.toString());var c=new Point(t,e);c.x+=i*Math.cos(r);c.y+=i*Math.sin(r);var u=r+a,g=new Point(t,e);g.x+=i*Math.cos(u);g.y+=i*Math.sin(u);var f=new Point(t,e);f.x+=s*Math.cos(u);f.y+=s*Math.sin(u);var p=new Point(t,e);p.x+=s*Math.cos(r);p.y+=s*Math.sin(r);var m=" 0 0,1 ",x=" 0 0,0 ";if(Math.abs(a)>Math.PI){m=" 0 1,1 ";x=" 0 1,0 "}var v="M "+c.x.toFixed(d)+","+c.y.toFixed(d);v+=" A "+i.toFixed(d)+","+i.toFixed(d)+m;v+=g.x.toFixed(d)+","+g.y.toFixed(d);v+=o?" M "+f.x.toFixed(d)+","+f.y.toFixed(d):" L "+f.x.toFixed(d)+","+f.y.toFixed(d);v+=" A "+s.toFixed(d)+","+s.toFixed(d)+x;v+=p.x.toFixed(d)+","+p.y.toFixed(d);o||(v+=" z");_.setAttribute("d",v);l&&this._setClipPath(_,l);n&&_.setAttribute("class",n);this._applyStyle(_,h);this._appendChild(_);return _}drawString(t,e,i,s){return this._isHtmlString(t)?this._drawStringHtml(t,e,i,s):this._drawString(t,e,i,s)}_isHtmlString(t){return this._htmlText&&/<\/?[a-z][\s\S]*>/i.test(t)}_drawString(t,e,i,s){let r=this._createText(e,t),a=this.precision;i&&r.setAttribute("class",i);this._applyStyle(r,s);this._appendChild(r);var n,h=this._getKey(t,i,this._groupCls);if(this._bbCache[h]){n=this._bbCache[h];r.setAttribute("y",(e.y-(n.y+n.height)).toFixed(a))}else{n=this._getBBox(r);r.setAttribute("y",(e.y-(n.y+n.height-e.y)).toFixed(a))}this._isRtl&&!isIE()&&r.setAttribute("x",(e.x+n.width).toFixed(a));return r}_drawStringHtml(t,e,i,s){const r=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");r.setAttribute("width","1000");r.setAttribute("height","100");r.setAttribute("x",e.x.toFixed(2));const a=document.createElement("span"),n=this._groupCls;n&&addClass(a,n);i&&addClass(a,i);this._applyStyle(a,s);a.innerHTML=t;r.appendChild(a);this._appendChild(r);const h=a.getBoundingClientRect();r.setAttribute("width",Math.ceil(h.width+2).toFixed(2));r.setAttribute("height",Math.ceil(h.height+1).toFixed(2));r.setAttribute("y",(e.y-h.height).toFixed(2));return r}drawStringRotated(t,e,i,s,r,a){return this._isHtmlString(t)?this._drawStringRotatedHtml(t,e,i,s,r,a):this._drawStringRotated(t,e,i,s,r,a)}_drawStringRotated(t,e,i,s,r,a){let n=this._createText(e,t),h=this.precision;r&&n.setAttribute("class",r);this._applyStyle(n,a);var l=document.createElementNS(_SvgRenderEngine.svgNS,"g");l.setAttribute("transform","rotate("+s.toFixed(h)+","+i.x.toFixed(h)+","+i.y.toFixed(h)+")");l.appendChild(n);this._appendChild(l);var o=this._getBBox(n);n.setAttribute("y",(e.y-(o.y+o.height-e.y)).toFixed(h));this._isRtl&&!isIE()&&n.setAttribute("x",(e.x+o.width).toFixed(h));return n}_drawStringRotatedHtml(t,e,i,s,r,a){let n=this.precision;const h=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");h.setAttribute("width","1000");h.setAttribute("height","100");h.setAttribute("x",e.x.toFixed(2));const l=document.createElement("span"),o=this._groupCls;o&&addClass(l,o);r&&addClass(l,r);this._applyStyle(l,a);l.innerHTML=t;h.appendChild(l);this._appendChild(h);const _=l.getBoundingClientRect();h.setAttribute("width",Math.ceil(_.width+2).toFixed(2));h.setAttribute("height",Math.ceil(_.height+1).toFixed(2));h.setAttribute("y",(e.y-_.height).toFixed(2));var d=document.createElementNS(_SvgRenderEngine.svgNS,"g");d.setAttribute("transform","rotate("+s.toFixed(n)+","+i.x.toFixed(n)+","+i.y.toFixed(n)+")");d.appendChild(h);this._appendChild(d);return h}measureString(t,e,i,s){return this._isHtmlString(t)?this._measureStringHtml(t,e,i,s):this._measureString(t,e,i,s)}_measureString(t,e,i,s){var r=new Size(0,0);if(!this._fontFamily&&!this._fontSize){let s=this._getKey(t,e,i);if(this._bbCache[s])return this._bbCache[s]}if(this.cssPriority){this._fontSize&&this._text.setAttribute("font-size",this._fontSize);this._fontFamily&&this._text.setAttribute("font-family",this._fontFamily)}else{let t={};this._fontSize&&(t.fontSize=this._fontSize);this._fontFamily&&(t.fontFamily=this._fontFamily);Object.keys(t).length>0&&setCss(this._text,t)}e&&this._text.setAttribute("class",e);i&&this._textGroup.setAttribute("class",i);this._applyStyle(this._text,s);this._setText(this._text,t);var a=this._getBBox(this._text);r.width=a.width;r.height=a.height;this._text.removeAttribute("font-size");this._text.removeAttribute("font-family");this._text.removeAttribute("class");this._text.removeAttribute("style");if(s)for(var n in s)this._text.removeAttribute(this._deCase(n));this._textGroup.removeAttribute("class");this._text.textContent=null;if(!this._fontFamily&&!this._fontSize){let s=this._getKey(t,e,i);this._bbCache[s]={x:a.x,y:a.y+1e3,width:a.width,height:a.height}}return r}_measureStringHtml(t,e,i,s){var r=new Size(0,0);const a=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");a.setAttribute("width","1000");a.setAttribute("height","100");a.setAttribute("x","-1000");a.setAttribute("y","-1000");const n=document.createElement("span");i&&addClass(n,i);e&&addClass(n,e);this._applyStyle(n,s);n.innerHTML=t;a.appendChild(n);e&&this._text.setAttribute("class",e);this._applyStyle(this._text,s);this._appendChild(a);const h=n.getBoundingClientRect();r.width=h.width;r.height=h.height;a.remove();return r}startGroup(t,e,i=!1){var s=document.createElementNS(_SvgRenderEngine.svgNS,"g");if(t){s.setAttribute("class",t);this._groupCls=t}e&&this._setClipPath(s,e);this._appendChild(s);i&&s.transform.baseVal.appendItem(this._svg.createSVGTransform());this._group=s;return s}endGroup(){if(this._group){var t=this._group.parentNode;if(t==this._svg){this._group=null;this._groupCls=null}else{this._group=t;this._groupCls=this._getClass(this._group)}}}drawImage(t,e,i,s,r){let a=document.createElementNS(_SvgRenderEngine.svgNS,"image"),n=this.precision;a.setAttributeNS(_SvgRenderEngine.xlinkNS,"href",t);a.setAttribute("x",e.toFixed(n));a.setAttribute("y",i.toFixed(n));a.setAttribute("width",s.toFixed(n));a.setAttribute("height",r.toFixed(n));this._appendChild(a);return a}_setClipPath(t,e){t.setAttribute("clip-path","url(#"+e+")");_SvgRenderEngine._isSafari&&setCss(t,{"-webkit-clip-path":"url(#"+e+")"})}_appendChild(t){if(!this.readOnly){var e=this._group;e||(e=this._svg);e.appendChild(t)}}_create(){this._svg=document.createElementNS(_SvgRenderEngine.svgNS,"svg");this._defs=document.createElementNS(_SvgRenderEngine.svgNS,"defs");this._svg.appendChild(this._defs);this._text=this._createText(new Point(-1e3,-1e3),"");this._textGroup=document.createElementNS(_SvgRenderEngine.svgNS,"g");this._textGroup.appendChild(this._text);this._svg.appendChild(this._textGroup)}_setText(t,e){var i=e?e.toString():null;if(i&&i.indexOf("tspan")>=0)try{t.textContent=null;for(var s=new DOMParser,r='<svg xmlns="http://www.w3.org/2000/svg">'+i+"</svg>",a=s.parseFromString(r,"text/xml").documentElement.firstChild;a;){t.appendChild(t.ownerDocument.importNode(a,!0));a=a.nextSibling}}catch(t){throw new Error("Error parsing XML string.")}else t.textContent=i}_getKey(t,e,i){return t+(e||"")+(i||"")}_createText(t,e){let i=document.createElementNS(_SvgRenderEngine.svgNS,"text"),s=this.precision;this._setText(i,e);i.setAttribute("x",t.x.toFixed(s));i.setAttribute("y",t.y.toFixed(s));if(this.cssPriority){null!=this._textFill&&i.setAttribute("fill",this._textFill);this._fontSize&&i.setAttribute("font-size",this._fontSize);this._fontFamily&&i.setAttribute("font-family",this._fontFamily)}else{let t={};null!=this._textFill&&(t.fill=this._textFill);this._fontSize&&(t.fontSize=this._fontSize);this._fontFamily&&(t.fontFamily=this._fontFamily);Object.keys(t).length>0&&setCss(i,t)}return i}_applyStyle(t,e){if(e)for(var i in e)"fill"===i||"stroke"===i?this._applyColor(t,i,e[i]):t.setAttribute(this._deCase(i),e[i])}_deCase(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}_getClass(t){let e;if(t)for(let i=t;i;i=i.parentNode){e=i.getAttribute("class");if(e)break}return e}_getBBox(t){if(!_SvgRenderEngine._isff)return t.getBBox();try{return t.getBBox()}catch(t){return{x:0,y:0,width:0,height:0}}}_applyColor(t,e,i){let s=_GradientColorUtil.tryParse(i);if(null!=s){if(!isString(s)){if(null==this._savedGradient[i]){var r,a="gc"+(1e6*Math.random()).toFixed();if(null!=s.x1){r=document.createElementNS(_SvgRenderEngine.svgNS,"linearGradient");["x1","y1","x2","y2","gradientUnits"].forEach(t=>{null!=s[t]&&r.setAttribute(t,s[t])})}else if(null!=s.r){r=document.createElementNS(_SvgRenderEngine.svgNS,"radialGradient");["cx","cy","r","fx","fy","fr","gradientUnits"].forEach(t=>{null!=s[t]&&r.setAttribute(t,s[t])})}s.colors&&s.colors&&s.colors.length>0&&s.colors.forEach(t=>{var e=document.createElementNS(_SvgRenderEngine.svgNS,"stop");null!=t.color&&e.setAttribute("stop-color",t.color);null!=t.offset&&e.setAttribute("offset",t.offset);null!=t.opacity&&e.setAttribute("stop-opacity",t.opacity);r.appendChild(e)});r.setAttribute("id",a);this._defs.appendChild(r);this._savedGradient[i]=a}s=`url(${this._baseUrl}#${this._savedGradient[i]})`}this.cssPriority?t.setAttribute(e,s):this._addInlineStyle(t,e,s)}}_addInlineStyle(t,e,i){let s={};s[e.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i;setCss(t,s)}_setAttribute(t,e,i){this.cssPriority?t.setAttribute(e,i):this._addInlineStyle(t,e,i)}_checkRtl(){return this._element&&hasClass(this._element,UtilitesClsNames.rtl)}}_SvgRenderEngine.svgNS="http://www.w3.org/2000/svg";_SvgRenderEngine.xlinkNS="http://www.w3.org/1999/xlink";class _GradientColorUtil{static tryParse(t){if(_GradientColorUtil.parsedColor[t])return _GradientColorUtil.parsedColor[t];if(null==t||-1===t.indexOf("-")||-1!==t.indexOf("var("))return t;var e,i=t.replace(/\s+/g,"").split(/\-/g),s=i[0][0],r=!1,a=i[0].match(/\(\S+\)/);if(!a||0==a.length)return t;var n=a[0].replace(/[\(\\)]/g,"").split(/\,/g);if("l"===s||"L"===s){e={x1:"0",y1:"0",x2:"0",y2:"0",colors:[]};"l"===s&&(r=!0);["x1","y1","x2","y2"].forEach((t,i)=>{null!=n[i]&&(e[t]=r?100*+n[i]+"%":n[i]+"")})}else if("r"===s||"R"===s){e={cx:"0",cy:"0",r:"0",colors:[]};"r"===s&&(r=!0);["cx","cy","r","fx","fy","fr"].forEach((t,i)=>{null!=n[i]&&""!==n[i]&&(e[t]=r?100*+n[i]+"%":n[i]+"")})}r||(e.gradientUnits="userSpaceOnUse");_GradientColorUtil.parsedColor[t]=e;var h=i.length-1;i.forEach((t,i)=>{t.indexOf(")")>-1&&(t=t.match(/\)\S+/)[0].replace(")",""));var s=t.split(":"),a={color:"black"};null!=s[0]&&(a.color=s[0]);null!=s[1]?a.offset=r?100*+s[1]+"%":s[1]+"":a.offset=i/h*100+"%";null!=s[2]&&(a.opacity=s[2]);e.colors.push(a)});return e}}_GradientColorUtil.parsedColor={};export class SvgRenderEngine extends _SvgRenderEngine{}export class Legend{constructor(t){this._position=Position.Right;this._title="";this._titleAlign="left";this._titlePadding=5;this._areas=new Array;this._sz=new Size;this._colRowLens=[];this._orient=Orientation.Auto;this._scrollbar=!1;this._chart=t}get position(){return this._position}set position(t){if((t=asEnum(t,Position))!=this._position){this._position=t;this._invalidate()}}get reverse(){return this._reverse}set reverse(t){if(t!=this._reverse){this._reverse=asBoolean(t,!0);this._invalidate()}}get title(){return this._title}set title(t){if(t!=this._title){this._title=asString(t,!1);this._invalidate()}}get titleAlign(){return this._titleAlign}set titleAlign(t){if(t!=this._titleAlign){var e=asString(t,!1);this._titleAlign="right"===e?"right":"center"===e?"center":"left";this._invalidate()}}get orientation(){return this._orient}set orientation(t){if((t=asEnum(t,Orientation))!=this._orient){this._orient=t;this._invalidate()}}get maxSize(){return this._maxSz}set maxSize(t){if(t!=this._maxSz){if(isNumber(t))this._maxSz=t;else if(isString(t)){let e=asString(t);assert(FlexChartBase._endsWith(e,"px")||FlexChartBase._endsWith(e,"%"),"number with unit (px or %) expected.");this._maxSz=e}else t&&assert(!1,"number or string expected.");this._invalidate()}}get scrollbar(){return this._scrollbar}set scrollbar(t){if(t!=this._scrollbar){this._scrollbar=asBoolean(t,!1);this._invalidate()}}get isVertical(){return this.orientation==Orientation.Auto?null==this.position||this.position==Position.Auto||this.position==Position.Right||this.position==Position.Left||this.position==Position.LeftTop||this.position==Position.LeftBottom||this.position==Position.RightTop||this.position==Position.RightBottom:this.orientation==Orientation.Vertical}_getDesiredSize(t,e,i,s){if(e==Position.None)return null;let r=new Size;if(this.title.length>0){r=t.measureString(this.title,LegendClsNames.title,LegendClsNames.legend);s-=r.height+this._titlePadding}var a=this._chart._getDesiredLegendSize(t,this.isVertical,i,s);if(null!=a){if(this.title.length>0){a.height+=r.height+this._titlePadding;if(r.width>a.width)if(this.position==Position.Left||this.position==Position.Right||this.position==Position.LeftTop||this.position==Position.LeftBottom||this.position==Position.RightTop||this.position==Position.RightBottom){let t=Math.min(r.width,this._getMaxSize(i));a.width=t;r.width=t}else i>a.width&&i<r.width?a.width=i:i>=r.width&&(a.width=r.width)}this._sz=a.clone();if(this.scrollbar)if(this.isVertical&&a.height>s){a.width+=18;a.height=s}else if(!this.isVertical&&a.width>i){a.width=i;a.height+=18}}return a}_getPosition(t,e){return this.position==Position.Auto?t>=e?Position.Right:Position.Bottom:this.position}_render(t,e,i,s,r){this._areas=[];let a=0;t.fill="transparent";t.stroke=null;t.drawRect(e.x,e.y,s,r);if(this.title.length){let i=e.clone(),n=t.measureString(this.title,LegendClsNames.title+"`");i.y+=n.height;"right"===this.titleAlign?i.x=e.x+s-n.width:"center"===this.titleAlign&&(i.x=e.x+.5*(s-n.width));t.drawString(this.title,i,LegendClsNames.title);a=n.height+this._titlePadding;e.y+=a;r-=a}let n=!1;this.scrollbar&&(this._sz.height>r&&this.isVertical||this._sz.width>s&&!this.isVertical)&&(n=!0);this._chart._renderLegend(t,e,this._areas,this.isVertical,n?s-18:s,r);if(n){r+=a;this._addScrollbar(t,e,s,r,this._sz,this.isVertical,a)}}_hitTest(t){for(var e=this._areas,i=0;i<e.length;i++)if(e[i]&&FlexChartBase._contains(e[i],t))return i;return null}_addScrollbar(t,e,i,s,r,a,n){t.endGroup();const h=100-n/s*100,l=t.element,o=l.children.item(l.children.length-1),_=o.getBoundingClientRect();o.removeAttribute("clip-path");let d=[];o.children.length>0&&d.push(o.children.item(0));n>0&&d.push(o.children.item(1));Array.from(o.querySelectorAll("text,rect")).forEach(t=>{if(-1==d.indexOf(t)){t.setAttribute("x",(+t.getAttribute("x")-e.x).toFixed(2));t.setAttribute("y",(+t.getAttribute("y")-e.y).toFixed(2))}});Array.from(o.querySelectorAll("foreignObject")).forEach(t=>{if(-1==d.indexOf(t)){t.setAttribute("x",(+t.getAttribute("x")-e.x).toFixed(2));t.setAttribute("y",(+t.getAttribute("y")-e.y).toFixed(2))}});Array.from(o.querySelectorAll("ellipse")).forEach(t=>{t.setAttribute("cx",(+t.getAttribute("cx")-e.x).toFixed(2));t.setAttribute("cy",(+t.getAttribute("cy")-e.y).toFixed(2))});Array.from(o.querySelectorAll("line")).forEach(t=>{t.setAttribute("x1",(+t.getAttribute("x1")-e.x).toFixed(2));t.setAttribute("y1",(+t.getAttribute("y1")-e.y).toFixed(2));t.setAttribute("x2",(+t.getAttribute("x2")-e.x).toFixed(2));t.setAttribute("y2",(+t.getAttribute("y2")-e.y).toFixed(2))});const c=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");c.setAttribute("x",e.x.toFixed(2));c.setAttribute("y",e.y.toFixed(2));c.setAttribute("width",i.toFixed(2));c.setAttribute("height",s.toFixed(2));const u=document.createElement("div");u.className="wj-legend-scrollable";setCss(u,a?{width:"100%",height:h+"%",overflowX:"hidden",overflowY:"scroll"}:{width:"100%",height:h+"%",overflowY:"hidden",overflowX:"scroll"});const g=document.createElementNS("http://www.w3.org/2000/svg","svg");g.setAttribute("height",(_.height-n).toFixed(2));let f=_.width;!a&&r.width<f&&(f=r.width);g.setAttribute("width",f.toFixed(2));for(;o.children.length>d.length;){var p=o.children.item(d.length);o.removeChild(p);g.appendChild(p)}u.appendChild(g);c.appendChild(u);o.appendChild(c)}_invalidate(){this._chart&&this._chart.invalidate()}_getMaxSize(t){let e=this.maxSize;if(isNumber(e)){let i=asNumber(e,!0);if(i>0)return Math.min(i,t)}else{let i=asString(e,!0);if(i)if(FlexChartBase._endsWith(i,"px")){let e=parseFloat(i.replace("px",""));if(e>0)return Math.min(e,t)}else if(FlexChartBase._endsWith(i,"%")){let e=parseFloat(i.replace("%",""));if(e>0)return t*Math.min(e,100)/100}}return.5*t}}export class DataPoint{constructor(t=0,e=0){this.x=t;this.y=e}}export class RenderEventArgs extends CancelEventArgs{constructor(t){super();this._engine=t}get engine(){return this._engine}}export class SeriesRenderingEventArgs extends RenderEventArgs{constructor(t,e,i){super(t);this._index=e;this._count=i}get index(){return this._index}get count(){return this._count}}export var ImageFormat;!function(t){t[t.Png=0]="Png";t[t.Jpeg=1]="Jpeg";t[t.Svg=2]="Svg"}(ImageFormat||(ImageFormat={}));export var SelectionMode;!function(t){t[t.None=0]="None";t[t.Series=1]="Series";t[t.Point=2]="Point"}(SelectionMode||(SelectionMode={}));export var Position;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=3]="Right";t[t.Bottom=4]="Bottom";t[t.Auto=5]="Auto";t[t.TopLeft=6]="TopLeft";t[t.TopRight=7]="TopRight";t[t.BottomLeft=8]="BottomLeft";t[t.BottomRight=9]="BottomRight";t[t.LeftTop=10]="LeftTop";t[t.LeftBottom=11]="LeftBottom";t[t.RightTop=12]="RightTop";t[t.RightBottom=13]="RightBottom"}(Position||(Position={}));export var Orientation;!function(t){t[t.Auto=0]="Auto";t[t.Vertical=1]="Vertical";t[t.Horizontal=2]="Horizontal"}(Orientation||(Orientation={}));export class FlexChartBase extends Control{constructor(){super(...arguments);this._palette=null;this._selectionMode=SelectionMode.None;this._defPalette=Palettes.standard;this._notifyCurrentChanged=!0;this._legendHost=null;this._needBind=!1;this._skipLightClr=!1;this.rendering=new Event;this.rendered=new Event;this.itemsSourceChanging=new Event;this.itemsSourceChanged=new Event;this.selectionChanged=new Event}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){let e=new CancelEventArgs;if(!this.onItemsSourceChanging(e))return;if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._clearCachedValues();this.onItemsSourceChanged(e);this._bindChart()}}get collectionView(){return this._cv}get palette(){return this._palette}set palette(t){if(t!=this._palette){this._palette=asArray(t);this._skipLightClr=Palettes._isExtended(this._palette);this.invalidate()}}get plotMargin(){return this._plotMargin}set plotMargin(t){if(t!=this._plotMargin){this._plotMargin=t;this.invalidate()}}get legend(){return this._legend}set legend(t){if(t!=this._legend){this._legend=asType(t,Legend);null!=this._legend&&(this._legend._chart=this)}}get header(){return this._header}set header(t){if(t!=this._header){this._header=asString(t,!0);this.invalidate()}}get footer(){return this._footer}set footer(t){if(t!=this._footer){this._footer=asString(t,!0);this.invalidate()}}get headerStyle(){return this._headerStyle}set headerStyle(t){if(t!=this._headerStyle){this._headerStyle=t;this.invalidate()}}get footerStyle(){return this._footerStyle}set footerStyle(t){if(t!=this._footerStyle){this._footerStyle=t;this.invalidate()}}get selectionMode(){return this._selectionMode}set selectionMode(t){if((t=asEnum(t,SelectionMode))!=this._selectionMode){this._selectionMode=t;this.invalidate()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this.invalidate()}}get options(){return this._options}set options(t){if(t!=this._options){this._options=t;this.invalidate()}}onRendering(t){this.rendering.raise(this,t)}onRendered(t){this.rendered.raise(this,t)}onItemsSourceChanging(t){this.itemsSourceChanging.raise(this,t);return!t.cancel}onItemsSourceChanged(t){this.itemsSourceChanged.raise(this,t)}saveImageToFile(t){var e,i,s,r;t&&0!==t.length&&-1!==t.indexOf(".")||(t="image.png");r=t.split(".");e=r[0];i=r[1].toLowerCase();s=ImageFormat[i[0].toUpperCase()+i.substring(1)];this.saveImageToDataUrl(s,t=>{ExportHelper.downloadImage(t,e,i)})}saveImageToDataUrl(t,e){var i=asEnum(t,ImageFormat,!1),s=ImageFormat[i].toLowerCase();s&&s.length&&this._exportToImage(s,t=>{e.call(e,t)})}saveSvgToDataUrl(t,e=!0){this._exportToImage("svg",e=>{t.call(t,e)},{embedCss:e})}saveSvgToFile(t,e=!0){this.saveSvgToDataUrl(e=>{ExportHelper.downloadImage(e,t,"svg")},e)}_exportToImage(t,e,i=null){const s=this._currentRenderEngine.element;i&&!1===i.embedCss?ExportHelper.getDataUri2(s,this,i=>{this.prepareDataUri(s,t,i,e)}):ExportHelper.getDataUri(s,this,i=>{this.prepareDataUri(s,t,i,e)})}prepareDataUri(t,e,i,s){if("svg"===e)s.call(null,i);else{let r=new Image;r.onload=()=>{var i,a=document.createElement("canvas"),n=t.parentNode||t,h=getElementRect(n);a.width=h.width;a.height=h.height;var l=a.getContext("2d");let o=this._bgColor(this.hostElement);this._isTransparent(o)&&(o="#ffffff");l.fillStyle=o;l.fillRect(0,0,h.width,h.height);var _=window.getComputedStyle(n,null).getPropertyValue("padding-left").replace("px",""),d=window.getComputedStyle(n,null).getPropertyValue("padding-top").replace("px","");l.drawImage(r,+_||0,+d||0);i=a.toDataURL("image/"+e);s.call(null,i);a=null};r.src=i}}refresh(t=!0){super.refresh(t);this.isUpdating||this.disposed||this._refreshChart()}onSelectionChanged(t){this.selectionChanged.raise(this,t)}onLostFocus(t){this._tooltip&&this._tooltip.isVisible&&!this.isTouching&&this._tooltip.hide();super.onLostFocus(t)}_cvCollectionChanged(t,e){this._clearCachedValues();this._bindChart()}_cvCurrentChanged(t,e){this._notifyCurrentChanged&&this._bindChart()}_bgColor(t){if(!t)return"transparent";let e=getComputedStyle(t).backgroundColor;return this._isTransparent(e)?this._bgColor(t.parentElement):e}_isTransparent(t){let e=new Color(t);return 0==e.a&&0==e.b&&0==e.g&&0==e.r}_getColor(t){var e=this._defPalette;null!=this._palette&&this._palette.length>0&&(e=this._palette);return e[t%e.length]}_getColorLight(t){let e=this._getColor(t);this._skipLightClr||(e=this._getLightColor(e));return e}_getLightColor(t){var e=new Color(t);if(null!=e&&-1===t.indexOf("-")){1==e.a&&-1==t.indexOf("rgba")&&-1==t.indexOf("hsla")&&(e.a*=.7);t=e.toString()}return t}_bindChart(){this._needBind=!0;this.invalidate()}_clearCachedValues(){}_renderEls(t,e,i=!0,s=null,r=!1){let a=e.width,n=e.height;if(0==a)return;(isNaN(a)||a<0)&&(a=FlexChartBase._WIDTH);(n<=0||isNaN(n))&&(n=FlexChartBase._HEIGHT);let h=a>0&&n>0;h&&t.setViewportSize(a,n);let l=0,o=0;if(this.legend.scrollbar&&this._legendHost){const t=this._legendHost.querySelector(".wj-legend-scrollable");if(t)if(this.legend.isVertical){o=0;l=t.scrollTop}else{l=0;o=t.scrollLeft}}this._currentRenderEngine._htmlText=this._isHtmlText();t.beginRender();t.cssPriority=!0;if(h){this._rectChart=new Rect(0,0,a,n);this._prepareRender();if(s){let e=t.stroke,i=t.fill;t.fill=s;t.stroke=null;t.drawRect(0,0,a,n);t.fill=i;t.stroke=e}let e=new Rect(0,0,a,n);this._chartRectId="chartRect"+(1e6*Math.random()).toFixed();t.addClipRect(e,this._chartRectId);this._renderHeader(t,e);this._renderFooter(t,e);this._renderLegends(t,e);this._renderChart(t,e,i);if(this.legend.scrollbar&&this._legendHost){const t=this._legendHost.querySelector(".wj-legend-scrollable");if(t){t.scrollTop=l;t.scrollLeft=o}}}t.endRender()}_render(t,e=!0,i=null){let s=this._getHostSize();if(this._h){let t=s.height-this._h;t>=4&&t<=6&&!1!==this._isPCUnit("height")&&(s.height=this._h)}this._h=s.height;this._renderEls(t,s,e,i)}_isPCUnit(t){let e=null,i=this.hostElement;if(i&&i.computedStyleMap){let s=i.computedStyleMap();if(s){let i=s.get(t);i&&(e="percent"==i.unit)}}return e}_renderHidden(t=null,e=null){let i=document.createElement("div");addClass(i,this.hostElement.getAttribute("class")||"");i.style.visibility="hidden";let s=new _SvgRenderEngine(i);document.body.appendChild(i);if(!t){let e=this._getHostComputedStyle(),i=0,s=0;if(e){i=this._parsePx(e.width);s=this._parsePx(e.height);0==i&&(i=FlexChartBase._WIDTH);0==s&&(s=FlexChartBase._HEIGHT);i-=this._parsePx(e.paddingLeft);i-=this._parsePx(e.paddingRight);s-=this._parsePx(e.paddingTop);s-=this._parsePx(e.paddingBottom);i-=this._parsePx(e.borderLeftWidth);i-=this._parsePx(e.borderRightWidth);s-=this._parsePx(e.borderTopWidth);s-=this._parsePx(e.borderBottomWidth)}0==i&&(i=FlexChartBase._WIDTH);0==s&&(s=FlexChartBase._HEIGHT);t=new Size(i,s)}this._renderEls(s,t,!0,e,!0);removeChild(i);return s.element}_renderHeader(t,e){t.startGroup(FlexChartBase._CSS_HEADER,this._chartRectId);e=this._drawTitle(t,e,this.header,this.headerStyle,!1);t.endGroup()}_renderFooter(t,e){t.startGroup(FlexChartBase._CSS_FOOTER,this._chartRectId);e=this._drawTitle(t,e,this.footer,this.footerStyle,!0);t.endGroup()}_renderLegends(t,e){var i,s,r=this.legend,a=e.width,n=e.height,h=r._getPosition(a,n);let l=a,o=n;h==Position.Left||h==Position.Right||h==Position.LeftTop||h==Position.LeftBottom||h==Position.RightTop||h==Position.RightBottom?l=this._getLegendSize(a,l):o=this._getLegendSize(n,o);if(!(i=r._getDesiredSize(t,h,l,o))){this._legendHost=null;this._rectLegend=null;return}h==Position.Left||h==Position.Right||h==Position.LeftTop||h==Position.LeftBottom||h==Position.RightTop||h==Position.RightBottom?i.width=this._getLegendSize(a,i.width):i.height=this._getLegendSize(n,i.height);i.height>e.height&&(i.height=e.height);switch(h){case Position.Right:a-=i.width;s=new Point(a,e.top+.5*(n-i.height));break;case Position.RightTop:a-=i.width;s=new Point(a,e.top);break;case Position.RightBottom:a-=i.width;s=new Point(a,e.top+(n-i.height));break;case Position.Left:e.left+=i.width;a-=i.width;s=new Point(0,e.top+.5*(n-i.height));break;case Position.LeftTop:e.left+=i.width;a-=i.width;s=new Point(0,e.top);break;case Position.LeftBottom:e.left+=i.width;a-=i.width;s=new Point(0,e.top+(n-i.height));break;case Position.Top:n-=i.height;s=new Point(.5*(a-i.width),e.top);e.top+=i.height;break;case Position.TopLeft:n-=i.height;s=new Point(0,e.top);e.top+=i.height;break;case Position.TopRight:n-=i.height;s=new Point(a-i.width,e.top);e.top+=i.height;break;case Position.Bottom:n-=i.height;s=new Point(.5*(a-i.width),e.top+n);break;case Position.BottomLeft:n-=i.height;s=new Point(0,e.top+n);break;case Position.BottomRight:n-=i.height;s=new Point(a-i.width,e.top+n)}e.width=a;e.height=n;this._rectLegend=new Rect(s.x,s.y,i.width,i.height);let _="legRect"+(1e6*Math.random()).toFixed();t.addClipRect(this._rectLegend,_);this._legendHost=t.startGroup(FlexChartBase._CSS_LEGEND,_);this.legend._render(t,s,h,i.width,i.height);t.endGroup()}_prepareRender(){}_renderChart(t,e,i){}_performBind(){}_getDesiredLegendSize(t,e,i,s){return null}_renderLegend(t,e,i,s,r,a){}_getHitTestItem(t){return null}_getHitTestValue(t,e){return null}_getHitTestLabel(t){return null}_refreshChart(){if(this._needBind){this._needBind=!1;this._performBind()}this.hostElement&&this._render(this._currentRenderEngine)}_drawTitle(t,e,i,s,r){var a=FlexChartBase._CSS_TITLE,n=r?FlexChartBase._CSS_FOOTER:FlexChartBase._CSS_HEADER,h=null;r?this._rectFooter=null:this._rectHeader=null;if(null!=i){var l=null,o=null,_=null,d=null;if(s){s.fontSize&&(l=s.fontSize);s.foreground&&(o=s.foreground);s.fill&&(o=s.fill);s.fontFamily&&(_=s.fontFamily);s.halign&&(d=s.halign)}t.fontSize=l;t.fontFamily=_;h=t.measureString(i,a,n,s);e.height-=h.height;o||(o=FlexChartBase._FG);t.textFill=o;if(r){"left"==d?FlexChartBase._renderText(t,i,new Point(e.left,e.bottom),0,0,a,n,s):"right"==d?FlexChartBase._renderText(t,i,new Point(e.left+e.width,e.bottom),2,0,a,n,s):FlexChartBase._renderText(t,i,new Point(e.left+.5*e.width,e.bottom),1,0,a,n,s);this._rectFooter=new Rect(e.left,e.bottom,e.width,h.height)}else{this._rectHeader=new Rect(e.left,e.top,e.width,h.height);e.top+=h.height;"left"==d?FlexChartBase._renderText(t,i,new Point(e.left,0),0,0,a,n,s):"right"==d?FlexChartBase._renderText(t,i,new Point(e.left+e.width,0),2,0,a,n,s):FlexChartBase._renderText(t,i,new Point(e.left+.5*e.width,0),1,0,a,n,s)}t.textFill=null;t.fontSize=null;t.fontFamily=null}return e}pageToControl(t,e){return this._toControl(t,e)}_toControl(t,e){isNumber(t)&&isNumber(e)?t=new Point(t,e):t instanceof MouseEvent&&(t=mouseToPage(t));asType(t,Point);var i=t.clone(),s=this._getHostOffset();i.x-=s.x;i.y-=s.y;let r=this._currentRenderEngine?this._currentRenderEngine.element:null;if(null!=r){let t=r.getBoundingClientRect(),e=parseFloat(r.getAttribute("width")),s=parseFloat(r.getAttribute("height"));t.width!=e&&(i.x*=e/t.width);t.height!=s&&(i.y*=s/t.height)}var a=this._getHostComputedStyle();if(a){var n=parseInt(a.paddingLeft.replace("px",""));n&&!isNaN(n)&&(i.x-=n);var h=parseInt(a.paddingTop.replace("px",""));h&&!isNaN(h)&&(i.y-=h)}return i}_highlightItems(t,e,i){if(i)for(var s=0;s<t.length;s++)addClass(t[s],e);else for(s=0;s<t.length;s++)removeClass(t[s],e)}_parseMargin(t){var e={};if(isNumber(t)&&!isNaN(t))e.top=e.bottom=e.left=e.right=asNumber(t);else if(isString(t)){var i=asString(t).split(" ",4),s=NaN,r=NaN,a=NaN,n=NaN;if(i){if(4==i.length){s=parseFloat(i[0]);n=parseFloat(i[1]);r=parseFloat(i[2]);a=parseFloat(i[3])}else if(2==i.length){s=r=parseFloat(i[0]);a=n=parseFloat(i[1])}else 1==i.length&&(s=r=a=n=parseFloat(i[1]));isNaN(s)||(e.top=s);isNaN(r)||(e.bottom=r);isNaN(a)||(e.left=a);isNaN(n)||(e.right=n)}}return e}_showToolTip(t,e){var i=this,s=this._tooltip.showDelay;i._clearTimeouts();if(!i.isDisabled){t||i._tooltip.hide();if(s>0)i._toShow=setTimeout((function(){i._tooltip.show(i.hostElement,t,e);i._tooltip.hideDelay>0&&(i._toHide=setTimeout((function(){i._tooltip.hide()}),i._tooltip.hideDelay))}),s);else{i._tooltip.show(i.hostElement,t,e);i._tooltip.hideDelay>0&&(i._toHide=setTimeout((function(){i._tooltip.hide()}),i._tooltip.hideDelay))}}}_hideToolTip(){this._clearTimeouts();this._tooltip.hide()}_clearTimeouts(){if(this._toShow){clearTimeout(this._toShow);this._toShow=null}if(this._toHide){clearTimeout(this._toHide);this._toHide=null}}_getHostOffset(){var t=getElementRect(this.hostElement);return new Point(t.left,t.top)}_getHostSize(){var t=new Size,e=this.hostElement,i=this._getHostComputedStyle(),s=e.offsetWidth,r=e.offsetHeight;if(i){s-=this._parsePx(i.paddingLeft);s-=this._parsePx(i.paddingRight);r-=this._parsePx(i.paddingTop);r-=this._parsePx(i.paddingBottom);s-=this._parsePx(i.borderLeftWidth);s-=this._parsePx(i.borderRightWidth);r-=this._parsePx(i.borderTopWidth);r-=this._parsePx(i.borderBottomWidth);t.width=s;t.height=r}return t}_parsePx(t){let e=parseFloat(t.replace("px",""));return isNaN(e)?0:e}_getHostComputedStyle(){var t=this.hostElement;return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(this.hostElement):null}_find(t,e){for(var i=[],s=0;s<t.childElementCount;s++){var r=t.childNodes.item(s);if(e.indexOf(r.nodeName)>=0)i.push(r);else{var a=this._find(r,e);if(a.length>0)for(var n=0;n<a.length;n++)i.push(a[n])}}return i}_getLegendSize(t,e){return Math.min(e,this.legend._getMaxSize(t))}_isHtmlText(){return this._options&&this._options.htmlText}static _contains(t,e){return!(!t||!e)&&(e.x>=t.left&&e.x<=t.right&&e.y>=t.top&&e.y<=t.bottom)}static _intersects(t,e){return!(t.left>e.right||t.right<e.left||t.top>e.bottom||t.bottom<e.top)}static _toOADate(t){return t.valueOf()}static _fromOADate(t){return new Date(t)}static _renderText(t,e,i,s,r,a,n,h,l){var o=t.measureString(e,a,n,h),_=i.x,d=i.y;switch(s){case 1:_-=.5*o.width;break;case 2:_-=o.width}switch(r){case 1:d+=.5*o.height;break;case 0:d+=o.height}var c=new Rect(_,d-o.height,o.width,o.height);if(l){if(l(c)){t.drawString(e,new Point(_,d),a,h);return c}return null}t.drawString(e,new Point(_,d),a,h);return c}static _renderRotatedText(t,e,i,s,r,a,n,h,l,o){var _=t.measureString(e,h,l,o),d=i.x,c=i.y;switch(s){case 1:d-=.5*_.width;break;case 2:d-=_.width}switch(r){case 1:c+=.5*_.height;break;case 0:c+=_.height}return t.drawStringRotated(e,new Point(d,c),a,n,h,o)}static _endsWith(t,e){if(t&&e){let i=t.length-e.length;return i>=0&&t.indexOf(e,i)===i}return!1}}FlexChartBase._WIDTH=300;FlexChartBase._HEIGHT=200;FlexChartBase._SELECTION_THRESHOLD=15;FlexChartBase._CSS_LEGEND=FlexChartClsNames.legend;FlexChartBase._CSS_HEADER=FlexChartClsNames.header;FlexChartBase._CSS_FOOTER=FlexChartClsNames.footer;FlexChartBase._CSS_TITLE=FlexChartClsNames.title;FlexChartBase._CSS_LABEL=FlexChartClsNames.label;FlexChartBase._CSS_SELECTION=ControlStateClsNames.selected;FlexChartBase._CSS_PLOT_AREA=FlexChartClsNames.plotArea;FlexChartBase._FG="#666";FlexChartBase._epoch=new Date(1899,11,30).getTime();FlexChartBase._msPerDay=864e5;export class _KeyWords{constructor(){this._keys={};this._keys.seriesName=null;this._keys.pointIndex=null;this._keys.x=null;this._keys.y=null;this._keys.value=null;this._keys.name=null}replace(t,e){var i=this;return format(t,{},(function(t,s,r,a){return i.getValue(s,e,r)}))}getValue(t,e,i){switch(t){case"seriesName":return e.series?e.series.name:"";case"pointIndex":return null!=e.pointIndex?e.pointIndex.toFixed():"";case"x":return i?Globalize.format(e.x,i):e._xfmt;case"y":return i?Globalize.format(e.y,i):e._yfmt;case"value":return i?Globalize.format(e.value,i):e._getValueFmt();case"name":return e.name}if(e.item){0==t.indexOf("item.")&&(t=t.substr(5));let s=e.item[t];if(!isUndefined(s))return i?Globalize.format(s,i):s}return""}}class ExportHelper{static downloadImage(t,e,i){var s=document.createElement("a"),r="image/"+i;if(navigator.msSaveOrOpenBlob){t=t.substring(t.indexOf(",")+1);var a,n,h,l=atob(t),o=[];for(a=0;a<l.length;a+=512){n=l.slice(a,a+512);for(var _=new Array(n.length),d=0;d<n.length;d++)_[d]=n.charCodeAt(d);var c=new Uint8Array(_);o.push(c)}h=new Blob(o,{type:r});navigator.msSaveOrOpenBlob(h,e+"."+i)}else{s.download=e+"."+i;s.href=t;document.body.appendChild(s);s.addEventListener("click",(function(t){removeChild(s)}));s.click()}}static getDataUri(t,e,i){var s,r,a,n,h,l,o,_,d,c,u=document.createElement("div"),g=t.cloneNode(!0);let f=!1;if("svg"==t.tagName){r=(s=getElementRect(t.parentNode||t)).width||0;a=s.height||0;0==r&&(f=!0);n=t.viewBox.baseVal&&0!==t.viewBox.baseVal.width?t.viewBox.baseVal.width:r;h=t.viewBox.baseVal&&0!==t.viewBox.baseVal.height?t.viewBox.baseVal.height:a}else{r=(l=t.getBBox()).x+l.width;a=l.y+l.height;g.setAttribute("transform",g.getAttribute("transform").replace(/translate\(.*?\)/,""));n=r;h=a;(_=document.createElementNS("http://www.w3.org/2000/svg","svg")).appendChild(g);g=_}if(f){let t=e._renderHidden(),i=e._getHostComputedStyle(),s=0,l=0;if(i){s=e._parsePx(i.width);l=e._parsePx(i.height)}0==s&&(s=FlexChartBase._WIDTH);0==l&&(l=FlexChartBase._HEIGHT);n=r=s;h=a=l;g=t.cloneNode(!0)}g.setAttribute("version","1.1");g.setAttributeNS(ExportHelper.xmlns,"xmlns","http://www.w3.org/2000/svg");g.setAttributeNS(ExportHelper.xmlns,"xmlns:xlink","http://www.w3.org/1999/xlink");g.setAttribute("width",r);g.setAttribute("height",a);g.setAttribute("viewBox","0 0 "+n+" "+h);addClass(g,t.parentNode&&t.parentNode.getAttribute("class")||"");u.appendChild(g);o=ExportHelper.getStyles(t);o+=`.${FlexChartClsNames.hostElement}{margin:0px;padding:0px;border:none;width:${r}px;height:${a}px;}\n`;(d=document.createElement("style")).setAttribute("type","text/css");d.innerHTML="<![CDATA[\n"+o+"\n]]>";(c=document.createElementNS("http://www.w3.org/2000/svg","defs")).appendChild(d);g.insertBefore(c,g.firstChild);isIE()||g.querySelectorAll("foreignObject").forEach(t=>{if(g===t.parentNode)g.removeChild(t);else for(const e of t.children)e.setAttribute("xmlns","http://www.w3.org/1999/xhtml")});let p=e._currentRenderEngine.canvas;if(p){let t=document.createElementNS("http://www.w3.org/2000/svg","image");t.setAttribute("width",p.width);t.setAttribute("height",p.height);t.setAttribute("href",p.toDataURL());g.insertBefore(t,g.firstChild);e.invalidate()}this.convertImagesToDataUrl(g,()=>{const t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(ExportHelper.doctype+u.innerHTML)));i.call(null,t)})}static convertImagesToDataUrl(t,e){let i=t.querySelectorAll("image");if(0===i.length){e();return}let s=Array.from(i);Array.from(i).forEach(t=>{const i=new Image;i.onload=()=>{const r=document.createElement("canvas");r.width=+t.getAttribute("width");r.height=+t.getAttribute("height");const a=r.getContext("2d");let n=i.width/i.height;n<r.width/r.height?a.drawImage(i,0,0,i.width,i.height,.5*(r.width-n*r.height),0,n*r.height,r.height):a.drawImage(i,0,0,i.width,i.height,0,.5*(r.height-r.width/n),r.width,r.width/n);t.setAttribute("href",r.toDataURL());i.remove();s.splice(s.indexOf(t),1);0==s.length&&e()};i.src=t.getAttribute("href")})}static getDataUri2(t,e,i){var s,r,a,n,h,l,o,_=document.createElement("div"),d=this.cloneWithComputedStyles(t);let c=!1;if("svg"==t.tagName){r=(s=getElementRect(t.parentNode||t)).width||0;a=s.height||0;0==r&&(c=!0);n=t.viewBox.baseVal&&0!==t.viewBox.baseVal.width?t.viewBox.baseVal.width:r;h=t.viewBox.baseVal&&0!==t.viewBox.baseVal.height?t.viewBox.baseVal.height:a}else{r=(l=t.getBBox()).x+l.width;a=l.y+l.height;d.setAttribute("transform",d.getAttribute("transform").replace(/translate\(.*?\)/,""));n=r;h=a;(o=document.createElementNS("http://www.w3.org/2000/svg","svg")).appendChild(d);d=o}if(c){let t=e._renderHidden(),i=e._getHostComputedStyle(),s=0,l=0;if(i){s=e._parsePx(i.width);l=e._parsePx(i.height)}0==s&&(s=FlexChartBase._WIDTH);0==l&&(l=FlexChartBase._HEIGHT);n=r=s;h=a=l;d=this.cloneWithComputedStyles(t)}d.setAttribute("version","1.1");d.setAttributeNS(ExportHelper.xmlns,"xmlns","http://www.w3.org/2000/svg");d.setAttributeNS(ExportHelper.xmlns,"xmlns:xlink","http://www.w3.org/1999/xlink");d.setAttribute("width",r);d.setAttribute("height",a);d.setAttribute("viewBox","0 0 "+n+" "+h);_.appendChild(d);let u=e._currentRenderEngine.canvas;if(u){let t=document.createElementNS("http://www.w3.org/2000/svg","image");t.setAttribute("width",u.width);t.setAttribute("height",u.height);t.setAttribute("href",u.toDataURL());d.insertBefore(t,d.firstChild);e.invalidate()}this.convertImagesToDataUrl(d,()=>{const t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(ExportHelper.doctype+_.innerHTML)));i.call(null,t)})}static computeAttributes(t,e,i){let s=getComputedStyle(t);i.forEach(t=>{let i=s.getPropertyValue(t);i&&i.length>0&&e.setAttribute(t,i)})}static cloneWithComputedStyles(t){let e=t.cloneNode();Array.from(t.childNodes).forEach(t=>{let i=this.cloneWithComputedStyles(t);1===t.nodeType&&("text"===t.nodeName?this.computeAttributes(t,i,this.textAttrs):"line"===t.nodeName&&this.computeAttributes(t,i,this.lineAttrs));e.appendChild(i)});return e}static getStyles(t){var e="",i=document.styleSheets;if(null==i||0===i.length)return null;[].forEach.call(i,i=>{var s;try{if(null==i.cssRules||0===i.cssRules.length)return!0}catch(t){if("SecurityError"==t.name){console.log("SecurityError. Can't read: "+i.href);return!0}}s=i.cssRules;[].forEach.call(s,i=>{var s,r=i.style;if(null==r)return!0;let a=i.selectorText;if(isIE()&&a){const t=a.match(/\[(.*?)\]/g);t&&t.forEach(t=>a=a.replace(t,t.replace(":","\\:")))}try{s=a=="."+FlexChartClsNames.hostElement||t.querySelector(a)}catch(t){console.warn('Invalid CSS selector "'+i.selectorText+'"',t)}s?e+=i.selectorText+" { "+r.cssText+" }\n":i.cssText.match(/^@font-face/)&&(e+=i.cssText+"\n")})});const s=getComputedStyle(t),r=s?s.getPropertyValue("font"):null;r&&(e+=`.${FlexChartClsNames.hostElement}{font:${r}}\n`);return e}}ExportHelper.doctype='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';ExportHelper.xmlns="http://www.w3.org/2000/xmlns/";ExportHelper.textAttrs=["font-family","font-size","font-style","font-weight","fill"];ExportHelper.lineAttrs=["stroke","stroke-width","stroke-dasharray"];export class ChartTooltip extends Tooltip{constructor(){super();this._content="<b>{seriesName}</b><br/>{x} {y}";this._threshold=15}get content(){return this._content}set content(t){t!=this._content&&(this._content=t)}get threshold(){return this._threshold}set threshold(t){t!=this._threshold&&(this._threshold=asNumber(t))}show(t,e,i){super.show(t,e,i);let s=ChartTooltip._eTip;s&&s.style&&(s.style.pointerEvents="none")}}export var ChartType;!function(t){t[t.Column=0]="Column";t[t.Bar=1]="Bar";t[t.Scatter=2]="Scatter";t[t.Line=3]="Line";t[t.LineSymbols=4]="LineSymbols";t[t.Area=5]="Area";t[t.Bubble=6]="Bubble";t[t.Candlestick=7]="Candlestick";t[t.HighLowOpenClose=8]="HighLowOpenClose";t[t.Spline=9]="Spline";t[t.SplineSymbols=10]="SplineSymbols";t[t.SplineArea=11]="SplineArea";t[t.Funnel=12]="Funnel";t[t.Step=13]="Step";t[t.StepSymbols=14]="StepSymbols";t[t.StepArea=15]="StepArea"}(ChartType||(ChartType={}));export var Stacking;!function(t){t[t.None=0]="None";t[t.Stacked=1]="Stacked";t[t.Stacked100pc=2]="Stacked100pc"}(Stacking||(Stacking={}));export class FlexChartCore extends FlexChartBase{constructor(t,e){super(t,null,!0);this._series=new ObservableArray;this._axes=new AxisCollection;this._pareas=new PlotAreaCollection;this._interpolateNulls=!1;this._legendToggle=!1;this._symbolSize=10;this._dataInfo=new _DataInfo;this.__barPlotter=null;this.__linePlotter=null;this.__areaPlotter=null;this.__bubblePlotter=null;this.__financePlotter=null;this.__funnelPlotter=null;this._plotters=[];this._rotated=!1;this._stacking=Stacking.None;this._xlabels=[];this._xvals=[];this._lblAreas=[];this._colRowLens=[];this._selectedEls=[];this._markers=[];this._bindingSeparator=",";this.seriesVisibilityChanged=new Event;this.applyTemplate(`${ControlClsNames.hostElement} ${FlexChartClsNames.hostElement}`,null,null);var i=this;i._series.collectionChanged.addHandler((function(){for(var t=i._series,e=0;e<t.length;e++){var s=tryCast(t[e],SeriesBase);if(!s)throw"chartSeries array must contain SeriesBase objects.";s._chart=i;if(s.axisX&&null==s.axisX._chart){s.axisX._chart=i;i.axes.push(s.axisX)}if(s.axisY&&null==s.axisY._chart){s.axisY._chart=i;i.axes.push(s.axisY)}}i.invalidate()}));this._currentRenderEngine=new _SvgRenderEngine(this.hostElement);this._hitTester=new _HitTester(this);this._legend=new Legend(this);this._tooltip=new ChartTooltip;this._tooltip.showDelay=0;this._lbl=new DataLabel;this._lbl._chart=this;this._initAxes();i._axes.collectionChanged.addHandler((function(){for(var t=i._axes,e=0;e<t.length;e++){var s=tryCast(t[e],Axis);if(!s)throw"axes array must contain Axis objects.";s._chart=i}i.invalidate()}));i._pareas.collectionChanged.addHandler((function(){for(var t=i._pareas,e=0;e<t.length;e++){var s=tryCast(t[e],PlotArea);if(!s)throw"plotAreas array must contain PlotArea objects.";s._chart=i}i.invalidate()}));this._keywords=new _KeyWords;this.addEventListener(this.hostElement,"click",(function(t){var e=i._tooltip;e.content&&i.isTouching&&i._updateTooltip(e,t)}));this.addEventListener(this.hostElement,"mousemove",(function(t){var e=i._tooltip;e.content&&!i.isTouching&&i._updateTooltip(e,t)}));this.addEventListener(this.hostElement,"mouseleave",(function(t){i._hideToolTip()}));this.addEventListener(this.hostElement,"click",(function(t){if(i.selectionMode!=SelectionMode.None){var e=i._hitTestData(t),s=FlexChartCore._SELECTION_THRESHOLD;i.tooltip&&i.tooltip.threshold&&(s=i.tooltip.threshold);e.distance<=s&&e.series?i._select(e.series,e.pointIndex):i.selectionMode==SelectionMode.Series&&(e=i.hitTest(t)).chartElement==ChartElement.Legend&&e.series?i._select(e.series,null):i._select(null,null)}if(!0===i.legendToggle&&(e=i.hitTest(t)).chartElement==ChartElement.Legend&&e.series){e.series.visibility==SeriesVisibility.Legend?e.series.visibility=SeriesVisibility.Visible:e.series.visibility==SeriesVisibility.Visible&&(e.series.visibility=SeriesVisibility.Legend);i.focus()}}));this.deferUpdate(()=>this.initialize(e))}initialize(t){if(t&&t.renderEngine){let t=asType(this._currentRenderEngine,_SvgRenderEngine,!0);t&&t.detach();this._currentRenderEngine=null}super.initialize(t)}_initAxes(){this._axisX=new Axis(Position.Bottom);this._axisY=new Axis(Position.Left);this._axisX.majorGrid=!1;this._axisX.name="axisX";this._axisY.majorGrid=!0;this._axisY.majorTickMarks=TickMark.None;this._axisY.name="axisY";this._axisX._chart=this;this._axisY._chart=this;this._axes.push(this._axisX);this._axes.push(this._axisY)}get series(){return this._series}get axes(){return this._axes}get axisX(){return this._axisX}set axisX(t){if(t!=this._axisX){var e=this._axisX=asType(t,Axis);this.beginUpdate();if(e){void 0===e.majorGrid&&(e.majorGrid=!1);void 0===e.name&&(e.name="axisX");e._axisType=AxisType.X;null!=e.position&&e.position!=Position.Left&&e.position!=Position.Right&&e.position!=Position.BottomLeft&&e.position!=Position.BottomRight&&e.position!=Position.TopLeft&&e.position!=Position.TopRight&&e.position!=Position.LeftTop&&e.position!=Position.LeftBottom&&e.position!=Position.RightTop&&e.position!=Position.RightBottom||(e.position=Position.Bottom);e._chart=this}this.endUpdate()}}get axisY(){return this._axisY}set axisY(t){if(t!=this._axisY){var e=this._axisY=asType(t,Axis);this.beginUpdate();if(e){void 0===e.majorGrid&&(e.majorGrid=!0);void 0===e.name&&(e.name="axisY");void 0===e.majorTickMarks&&(e.majorTickMarks=TickMark.None);e._axisType=AxisType.Y;null!=e.position&&e.position!=Position.Top&&e.position!=Position.Bottom&&e.position!=Position.BottomLeft&&e.position!=Position.BottomRight&&e.position!=Position.TopLeft&&e.position!=Position.TopRight&&e.position!=Position.LeftTop&&e.position!=Position.LeftBottom&&e.position!=Position.RightTop&&e.position!=Position.RightBottom||(e.position=Position.Left);e._chart=this}this.endUpdate()}}get plotAreas(){return this._pareas}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this.invalidate()}}get bindingX(){return this._bindingX}set bindingX(t){if(t!=this._bindingX){this._bindingX=asString(t,!0);this._bindChart()}}get symbolSize(){return this._symbolSize}set symbolSize(t){if(t!=this._symbolSize){this._symbolSize=asNumber(t,!1,!0);this.invalidate()}}get interpolateNulls(){return this._interpolateNulls}set interpolateNulls(t){if(t!=this._interpolateNulls){this._interpolateNulls=asBoolean(t);this.invalidate()}}get legendToggle(){return this._legendToggle}set legendToggle(t){t!=this._legendToggle&&(this._legendToggle=asBoolean(t))}get tooltip(){return this._tooltip}get dataLabel(){return this._lbl}set dataLabel(t){if(t!=this._lbl){this._lbl=asType(t,DataLabel);this._lbl&&(this._lbl._chart=this)}}get selection(){return this._selection}set selection(t){if(t!=this._selection){this._selection=asType(t,SeriesBase,!0);this.invalidate()}}get renderEngine(){return this._currentRenderEngine}set renderEngine(t){if(t!=this._currentRenderEngine){let e=asType(this._currentRenderEngine,_SvgRenderEngine,!0);e&&e.detach();this._currentRenderEngine=t;let i=asType(this._currentRenderEngine,_SvgRenderEngine,!0);i&&i.attach(this.hostElement);this.refresh()}}onSeriesVisibilityChanged(t){this.seriesVisibilityChanged.raise(this,t)}hitTest(t,e){var i=this._toControl(t,e),s=new HitTestInfo(this,i),r=null;if(FlexChartCore._contains(this._rectHeader,i))s._chartElement=ChartElement.Header;else if(FlexChartCore._contains(this._rectFooter,i))s._chartElement=ChartElement.Footer;else if(FlexChartCore._contains(this._rectLegend,i)){s._chartElement=ChartElement.Legend;var a=i.clone();if(this.legend.scrollbar&&this._legendHost){var n=this._legendHost.querySelector(".wj-legend-scrollable");if(n){if(this.rightToLeft&&!this.legend.isVertical){let t=n.scrollWidth-n.clientWidth-1;a.x+=t+n.scrollLeft}else a.x+=n.scrollLeft;a.y+=n.scrollTop}}null!==(r=this.legend._hitTest(a))&&r>=0&&r<this.series.length&&s._setData(this.series[r])}else if(FlexChartCore._contains(this._rectChart,i)){var h=this._hitTestLabels(i);if(h){s._chartElement=ChartElement.DataLabel;s._dist=0;s._setDataPoint(h.tag)}else{for(var l=this._hitTester.hitTest(i),o=null,_=null,d=this.series.length-1;d>=0;d--)if(this.series[d].hitTest!==Series.prototype.hitTest){var c=this.series[d].hitTest(t);if(c){if(!o||c.distance<o.distance){o=c;_=d}if(0===c.distance)break}}if(l&&l.area)if(o&&o.distance<l.distance)s=o;else if(o&&o.distance==l.distance&&_>l.area.tag.seriesIndex)s=o;else{s._setDataPoint(l.area.tag);s._dist=l.distance}else o&&(s=o);let e=!1;this.axes.some(t=>{if(FlexChartCore._contains(t._axrect,i)){let r;if(t.axisType===AxisType.X){s._chartElement=ChartElement.AxisX;r=t._hitTest(i)}else{s._chartElement=ChartElement.AxisY;r=t._hitTest(i)}r?s._setName(r.label):s._setName("");e=!0;return!0}});e||(FlexChartCore._contains(this._plotRect,i)?s._chartElement=ChartElement.PlotArea:FlexChartCore._contains(this._rectChart,i)&&(s._chartElement=ChartElement.ChartArea))}}else s._chartElement=ChartElement.None;return s}pointToData(t,e){isNumber(t)&&isNumber(e)&&(t=new Point(t,e));if(t instanceof MouseEvent){t=new Point(t.pageX,t.pageY);t=this._toControl(t)}else t=t.clone();t.x=this.axisX.convertBack(t.x);t.y=this.axisY.convertBack(t.y);return t}dataToPoint(t,e){isNumber(t)&&isNumber(e)&&(t=new Point(t,e));asType(t,Point);var i=t.clone();i.x=this.axisX.convert(i.x);i.y=this.axisY.convert(i.y);return i}dispose(){this._markers.forEach(t=>t.remove());this._markers=[];super.dispose()}_copy(t,e){if("series"==t){this.series.clear();for(var i=asArray(e),s=0;s<i.length;s++){var r=this._createSeries();copy(r,i[s]);this.series.push(r)}return!0}return!1}_createSeries(){return new Series}_clearCachedValues(){for(var t=0;t<this._series.length;t++){var e=this._series[t];null==e.itemsSource&&e._clearValues()}}_performBind(){this._xDataType=null;this._xlabels.splice(0);this._xvals.splice(0);if(this._cv){var t=this._cv.items;if(t){var e=t.length;let a=this.bindingX?new Binding(this.bindingX):null;for(var i=0;i<e;i++){var s=t[i];if(a){var r=a.getValue(s);if(isNumber(r)){this._xvals.push(asNumber(r));this._xDataType=DataType.Number}else if(isDate(r)){this._xvals.push(asDate(r).valueOf());this._xDataType=DataType.Date}this._xlabels.push(r)}}this._xvals.length==e?this._xlabels.splice(0):this._xvals.splice(0)}}}_hitTestSeries(t,e){var i=this._toControl(t),s=new HitTestInfo(this,i),r=this._hitTester.hitTestSeries(i,e);if(r&&r.area){s._setDataPoint(r.area.tag);s._chartElement=ChartElement.PlotArea;s._dist=r.distance}return s}_hitTestData(t){var e=this._toControl(t),i=new HitTestInfo(this,e),s=this._hitTester.hitTest(e,!0);if(s&&s.area){i._setDataPoint(s.area.tag);i._dist=s.distance}return i}_hitTestLabels(t){for(var e=null,i=this._lblAreas.length,s=0;s<i;s++)if(this._lblAreas[s].contains(t)){e=this._lblAreas[s];break}return e}static _dist2(t,e){var i=t.x-e.x,s=t.y-e.y;return i*i+s*s}static _dist(t,e,i){return Math.sqrt(FlexChartCore._distToSegmentSquared(t,e,i))}static _distToSegmentSquared(t,e,i){var s=FlexChartCore._dist2(e,i);if(0==s)return FlexChartCore._dist2(t,e);var r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/s;return r<0?FlexChartCore._dist2(t,e):r>1?FlexChartCore._dist2(t,i):FlexChartCore._dist2(t,new Point(e.x+r*(i.x-e.x),e.y+r*(i.y-e.y)))}_isRotated(){return this._getChartType()==ChartType.Bar?!this._rotated:this._rotated}_getChartType(){return null}_prepareRender(){this._hitTester.clear()}_renderChart(t,e,i){var s=this._rectChart.clone(),r=new Size(s.width,s.height);e.width,e.height;this._selectedEls.length=0;(p=this._getPlotter(null)).stacking=this._stacking;if(this._curPlotter!=p){this._curPlotter&&this._curPlotter.unload();this._curPlotter=p}p.load();var a=this._isRotated();this._dataInfo.analyse(this._series,a,p.stacking,this._xvals.length>0?this._xvals:null,this.axisX._getLogBase()>0,this.axisY._getLogBase()>0);var n=p.adjustLimits(this._dataInfo,e.clone());if(a){var h=this._dataInfo.getDataTypeX();h||(h=this._xDataType);this.axisX._updateActualLimits(this._dataInfo.getDataTypeY(),n.left,n.right);this.axisY._updateActualLimits(h,n.top,n.bottom,this._xlabels,this._xvals)}else{var l=this._dataInfo.getDataTypeX();l||(l=this._xDataType);this.axisX._updateActualLimits(l,n.left,n.right,this._xlabels,this._xvals);this.axisY._updateActualLimits(this._dataInfo.getDataTypeY(),n.top,n.bottom)}var o=this._getAxes();this._updateAuxAxes(o,a);this._layout(e,r,t);t.startGroup(FlexChartCore._CSS_PLOT_AREA);t.fill="transparent";t.stroke=null;if(this.plotAreas.length>0)for(var _=0;_<this.plotAreas.length;_++){this.plotAreas[_]._render(t)}else{var d=this._plotRect;t.drawRect(d.left,d.top,d.width,d.height)}t.endGroup();var c=this._series.length;this._clearPlotters();var u={};for(_=0;_<c;_++){var g=this._series[_];if(((b=g.visibility)==SeriesVisibility.Visible||b==SeriesVisibility.Plot)&&g.getValues(0)){var f=g._getAxisY(),p=this._getPlotter(g);if(!f||f==this.axisY||p instanceof _BarPlotter)p.seriesCount++;else{var m=f._uniqueId;u[m]?u[m].count+=1:u[m]={count:1,index:0}}}}this.onRendering(new RenderEventArgs(t));if(this._getChartType()!==ChartType.Funnel)for(_=0;_<o.length;_++){var x=o[_];v=x.axisType==AxisType.X?t.startGroup(FlexChartCore._CSS_AXIS_X,this._chartRectId):t.startGroup(FlexChartCore._CSS_AXIS_Y,this._chartRectId);x._hostElement=i?v:x._hostElement;x._render(t);t.endGroup()}t.startGroup(SeriesClsNames.group);this._plotrectId="plotRect"+(1e6*Math.random()).toFixed();t.addClipRect(this._plotRect,this._plotrectId);t.options=this._options&&this._options.spline?{spline:this._options.spline.approximation}:null;for(_=0;_<c;_++){let e=this._series[_];e._pointIndexes=[];p=this._getPlotter(e);e._plotter=p;var v=t.startGroup(e.cssClass,p.clipping?this._plotrectId:null);e._hostElement=i?v:e._hostElement;var b=e.visibility,y=e.axisX,S=e.axisY;y||(y=this.axisX);S||(S=this.axisY);if(b==SeriesVisibility.Visible||b==SeriesVisibility.Plot){var w,C,T=u[S._uniqueId];if(!T||p instanceof _BarPlotter){w=p.seriesIndex;C=p.seriesCount;p.seriesIndex++;e.onRendering(t,w,C)||p.plotSeries(t,y,S,e,this,w,C)}else{w=T.index;C=T.count;T.index++;e.onRendering(t,w,C)||p.plotSeries(t,y,S,e,this,w,C)}e.onRendered(t)}t.endGroup()}t.endGroup();this._lblAreas=[];this.dataLabel.content&&this.dataLabel.position!=LabelPosition.None&&this._renderLabels(t);this._highlightCurrent();this.onRendered(new RenderEventArgs(t))}_getDesiredLegendSize(t,e,i,s){let r=new Size;const a=this.series,n=a.length;this.legend.scrollbar;let h=0,l=0;this._colRowLens=[];for(var o=0;o<n;o++){var _=o;this._legendReversed()&&(_=n-o-1);var d=tryCast(a[_],SeriesBase),c=d.visibility;if(d.name&&c!=SeriesVisibility.Hidden&&c!=SeriesVisibility.Plot)for(var u=d.legendItemLength(),g=0;g<u;g++){var f=d.measureLegendItem(t,g);if(e){if(h+f.height>s&&!this.legend.scrollbar){r.height=s;this._colRowLens.push(l);l=0;h=0}l<f.width&&(l=f.width);h+=f.height}else{if(l+f.width>i&&!this.legend.scrollbar){r.width=i;this._colRowLens.push(h);h=0;l=0}h<f.height&&(h=f.height);l+=f.width}}}if(e){r.height<h&&(r.height=h);this._colRowLens.push(l);r.width=this._colRowLens.reduce((t,e)=>t+e,0)}else{r.width<l&&(r.width=l);this._colRowLens.push(h);r.height=this._colRowLens.reduce((t,e)=>t+e,0)}return r}_renderLegend(t,e,i,s,r,a){var n,h=this.series,l=h.length,o=e.clone(),_=0;if(this._legendReversed()){for(var d=l-1;d>=0;d--){n=tryCast(h[d],SeriesBase);_=this._renderLegendElements(t,n,e,o,i,s,r,a,_)}i.reverse()}else for(d=0;d<l;d++){n=tryCast(h[d],SeriesBase);_=this._renderLegendElements(t,n,e,o,i,s,r,a,_)}}_legendReversed(){if(null==this._legend.reverse||null===this._legend.reverse){var t=!1,e=this._getChartType();(e===ChartType.Bar||e===ChartType.Column&&this._rotated)&&(this._stacking!==Stacking.None||this.axisY.reversed||(t=!0));return t}return this._legend.reverse}_renderLegendElements(t,e,i,s,r,a,n,h,l){var o=new Rect(i.x,i.y,n,h),_=l;if(!e)return _;var d=e.visibility;if(!e.name||d==SeriesVisibility.Hidden||d==SeriesVisibility.Plot){e._legendElement=null;r.push(null);return _}var c=e.legendItemLength(),u=t.startGroup(e.cssClass);if(d==SeriesVisibility.Legend){u.setAttribute("opacity","0.5");e._legendElement=u}else d==SeriesVisibility.Visible?e._legendElement=u:e._legendElement=null;for(var g=0;g<c;g++){var f=e.measureLegendItem(t,g);if(a){if(s.y+f.height>o.bottom+1&&!this.legend.scrollbar){s.x+=this._colRowLens[_];_++;s.y=i.y}}else if(s.x+f.width>o.right+1&&!this.legend.scrollbar){s.y+=this._colRowLens[_];_++;s.x=i.x}var p=new Rect(s.x,s.y,f.width,f.height);d!=SeriesVisibility.Legend&&d!=SeriesVisibility.Visible||e.drawLegendItem(t,p,g);r.push(p);a?s.y+=f.height:s.x+=f.width}t.endGroup();return _}_renderLabels(t){var e=this.series,i=e.length;t.stroke="null";t.fill="transparent";t.strokeWidth=1;var s=FlexChartCore._CSS_DATA_LABELS;t.startGroup(s);for(var r=0;r<i;r++){var a=e[r],n=this._hitTester._map[r];n&&a._renderLabels(t,n,this,this._lblAreas)}t.endGroup()}_getAxes(){for(var t=[this.axisX,this.axisY],e=this.series.length,i=0;i<e;i++){var s=this.series[i],r=s.axisX;r&&-1===t.indexOf(r)&&t.push(r);var a=s.axisY;a&&-1===t.indexOf(a)&&t.push(a)}return t}_clearPlotters(){for(var t=this._plotters.length,e=0;e<t;e++)this._plotters[e].clear()}_initPlotter(t){t.chart=this;t.dataInfo=this._dataInfo;t.hitTester=this._hitTester;this._plotters.push(t)}get _barPlotter(){if(null===this.__barPlotter){this.__barPlotter=new _BarPlotter;this._initPlotter(this.__barPlotter)}return this.__barPlotter}get _linePlotter(){if(null===this.__linePlotter){this.__linePlotter=new _LinePlotter;this._initPlotter(this.__linePlotter)}return this.__linePlotter}get _areaPlotter(){if(null===this.__areaPlotter){this.__areaPlotter=new _AreaPlotter;this._initPlotter(this.__areaPlotter)}return this.__areaPlotter}get _bubblePlotter(){if(null===this.__bubblePlotter){this.__bubblePlotter=new _BubblePlotter;this._initPlotter(this.__bubblePlotter)}return this.__bubblePlotter}get _financePlotter(){if(null===this.__financePlotter){this.__financePlotter=new _FinancePlotter;this._initPlotter(this.__financePlotter)}return this.__financePlotter}get _funnelPlotter(){if(null===this.__funnelPlotter){this.__funnelPlotter=new _FunnelPlotter;this._initPlotter(this.__funnelPlotter)}return this.__funnelPlotter}_getPlotter(t){var e,i=this._getChartType(),s=!1;if(t){var r=t._getChartType();if(null!=r&&r!=i){i=r;s=!0}}switch(i){case ChartType.Column:this._barPlotter.isVolume=!1;this._barPlotter.width=.7;e=this._barPlotter;break;case ChartType.Bar:this._barPlotter.rotated=!this._rotated;this._barPlotter.isVolume=!1;this._barPlotter.width=.7;e=this._barPlotter;break;case ChartType.Line:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.Scatter:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!1;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.LineSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.Area:this._areaPlotter.isSpline=!1;this._areaPlotter.isStep=!1;e=this._areaPlotter;break;case ChartType.Bubble:e=this._bubblePlotter;break;case ChartType.Candlestick:(a=this._financePlotter).isCandle=!0;a.isEqui=!1;a.isArms=!1;a.isVolume=!1;e=a;break;case ChartType.HighLowOpenClose:var a;(a=this._financePlotter).isCandle=!1;a.isEqui=!1;a.isArms=!1;a.isVolume=!1;e=a;break;case ChartType.Spline:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!0;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.SplineSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!0;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.SplineArea:this._areaPlotter.isSpline=!0;this._areaPlotter.isStep=!1;e=this._areaPlotter;break;case ChartType.Funnel:e=this._funnelPlotter;break;case ChartType.Step:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!0;e=this._linePlotter;break;case ChartType.StepSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!0;e=this._linePlotter;break;case ChartType.StepArea:this._areaPlotter.isSpline=!1;this._areaPlotter.isStep=!0;e=this._areaPlotter;break;default:throw"Invalid chart type."}e.rotated=this._rotated;i==ChartType.Bar&&(e.rotated=!e.rotated);s&&(e.rotated=this._isRotated());return e}_layout(t,e,i){this.plotAreas.length>0?this._layoutMultiple(t,e,i):this._layoutSingle(t,e,i)}_layoutSingle(t,e,i){var s=t.width,r=t.height,a=new Size(s,.75*r),n=new Size(r,.75*s),h=0,l=0,o=s,_=r,d=0,c=0,u=s,g=r;if(this.dataLabel.position===LabelPosition.Top?this.dataLabel.content:null){l=i.measureString(this.dataLabel.content,DataLabelClsNames.label).height}for(var f=this._getAxes(),p=this.axisY._getHeight(i,r),m=0;m<f.length;m++){var x=(M=f[m]).origin,v=M._getPosition();if(M.axisType==AxisType.X){(w=M._getHeight(i,Math.max(10,s-p)))>a.height&&(w=a.height);M._desiredSize=new Size(a.width,w);var b=M._hasOrigin=isNumber(x)&&x>this.axisY._getMinNum()&&x<this.axisY._getMaxNum(),y=Math.min(.25*s,M._annoSize.width);if(v==Position.Bottom){h=Math.max(h,.5*y);o=Math.min(o,s-.5*y);if(b){var S=this._convertY(x,c,g);g-=Math.max(0,S+w-g)}else g-=w}else if(v==Position.Top){h=Math.max(h,.5*y);o=Math.min(o,s-.5*y);if(b){S=this._convertY(x,c,g);c+=Math.max(0,c-(S-w))}else c+=w}}else if(M.axisType==AxisType.Y){var w;(w=M===this.axisX?p:M._getHeight(i,r))>n.height&&(w=n.height);M._desiredSize=new Size(n.width,w);b=M._hasOrigin=isNumber(x)&&x>this.axisX._getMinNum()&&x<this.axisX._getMaxNum();if(v==Position.Left){if(M._actualAngle<0)_=Math.min(_,r-M._annoSize.height);else if(M._actualAngle>0)l=Math.max(l,M._annoSize.height);else{l=Math.max(l,M._annoSize.height);_=Math.min(_,r-M._annoSize.height)}if(b){var C=this._convertX(x,d,u);d+=Math.max(0,d-(C-w))}else d+=w}else if(v==Position.Right){if(M._actualAngle>0)_=Math.min(_,r-M._annoSize.height);else if(M._actualAngle<0)l=Math.max(l,M._annoSize.height);else{l=Math.max(l,M._annoSize.height);_=Math.min(_,r-M._annoSize.height)}if(b){C=this._convertX(x,d,u);u-=Math.max(0,C+w-u)}else u-=w}}}var T=this._parseMargin(this.plotMargin);h=d=isNaN(T.left)?Math.max(h,d)+t.left:T.left;o=u=isNaN(T.right)?Math.min(o,u)+t.left:e.width-T.right;l=c=isNaN(T.top)?Math.max(l,c)+t.top:T.top;_=g=isNaN(T.bottom)?Math.min(_,g)+t.top:e.height-T.bottom;s=Math.max(1,o-h);r=Math.max(1,_-l);this._plotRect=new Rect(h,l,s,r);_<=l&&(g=c+1);i.stroke=null;for(m=0;m<f.length;m++){var M;x=(M=f[m]).origin,v=M._getPosition();if(M.axisType==AxisType.X){var P;if(M._hasOrigin){S=this._convertY(x,this._plotRect.top,this._plotRect.bottom);if(v==Position.Bottom){P=new Rect(h,S,s,M._desiredSize.height);g+=Math.max(0,P.bottom-this._plotRect.bottom)}else if(v==Position.Top){P=new Rect(h,S-M._desiredSize.height,s,M._desiredSize.height);c-=Math.max(0,this._plotRect.top-P.top)}else P=new Rect(h,S,s,1)}else if(v==Position.Bottom){P=new Rect(h,g,s,M._desiredSize.height);g+=M._desiredSize.height}else if(v==Position.Top){P=new Rect(h,c-M._desiredSize.height,s,M._desiredSize.height);c-=M._desiredSize.height}else P=new Rect(h,c,s,1);M._layout(P,this._plotRect)}else if(M.axisType==AxisType.Y){var A;if(M._hasOrigin){C=this._convertX(x,this._plotRect.left,this._plotRect.right);if(v==Position.Left){A=new Rect(C-M._desiredSize.height,l,r,M._desiredSize.height);d-=M._desiredSize.height}else if(v==Position.Right){A=new Rect(C,l,r,M._desiredSize.height);u+=M._desiredSize.height}else A=new Rect(C,l,r,1)}else if(v==Position.Left){A=new Rect(d-M._desiredSize.height,l,r,M._desiredSize.height);d-=M._desiredSize.height}else if(v==Position.Right){A=new Rect(u,l,r,M._desiredSize.height);u+=M._desiredSize.height}else A=new Rect(d,l,r,1);M._layout(A,this._plotRect)}}}_layoutMultiple(t,e,i){for(var s=t.width,r=t.height,a=[],n=[],h=this._getAxes(),l=h.length,o=0;o<l;o++){(C=h[o])._plotrect=null;if(C.axisType==AxisType.X){for(var _=C.plotArea?C.plotArea.column:0;a.length<=_;)a.push(new _AreaDef);a[_].axes.push(C)}else if(C.axisType==AxisType.Y){for(var d=C.plotArea?C.plotArea.row:0;n.length<=d;)n.push(new _AreaDef);n[d].axes.push(C)}}for(var c=a.length,u=n.length,g=new Size(s,.3*r),f=new Size(r,.3*s),p=0,m=0,x=s,v=r,b=0;b<c;b++){(N=a[b]).right=s;N.bottom=r;for(o=0;o<N.axes.length;o++){var y=(C=N.axes[o])._getHeight(i,C.axisType==AxisType.X?s:r);y>g.height&&(y=g.height);var S=new Size(g.width,y);C._desiredSize=S;0==b&&(N.left=Math.max(N.left,.5*C._annoSize.width));b==c-1&&(N.right=Math.min(N.right,s-.5*C._annoSize.width));(D=C._getPosition())==Position.Bottom?N.bottom-=S.height:D==Position.Top&&(N.top+=S.height)}}for(var w=0;w<u;w++){(N=n[w]).right=s;N.bottom=r;for(o=0;o<N.axes.length;o++){var C=N.axes[o],T=new Size(f.width,C._getHeight(i,C.axisType==AxisType.X?s:r));T.height>f.height&&(T.height=f.height);C._desiredSize=T;0==w&&(N.top=Math.max(N.top,.5*C._annoSize.width));w==u-1&&(N.bottom=Math.min(N.bottom,r-.5*C._annoSize.width));(D=C._getPosition())==Position.Left?N.left+=T.height:D==Position.Right&&(N.right-=T.height)}}var M=0,P=0,A=s,L=r;for(b=0;b<c;b++){var N=a[b];M=Math.max(M,N.left);P=Math.max(P,N.top);A=Math.min(A,N.right);L=Math.min(L,N.bottom)}for(w=0;w<u;w++){N=n[w];M=Math.max(M,N.left);P=Math.max(P,N.top);A=Math.min(A,N.right);L=Math.min(L,N.bottom)}M=p=Math.max(p,M);A=x=Math.min(x,A);P=m=Math.max(m,P);L=v=Math.min(v,L);this._plotRect=new Rect(p,m,x-p,v-m);var k=this._plotRect.clone(),E=p,I=this.plotAreas._calculateWidths(this._plotRect.width,c);for(b=0;b<c;b++){L=v;P=m;N=a[b];var R=I[b];for(o=0;o<N.axes.length;o++){var F,D=(C=N.axes[o])._getPosition(),B=new Rect(E,k.top,R,k.height);if(D==Position.Bottom){F=new Rect(E,L,R,C._desiredSize.height);L+=C._desiredSize.height}else if(D==Position.Top){F=new Rect(E,P-C._desiredSize.height,R,C._desiredSize.height);P-=C._desiredSize.height}C._layout(F,B)}for(o=0;o<this.plotAreas.length;o++){(H=this.plotAreas[o]).column==b&&H._setPlotX(E,R)}E+=R}var V=m,z=this.plotAreas._calculateHeights(this._plotRect.height,u);for(w=0;w<u;w++){M=p;A=x;N=n[w];var X=z[w];for(o=0;o<N.axes.length;o++){var O;D=(C=N.axes[o])._getPosition(),B=new Rect(k.left,V,k.width,X);if(C._plotrect){B.left=C._plotrect.left;B.width=C._plotrect.width}else I&&I.length>0&&(B.width=I[0]);if(D==Position.Left){O=new Rect(M-C._desiredSize.height,V,X,C._desiredSize.height);M-=C._desiredSize.height}else if(D==Position.Right){O=new Rect(A,V,X,C._desiredSize.height);A+=C._desiredSize.height}C._layout(O,B)}for(o=0;o<this.plotAreas.length;o++){var H;(H=this.plotAreas[o]).row==w&&H._setPlotY(V,X)}V+=X}}_convertX(t,e,i){var s=this.axisX;return s.reversed?i-(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum()):e+(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum())}_convertY(t,e,i){var s=this.axisY;return s.reversed?e+(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum()):i-(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum())}_getLabelContent(t,e){return t.chartElement!==ChartElement.AxisX&&t.chartElement!==ChartElement.AxisY||!t.name?isString(e)?this._keywords.replace(e,t):isFunction(e)?e(t):null:t.name}_select(t,e){const i=this.selectionMode;var s=!1;(t!=this._selection||i==SelectionMode.Point&&e!=this._selectionIndex)&&(s=!0);this._selection&&this._highlight(this._selection,!1,this._selectionIndex);this._selection=t;this._selectionIndex=e;this._selection&&this._highlight(this._selection,!0,this._selectionIndex);if(i==SelectionMode.Point){var r=t?t.collectionView:this._cv;if(r){this._notifyCurrentChanged=!1;r.moveCurrentToPosition(t?e:-1);this._notifyCurrentChanged=!0}}s&&this.onSelectionChanged()}_highlightCurrent(){if(this.selectionMode!=SelectionMode.None){var t=this._selection,e=-1;if(t){var i=t.collectionView;i||(i=this._cv);i&&(e=i.currentPosition);this._highlight(t,!0,e)}}}_highlight(t,e,i){t=asType(t,SeriesBase,!0);if(this.selectionMode==SelectionMode.Series){var s=this.series.indexOf(t),r=t.hostElement;e?r.parentNode.appendChild(r):r.parentNode.insertBefore(r,r.parentNode.childNodes.item(s));var a=this._find(r,["rect","ellipse","polyline","polygon","line","path"]);this._highlightItems(a,FlexChartCore._CSS_SELECTION,e);t.legendElement&&this._highlightItems(this._find(t.legendElement,["rect","ellipse","line"]),FlexChartCore._CSS_SELECTION,e)}else if(this.selectionMode==SelectionMode.Point){s=this.series.indexOf(t),r=t.hostElement;if(e){r.parentNode.appendChild(r);var n=t.getPlotElement(i);if(n)if(n instanceof SVGElement){if("g"!=n.nodeName){this._highlightItems([n],FlexChartCore._CSS_SELECTION,e);this._selectedEls.push(n)}if((a=this._find(n,["line","rect","ellipse","path","polygon"])).length>0){this._highlightItems(a,FlexChartCore._CSS_SELECTION,e);for(let t=0;t<a.length;t++)this._selectedEls.push(a[t])}}else if(Array.isArray(n)){this._highlightItems(n,FlexChartCore._CSS_SELECTION,e);for(let t=0;t<n.length;t++)this._selectedEls.push(n[t])}}else{r.parentNode.insertBefore(r,r.parentNode.childNodes.item(s));if(this._selectedEls.length>0){this._highlightItems(this._selectedEls,FlexChartCore._CSS_SELECTION,e);this._selectedEls.length=0}}}}_updateTooltip(t,e){let i,s=this.hitTest(e);if(s.distance<=t.threshold){let e=t.content;if(s.series){let t=s.series.tooltipContent;(t||""===t)&&(e=t)}i=this._getLabelContent(s,e)}this._hideToolTip();i&&this._showToolTip(i,new Rect(e.clientX,e.clientY,5,5))}_updateAuxAxes(t,e){for(var i=2;i<t.length;i++){var s=t[i];s._chart=this;for(var r,a,n=[],h=0;h<this.series.length;h++){var l=this.series[h];l.axisX!=s&&l.axisY!=s||n.push(l)}for(h=0;h<n.length;h++){var o=n[h].getDataRect()||n[h]._getDataRect();if(o)if(s.axisType==AxisType.X&&!e||s.axisType==AxisType.Y&&e){(void 0===r||o.left<r)&&(r=o.left);(void 0===a||o.right>a)&&(a=o.right)}else{(void 0===r||o.top<r)&&(r=o.top);(void 0===a||o.bottom>a)&&(a=o.bottom)}}var _=n[0].getDataType(0);null==_&&(_=DataType.Number);t[i]._updateActualLimits(_,r,a)}}}FlexChartCore._CSS_AXIS_X=AxisClsNames.axisX;FlexChartCore._CSS_AXIS_Y=AxisClsNames.axisY;FlexChartCore._CSS_LINE=AxisClsNames.line;FlexChartCore._CSS_GRIDLINE=AxisClsNames.gridline;FlexChartCore._CSS_TICK=AxisClsNames.tick;FlexChartCore._CSS_GRIDLINE_MINOR=AxisClsNames.gridlineMinor;FlexChartCore._CSS_TICK_MINOR=AxisClsNames.tickMinor;FlexChartCore._CSS_DATA_LABELS=DataLabelClsNames.labels;class _AreaDef{constructor(){this._axes=new Array;this.left=0;this.right=0;this.top=0;this.bottom=0}get axes(){return this._axes}}export class _DataInfo{constructor(){this.stackAbs={};this._xvals=null}analyse(t,e,i,s,r,a){this.minY=NaN;this.maxY=NaN;this.minX=NaN;this.maxX=NaN;this.minXp=NaN;this.minYp=NaN;this.dx=0;var n={},h={},l={};this.dataTypeX=null;this.dataTypeY=null;this._xvals=s;if(null!=s)for(var o=s.length,_=0;_<o;_++){var d=s[_];(isNaN(this.minX)||this.minX>d)&&(this.minX=d);(isNaN(this.maxX)||this.maxX<d)&&(this.maxX=d);d>0&&(isNaN(this.minXp)||this.minXp>d)&&(this.minXp=d);if(_>0){var c=Math.abs(d-s[_-1]);!isNaN(c)&&(c<this.dx||0==this.dx)&&(this.dx=c)}}for(_=0;_<t.length;_++){var u=t[_],g=u._getChartType(),f=void 0!==u.chartType,p=u.visibility;if(p!=SeriesVisibility.Hidden&&p!=SeriesVisibility.Legend){var m,x=u.getDataRect();if(x){if(!isNaN(this.minX)&&this.minX<x.left){m=x.right;x.left=this.minX;x.width=m-this.minX}!isNaN(this.maxX)&&this.maxX>x.right&&(x.width=this.maxX-x.left);if(!u._isCustomAxisY()){if(!isNaN(this.minY)&&this.minY<x.top){m=x.bottom;x.top=this.minY;x.height=m-this.minY}!isNaN(this.maxY)&&this.maxY>x.bottom&&(x.height=this.maxY-x.top)}}var v=null;e?u._isCustomAxisY()||(v=u.getValues(1)):u._isCustomAxisX()||(v=u.getValues(1));if(v){this.dataTypeX||(this.dataTypeX=u.getDataType(1));for(var b=0;b<v.length;b++){var y=v[b];if(isFinite(y)){(isNaN(this.minX)||this.minX>y)&&(this.minX=y);(isNaN(this.maxX)||this.maxX<y)&&(this.maxX=y);if(b>0&&(!g||g==ChartType.Column||g==ChartType.Bar)){c=Math.abs(y-v[b-1]);!isNaN(c)&&c>0&&(c<this.dx||0==this.dx)&&(this.dx=c)}}}}var S=null,w=!1;if(e){w=u._isCustomAxisX();S=u.getValues(0)}else{w=u._isCustomAxisY();S=u.getValues(0)}if(S){this.dataTypeY||w||(this.dataTypeY=u.getDataType(0));isNaN(this.minX)?this.minX=0:v||s||(this.minX=Math.min(this.minX,0));isNaN(this.maxX)?this.maxX=S.length-1:v||s||(this.maxX=Math.max(this.maxX,S.length-1));if(!w){let t=i==Stacking.None||f;for(let e=0;e<S.length;e++){let i=S[e],r=v?asNumber(v[e],!0):s?asNumber(s[e],!0):e;isArray(i)?i.forEach(e=>{this._parseYVal(e,r,t,l,n,h)}):this._parseYVal(i,r,t,l,n,h)}}}var C=u.getDataRect(new Rect(this.minX,this.minY,this.maxX-this.minX,this.maxY-this.minY),x);if(C){this.minX=C.left;this.maxX=C.right;if(!w){this.minY=C.top;this.maxY=C.bottom}}}}if(i==Stacking.Stacked){for(var T in n)n[T]>this.maxY&&(this.maxY=n[T]);for(var T in h)h[T]<this.minY&&(this.minY=h[T])}else if(i==Stacking.Stacked100pc){this.minY=0;this.maxY=0;for(var T in l){var M=l[T];if(isFinite(M)&&0!=M){var P=n[T],A=h[T];isFinite(P)&&(P=Math.max(P/M,this.maxY))>this.maxY&&(this.maxY=P);isFinite(A)&&(A=Math.min(A/M,this.minY))<this.minY&&(this.minY=A)}}if(this.minY==this.maxY){this.minY=0;this.maxY=1}}this.stackAbs=l;r&&(e?this.minY=isNaN(this.minYp)?1:this.minYp:this.minX=isNaN(this.minXp)?1:this.minXp);a&&(e?this.minX=isNaN(this.minXp)?1:this.minXp:this.minY=isNaN(this.minYp)?1:this.minYp)}_parseYVal(t,e,i,s,r,a){if(isFinite(t)){null!=t&&(isNaN(this.minY)||this.minY>t)&&(this.minY=t);null!=t&&(isNaN(this.maxY)||this.maxY<t)&&(this.maxY=t);t>0&&(isNaN(this.minYp)||this.minYp>t)&&(this.minYp=t);if(!i){t>0?isNaN(r[e])?r[e]=t:r[e]+=t:isNaN(a[e])?a[e]=t:a[e]+=t;isNaN(s[e])?s[e]=Math.abs(t):s[e]+=Math.abs(t)}}}getMinY(){return this.minY}getMaxY(){return this.maxY}getMinX(){return this.minX}getMaxX(){return this.maxX}getMinXp(){return this.minXp}getMinYp(){return this.minYp}getDeltaX(){return this.dx}getDataTypeX(){return this.dataTypeX}getDataTypeY(){return this.dataTypeY}getStackedAbsSum(t){var e=this.stackAbs[t];return isFinite(e)?e:0}getXVals(){return this._xvals}static isValid(...t){let e=t.length;for(let i=0;i<e;i++)if(!isFinite(t[i]))return!1;return!0}}export class FlexChart extends FlexChartCore{constructor(t,e){super(t,null);this._chartType=ChartType.Column;this.initialize(e)}_getChartType(){return this._chartType}get chartType(){return this._chartType}set chartType(t){if((t=asEnum(t,ChartType))!=this._chartType){this._chartType=t;this.invalidate()}}get rotated(){return this._rotated}set rotated(t){if(t!=this._rotated){this._rotated=asBoolean(t);this.invalidate()}}get stacking(){return this._stacking}set stacking(t){if((t=asEnum(t,Stacking))!=this._stacking){this._stacking=t;this.invalidate()}}get options(){return this._options}set options(t){if(t!=this._options){this._options=t;this.invalidate()}}}export var LabelPosition;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=3]="Right";t[t.Bottom=4]="Bottom";t[t.Center=5]="Center"}(LabelPosition||(LabelPosition={}));export var PieLabelPosition;!function(t){t[t.None=0]="None";t[t.Inside=1]="Inside";t[t.Center=2]="Center";t[t.Outside=3]="Outside";t[t.Radial=4]="Radial";t[t.Circular=5]="Circular"}(PieLabelPosition||(PieLabelPosition={}));export class DataLabelRenderEventArgs extends RenderEventArgs{constructor(t,e,i,s){super(t);this.cancel=!1;this._ht=e;this._pt=i;this._text=s}get point(){return this._pt}get text(){return this._text}set text(t){this._text=asString(t)}get hitTestInfo(){return this._ht}}export class DataLabelBase{constructor(){this.rendering=new Event}get content(){return this._content}set content(t){if(t!=this._content){this._content=t;this._invalidate()}}get border(){return this._bdr}set border(t){if(t!=this._bdr){this._bdr=asBoolean(t,!0);this._invalidate()}}get offset(){return this._off}set offset(t){if(t!=this._off){this._off=asNumber(t,!0);this._invalidate()}}get connectingLine(){return this._line}set connectingLine(t){if(t!=this._line){this._line=asBoolean(t,!0);this._invalidate()}}onRendering(t){this.rendering.raise(this,t);return!t.cancel}_invalidate(){this._chart&&this._chart.invalidate()}}export class DataLabel extends DataLabelBase{constructor(){super(...arguments);this._pos=LabelPosition.Top}get position(){return this._pos}set position(t){if((t=asEnum(t,LabelPosition))!=this._pos){this._pos=t;this._invalidate()}}}export class PieDataLabel extends DataLabelBase{constructor(){super(...arguments);this._pos=PieLabelPosition.Center}get position(){return this._pos}set position(t){if((t=asEnum(t,PieLabelPosition))!=this._pos){this._pos=t;this._invalidate()}}}export class _DataPoint{constructor(t,e,i,s){this._seriesIndex=t;this._pointIndex=e;this._dataX=i;this._dataY=s}get seriesIndex(){return this._seriesIndex}get pointIndex(){return this._pointIndex}get dataX(){return this._dataX}set dataX(t){t!==this._dataX&&(this._dataX=t)}get dataY(){return this._dataY}set dataY(t){t!==this._dataY&&(this._dataY=t)}}export var _MeasureOption;!function(t){t[t.X=0]="X";t[t.Y=1]="Y";t[t.XY=2]="XY"}(_MeasureOption||(_MeasureOption={}));export class _RectArea{constructor(t){this._rect=t}get rect(){return this._rect}contains(t){var e=this._rect;return t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom}pointDistance(t,e,i){var s=e.x-t.x,r=e.y-t.y;return i==_MeasureOption.X?Math.abs(s):i==_MeasureOption.Y?Math.abs(r):Math.sqrt(s*s+r*r)}distance(t){var e=_MeasureOption.XY;isNaN(t.x)||null===t.x?e=_MeasureOption.Y:(isNaN(t.y)||null===t.y)&&(e=_MeasureOption.X);var i=this._rect;return t.x<i.left?t.y<i.top?this.pointDistance(t,new Point(i.left,i.top),e):t.y>i.bottom?this.pointDistance(t,new Point(i.left,i.bottom),e):e==_MeasureOption.Y?0:i.left-t.x:t.x>i.right?t.y<i.top?this.pointDistance(t,new Point(i.right,i.top),e):t.y>i.bottom?this.pointDistance(t,new Point(i.right,i.bottom),e):e==_MeasureOption.Y?0:t.x-i.right:e==_MeasureOption.X?0:t.y<i.top?i.top-t.y:t.y>i.bottom?t.y-i.bottom:0}}export class _CircleArea{constructor(t,e){this._center=t;this.setRadius(e)}setRadius(t){this._rad=t;this._rad2=t*t}get center(){return this._center}contains(t){var e=this._center.x-t.x,i=this._center.y-t.y;return e*e+i*i<=this._rad2}distance(t){var e=isNaN(t.x)?0:this._center.x-t.x,i=isNaN(t.y)?0:this._center.y-t.y,s=e*e+i*i;return s<=this._rad2?0:Math.sqrt(s)-this._rad}}export class _LinesArea{constructor(t,e){this._x=[];this._y=[];this._x=t;this._y=e}contains(t){return!1}distance(t){for(var e=NaN,i=0;i<this._x.length-1;i++){var s=FlexChartCore._dist(t,new Point(this._x[i],this._y[i]),new Point(this._x[i+1],this._y[i+1]));(isNaN(e)||s<e)&&(e=s)}return e}}export class _HitResult{}export class _HitTester{constructor(t){this._map={};this._chart=t}add(t,e){if(this._map[e]){t.tag||(t.tag=new _DataPoint(e,NaN,NaN,NaN));this._map[e].push(t)}}clear(){this._map={};for(var t=this._chart.series,e=0;e<t.length;e++)t[e].hitTest===Series.prototype.hitTest&&(this._map[e]=new Array)}hitTest(t,e=!1){for(var i=null,s=Number.MAX_VALUE,r=this._chart.series.length-1;r>=0;r--){var a=this._map[r];if(a){for(var n=a.length-1;n>=0;n--){var h=a[n];if(!tryCast(h,_LinesArea)||e){var l=h.distance(t);if(l<s){i=h;if(0==(s=l))break}}}if(0==s)break}}if(i){var o=new _HitResult;o.area=i;o.distance=s;return o}return null}hitTestSeries(t,e){var i=null,s=Number.MAX_VALUE,r=this._map[e];if(r)for(var a=r.length-1;a>=0;a--){var n=r[a],h=n.distance(t);if(h<s){i=n;if(0==(s=h))break}}if(i){var l=new _HitResult;l.area=i;l.distance=s;return l}return null}}export var ChartElement;!function(t){t[t.PlotArea=0]="PlotArea";t[t.AxisX=1]="AxisX";t[t.AxisY=2]="AxisY";t[t.ChartArea=3]="ChartArea";t[t.Legend=4]="Legend";t[t.Header=5]="Header";t[t.Footer=6]="Footer";t[t.Series=7]="Series";t[t.SeriesSymbol=8]="SeriesSymbol";t[t.DataLabel=9]="DataLabel";t[t.None=10]="None"}(ChartElement||(ChartElement={}));export class HitTestInfo{constructor(t,e,i){this._pointIndex=null;this._chartElement=ChartElement.None;this._chart=t;this._pt=e;this._chartElement=i}get chart(){return this._chart}get point(){return this._pt}get series(){return this._series}get pointIndex(){return this._pointIndex}get chartElement(){return this._chartElement}get distance(){return this._dist}get item(){if(null==this._item&&null!==this.pointIndex)if(null!=this.series)this._item=this.series._getItem(this.pointIndex);else{var t=this._chart._getHitTestItem(this.pointIndex);t&&(this._item=t)}return this._item}get x(){void 0===this._x&&(this._x=this._getValue(1,!1));return this._x}get y(){void 0===this._y&&(this._y=this._getValue(0,!1));return this._y}get value(){var t=this._chart._getHitTestValue(this.pointIndex,this._groupIndex);return null!=t?t:this.series&&null!=this.series._getValue?this.series._getValue(this.pointIndex):this.y}get name(){if(void 0===this._name){var t=this._chart._getHitTestLabel(this.pointIndex);return null==t?this.series.name:t.toString()}return this._name}get groupIndex(){return this._groupIndex}get _xfmt(){void 0===this.__xfmt&&(this.__xfmt=this._getValue(1,!0));return this.__xfmt}get _yfmt(){void 0===this.__yfmt&&(this.__yfmt=this._getValue(0,!0));return this.__yfmt}_setData(t,e){this._series=t;this._pointIndex=e}_setDataGroup(t,e){this._groupIndex=t;this._pointIndex=e}_setName(t){this._name=t;t&&(this._dist=0)}_setDataPoint(t){if(t=asType(t,_DataPoint,!0)){this._pointIndex=t.pointIndex;var e=asType(this._chart,FlexChartCore,!0),i=t.seriesIndex;null!==i&&i>=0&&i<e.series.length&&(this._series=e.series[i]);null!=t.item&&(this._item=t.item);null!=t.x&&(this._x=t.x);null!=t.y&&(this._y=t.y);null!=t.xfmt&&(this.__xfmt=t.xfmt);null!=t.yfmt&&(this.__yfmt=t.yfmt);null!=t.name&&(this._name=t.name)}}_getValueFmt(){let t=this.value;if(null!=t){if(null==this.series){var e=t==Math.round(t)?"{val:n0}":"{val:n}";return format(e,{val:t})}t=this._chart._isRotated()?this.ax._formatValue(t):this.ay._formatValue(t)}return t}_getValue(t,e){var i=this._chart._getHitTestValue(this.pointIndex,this.groupIndex);if(null!==i)return i;var s=null,r=this._chart,a=this.pointIndex,n=r._isRotated();if(null!==this.series&&null!==a){var h=this.series.getValues(t),l=this.series.getDataType(t);if(h&&this.pointIndex<h.length){s=h[this.pointIndex];l!=DataType.Date||e||(s=new Date(s))}else if(1==t)if(r._xlabels&&r._xlabels.length>0&&a<r._xlabels.length)s=r._xlabels[a];else if(r._xvals&&a<r._xvals.length){s=r._xvals[a];r._xDataType!=DataType.Date||e||(s=new Date(s))}}null!==s&&e&&(n?0==t?s=this.ax._formatValue(s):1==t&&(s=this.ay._formatValue(s)):0==t?s=this.ay._formatValue(s):1==t&&(s=this.ax._formatValue(s)));return s}get ax(){return this.series.axisX?this.series.axisX:this._chart.axisX}get ay(){return this.series.axisY?this.series.axisY:this._chart.axisY}}export var SeriesVisibility;!function(t){t[t.Visible=0]="Visible";t[t.Plot=1]="Plot";t[t.Legend=2]="Legend";t[t.Hidden=3]="Hidden"}(SeriesVisibility||(SeriesVisibility={}));export var Marker;!function(t){t[t.Dot=0]="Dot";t[t.Box=1]="Box"}(Marker||(Marker={}));export class DataArray{}export class SeriesEventArgs extends EventArgs{constructor(t){super();this._series=asType(t,SeriesBase)}get series(){return this._series}}export class SeriesBase{constructor(t){this._altStyle=null;this._symbolMarker=Marker.Dot;this._visibility=SeriesVisibility.Visible;this._interpolateNulls=null;this._cache={};this.rendering=new Event;this.rendered=new Event;this.initialize(t)}get interpolateNulls(){return null==this._interpolateNulls?this._chart&&this._chart.interpolateNulls:this._interpolateNulls}set interpolateNulls(t){if(t!=this._interpolateNulls){this._interpolateNulls=asBoolean(t,!0);this._invalidate()}}get style(){return this._style}set style(t){if(t!=this._style){this._style=t;this._invalidate()}}get altStyle(){return this._altStyle}set altStyle(t){if(t!=this._altStyle){this._altStyle=t;this._invalidate()}}get symbolStyle(){return this._symbolStyle}set symbolStyle(t){if(t!=this._symbolStyle){this._symbolStyle=t;this._invalidate()}}get symbolSize(){return this._symbolSize}set symbolSize(t){if(t!=this._symbolSize){this._symbolSize=asNumber(t,!0,!0);this._invalidate()}}get symbolMarker(){return this._symbolMarker}set symbolMarker(t){if((t=asEnum(t,Marker,!0))!=this._symbolMarker){this._symbolMarker=t;this._invalidate()}}get binding(){return this._binding?this._binding:this._chart?this._chart.binding:null}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._clearValues();this._invalidate()}}get bindingX(){return this._bindingX?this._bindingX:this._chart?this._chart.bindingX:null}set bindingX(t){if(t!=this._bindingX){this._bindingX=asString(t,!0);this._clearValues();this._invalidate()}}get name(){return this._name}set name(t){this._name=t}get itemsSource(){return this._itemsSource}set itemsSource(t){if(t!=this._itemsSource){if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._itemsSource=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._clearValues();this._itemsSource=t;this._invalidate()}}get collectionView(){return this._cv?this._cv:this._chart?this._chart.collectionView:null}get chart(){return this._chart}get hostElement(){return this._hostElement}get legendElement(){return this._legendElement}get cssClass(){return this._cssClass}set cssClass(t){this._cssClass=asString(t,!0)}get visibility(){return this._visibility}set visibility(t){if((t=asEnum(t,SeriesVisibility))!=this._visibility){this._visibility=t;this._clearValues();this._invalidate();this._chart&&this._chart.onSeriesVisibilityChanged(new SeriesEventArgs(this))}}get tooltipContent(){return this._tooltipContent}set tooltipContent(t){t!=this._tooltipContent&&(this._tooltipContent=t)}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._invalidate()}}hitTest(t,e){isNumber(t)&&isNumber(e)?t=new Point(t,e):t instanceof MouseEvent&&(t=new Point(t.pageX,t.pageY));asType(t,Point);return this._chart?this._chart._hitTestSeries(t,this._chart.series.indexOf(this)):null}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){var e=this._pointIndexes[t];if(e<this.hostElement.childNodes.length)return this.hostElement.childNodes[e]}return null}get axisX(){return this._axisX}set axisX(t){if(t!=this._axisX){this._axisX=asType(t,Axis,!0);if(this._axisX){var e=this._axisX._chart=this._chart;e&&-1==e.axes.indexOf(this._axisX)&&e.axes.push(this._axisX)}this._invalidate()}}get axisY(){return this._axisY}set axisY(t){if(t!=this._axisY){this._axisY=asType(t,Axis,!0);if(this._axisY){var e=this._axisY._chart=this._chart;e&&-1==e.axes.indexOf(this._axisY)&&e.axes.push(this._axisY)}this._invalidate()}}initialize(t){copy(this,t)}pointToData(t){asType(t,Point);(t=t.clone()).x=this._getAxisX().convertBack(t.x);t.y=this._getAxisY().convertBack(t.y);return t}dataToPoint(t){asType(t,Point);(t=t.clone()).x=this._getAxisX().convert(t.x);t.y=this._getAxisY().convert(t.y);return t}onRendering(t,e,i){var s=new SeriesRenderingEventArgs(t,e,i);this.rendering.raise(this,s);return s.cancel}onRendered(t){this.rendered.raise(this,new RenderEventArgs(t))}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}_getSymbolSize(){return null!=this.symbolSize?this.symbolSize:this.chart.symbolSize}get _plotter(){this.chart&&!this.__plotter&&(this.__plotter=this.chart._getPlotter(this));return this.__plotter}set _plotter(t){t!=this.__plotter&&(this.__plotter=t)}getDataType(t){return 0==t?this._valueDataType:1==t?this._xvalueDataType:null}getValues(t){if(0==t){if(null==this._values){this._valueDataType=null;if(null!=this._cv){var e=this._bindValues(this._cv.items,this._getBinding(0));this._values=e.values;this._valueDataType=e.dataType}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){e=this._bindValues(this._chart.collectionView.items,this._getBinding(0));this._values=e.values;this._valueDataType=e.dataType}}return this._values}if(1==t){if(null==this._xvalues){this._xvalueDataType=null;if(null!=this.bindingX)if(null!=this._cv){e=this._bindValues(this._cv.items,this.bindingX,!0);this._xvalueDataType=e.dataType;this._xvalues=e.values}else{if(null==this._bindingX)return null;if(null!=this._chart&&null!=this._chart.collectionView){e=this._bindValues(this._chart.collectionView.items,this.bindingX,!0);this._xvalueDataType=e.dataType;this._xvalues=e.values}}}return this._xvalues}return null}drawLegendItem(t,e,i){var s=this._getChartType();null==s&&(s=this._chart._getChartType());let r=this._getLegendStyle(this.style);s===ChartType.Funnel?this._drawFunnelLegendItem(t,e,i,r,this.symbolStyle):this._drawLegendItem(t,e,s,this.name,r,this.symbolStyle)}_getLegendStyle(t){if(!t)return;let e={};t.fill&&(e.fill=t.fill);t.stroke&&(e.stroke=t.stroke);return e}measureLegendItem(t,e){var i=this._getChartType();null==i&&(i=this._chart._getChartType());return i===ChartType.Funnel?this._measureLegendItem(t,this._getFunnelLegendName(e)):this._measureLegendItem(t,this.name)}legendItemLength(){var t=this._getChartType();null==t&&(t=this._chart._getChartType());return t===ChartType.Funnel?this._chart._xlabels&&this._chart._xlabels.length?this._chart._xlabels.length:this._chart._xvals&&this._chart._xvals.length?this._chart._xvals.length:1:1}getDataRect(t,e){return null}_getChartType(){return this._chartType}_clearValues(){this._values=null;this._xvalues=null;this.__plotter=null;this._cache={}}_getBinding(t){var e=this.binding;if(e){var i=this.chart?this.chart._bindingSeparator:",";if(i){var s=e.split(i);s&&s.length>t&&(e=s[t].trim())}}return e}_getBindingValues(t){if(this._cache[t])return this._cache[t];var e;null!=this._cv?e=this._cv.items:null!=this._chart&&null!=this._chart.collectionView&&(e=this._chart.collectionView.items);var i=this._bindValues(e,this._getBinding(t));return this._cache[t]=i.values}_getItem(t){var e=null,i=null;null!=this.itemsSource?i=null!=this._cv?this._cv.items:this.itemsSource:null!=this._chart.itemsSource&&(i=null!=this._chart.collectionView?this._chart.collectionView.items:this._chart.itemsSource);null!=i&&(e=i[t]);return e}_getLength(){var t=0,e=null;null!=this.itemsSource?e=null!=this._cv?this._cv.items:this.itemsSource:null!=this._chart.itemsSource&&(e=null!=this._chart.collectionView?this._chart.collectionView.items:this._chart.itemsSource);null!=e&&(t=e.length);return t}_setPointIndex(t,e){this._pointIndexes[t]=e}_getDataRect(){var t=this.getValues(0),e=this.getValues(1);if(t){for(var i=NaN,s=NaN,r=NaN,a=NaN,n=t.length,h=0;h<n;h++){var l=t[h];if(isArray(l)){const t=l,e=Math.min(...t),i=Math.max(...t);if(isNaN(s)){s=e;a=i}else{e<s&&(s=e);i>a&&(a=i)}}else isFinite(l)&&(isNaN(s)?s=a=l:l<s?s=l:l>a&&(a=l));if(e){var o=e[h];isFinite(o)&&(isNaN(i)?i=r=o:o<i?i=o:l>a&&(r=o))}}if(!e){i=0;r=n-1}if(!isNaN(s))return new Rect(i,s,r-i,a-s)}return null}_isCustomAxisX(){return!!this._axisX&&(!this._chart||this._axisX!=this.chart.axisX)}_isCustomAxisY(){return!!this._axisY&&(!this._chart||this._axisY!=this.chart.axisY)}_getAxisX(){var t=null;this.axisX?t=this.axisX:this.chart&&(t=this.chart.axisX);return t}_getAxisY(){var t=null;this.axisY?t=this.axisY:this.chart&&(t=this.chart.axisY);return t}_measureLegendItem(t,e){var i=new Size;i.width=SeriesBase._LEGEND_ITEM_WIDTH;i.height=SeriesBase._LEGEND_ITEM_HEIGHT;if(this._name){var s=t.measureString(e,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND);i.width+=s.width;i.height<s.height&&(i.height=s.height)}i.width+=3*SeriesBase._LEGEND_ITEM_MARGIN;i.height+=2*SeriesBase._LEGEND_ITEM_MARGIN;return i}_drawFunnelLegendItem(t,e,i,s,r){t.strokeWidth=1;var a=SeriesBase._LEGEND_ITEM_MARGIN,n=null,h=null;null===n&&(n=this._chart._getColorLight(i));null===h&&(h=this._chart._getColor(i));t.fill=n;t.stroke=h;var l=e.top+.5*e.height,o=SeriesBase._LEGEND_ITEM_WIDTH,_=SeriesBase._LEGEND_ITEM_HEIGHT,d=this._getFunnelLegendName(i);t.drawRect(e.left+a,l-.5*_,o,_,null,r||s);null!=d&&FlexChartCore._renderText(t,d,new Point(e.left+_+2*a,l),0,1,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND)}_getFunnelLegendName(t){var e,i=this._chart;if(i._xlabels&&i._xlabels.length&&t<i._xlabels.length)e=i._xlabels[t];else if(i._xvals&&i._xvals.length&&t<i._xvals.length){e=i._xvals[t];i._xDataType===DataType.Date&&(e=FlexChartCore._fromOADate(e))}null==e&&(e=this.name);return e.toString()}_drawLegendItem(t,e,i,s,r,a){t.strokeWidth=1;var n=SeriesBase._LEGEND_ITEM_MARGIN,h=null,l=null;null===h&&(h=this._chart._getColorLight(this._chart.series.indexOf(this)));null===l&&(l=this._chart._getColor(this._chart.series.indexOf(this)));t.fill=h;t.stroke=l;var o=e.top+.5*e.height,_=SeriesBase._LEGEND_ITEM_WIDTH,d=SeriesBase._LEGEND_ITEM_HEIGHT;switch(i){case ChartType.Area:case ChartType.SplineArea:case ChartType.StepArea:t.drawRect(e.left+n,o-.5*d,_,d,null,r);break;case ChartType.Bar:case ChartType.Column:t.drawRect(e.left+n,o-.5*d,_,d,null,a||r);break;case ChartType.Scatter:case ChartType.Bubble:var c=.3*_,u=.3*d;this.symbolMarker==Marker.Box?t.drawRect(e.left+n+.5*_-c,o-u,2*c,2*u,null,a||r):t.drawEllipse(e.left+.5*_+n,o,c,u,null,a||r);break;case ChartType.Line:case ChartType.Spline:case ChartType.Step:t.drawLine(e.left+n,o,e.left+_+n,o,null,r);break;case ChartType.LineSymbols:case ChartType.SplineSymbols:case ChartType.StepSymbols:c=.3*_,u=.3*d;this.symbolMarker==Marker.Box?t.drawRect(e.left+n+.5*_-c,o-u,2*c,2*u,null,a||r):t.drawEllipse(e.left+.5*_+n,o,c,u,null,a||r);t.drawLine(e.left+n,o,e.left+_+n,o,null,r);break;case ChartType.Candlestick:case ChartType.HighLowOpenClose:t.drawLine(e.left+n,o,e.left+_+n,o,null,a||r)}this._name&&FlexChartCore._renderText(t,s,new Point(e.left+d+2*n,o),0,1,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND)}_cvCollectionChanged(t,e){this._clearValues();this._invalidate()}_cvCurrentChanged(t,e){this._chart&&this._chart._notifyCurrentChanged&&this._invalidate()}_bindValues(t,e,i=!1){var s,r,a;if(null!=t){var n=t.length;s=new Array(t.length);let o=e?new Binding(e):null;for(var h=0;h<n;h++){a=null;var l=t[h];null!=o&&(l=o.getValue(l));if(isArray(l)&&l.length>0){a=l;l=l[0]}if(isNumber(l)){s[h]=l;r=DataType.Number}else if(isDate(l)){s[h]=l.valueOf();r=DataType.Date}else if(i&&l){s[h]=h;r=DataType.Number}isArray(a)&&a.length>0&&(s[h]=a)}}var o=new DataArray;o.values=s;o.dataType=r;return o}_invalidate(){this._chart&&this._chart.invalidate()}_indexToPoint(t){if(t>=0&&t<this._values.length){var e=this._values[t],i=this._xvalues?this._xvalues[t]:t;return new Point(i,e)}return null}_getSymbolFill(t){var e=null;this.symbolStyle&&(e=this.symbolStyle.fill);!e&&this.style&&(e=this.style.fill);!e&&this.chart&&(e=this.chart._getColorLight(t));return e}_getSymbolStroke(t){var e=null;this.symbolStyle&&(e=this.symbolStyle.stroke);!e&&this.style&&(e=this.style.stroke);!e&&this.chart&&(e=this.chart._getColor(t));return e}_getAltSymbolStroke(t){var e=null;this.altStyle&&(e=this.altStyle.stroke);return e}_getAltSymbolFill(t){var e=null;this.altStyle&&(e=this.altStyle.fill);return e}_renderLabels(t,e,i,s){this._plotter&&this._plotter._renderLabels(t,this,e,i,s)}}SeriesBase._LEGEND_ITEM_WIDTH=10;SeriesBase._LEGEND_ITEM_HEIGHT=10;SeriesBase._LEGEND_ITEM_MARGIN=4;SeriesBase._DEFAULT_SYM_SIZE=10;export class _BasePlotter{constructor(){this._DEFAULT_WIDTH=2;this._DEFAULT_SYM_SIZE=10;this.clipping=!0}clear(){this.seriesCount=0;this.seriesIndex=0}_renderLabels(t,e,i,s,r){var a=i.length,n=s.dataLabel,h=n.border,l=n.offset,o=n.connectingLine;void 0===l&&(l=o?16:0);h&&(l-=2);for(var _=0;_<a;_++){var d=i[_],c=asType(d.tag,_DataPoint,!0);c&&!d.ignoreLabel&&this._renderLabel(t,d,c,s,n,e,l,r)}}_renderLabel(t,e,i,s,r,a,n,h){var l=null==r.position?LabelPosition.Top:r.position,o=r.border,_=r.connectingLine,d=new HitTestInfo(s,u);d._setDataPoint(i);var c=s._getLabelContent(d,r.content),u=this._getLabelPoint(a,i);this._getPointAndPosition(u,l,e,s);if(s._plotRect.contains(u)){var g=new DataLabelRenderEventArgs(t,d,u,c);if(r.onRendering)if(r.onRendering(g)){c=g.text;u=g.point}else c=null;if(c){var f=this._renderLabelAndBorder(t,c,l,n,u,_,2,o);if(f){var p=new _RectArea(f);p.tag=i;h.push(p)}}t.cssPriority=!0}}_getPointAndPosition(t,e,i,s){if(i instanceof _RectArea){var r=i;s._isRotated()?t.y=r.rect.top+.5*r.rect.height:t.x=r.rect.left+.5*r.rect.width}}_getLabelPoint(t,e){var i=t._getAxisX(),s=t._getAxisY();return new Point(i.convert(e.dataX),s.convert(e.dataY))}_renderLabelAndBorder(t,e,i,s,r,a,n,h){var l,o=DataLabelClsNames.label,_=DataLabelClsNames.line,d=DataLabelClsNames.border,c=FlexChartCore._CSS_DATA_LABELS;switch(i){case LabelPosition.Top:a&&t.drawLine(r.x,r.y,r.x,r.y-s,_);r.y-=n+s;l=FlexChartCore._renderText(t,e,r,1,2,o,c);break;case LabelPosition.Bottom:a&&t.drawLine(r.x,r.y,r.x,r.y+s,_);r.y+=n+s;l=FlexChartCore._renderText(t,e,r,1,0,o,c);break;case LabelPosition.Left:a&&t.drawLine(r.x,r.y,r.x-s,r.y,_);r.x-=n+s;l=FlexChartCore._renderText(t,e,r,2,1,o,c);break;case LabelPosition.Right:a&&t.drawLine(r.x,r.y,r.x+s,r.y,_);r.x+=n+s;l=FlexChartCore._renderText(t,e,r,0,1,o,c);break;case LabelPosition.Center:l=FlexChartCore._renderText(t,e,r,1,1,o,c)}h&&l&&t.drawRect(l.left-n,l.top-n,l.width+2*n,l.height+2*n,d);return l}getOption(t,e){var i=this.chart._options;e&&(i=i?i[e]:null);if(i&&!isUndefined(i[t])&&null!==i[t])return i[t]}getNumOption(t,e){var i=this.chart._options;e&&(i=i?i[e]:null);if(i&&i[t])return asNumber(i[t],!0)}getItemFormatter(t){if(t instanceof SeriesBase){var e=t;return e.itemFormatter?e.itemFormatter:this.chart.itemFormatter}return this.chart.itemFormatter}static cloneStyle(t,e){if(!t)return t;var i={};for(var s in t)e&&e.indexOf(s)>=0||(i[s]=t[s]);return i}isValid(t,e,i,s){return isFinite(t)&&isFinite(e)&&FlexChartCore._contains(this.chart._plotRect,new Point(t,e))}load(){}unload(){}_createSteps(t,e,i){let s=this.getOption("position","step"),r=i||t.length,a=[],n=[],h=this.chart._isRotated();if("center"==s)if(h)for(let i=0;i<r;i++){let s=0==i?e[i+1]-e[i]:e[i]-e[i-1],h=i==r-1?e[i]-e[i-1]:e[i+1]-e[i];a.push(t[i]);n.push(e[i]-.5*s);a.push(t[i]);n.push(e[i]+.5*h)}else for(let i=0;i<r;i++){let s=0==i?t[i+1]-t[i]:t[i]-t[i-1],h=i==r-1?t[i]-t[i-1]:t[i+1]-t[i];a.push(t[i]-.5*s);n.push(e[i]);a.push(t[i]+.5*h);n.push(e[i])}else if("end"==s)for(let i=0;i<r;i++){if(i>0)if(h){a.push(t[i]);n.push(e[i-1])}else{a.push(t[i-1]);n.push(e[i])}a.push(t[i]);n.push(e[i])}else for(let i=0;i<r;i++){a.push(t[i]);n.push(e[i]);if(i<r-1)if(h){a.push(t[i]);n.push(e[i+1])}else{a.push(t[i+1]);n.push(e[i])}}return{x:a,y:n}}}export class Series extends SeriesBase{get chartType(){return this._chartType}set chartType(t){if((t=asEnum(t,ChartType,!0))!=this._chartType){this._chartType=t;this._invalidate()}}}export class FlexPie extends FlexChartBase{constructor(t,e){super(t,null,!0);this._areas=[];this._keywords=new _KeyWords;this._startAngle=0;this._innerRadius=0;this._offset=0;this._reversed=!1;this._isAnimated=!1;this._selectedItemPosition=Position.None;this._selectedItemOffset=0;this._pieGroups=[];this._rotationAngles=[];this._centers=[new Point];this._selectedOffset=new Point;this._selectedIndex=-1;this._angles=[];this._colRowLens=[];this._titles=void 0;this._values=[];this._labels=[];this._pels=[];this._sum=0;this._sums=[];this._bindingSeparator=",";this.applyTemplate(`${ControlClsNames.hostElement} ${FlexChartClsNames.hostElement} ${FlexPieClsNames.hostElement}`,null,null);this._currentRenderEngine=new _SvgRenderEngine(this.hostElement);this._legend=new Legend(this);this._tooltip=new ChartTooltip;this._tooltip.content="<b>{name}</b><br/>{value}";this._tooltip.showDelay=0;this._lbl=new PieDataLabel;this._lbl._chart=this;var i=this;this.addEventListener(this.hostElement,"mousemove",(function(t){var e=i._tooltip;if(e.content&&!i.isTouching){var s=i.hitTest(t,void 0,!0);if(s.distance<=e.threshold){var r=i._getLabelContent(s,i.tooltip.content);i._showToolTip(r,new Rect(t.clientX,t.clientY,5,5))}else i._hideToolTip()}}));this.addEventListener(this.hostElement,"click",(function(t){var e=!0;if(i.selectionMode==SelectionMode.Point){var s=i.hitTest(t),r=FlexChartBase._SELECTION_THRESHOLD;i.tooltip&&i.tooltip.threshold&&(r=i.tooltip.threshold);if(s.distance<=r){s.pointIndex!=i._selectionIndex&&i.selectedItemPosition!=Position.None&&(e=!1);s.pointIndex!=i._selectionIndex&&i._select(s.pointIndex,!0)}else i._selectedIndex>=0&&i._select(null)}if(e&&i.isTouching){var a=i._tooltip;if(a.content){if((s=i.hitTest(t,void 0,!0)).distance<=a.threshold){var n=i._getLabelContent(s,i.tooltip.content);i._showToolTip(n,new Rect(t.clientX,t.clientY,5,5))}else i._hideToolTip()}}}));this.addEventListener(this.hostElement,"mouseleave",(function(t){i._hideToolTip()}));this.deferUpdate(()=>this.initialize(e))}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._bindChart()}}get bindingName(){return this._bindingName}set bindingName(t){if(t!=this._bindingName){this._bindingName=asString(t,!0);this._bindChart()}}get startAngle(){return this._startAngle}set startAngle(t){if(t!=this._startAngle){this._startAngle=asNumber(t,!0);this.invalidate()}}get offset(){return this._offset}set offset(t){if(t!=this._offset){this._offset=asNumber(t,!0);this.invalidate()}}get innerRadius(){return this._innerRadius}set innerRadius(t){if(t!=this._innerRadius){this._innerRadius=asNumber(t,!0);this.invalidate()}}get innerTextStyle(){return this._innerTextStyle}set innerTextStyle(t){if(t!=this._innerText){this._innerTextStyle=t;this.invalidate()}}get innerText(){return this._innerText}set innerText(t){if(t!=this._innerText){this._innerText=t;this.invalidate()}}get reversed(){return this._reversed}set reversed(t){if(t!=this._reversed){this._reversed=asBoolean(t,!0);this.invalidate()}}get selectedItemPosition(){return this._selectedItemPosition}set selectedItemPosition(t){if((t=asEnum(t,Position,!0))!=this._selectedItemPosition){this._selectedItemPosition=t;this.invalidate()}}get selectedItemOffset(){return this._selectedItemOffset}set selectedItemOffset(t){if(t!=this._selectedItemOffset){this._selectedItemOffset=asNumber(t,!0);this.invalidate()}}get isAnimated(){return this._isAnimated}set isAnimated(t){t!=this._isAnimated&&(this._isAnimated=t)}get tooltip(){return this._tooltip}get dataLabel(){return this._lbl}set dataLabel(t){if(t!=this._lbl){this._lbl=t;this._lbl&&(this._lbl._chart=this)}}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(t!=this._selectedIndex){var e=asNumber(t,!0);this._select(e,!0)}}get titles(){return this._titles}set titles(t){if(t!==this._titles){this._titles=t;this.invalidate()}}get chartsPerLine(){return this._chartsPerLine}set chartsPerLine(t){if(t!=this._chartsPerLine){this._chartsPerLine=asNumber(t,!0,!0);this.invalidate()}}_getLabelsForLegend(){return this._labels}hitTest(t,e,i){var s=this._toControl(t,e),r=new HitTestInfo(this,s),a=null;if(FlexChartBase._contains(this._rectHeader,s))r._chartElement=ChartElement.Header;else if(FlexChartBase._contains(this._rectFooter,s))r._chartElement=ChartElement.Footer;else if(FlexChartBase._contains(this._rectLegend,s)){r._chartElement=ChartElement.Legend;null!==(a=this.legend._hitTest(s))&&a>=0&&a<this._areas.length&&r._setData(null,a)}else if(FlexChartBase._contains(this._rectChart,s)){this._hitTestData(r,s,i);r._chartElement=ChartElement.ChartArea}else r._chartElement=ChartElement.None;return r}_hitTestData(t,e,i){for(var s,r=this._areas.length,a=NaN,n=0;n<r;n++){var h=e.clone();let r=this._areas[n],_=this._rotationAngles[r.gi];if(0!=_){let t=this._centers[r.gi],e=t.x,i=t.y,s=-e+h.x,a=-i+h.y,n=Math.sqrt(s*s+a*a),l=Math.atan2(a,s)-_*Math.PI/180;h.x=e+n*Math.cos(l);h.y=i+n*Math.sin(l)}if(n==this._selectedIndex){h.x-=this._selectedOffset.x;h.y-=this._selectedOffset.y}var l=this._areas[n];if(l.contains(h)){if(!0===i){a=0;s=l;continue}t._setDataGroup(r.gi,l.tag);t._dist=0;if(n!=this._selectedIndex)break}var o=l.distance(h);if(void 0!==o&&(isNaN(a)||o<a||!0===i&&this._isSmallSegment(o,s,l))){a=o;s=l}}if(0!==t._dist&&null!=s){t._setDataGroup(s.gi,s.tag);t._dist=a}}_isSmallSegment(t,e,i){return t<=.5*this.tooltip.threshold&&Math.abs(i.sweep)<=.035&&Math.abs(e.sweep/i.sweep)>=10}_performBind(){this._initData();if(this._cv){this._selectionIndex=this._cv.currentPosition;let e=this._cv.items;if(e){let i=e.length,s=this._getBindings();for(let t=0;t<s.length;t++){this._values[t]=[];this._sums[t]=0}for(var t=0;t<i;t++){let i=e[t];for(let t=0;t<s.length;t++)this._sums[t]+=Math.abs(this._getBindData(i,this._values[t],0==t?this._labels:null,s[t],this.bindingName))}}}}_getBindings(){let t=[],e=this.binding;if(e){var i=this._bindingSeparator;i&&(t=e.split(i))}return t}_initData(){this._sum=0;this._sums=[];this._values=[];this._labels=[]}_getBindData(t,e,i,s,r){var a,n=0;let h=s?new Binding(s):null;h&&(a=h.getValue(t));n=0;isNumber(a)?n=asNumber(a):a&&(n=parseFloat(a.toString()));if(!isNaN(n)&&isFinite(n))e.push(n);else{n=0;e.push(n)}let l=r?new Binding(r):null;if(i)if(l&&t){var o=l.getValue(t);o&&(o=o.toString());i.push(o)}else i.push(n.toString());return n}_render(t,e=!0,i=null){this._selectionAnimationID&&clearInterval(this._selectionAnimationID);this.onRendering(new RenderEventArgs(t));super._render(t,e,i)}_prepareRender(){this._areas=[]}_renderChart(t,e,i){var s=this._rectChart.clone(),r=(new Size(s.width,s.height),e.width),a=e.height,n=this._parseMargin(this.plotMargin),h=this.dataLabel,l=h.content&&h.position==PieLabelPosition.Outside,o=l?(isNumber(h.offset)?h.offset:0)+24:0;isNaN(n.left)&&(n.left=l?o:FlexPie._MARGIN);isNaN(n.right)&&(n.right=l?o:FlexPie._MARGIN);isNaN(n.top)&&(n.top=l?o:FlexPie._MARGIN);isNaN(n.bottom)&&(n.bottom=l?o:FlexPie._MARGIN);e.top+=n.top;a=e.height-(n.top+n.bottom);e.height=a>0?a:24;e.left+=n.left;r=e.width-(n.left+n.right);e.width=r>0?r:24;let _=this._getBindings(),d=this.titles;void 0===d&&_.length>1&&(d=_);let c=this._layout(t,e,d,_.length);this._angles=[];this._pels=[];this._pieGroups=[];this._rotationAngles=[];for(let e=0;e<_.length;e++){let i=c[e];d&&e<d.length&&d[e]&&FlexChartBase._renderText(t,d[e],new Point(i.left+.5*i.width,i.top),1,2,FlexPie._CSS_GROUP_TITLE);let s=t.startGroup(FlexPieClsNames.sliceGroup,null,!0);this._pieGroups.push(s);this._renderData(t,i,e,s);t.endGroup();this._rotationAngles.push(0)}this._highlightCurrent();this.innerText&&this._renderInnerText(t);this.dataLabel.content&&this.dataLabel.position!=PieLabelPosition.None&&this._renderLabels(t);this.onRendered(new RenderEventArgs(t))}_layout(t,e,i,s){let r=0,a=s,n=1,h=0;if(i)for(let e=0;e<i.length;e++)h=Math.max(h,t.measureString(i[e],FlexPie._CSS_GROUP_TITLE).height);let l=Math.floor(this.chartsPerLine);if(l>0){a=Math.min(s,l);n=Math.ceil(s/a);let t=Math.floor(e.width/a),i=Math.floor(e.height/n)-h;r=Math.min(t,i)}else for(let t=1;t<=s;t++){let i=Math.floor((s+(t-1))/t),l=Math.floor(e.width/t),o=Math.floor(e.height/i);o-=h;o<l&&(l=o);if(l>r){r=l;a=t;n=i}}let o=[],_=.5*(e.width-r*a),d=.5*(e.height-(r+h)*n);for(let t=0;t<n;t++)for(let i=0;i<a;i++)o.push(new Rect(e.left+r*i+8+_,e.top+(r+h)*t+8+d+h,r-16,r-16));return o}_getDesiredLegendSize(t,e,i,s){var r=new Size,a=(new Size(i,s),this._getLabelsForLegend()),n=a.length,h=0,l=0;this.legend.scrollbar;this._colRowLens=[];for(var o=0;o<n;o++){var _=this._measureLegendItem(t,a[o]);if(e){if(l+_.height>s&&!this.legend.scrollbar){r.height=s;this._colRowLens.push(h);h=0;l=0}h<_.width&&(h=_.width);l+=_.height}else{if(h+_.width>i&&!this.legend.scrollbar){r.width=i;this._colRowLens.push(l);l=0;h=0}l<_.height&&(l=_.height);h+=_.width}}if(e){r.height<l&&(r.height=l);this._colRowLens.push(h);r.width=this._colRowLens.reduce((t,e)=>t+e,0)}else{r.width<h&&(r.width=h);this._colRowLens.push(l);r.height=this._colRowLens.reduce((t,e)=>t+e,0)}return r}_renderLegend(t,e,i,s,r,a){for(var n=new Rect(e.x,e.y,r,a),h=this._getLabelsForLegend(),l=h.length,o=0,_=e.clone(),d=0;d<l;d++){var c=this._measureLegendItem(t,h[d]);if(s){if(_.y+c.height>n.bottom+1&&!this.legend.scrollbar){_.x+=this._colRowLens[o];o++;_.y=e.y}}else if(_.x+c.width>n.right+1&&!this.legend.scrollbar){_.y+=this._colRowLens[o];o++;_.x=e.x}var u=new Rect(_.x,_.y,c.width,c.height);this._drawLegendItem(t,u,d,h[d]);i.push(u);s?_.y+=c.height:_.x+=c.width}}_renderData(t,e,i,s){var r=this._sums[i],a=this.startAngle+180,n=this.innerRadius,h=this.offset;n>1&&(n=1);if(r>0){var l=a*Math.PI/180,o=e.left+.5*e.width,_=e.top+.5*e.height,d=Math.min(.5*e.width,.5*e.height);this._centers[i]=new Point(o,_);var c=Math.max(h,this.selectedItemOffset);c>0&&(h*=d/=1+c);this._radius=d;var u=n*d;this._renderPie(t,i,d,u,l,h)}}_renderPie(t,e,i,s,r,a){this._renderSlices(t,this._values[e],this._sums[e],e,i,s,r,2*Math.PI,a)}_getCenter(){return this._centers[0]}_renderSlices(t,e,i,s,r,a,n,h,l){var o,_,d,c=e.length,u=0,g=n,f=1==this.reversed,p=this._centers[s];for(let t=0;t<c;t++)e[t]>0&&u++;var m=1===u?360:359.9/360;for(let n=0;n<c;n++){_=p.x;d=p.y;o=t.startGroup(FlexPieClsNames.slice);t.fill=this._getColorLight(n);t.stroke=this._getColor(n);var x=Math.abs(e[n]),v=Math.abs(x-i)<1e-10?h:h*x/i;v=Math.min(v,h*m);var b=f?g-.5*v:g+.5*v;if(l>0&&v<h){_+=l*Math.cos(b);d+=l*Math.sin(b)}this._renderSlice(t,_,d,b,s,n,r,a,g,v,h);f?g-=v:g+=v;t.endGroup();this._pels.push(o)}}_renderSlice(t,e,i,s,r,a,n,h,l,o,_){var d=!!this.reversed;this._angles.push(s);if(this.itemFormatter){var c=new HitTestInfo(this,new Point(e+n*Math.cos(s),i+n*Math.sin(s)),ChartElement.SeriesSymbol);c._setData(null,a);this.itemFormatter(t,c,()=>{this._drawSlice(t,r,a,d,e,i,n,h,l,o)});t.cssPriority=!0}else this._drawSlice(t,r,a,d,e,i,n,h,l,o)}_getSelectedItemOffset(t,e){var i=0,s=0,r=0;t==this._selectedIndex&&this.selectedItemOffset>0&&(r=this.selectedItemOffset);if(r>0){i=Math.cos(e)*r*this._radius;s=Math.sin(e)*r*this._radius}return{x:i,y:s}}_renderInnerText(t){let e=this.innerText,i=this.innerTextStyle;for(let s=0;s<this._centers.length;s++){let r,a=this._centers[s];r=isFunction(e)?e(s):isArray(e)?asString(e[s]):asString(e);if(r){r=format(r,{total:this._sums[s],binding:this._getBindings()[s]});i&&(t.cssPriority=!1);FlexPie._renderText(t,r,a,1,1,FlexChartBase._CSS_TITLE,null,i);t.cssPriority=!0}}}_renderLabels(t){var e=this._areas.length,i=this.dataLabel,s=i.position,r=DataLabelClsNames.labels,a=DataLabelClsNames.label,n=DataLabelClsNames.border,h=DataLabelClsNames.line,l=this._rotationAngles,o=i.connectingLine,_=i.offset?i.offset:0;t.stroke="null";t.fill="transparent";t.strokeWidth=1;t.startGroup(r);for(var d=0;d<e;d++){var c=this._areas[d];if(c){var u=c.radius,g=c.langle+l[c.gi],f=1,p=1;if(s==PieLabelPosition.Center||s===PieLabelPosition.Radial||s===PieLabelPosition.Circular)u*=.5*(1+(c.innerRadius||0)/c.radius);else{if((g=_Math.clampAngle(g))<=-170||g>=170){f=2;p=1}else if(g>=-100&&g<=-80){f=1;p=2}else if(g>=-10&&g<=10){f=0;p=1}else if(g>=80&&g<=100){f=1;p=0}else if(-180<g&&g<-90){f=2;p=2}else if(-90<=g&&g<0){f=0;p=2}else if(0<g&&g<90){f=0;p=0}else if(90<g&&g<180){f=2;p=0}if(s==PieLabelPosition.Inside){f=2-f;p=2-p}}g*=Math.PI/180;let e=c.gi?d-c.gi*this._values[0].length:d;var m=this._getSelectedItemOffset(e,g),x=m.x,v=m.y,b=u;s==PieLabelPosition.Outside?b+=_:s==PieLabelPosition.Inside&&(b-=_);var y=c.center.x,S=c.center.y;let r=this._centers[c.gi];var w=y-r.x,C=S-r.y;if(0!=this._rotationAngles[c.gi]){var T=Math.sqrt(w*w+C*C),M=Math.atan2(C,w)+this._rotationAngles[c.gi]*Math.PI/180;y=r.x+T*Math.cos(M);S=r.y+T*Math.sin(M)}var P=new Point(y+x+b*Math.cos(g),S+v+b*Math.sin(g));if(i.border&&s!=PieLabelPosition.Center){0==f?P.x+=2:2==f&&(P.x-=2);0==p?P.y+=2:2==p&&(P.y-=2)}var A=new HitTestInfo(this,P);A._setDataGroup(c.gi,c.tag);var L=this._getLabelContent(A,i.content),N=new DataLabelRenderEventArgs(t,A,P,L);if(i.onRendering)if(i.onRendering(N)){L=N.text;P=N.point}else L=null;if(L){var k,E=180*Math.atan2(S-P.y,y-P.x)/Math.PI;E=(E+360)%360;if(s===PieLabelPosition.Radial||s===PieLabelPosition.Circular){if(s===PieLabelPosition.Radial)E>90&&E<270&&(E+=180);else{E>180&&E<360&&(E+=180);E-=90}(k=FlexChartBase._renderRotatedText(t,L,P,f,p,P,E,a).getBBox()).left=k.x;k.top=k.y}else k=FlexChartBase._renderText(t,L,P,f,p,a);i.border&&t.drawRect(k.left-2,k.top-2,k.width+4,k.height+4,n);if(o){var I=new Point(y+x+u*Math.cos(g),S+v+u*Math.sin(g));t.drawLine(P.x,P.y,I.x,I.y,h)}}t.cssPriority=!0}}t.endGroup()}_drawSlice(t,e,i,s,r,a,n,h,l,o){var _;if(s)if(h>0){0!=o&&t.drawDonutSegment(r,a,n,h,l-o,o);(_=new _DonutSegment(new Point(r,a),n,h,l-o,o,this.startAngle)).tag=i;this._areas.push(_)}else{0!=o&&t.drawPieSegment(r,a,n,l-o,o);(_=new _PieSegment(new Point(r,a),n,l-o,o,this.startAngle)).tag=i;this._areas.push(_)}else{if(h>0){0!=o&&t.drawDonutSegment(r,a,n,h,l,o);(_=new _DonutSegment(new Point(r,a),n,h,l,o,this.startAngle)).tag=i;this._areas.push(_)}else{0!=o&&t.drawPieSegment(r,a,n,l,o);(_=new _PieSegment(new Point(r,a),n,l,o,this.startAngle)).tag=i;this._areas.push(_)}l+=o}_&&(_.gi=e)}_measureLegendItem(t,e){var i=new Size;i.width=Series._LEGEND_ITEM_WIDTH;i.height=Series._LEGEND_ITEM_HEIGHT;if(e){var s=t.measureString(e,FlexChartBase._CSS_LABEL,FlexChartBase._CSS_LEGEND);i.width+=s.width;i.height<s.height&&(i.height=s.height)}i.width+=3*Series._LEGEND_ITEM_MARGIN;i.height+=2*Series._LEGEND_ITEM_MARGIN;return i}_drawLegendItem(t,e,i,s){t.strokeWidth=1;var r=Series._LEGEND_ITEM_MARGIN,a=null,n=null;null===a&&(a=this._getColorLight(i));null===n&&(n=this._getColor(i));t.fill=a;t.stroke=n;var h=e.top+.5*e.height,l=Series._LEGEND_ITEM_WIDTH,o=Series._LEGEND_ITEM_HEIGHT;t.drawRect(e.left+r,h-.5*o,l,o,null);null!=s&&FlexChartBase._renderText(t,s.toString(),new Point(e.left+o+2*r,h),0,1,FlexChartBase._CSS_LABEL)}_getLabelContent(t,e){return isString(e)?this._keywords.replace(e,t):isFunction(e)?e(t):null}_select(t,e=!1){this._highlight(!1,this._selectionIndex);this._selectionIndex=t;if(this.selectionMode==SelectionMode.Point){var i=this._cv;if(i){this._notifyCurrentChanged=!1;i.moveCurrentToPosition(t);this._notifyCurrentChanged=!0}}if(null==t){this._selectedIndex=-1;this.invalidate()}else if(this.isAnimated&&this.selectedItemPosition!=Position.None||!(this.selectedItemOffset>0||this.selectedItemPosition!=Position.None))this._highlight(!0,this._selectionIndex,e);else{this._selectedIndex=t;this.invalidate()}this.onSelectionChanged()}_highlightCurrent(){if(this.selectionMode!=SelectionMode.None){var t=-1,e=this._cv;e&&(t=e.currentPosition);this._highlight(!0,t)}}_highlight(t,e,i=!1){if(this.selectionMode==SelectionMode.Point&&null!=e&&e>=0)if(t){let d=[];for(let c=0;c<this._pieGroups.length;c++){if(_=this._pels[e+c*this._values[0].length]){_.parentNode.appendChild(_);var s=this._find(_,["ellipse"]);this._highlightItems(this._find(_,["path","ellipse"]),FlexChartBase._CSS_SELECTION,t)}var r=this._angles[e+c*this._values[0].length];if(this.selectedItemPosition!=Position.None&&0!=r){var a=0;this.selectedItemPosition==Position.Left?a=180:this.selectedItemPosition==Position.Top?a=-90:this.selectedItemPosition==Position.Bottom&&(a=90);var n=a*Math.PI/180-r;n*=180/Math.PI;if(i&&this.isAnimated)d.push(n);else{this._rotationAngles[c]=n;this._pieGroups[c].transform.baseVal.getItem(0).setRotate(n,this._centers[c].x,this._centers[c].y)}}var h=this.selectedItemOffset;if(h>0&&s&&0==s.length){var l=this._selectedOffset.x=Math.cos(r)*h*this._radius,o=this._selectedOffset.y=Math.sin(r)*h*this._radius;_&&_.setAttribute("transform","translate("+l.toFixed()+","+o.toFixed()+")")}this._selectedIndex=e}d.length>0&&this._animateSelectionAngle(d,.5)}else{for(let i=0;i<this._pieGroups.length;i++){var _;if(_=this._pels[e+i*this._values[0].length]){_.parentNode.insertBefore(_,_.parentNode.childNodes.item(e));_.removeAttribute("transform");this._highlightItems(this._find(_,["path","ellipse"]),FlexChartBase._CSS_SELECTION,t)}}this._selectedIndex==e&&(this._selectedIndex=-1)}}_animateSelectionAngle(t,e){var i=this,s=i._pieGroups;i._selectionAnimationID&&clearInterval(this._selectionAnimationID);this._selectionAnimationID=animate((function(e){if(s==i._pieGroups){for(let r=0;r<s.length;r++){let a=_Math.clampAngle(i._rotationAngles[r]),n=_Math.clampAngle(t[r])-a,h=a;i._rotationAngles[r]=a=h+n*e;s[r].transform.baseVal.getItem(0).setRotate(a,i._centers[r].x,i._centers[r].y)}1==e&&clearInterval(i._selectionAnimationID);e>.99&&(i.selectedItemOffset>0||i.selectedItemPosition!=Position.None)&&i.invalidate()}}),1e3*e)}_getHitTestItem(t){var e=null,i=null;(e=null!=this._cv?this._cv.items:this.itemsSource)&&t<e.length&&(i=e[t]);return i}_getHitTestValue(t,e){null==e&&(e=0);return this._values[e][t]}_getHitTestLabel(t){return this._labels[t]}}FlexPie._MARGIN=4;FlexPie._CSS_GROUP_TITLE=FlexChartClsNames.label;class _Math{static clampAngle(t,e=0){var i=(t+180)%360-180;i<-180+(e<0?e+360:e)&&(i+=360);return i}}export class _PieSegment{constructor(t,e,i,s,r=0){this._isFull=!1;this._center=t;this._radius=e;this._originAngle=i;this._originSweep=s;s>=2*Math.PI&&(this._isFull=!0);this._sweep=.5*s*180/Math.PI;this._angle=_Math.clampAngle(180*i/Math.PI+this._sweep);this._radius2=e*e;this._startAngle=r}contains(t){var e=t.x-this._center.x,i=t.y-this._center.y;if(e*e+i*i<=this._radius2){var s=180*Math.atan2(i,e)/Math.PI,r=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(s,this._startAngle);if(this._isFull||Math.abs(r)<=this._sweep)return!0}return!1}distance(t){if(this.contains(t))return 0;var e=t.x-this._center.x,i=t.y-this._center.y,s=e*e+i*i,r=180*Math.atan2(i,e)/Math.PI,a=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(r,this._startAngle);if(this._isFull||Math.abs(a)<=this._sweep)return Math.sqrt(s)-this._radius;let n=this.center.clone();n.x+=this.radius*Math.cos(this._originAngle);n.y+=this.radius*Math.sin(this._originAngle);let h=this.center.clone();h.x+=this.radius*Math.cos(this._originAngle+this._originSweep);h.y+=this.radius*Math.sin(this._originAngle+this._originSweep);const l=FlexChartCore._dist(t,this.center,n),o=FlexChartCore._dist(t,this.center,h);return Math.min(l,o)}get center(){return this._center}get radius(){return this._radius}get langle(){return this._angle}get angle(){return this._originAngle}get sweep(){return this._originSweep}}export class _DonutSegment{constructor(t,e,i,s,r,a=0){this._isFull=!1;this._center=t;this._radius=e;this._iradius=i;this._originAngle=s;this._originSweep=r;r>=2*Math.PI&&(this._isFull=!0);this._sweep=.5*r*180/Math.PI;this._angle=_Math.clampAngle(180*s/Math.PI+this._sweep);this._radius2=e*e;this._iradius2=i*i;this._startAngle=a}contains(t){var e=t.x-this._center.x,i=t.y-this._center.y,s=e*e+i*i;if(s>=this._iradius2&&s<=this._radius2){var r=180*Math.atan2(i,e)/Math.PI,a=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(r,this._startAngle);if(this._isFull||Math.abs(a)<=this._sweep)return!0}return!1}distance(t){if(this.contains(t))return 0;let e=this.center.clone();e.x+=this.radius*Math.cos(this._originAngle);e.y+=this.radius*Math.sin(this._originAngle);let i=this.center.clone();i.x+=this._iradius*Math.cos(this._originAngle);i.y+=this._iradius*Math.sin(this._originAngle);let s=this.center.clone();s.x+=this.radius*Math.cos(this._originAngle+this._originSweep);s.y+=this.radius*Math.sin(this._originAngle+this._originSweep);let r=this.center.clone();r.x+=this._iradius*Math.cos(this._originAngle+this._originSweep);r.y+=this._iradius*Math.sin(this._originAngle+this._originSweep);const a=FlexChartCore._dist(t,e,i),n=FlexChartCore._dist(t,s,r);return Math.min(a,n)}get center(){return this._center}get radius(){return this._radius}get langle(){return this._angle}get angle(){return this._originAngle}get sweep(){return this._originSweep}get innerRadius(){return this._iradius}}class LineMarkers{constructor(){this._moveMarker=function(t){var e=t.currentTarget,i=this._markers,s=e.getAttribute("data-markerIndex");null!=s&&i[s].forEach((function(e){e._moveMarker(t)}))};this._markers=[];this._bindMoveMarker=this._moveMarker.bind(this)}attach(t){var e,i,s=t.chart.hostElement,r=this._markers,a=s.getAttribute("data-markerIndex");if(null!=a)if((i=r[a])&&isArray(i))i.push(t);else{r[a]=[t];this._bindMoveEvent(s)}else{e=r.length,i=[t];r.push(i);s.setAttribute("data-markerIndex",e);this._bindMoveEvent(s)}}detach(t){var e,i,s=t.chart.hostElement,r=this._markers,a=s.getAttribute("data-markerIndex");if(null!=a){(e=(i=r[a]).indexOf(t))>-1&&i.splice(e,1);if(0===i.length){(e=r.indexOf(i))>-1&&(r[e]=void 0);this._unbindMoveEvent(s)}}}_unbindMoveEvent(t){var e=this._bindMoveMarker;t.removeEventListener("mousemove",e);"ontouchstart"in window&&t.removeEventListener("touchmove",e)}_bindMoveEvent(t){var e=this._bindMoveMarker;t.addEventListener("mousemove",e);"ontouchstart"in window&&t.addEventListener("touchmove",e)}}var _tmInc,lineMarkers=new LineMarkers;export var LineMarkerLines;!function(t){t[t.None=0]="None";t[t.Vertical=1]="Vertical";t[t.Horizontal=2]="Horizontal";t[t.Both=3]="Both"}(LineMarkerLines||(LineMarkerLines={}));export var LineMarkerInteraction;!function(t){t[t.None=0]="None";t[t.Move=1]="Move";t[t.Drag=2]="Drag"}(LineMarkerInteraction||(LineMarkerInteraction={}));export var LineMarkerAlignment;!function(t){t[t.Auto=2]="Auto";t[t.Right=0]="Right";t[t.Left=1]="Left";t[t.Bottom=4]="Bottom";t[t.Top=6]="Top"}(LineMarkerAlignment||(LineMarkerAlignment={}));export class LineMarker{constructor(t,e){this._wrapperMousedown=null;this._wrapperMouseup=null;this._savedPosition=new Point;this.positionChanged=new Event;this._chart=t;t._markers.push(this);t.rendered.addHandler(this._initialize,this);this._resetDefaultValue();copy(this,e);this._initialize()}get chart(){return this._chart}get isVisible(){return this._isVisible}set isVisible(t){if(t!==this._isVisible){this._isVisible=asBoolean(t);this._marker&&this._toggleVisibility()}}get seriesIndex(){return this._seriesIndex}set seriesIndex(t){t!==this._seriesIndex&&(this._seriesIndex=asNumber(t,!0))}get horizontalPosition(){return this._horizontalPosition}set horizontalPosition(t){if(t!==this._horizontalPosition){this._horizontalPosition=asNumber(t,!0);this._savedPosition.x=this._horizontalPosition;if(this._horizontalPosition<0||this._horizontalPosition>1)throw"horizontalPosition's value should be in (0, 1).";this._marker&&this._updateMarkerPosition()}}get x(){var t=this._chart.axisX;let e=this.chart.pageToControl(this._targetPoint);return t.convertBack(e.x)}get y(){var t=this._chart.axisY;let e=this.chart.pageToControl(this._targetPoint);return t.convertBack(e.y)}get content(){return this._content}set content(t){if(t!==this._content){this._content=asFunction(t);this._updateMarkerPosition()}}get verticalPosition(){return this._verticalPosition}set verticalPosition(t){if(t!==this._verticalPosition){this._verticalPosition=asNumber(t,!0);this._savedPosition.y=this._verticalPosition;if(this._verticalPosition<0||this._verticalPosition>1)throw"verticalPosition's value should be in (0, 1).";this._marker&&this._updateMarkerPosition()}}get alignment(){return this._alignment}set alignment(t){if(t!==this._alignment){this._alignment=t;this._marker&&this._updatePositionByAlignment()}}get lines(){return this._lines}set lines(t){if((t=asEnum(t,LineMarkerLines))!=this._lines){this._lines=t;this._marker&&this._resetLinesVisibility()}}get interaction(){return this._interaction}set interaction(t){if((t=asEnum(t,LineMarkerInteraction))!=this._interaction){this._marker&&this._detach();this._interaction=t;this._marker&&this._attach();this._toggleElesDraggableClass(this._interaction==LineMarkerInteraction.Drag)}}get dragThreshold(){return this._dragThreshold}set dragThreshold(t){t!=this._dragThreshold&&(this._dragThreshold=asNumber(t))}get dragContent(){return this._dragContent}set dragContent(t){t!==this._dragContent&&(this._dragContent=asBoolean(t));toggleClass(this._dragEle,LineMarker._CSS_LINE_DRAGGABLE,this._interaction===LineMarkerInteraction.Drag&&this._dragContent&&this._lines!==LineMarkerLines.None)}get dragLines(){return this._dragLines}set dragLines(t){t!=this._dragLines&&(this._dragLines=asBoolean(t))}onPositionChanged(t){this.positionChanged.raise(this,t)}remove(){var t=this._chart;if(this._marker){t.rendered.removeHandler(this._initialize,this);this._detach();this._removeMarker();this._wrapperMoveMarker=null;this._wrapperMousedown=null;this._wrapperMouseup=null}}_attach(){var t=this._chart.hostElement;this._interaction!==LineMarkerInteraction.None?addClass(t,LineMarker._CSS_TOUCH_DISABLED):removeClass(t,LineMarker._CSS_TOUCH_DISABLED);lineMarkers.attach(this);this._attachDrag()}_attachDrag(){if(this._interaction===LineMarkerInteraction.Drag){this._wrapperMousedown||(this._wrapperMousedown=this._onMousedown.bind(this));this._wrapperMouseup||(this._wrapperMouseup=this._onMouseup.bind(this));this._toggleDragEventAttach(!0)}}_detach(){removeClass(this._chart.hostElement,LineMarker._CSS_TOUCH_DISABLED);lineMarkers.detach(this);this._detachDrag()}_detachDrag(){this._interaction===LineMarkerInteraction.Drag&&this._toggleDragEventAttach(!1)}_toggleDragEventAttach(t){var e=this._chart.hostElement,i=t?"addEventListener":"removeEventListener";e[i]("mousedown",this._wrapperMousedown);document[i]("mouseup",this._wrapperMouseup);"ontouchstart"in window&&e[i]("touchstart",this._wrapperMousedown);"ontouchend"in window&&document[i]("touchend",this._wrapperMouseup)}_onMousedown(t){var e,i,s,r,a,n=this._getEventPoint(t);if(this._interaction===LineMarkerInteraction.Drag){r=!(0===(e=getElementRect(this._hLine)).width||0===e.height);a=!(0===(i=getElementRect(this._vLine)).width||0===i.height);s=getElementRect(this._markerContent);if(this._dragContent&&this._pointInRect(n,s)){this._capturedEle=this._markerContent;this._contentDragStartPoint=new Point(n.x,n.y);this._mouseDownCrossPoint=new Point(this._targetPoint.x,this._targetPoint.y)}else if(r&&(Math.abs(e.top-n.y)<=this._dragThreshold||Math.abs(n.y-e.top-e.height)<=this._dragThreshold||n.y>=e.top&&n.y<=e.top+e.height)){this._capturedEle=this._hLine;this._contentDragStartPoint=void 0;addClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}else if(a&&(Math.abs(i.left-n.x)<=this._dragThreshold||Math.abs(n.x-i.left-i.width)<=this._dragThreshold||n.x>=i.left&&n.x<=i.left+i.width)){this._capturedEle=this._vLine;this._contentDragStartPoint=void 0;addClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}t.preventDefault()}}_onMouseup(t){var e=this._alignment===LineMarkerAlignment.Auto&&this._capturedEle===this._markerContent&&this._lines!==LineMarkerLines.None;this._capturedEle=void 0;this._contentDragStartPoint=void 0;this._mouseDownCrossPoint=void 0;if(e){this._updatePositionByAlignment();this._updatePositionByAlignment()}removeClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}_moveMarker(t){var e,i,s,r,a,n,h=this._chart,l=this._getEventPoint(t),o=this._plotRect,_=this._interaction===LineMarkerInteraction.Drag,d=this._lines===LineMarkerLines.Horizontal,c=this._lines===LineMarkerLines.Vertical,u=this._seriesIndex,g=getElementRect(h.hostElement);if(o&&this._isVisible&&this._interaction!==LineMarkerInteraction.None&&(this._interaction!==LineMarkerInteraction.Drag||this._capturedEle&&this._lines!==LineMarkerLines.None)){if(_)if(this._contentDragStartPoint){l.x=d?this._targetPoint.x:this._mouseDownCrossPoint.x+l.x-this._contentDragStartPoint.x;l.y=c?this._targetPoint.y:this._mouseDownCrossPoint.y+l.y-this._contentDragStartPoint.y}else d||!this._dragLines&&this._capturedEle===this._hLine?l.x=this._targetPoint.x:(c||!this._dragLines&&this._capturedEle===this._vLine)&&(l.y=this._targetPoint.y);if(_&&this._lines===LineMarkerLines.Horizontal||!this._dragLines&&this._capturedEle===this._hLine){if(l.y<=o.top||l.y>=o.top+o.height)return}else if(_&&this._lines===LineMarkerLines.Vertical||!this._dragLines&&this._capturedEle===this._vLine){if(l.x<=o.left||l.x>=o.left+o.width)return}else{const t=this._getTop();if(l.x<=o.left||l.y<=t||l.x>=o.left+o.width||l.y>=t+o.height)return}if(null!=u&&u>=0&&u<h.series.length){if(null==(i=(e=h.series[u]).hitTest(new Point(l.x,NaN)))||null==i.x||null==i.y)return;s=e.axisX||h.axisX;r=e._getAxisY();a=isDate(i.x)?FlexChartCore._toOADate(i.x):i.x;a=isString(a)?i.pointIndex:a;n=isDate(i.y)?FlexChartCore._toOADate(i.y):i.y;let t=this._getElementPaddingValuee(h.hostElement,"padding-left"),o=this._getElementPaddingValuee(h.hostElement,"padding-top");l.x=s.convert(a)+t+g.left;this.chart._stacking!=Stacking.None&&(n=this._calcStackedValue(u,a,n));l.y=r.convert(n)+o+g.top}this._updateMarkerPosition(l);t.preventDefault()}}_calcStackedValue(t,e,i){let s=i,r=this.chart._stacking==Stacking.Stacked100pc;for(let a=0;a<t;a++){let t=this.chart.series[a],n=t.getValues(1),h=t.getValues(0);if(h)for(let t=0;t<h.length;t++){if(e===(n?n[t]:t)){isFinite(h[t])&&(r||this._sign(i)==this._sign(h[t]))&&(s+=h[t]);break}}}if(r&&s){s/=this.chart._dataInfo.getStackedAbsSum(e);s>1&&(s=1)}return s}_sign(t){return t>0?1:t<0?-1:0}_getElementPaddingValuee(t,e){return+window.getComputedStyle(t,null).getPropertyValue(e).replace("px","")}_show(t){(t||this._marker).style.display="block"}_hide(t){(t||this._marker).style.display="none"}_toggleVisibility(){this._isVisible?this._show():this._hide()}_resetDefaultValue(){this._isVisible=!0;this._alignment=LineMarkerAlignment.Auto;this._lines=LineMarkerLines.None;this._interaction=LineMarkerInteraction.None;this._horizontalPosition=null;this._verticalPosition=null;this._content=null;this._seriesIndex=null;this._dragThreshold=15;this._dragContent=!1;this._dragLines=!1;this._targetPoint=new Point}_initialize(){var t,e=this._chart.hostElement.querySelector("."+FlexChartCore._CSS_PLOT_AREA);this._plot=e;this._marker||this._createMarker();if(e){this._plotRect=getElementRect(e);t=e.getBBox();this._plotRect.width=t.width;this._plotRect.height=t.height;this._updateMarkerSize();this._updateLinesSize()}this._updateMarkerPosition();this._wrapperMoveMarker=this._moveMarker.bind(this);this._attach()}_createMarker(){var t,e;t=document.createElement("div");addClass(t,LineMarker._CSS_MARKER);(e=this._getContainer()).appendChild(t);this._markerContainer=e;this._marker=t;this._createChildren()}_removeMarker(){var t=this._markerContainer;t.removeChild(this._marker);this._content=null;this._hLine=null;this._vLine=null;if(!t.hasChildNodes()){this._chart.hostElement.removeChild(this._markerContainer);this._markerContainer=null}this._marker=null}_getContainer(){var t=this._chart.hostElement.querySelector(LineMarker._CSS_MARKER_CONTAINER);t||(t=this._createContainer());return t}_createContainer(){var t=document.createElement("div"),e=this._chart.hostElement;addClass(t,LineMarker._CSS_MARKER_CONTAINER);e.insertBefore(t,e.firstChild);return t}_createChildren(){var t,e,i,s,r=this._marker;(s=document.createElement("div")).style.position="absolute";s.style.height="100%";s.style.width="100%";r.appendChild(s);this._dragEle=s;t=document.createElement("div");addClass(t,LineMarker._CSS_MARKER_CONTENT);r.appendChild(t);this._markerContent=t;e=document.createElement("div");addClass(e,LineMarker._CSS_MARKER_HLINE);r.appendChild(e);this._hLine=e;i=document.createElement("div");addClass(i,LineMarker._CSS_MARKER_VLINE);r.appendChild(i);this._vLine=i;this._toggleElesDraggableClass(this._interaction===LineMarkerInteraction.Drag);this._resetLinesVisibility()}_toggleElesDraggableClass(t){toggleClass(this._hLine,LineMarker._CSS_LINE_DRAGGABLE,t);toggleClass(this._vLine,LineMarker._CSS_LINE_DRAGGABLE,t);toggleClass(this._dragEle,LineMarker._CSS_LINE_DRAGGABLE,t&&this._dragContent&&this._lines!==LineMarkerLines.None)}_updateMarkerSize(){var t=this._plotRect,e=this._chart.hostElement,i=window.getComputedStyle(e,null),s=getElementRect(e);if(this._marker){this._marker.style.marginTop=t.top-s.top-(parseFloat(i.getPropertyValue("padding-top"))||0)+"px";this._marker.style.marginLeft=t.left-s.left-(parseFloat(i.getPropertyValue("padding-left"))||0)+"px"}}_updateLinesSize(){var t=this._plotRect;if(this._hLine&&this._vLine){this._hLine.style.width=t.width+"px";this._vLine.style.height=t.height+"px"}}_resetLinesVisibility(){if(this._hLine&&this._vLine){this._hide(this._hLine);this._hide(this._vLine);this._lines!==LineMarkerLines.Horizontal&&this._lines!==LineMarkerLines.Both||this._show(this._hLine);this._lines!==LineMarkerLines.Vertical&&this._lines!==LineMarkerLines.Both||this._show(this._vLine)}}_updateMarkerPosition(t){var e,i,s=this._plotRect,r=this._targetPoint,a=!1;this._interaction,LineMarkerInteraction.Drag;if(this._plot){e=s.left+s.width*(this._horizontalPosition||0);i=s.top+s.height*(this._verticalPosition||0);null==this._horizontalPosition&&t?e=t.x:this._savedPosition.x>0&&(e=s.left+s.width*this._savedPosition.x);null==this._verticalPosition&&t?i=t.y:this._savedPosition.y>0&&(i=s.top+s.height*this._savedPosition.y);e===r.x&&i===r.y||(a=!0);r.x=e;r.y=i;this._savedPosition.x=clamp((e-s.left)/s.width,0,1);this._savedPosition.y=clamp((i-s.top)/s.height,0,1);this._toggleVisibility();this._content&&this._updateContent();a&&this._raisePositionChanged(e,i);this._updatePositionByAlignment(!!t)}}_updateContent(){var t,e=this._chart,i=this._targetPoint,s=e.hitTest(i);t=this._content.call(null,s,i);this._markerContent.innerHTML=t||""}_raisePositionChanged(t,e){this._plotRect;this.onPositionChanged(new Point(t,e))}_updatePositionByAlignment(t){var e=this._alignment,i=this._targetPoint,s=this._marker,r=0,a=0,n=s.clientWidth,h=s.clientHeight,l=this._plotRect;if(!this._plot)return;const o=this._getTop();if(!this._capturedEle||this._capturedEle&&this._capturedEle!==this._markerContent){if(e===LineMarkerAlignment.Auto){i.x+n+12>l.left+l.width&&i.x-n>=0&&(a=n);r=h;i.y-h<o&&(r=0)}else{1==(1&e)&&(a=n);2==(2&e)&&(r=h)}this._interaction===LineMarkerInteraction.Move&&0===r&&0===a&&null==this.verticalPosition&&(a=-12)}else{parseInt(this._hLine.style.top)>0&&(r=h);parseInt(this._vLine.style.left)>0&&(a=n)}s.style.left=i.x-a-l.left+"px";s.style.top=i.y-r-o+"px";this._hLine.style.top=r+"px";this._hLine.style.left=l.left-i.x+a+"px";this._vLine.style.top=o-i.y+r+"px";this._vLine.style.left=a+"px"}_getEventPoint(t){return t instanceof MouseEvent?new Point(t.pageX,t.pageY):new Point(t.changedTouches[0].pageX,t.changedTouches[0].pageY)}_pointInRect(t,e){return!(!t||!e)&&(t.x>=e.left&&t.x<=e.left+e.width&&t.y>=e.top&&t.y<=e.top+e.height)}_getTop(){let t=0,e=this.chart._getHostComputedStyle();if(e){t+=this.chart._parsePx(e.paddingTop);t+=this.chart._parsePx(e.borderTopWidth);t+=this.chart._parsePx(e.marginTop)}return this._chart._plotRect.top+this._plot.getBoundingClientRect().top-t}}LineMarker._CSS_MARKER=LineMarkerClsNames.linemarker;LineMarker._CSS_MARKER_HLINE=LineMarkerClsNames.hline;LineMarker._CSS_MARKER_VLINE=LineMarkerClsNames.vline;LineMarker._CSS_MARKER_CONTENT=LineMarkerClsNames.content;LineMarker._CSS_MARKER_CONTAINER=LineMarkerClsNames.container;LineMarker._CSS_LINE_DRAGGABLE=LineMarkerClsNames.draggable;LineMarker._CSS_TOUCH_DISABLED=FlexChartClsNames.touchDisabled;export var AxisType;!function(t){t[t.X=0]="X";t[t.Y=1]="Y"}(AxisType||(AxisType={}));export var OverlappingLabels;!function(t){t[t.Auto=0]="Auto";t[t.Show=1]="Show"}(OverlappingLabels||(OverlappingLabels={}));export var TickMark;!function(t){t[t.None=0]="None";t[t.Outside=1]="Outside";t[t.Inside=2]="Inside";t[t.Cross=3]="Cross"}(TickMark||(TickMark={}));export var AxisGroupsDisplay;!function(t){t[t.None=0]="None";t[t.Show=1]="Show";t[t.ShowGrid=2]="ShowGrid"}(AxisGroupsDisplay||(AxisGroupsDisplay={}));export class Axis{constructor(t){this._GRIDLINE_WIDTH=1;this._LINE_WIDTH=1;this._TICK_WIDTH=1;this._TICK_HEIGHT=4;this._TICK_OVERLAP=1;this._TICK_LABEL_DISTANCE=4;this._minorGrid=!1;this._isMinimumAuto=!0;this._isMaximumAuto=!0;this._labels=!0;this._isTimeAxis=!1;this._labelPadding=5;this._actualLabels=[];this._labelMin=!1;this._labelMax=!1;this.rangeChanged=new Event;this._customConvert=null;this._customConvertBack=null;this.__uniqueId=Axis._id++;t==Position.BottomLeft||t==Position.BottomRight||t==Position.TopLeft||t==Position.TopRight||t==Position.LeftTop||t==Position.LeftBottom||t==Position.RightTop||t==Position.RightBottom?this._position=void 0:this._position=t;this._position==Position.Bottom||this._position==Position.Top?this._axisType=AxisType.X:this._position!=Position.Left&&this._position!=Position.Right||(this._axisType=AxisType.Y);this._minorTickMarks=TickMark.None;this._overlap=OverlappingLabels.Auto}get hostElement(){return this._hostElement}get actualMin(){return this._isTimeAxis?new Date(this._actualMin):this._actualMin}get actualMax(){return this._isTimeAxis?new Date(this._actualMax):this._actualMax}get min(){return this._min}set min(t){if(t!=this._min){this._isMinimumAuto=!1;isDate(t)?this._min=asDate(t,!0):this._min=asNumber(t,!0);this._invalidate()}}get max(){return this._max}set max(t){if(t!=this._max){this._isMaximumAuto=!1;isDate(t)?this._max=asDate(t,!0):this._max=asNumber(t,!0);this._invalidate()}}get reversed(){return this._reversed}set reversed(t){if(this._reversed!=t){this._reversed=asBoolean(t);this._invalidate()}}get position(){return this._position}set position(t){if((t=asEnum(t,Position,!1))!=this._position){t==Position.BottomLeft||t==Position.BottomRight||t==Position.TopLeft||t==Position.TopRight||t==Position.LeftTop||t==Position.LeftBottom||t==Position.RightTop||t==Position.RightBottom?this._position=this._axisType==AxisType.X?Position.Bottom:this._axisType==AxisType.Y?Position.Left:void 0:this._position=t;this._position==Position.Bottom||this._position==Position.Top?null==this._axisType?this._axisType=AxisType.X:this._axisType==AxisType.Y&&(this._position=Position.Left):this._position!=Position.Left&&this._position!=Position.Right||(null==this._axisType?this._axisType=AxisType.Y:this._axisType==AxisType.X&&(this._position=Position.Bottom));this._invalidate()}}get majorUnit(){return this._majorUnit}set majorUnit(t){if(t!=this._majorUnit){this._majorUnit=asNumber(t,!0);this._invalidate()}}get minorUnit(){return this._minorUnit}set minorUnit(t){if(t!=this._minorUnit){this._minorUnit=asNumber(t,!0);this._invalidate()}}get name(){return this._name}set name(t){t!=this._name&&(this._name=asString(t,!0))}get title(){return this._title}set title(t){if(t!=this._title){this._title=asString(t,!0);this._invalidate()}}get format(){return this._format}set format(t){if(t!=this._format){this._format=asString(t,!0);this._invalidate()}}get majorGrid(){return this._majorGrid}set majorGrid(t){if(t!=this._majorGrid){this._majorGrid=asBoolean(t,!0);this._invalidate()}}get majorTickMarks(){return this._majorTickMarks}set majorTickMarks(t){if((t=asEnum(t,TickMark,!0))!=this._majorTickMarks){this._majorTickMarks=t;this._invalidate()}}get minorGrid(){return this._minorGrid}set minorGrid(t){if(t!=this._minorGrid){this._minorGrid=asBoolean(t,!0);this._invalidate()}}get minorTickMarks(){return this._minorTickMarks}set minorTickMarks(t){if((t=asEnum(t,TickMark,!0))!=this._minorTickMarks){this._minorTickMarks=t;this._invalidate()}}get axisLine(){return void 0===this._axisLine?this.axisType==AxisType.X:this._axisLine}set axisLine(t){if(t!=this._axisLine){this._axisLine=asBoolean(t,!0);this._invalidate()}}get labels(){return this._labels}set labels(t){if(t!=this._labels){this._labels=asBoolean(t,!0);this._invalidate()}}get labelAlign(){return this._labelAlign}set labelAlign(t){if(t!=this._labelAlign){this._labelAlign=asString(t,!0);this._invalidate()}}get labelAngle(){return this._labelAngle}set labelAngle(t){if(t!=this._labelAngle){this._labelAngle=asNumber(t,!0);this._invalidate()}}get labelMin(){return this._labelMin}set labelMin(t){if(t!=this._labelMin){this._labelMin=asBoolean(t,!0);this._invalidate()}}get labelMax(){return this._labelMax}set labelMax(t){if(t!=this._labelMax){this._labelMax=asBoolean(t,!0);this._invalidate()}}get origin(){return this._origin}set origin(t){if(t!=this._origin){this._origin=asNumber(t,!0);this._invalidate()}}get overlappingLabels(){return this._overlap}set overlappingLabels(t){if((t=asEnum(t,OverlappingLabels,!0))!=this._overlap){this._overlap=t;this._invalidate()}}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){if(this._cv){this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);null!=this._cv&&this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._invalidate()}}get itemFormatter(){return this._ifmt}set itemFormatter(t){if(this._ifmt!=t){this._ifmt=asFunction(t,!0);this._invalidate()}}get logBase(){return this._logBase}set logBase(t){if(t!=this._logBase){this._logBase=asNumber(t,!0,!0);this._invalidate()}}get groupsOptions(){return this._groupsOptions}set groupsOptions(t){if(t!=this._groupsOptions){this._groupsOptions=t;this._invalidate()}}get axisLabels(){return this._actualLabels}_getLogBase(){return this._chart&&this._chart._stacking===Stacking.Stacked100pc?0:this.logBase}_isLogAxis(){let t=this._getLogBase();return null!=t&&t>0}get plotArea(){return this._parea}set plotArea(t){if(t!=this._parea){this._parea=asType(t,PlotArea,!0);this._invalidate()}}get labelPadding(){return this._labelPadding}set labelPadding(t){if(t!=this._labelPadding){this._labelPadding=asNumber(t,!0,!0);this._invalidate()}}get _groupClass(){return this.axisType===AxisType.X?FlexChartCore._CSS_AXIS_X:FlexChartCore._CSS_AXIS_Y}onRangeChanged(t){this.rangeChanged.raise(this,t)}_getPosition(){if(this.axisType==AxisType.X){if(this.position==Position.Auto)return Position.Bottom}else if(this.axisType==AxisType.Y&&this.position==Position.Auto)return Position.Left;return this.position}_isOverlapped(t,e,i,s){var r=this._lbls;if(null!=r&&r.length>1)for(var a=r.length,n=this._values&&this._values.length==a?this._values:null,h=0,l=0,o=0;o<a;o++){var _=n?n[o]:o;if(_>=this._actualMin&&_<=this._actualMax){var d=e*(_-this._actualMin)/(this._actualMax-this._actualMin),c=t.measureString(r[o],i,this._groupClass);if(this.axisType==AxisType.X){if(o>0&&Math.abs(d-h)<.5*(c.width+l))return!0;h=d;l=c.width}else this.axisType,AxisType.Y}}return!1}_getHeight(t,e){this._actualAngle=null;let i=FlexChartCore._CSS_LABEL,s=FlexChartCore._CSS_TITLE,r=.1*this._getActualRange(),a=this._lbls,n=this.labelAngle;if(this.labels&&this._chart._getChartType()!==ChartType.Funnel){r=this._updateAutoFormat(r);if(null!=a&&a.length>0){let s=a.length,r=this._values&&this._values.length==s?this._values:null;this._annoSize=new Size;for(var h=0;h<s;h++){let e=r?r[h]:h;if(e>=this._actualMin&&e<=this._actualMax){let s=a[h],r=i;if(this.itemFormatter){let a=this._getFormattedItem(t,e,s,new Point,i,!0);s=a.text;r=a.cls}let n=t.measureString(s,r,this._groupClass);this.axisType,AxisType.X,n.width>this._annoSize.width&&(this._annoSize.width=n.width);n.height>this._annoSize.height&&(this._annoSize.height=n.height)}}null==n&&this.axisType==AxisType.X&&(this._isOverlapped(t,Math.max(10,e-this._annoSize.width),i,this.axisType)?n=this._actualAngle=-45:this._actualAngle=0)}else if(isNumber(this.majorUnit)&&this._axisType===AxisType.Y&&this.itemFormatter){let e=[],s=[];this._annoSize=new Size;this._getAutoLbsAndVals(e,s);for(let e=0;e<s.length;e++){let r=s[e],a=this._formatValue(r),n=i;a=this._getFormattedItem(t,r,a,new Point,i,!0).text;n=i;let h=t.measureString(a,n,this._groupClass);h.width>this._annoSize.width&&(this._annoSize.width=h.width);h.height>this._annoSize.height&&(this._annoSize.height=h.height)}}else{let e=this._actualMin-r,s=this._formatValue(e),a=i;if(this.itemFormatter){s=this._getFormattedItem(t,e,s,new Point,i,!0).text;a=i}let n=t.measureString(s,a,this._groupClass);this._annoSize=n;e=this._actualMax+r;s=this._formatValue(e);a=i;if(this.itemFormatter){s=this._getFormattedItem(t,e,s,new Point,i,!0).text;a=i}n=t.measureString(s,a,this._groupClass);n.width>this._annoSize.width&&(this._annoSize.width=n.width);n.height>this._annoSize.height&&(this._annoSize.height=n.height)}this._annoSizeBase=new Size(this._annoSize.width,this._annoSize.height);if(n){n>90?n=90:n<-90&&(n=-90);let t=n*Math.PI/180,e=this._annoSize.width,i=this._annoSize.height;this._annoSize.width=e*Math.abs(Math.cos(t))+i*Math.abs(Math.sin(t));this._annoSize.height=e*Math.abs(Math.sin(t))+i*Math.abs(Math.cos(t));this._actualAngle=n}}else{this._annoSize=new Size(8,8);this._annoSizeBase=new Size(this._annoSize.width,this._annoSize.height)}let l=0;if(this.labels){l=2*(this._labelPadding||5);this._axisType==AxisType.X?l+=this._annoSize.height:l+=this._annoSize.width+this._TICK_LABEL_DISTANCE+2}let o=this._TICK_HEIGHT,_=this._TICK_OVERLAP,d=this.majorTickMarks;d==TickMark.Outside?_=1:d==TickMark.Inside?_=-1:d==TickMark.Cross&&(_=0);null==d&&(d=TickMark.Outside);d!=TickMark.None&&(l+=.5*(1+_)*o);if(this._title){let e=this._title;this._szTitle=t.measureString(e,s,this._groupClass);l+=this._szTitle.height}else this._szTitle=void 0;if(this._lbls&&this.groupsOptions&&this.groupsOptions.display!==AxisGroupsDisplay.None){this._groupsPanel||(this._groupsPanel=new _AxisGroups(this));this._groupsPanel.createGroups();l+=this._groupsPanel.getHeight(t)}t.fontSize=null;return l}_updateAutoFormat(t){if(this._isTimeAxis){var e=this.format,i=.001*this._getActualRange()/10,s=new _timeSpan(i*_timeSpan.TicksPerSecond),r=isNumber(this._majorUnit)?_timeSpan.fromDays(this._majorUnit):_timeHelper.NiceTimeSpan(s,e);e||(this._tfmt=_timeHelper.GetTimeDefaultFormat(1e3*r.TotalSeconds,0));t=r.TotalSeconds}return t}_getActualRange(){return this._actualMax-this._actualMin}_updateActualLimitsByChartType(t,e,i){if(t&&t.length>0&&!this._isTimeAxis){var s=this._chart._getChartType();if(s!=ChartType.Column&&s!=ChartType.Bar){e-=.5;i+=.5}}return{min:e,max:i}}_updateActualLimits(t,e,i,s=null,r=null){var a=this._actualMin,n=this._actualMax;this._isTimeAxis=t==DataType.Date;var h=this._updateActualLimitsByChartType(s,e,i);e=h.min;i=h.max;var l=this._min,o=this._max;isDate(l)&&(l=l.valueOf());isDate(o)&&(o=o.valueOf());let _=this._getSeries(),d=this._chart&&(null!=_&&void 0!==_._getChartType()||this._chart._stacking!==Stacking.Stacked100pc);d||(d=this._chart._isRotated()?this.axisType==AxisType.Y:this.axisType==AxisType.X);const c=this._actualMin=null!=l&&d?l:e;if(c==(this._actualMax=null!=o&&d?o:i))if(void 0!==l&&void 0===o)this._actualMax+=1;else if(void 0===l&&void 0!==o)this._actualMin-=1;else if(0===c)this._actualMax=1;else{const t=Math.abs(c);if(t<1){this._actualMin-=t;this._actualMax+=t}else{this._actualMin-=1;this._actualMax+=1}}if(this._getLogBase()>0){const t=this.logBase,e=Math.log(t);if(!this._max){var u=Math.ceil(Math.log(this._actualMax)/e);this._actualMax=Math.pow(t,u)}if(!this._min){var g=Math.floor(Math.log(this._actualMin)/e);this._actualMin=Math.pow(t,g)}(this._actualMin<=0||!isNumber(this._actualMin))&&(this._actualMin=1);this._actualMax<this._actualMin?this._actualMax=this._actualMin+1:this._actualMax===this._actualMin&&(this._actualMin=.1*this._actualMax)}(a!=this._actualMin&&(isNumber(a)||isNumber(this._actualMin))||n!=this._actualMax&&(isNumber(n)||isNumber(this._actualMax)))&&this.onRangeChanged();if(this._items){this._values=[];this._lbls=[];var f=this._items.length,p="value",m="text";if(this.binding){var x=this.binding.split(",");if(2==x.length){p=x[0];m=x[1]}}for(var v=0;v<f;v++){var b=this._items[v],y=b[p];if(isNumber(y)){this._values.push(y);this._lbls.push(b[m])}else if(isDate(y)){this._values.push(y.getTime());this._lbls.push(b[m])}}}else{this._lbls=s;this._values=r}}_layout(t,e){var i=this.axisType==AxisType.Y;this._plotrect=e;this._axrect=i?new Rect(t.left,t.top,t.height,t.width):t;this._groupsPanel&&this._groupsPanel.layout()}_hasVisibileSeries(){for(var t,e=this._chart.series,i=0,s=e.length;i<s;i++)if((t=e[i].visibility)==SeriesVisibility.Plot||t==SeriesVisibility.Visible)return!0;return!1}_getSeries(){if(this._chart)for(var t=this._chart.series,e=0,i=t.length;e<i;e++)if(t[e].axisY==this||t[e].axisX==this)return t[e];return null}_render(t){if(this.position!=Position.None&&this._hasVisibileSeries()){this.axisLabels.length=0;this._vals={};var e=0;this.labelAngle&&((e=this.labelAngle)>90?e=90:e<-90&&(e=-90));null==this.labelAngle&&null!=this._actualAngle&&(e=this._actualAngle);var i=FlexChartCore._FG,s=this._getActualRange();if(isNumber(s)){var r=[],a=[];this._rects=[];this._vals.major=r;this._vals.hasLbls=[];var n=!1;if(this._lbls&&this._lbls.length>0){a=this._lbls;if(0==this._values.length){n=!0;for(var h=0;h<a.length;h++)r.push(h)}else r=this._values}else this._getAutoLbsAndVals(a,r);var l=Math.min(r.length,a.length);t.textFill=i;var o=this._TICK_HEIGHT,_=this._TICK_OVERLAP,d=this.majorTickMarks;null==d&&(d=TickMark.Outside);d==TickMark.Outside?_=1:d==TickMark.Inside?_=-1:d==TickMark.Cross&&(_=0);var c=.5*(_-1)*o,u=.5*(1+_)*o;for(h=0;h<l;h++){var g=!0,f=r[h],p=a[h],m=this.labels;m&&(n||this.itemsSource)&&this.majorUnit&&h%this.majorUnit!=0&&(m=!1);if(f>=this._actualMin&&f<=this._actualMax){var x=t.textFill;g=this._renderLabelsAndTicks(t,h,f,p,e,d,m,c,u);t.textFill=x}this._vals.hasLbls.push(g);g&&this.axisLabels.push(p)}}(this.minorGrid||this.minorTickMarks!=TickMark.None)&&this._renderMinor(t,r,n);t.stroke=i;t.fontSize=null;this._renderLineAndTitle(t);this._lbls&&this.groupsOptions&&this.groupsOptions.display!==AxisGroupsDisplay.None&&this._groupsPanel&&this._groupsPanel.render(t);t.stroke=null;t.fontSize=null;t.textFill=null;t.strokeWidth=null}}_getAutoLbsAndVals(t,e){var i=this._actualMax-this._actualMin,s=this._calcMajorUnit();0==s&&(s=.1*this._niceTickNumber(i));var r=Math.floor(this._actualMin/s)*s;r<this._actualMin&&(r+=s);var a=Math.min(Axis.MAX_MAJOR,Math.floor(i/s)+1);if(this._isTimeAxis){this._createTimeLabels(r,a,e,t);this._addMinMaxLabels(e,t)}else if(this._getLogBase()){this._createLogarithmicLabels(this._actualMin,this._actualMax,this.majorUnit,e,t,!0);this._addMinMaxLabels(e,t)}else{this._createLabels(r,a,s,e,t);this._addMinMaxLabels(e,t)}}_renderLineAndTitle(t){var e=this._getPosition(),i=this.axisType==AxisType.Y,s=e!=Position.Top&&e!=Position.Right,r=FlexChartCore._CSS_TITLE,a=FlexChartCore._CSS_LINE;if(i)if(s){if(this._title){var n=new Point(this._axrect.left+.5*this._szTitle.height,this._axrect.top+.5*this._axrect.height);FlexChartCore._renderRotatedText(t,this._title,n,1,1,n,-90,r,this._groupClass)}this.axisLine&&t.drawLine(this._axrect.right,this._axrect.top,this._axrect.right,this._axrect.bottom,a)}else{if(this._title){n=new Point(this._axrect.right-.5*this._szTitle.height,this._axrect.top+.5*this._axrect.height);FlexChartCore._renderRotatedText(t,this._title,n,1,1,n,90,r,this._groupClass)}this.axisLine&&t.drawLine(this._axrect.left,this._axrect.top,this._axrect.left,this._axrect.bottom,a)}else if(s){this.axisLine&&t.drawLine(this._axrect.left,this._axrect.top,this._axrect.right,this._axrect.top,a);this._title&&FlexChartCore._renderText(t,this._title,new Point(this._axrect.left+.5*this._axrect.width,this._axrect.bottom),1,2,r)}else{this.axisLine&&t.drawLine(this._axrect.left,this._axrect.bottom,this._axrect.right,this._axrect.bottom,a);this._title&&FlexChartCore._renderText(t,this._title,new Point(this._axrect.left+.5*this._axrect.width,this._axrect.top),1,0,r)}}_renderMinor(t,e,i){var s=this._getPosition(),r=this.axisType==AxisType.Y,a=s!=Position.Top&&s!=Position.Right;this._getLogBase()?this._createLogarithmicMinors(t,e,r,a,i):this._createMinors(t,e,r,a,i)}_renderRotatedText(t,e,i,s,r,a,n,h,l,o,_){if(this.itemFormatter){var d=this._getFormattedItem(t,e,i,s,l);if(d){i=d.text;l=d.cls}else i=null}FlexChartCore._renderRotatedText(t,i,s,r,a,n,h,l,o,_)}_getFormattedItem(t,e,i,s,r,a=!1){if(this.itemFormatter){let n=s.clone();this._plotrect&&(this.axisType==AxisType.X?this.position==Position.Top?n.y=this._plotrect.top:n.y=this._plotrect.bottom:this.position==Position.Right?n.x=this._plotrect.right:n.x=this._plotrect.left);let h={val:e,text:i,pos:n,cls:r};a&&(t.readOnly=!0);h=this.itemFormatter(t,h);a&&(t.readOnly=!1);return h}}_renderLabelsAndTicks(t,e,i,s,r,a,n,h,l){var o=this._getPosition(),_=!1,d=this.axisType==AxisType.Y,c=o!=Position.Top&&o!=Position.Right,u=this.labelPadding||5,g=this._TICK_WIDTH,f=this._getLabelAlign(d),p=FlexChartCore._CSS_LABEL,m=FlexChartCore._CSS_GRIDLINE,x=FlexChartCore._CSS_TICK,v=FlexChartCore._FG,b=FlexChartCore._FG,y=this._GRIDLINE_WIDTH,S=i!=this._actualMin&&this.majorGrid;if(d){var w=this.convert(i);if(S){t.stroke=v;t.strokeWidth=y;t.drawLine(this._plotrect.left,w,this._plotrect.right,w,m)}t.stroke=b;t.strokeWidth=g;if(c){if(n){_=!0;var C=new Point(this._axrect.right-l-this._TICK_LABEL_DISTANCE-u,w);r>0?90==r?this._renderRotatedText(t,i,s,C,1,0,C,r,p,this._groupClass):this._renderRotatedText(t,i,s,C,2,1,C,r,p,this._groupClass):r<0?-90==r?this._renderRotatedText(t,i,s,C,1,2,C,r,p,this._groupClass):this._renderRotatedText(t,i,s,C,2,1,C,r,p,this._groupClass):_=this._renderLabel(t,i,s,C,2,f,p)}a!=TickMark.None&&_&&t.drawLine(this._axrect.right-h,w,this._axrect.right-l,w,x)}else{if(n){_=!0;C=new Point(this._axrect.left+l+this._TICK_LABEL_DISTANCE+u,w);r>0?90==r?this._renderRotatedText(t,i,s,C,1,2,C,r,p,this._groupClass):this._renderRotatedText(t,i,s,C,0,1,C,r,p,this._groupClass):r<0?-90==r?this._renderRotatedText(t,i,s,C,1,0,C,r,p,this._groupClass):this._renderRotatedText(t,i,s,C,0,1,C,r,p,this._groupClass):_=this._renderLabel(t,i,s,C,0,f,p)}a!=TickMark.None&&_&&t.drawLine(this._axrect.left+h,w,this._axrect.left+l,w,x)}}else{var T=this.convert(i);if(S&&n){t.stroke=v;t.strokeWidth=y;t.drawLine(T,this._plotrect.top,T,this._plotrect.bottom,m)}this.overlappingLabels==OverlappingLabels.Auto&&this._xCross(T)&&(n=!1);t.stroke=b;t.strokeWidth=g;if(c){if(n){C=new Point(T,this._axrect.top+l+u);_=0!=r?this._renderRotatedLabel(t,i,s,C,f,r,p,c):this._renderLabel(t,i,s,C,f,0,p)}if(a!=TickMark.None&&_){T=this.convert(i);t.drawLine(T,this._axrect.top+h,T,this._axrect.top+l,x)}}else{if(n){C=new Point(T,this._axrect.bottom-l-u);_=0!=r?this._renderRotatedLabel(t,i,s,C,f,r,p,c):this._renderLabel(t,i,s,C,f,2,p)}if(a!=TickMark.None&&_){T=this.convert(i);t.drawLine(T,this._axrect.bottom-h,T,this._axrect.bottom-l,x)}}}return _}_xCross(t){for(var e=this._rects.length,i=0;i<e;i++){var s=this._rects[i];if(t>=s.left&&t<=s.right)return!0}return!1}_createMinors(t,e,i,s,r){if(e){var a=this.majorUnit?this._isTimeAxis?24*this.majorUnit*3600*1e3:this.majorUnit:e.length>1?e[1]-e[0]:e[0],n=isNumber(this.minorUnit)?this._isTimeAxis?24*this.minorUnit*3600*1e3:this.minorUnit:.5*a;if(n<=0)return;for(var h=[],l=e[0];l>this._actualMin&&h.length<Axis.MAX_MINOR;l-=n)-1==e.indexOf(l)&&h.push(l);for(l=e[0]+n;l<this._actualMax&&h.length<Axis.MAX_MINOR;l+=n)(-1==e.indexOf(l)||r&&this.majorUnit&&l%this.majorUnit!=0)&&h.push(l);this._renderMinors(t,h,i,s)}}_createLogarithmicMinors(t,e,i,s,r){if(e&&(!this.minorUnit||this.minorUnit<this._getLogBase())){var a=this.logBase;this.majorUnit>a&&(a=this.majorUnit);if(0==e.length){var n=Math.log(a),h=Math.floor(Math.log(this._actualMin)/n),l=Math.ceil(Math.log(this.actualMax)/n);if(this.majorUnit>0){e.push(Math.pow(a,h));e.push(Math.pow(a,l))}else{e.push(Math.pow(a,l));e.push(Math.pow(a,h))}}this.minorUnit||(this.minorUnit=a-1<1?.2*(a-1):.2*a);var o=[];if(this.majorUnit>0){for(var _=e[0]-e[0]/a*this.minorUnit;_>=this._actualMin&&o.length<Axis.MAX_MINOR;_-=e[0]/a*this.minorUnit)o.push(_);for(var d=0;d<e.length-1;d++)for(_=e[d]+e[d]*this.minorUnit;_<e[d+1]&&o.length<Axis.MAX_MINOR;_+=e[d]*this.minorUnit)_>=this._actualMin&&_<=this._actualMax&&o.push(_);for(_=e[e.length-1]+e[e.length-1]*this.minorUnit;_<=this._actualMax&&o.length<Axis.MAX_MINOR;_+=e[e.length-1]*this.minorUnit)o.push(_)}else{for(_=e[e.length-1]-e[e.length-1]/a*this.minorUnit;_>=this._actualMin&&o.length<Axis.MAX_MINOR;_-=e[e.length-1]/a*this.minorUnit)o.push(_);for(d=0;d<e.length-1;d++)for(_=e[d]-e[d+1]*this.minorUnit;_>e[d+1]&&o.length<Axis.MAX_MINOR;_-=e[d+1]*this.minorUnit)_>=this._actualMin&&_<=this._actualMax&&o.push(_);for(_=e[0]+e[0]*this.minorUnit;_<=this._actualMax&&o.length<Axis.MAX_MINOR;_+=e[0]*this.minorUnit)o.push(_)}this._renderMinors(t,o,i,s)}}_renderMinors(t,e,i,s){var r=this._TICK_HEIGHT,a=this._TICK_WIDTH,n=this._TICK_OVERLAP,h=FlexChartCore._FG,l=this.minorTickMarks,o=!0;this._vals.minor=e;l==TickMark.Outside?n=1:l==TickMark.Inside?n=-1:l==TickMark.Cross?n=0:o=!1;for(var _=.5*(n-1)*r,d=.5*(1+n)*r,c=e?e.length:0,u=this.minorGrid,g=this._plotrect,f=this._GRIDLINE_WIDTH,p=FlexChartCore._FG,m=FlexChartCore._CSS_GRIDLINE_MINOR,x=FlexChartCore._CSS_TICK_MINOR,v=0;v<c;v++)if(e[v]>=this.actualMin&&e[v]<=this.actualMax)if(i){var b=this.convert(e[v]);if(o){t.stroke=h;t.strokeWidth=a;s?t.drawLine(this._axrect.right-_,b,this._axrect.right-d,b,x):t.drawLine(this._axrect.left+_,b,this._axrect.left+d,b,x)}if(u){t.stroke=p;t.strokeWidth=f;t.drawLine(g.left,b,g.right,b,m)}}else{var y=this.convert(e[v]);if(o){t.stroke=h;t.strokeWidth=a;s?t.drawLine(y,this._axrect.top+_,y,this._axrect.top+d,x):t.drawLine(y,this._axrect.bottom-_,y,this._axrect.bottom-d,x)}if(u){t.stroke=p;t.strokeWidth=f;t.drawLine(y,g.top,y,g.bottom,m)}}}_renderLabel(t,e,i,s,r,a,n){var h=!1;if(this.itemFormatter){var l=this._getFormattedItem(t,e,i,s,n);if(l){i=l.text;n=l.cls}else i=null}if(i){var o=this._rects,_=this.overlappingLabels==OverlappingLabels.Auto&&!isNumber(this._actualAngle),d=FlexChartCore._renderText(t,i,s,r,a,n,this._groupClass,null,(function(t){if(_)for(var e=o.length,i=0;i<e;i++)if(FlexChartCore._intersects(o[i],t))return!1;return!0}));if(d){d.left+=4;d.width+=8;o.push(d);h=!0}}return h}_renderRotatedLabel(t,e,i,s,r,a,n,h){if(this.itemFormatter){var l=this._getFormattedItem(t,e,i,s,n);if(l){i=l.text;n=l.cls}else i=null}if(i){var o=t.measureString(i,n,this._groupClass),_=.5*o.height,d=.5*o.width*Math.abs(Math.sin(a*Math.PI/180)),c=.5*o.width,u=.5*(o.width*Math.abs(Math.cos(a*Math.PI/180))+o.height*Math.abs(Math.sin(a*Math.PI/180))),g=new Point(s.x,s.y),f=new Point(s.x,s.y);this.labelAlign||(r=90==a||-90==a?1:h?a>0?0:2:a>0?2:0);if(h){s.y+=_+d;g.y+=_+d-.5*o.height}else{s.y-=_+d-o.height;g.y-=_+d-.5*o.height}var p=0;if(2===r){g.x-=u;s.x-=c+u;p=g.x+u-o.height-2}else if(0===r){g.x+=u;s.x-=c-u;p=g.x-u}else{s.x-=c;p=g.x-o.height/2}var m=new Rect(p,f.y,o.height+2,o.width),x=this._rects;if(this.overlappingLabels==OverlappingLabels.Auto)for(var v=x.length,b=0;b<v;b++)if(FlexChartCore._intersects(x[b],m))return!1;FlexChartCore._renderRotatedText(t,i,s,0,2,g,a,n,this._groupClass);this._rects.push(m);return!0}return!1}_getLabelAlign(t){var e=1;if(this.labelAlign){var i=this.labelAlign.toLowerCase();t?"top"==i?e=0:"bottom"==i&&(e=2):"left"==i?e=0:"right"==i&&(e=2)}return e}_addMinMaxLabels(t,e){if(this.labelMin){const i=this.actualMin;if(isFinite(i)&&!t.includes(i)){e.splice(0,0,this._formatValue(i));t.splice(0,0,i)}}if(this.labelMax){const i=this.actualMax;if(isFinite(i)&&!t.includes(i)){e.splice(0,0,this._formatValue(i));t.splice(0,0,i)}}}convert(t,e,i){var s=null==e?this._actualMax:e,r=null==i?this._actualMin:i;if(s==r||!this._axrect)return 0;var a=this._axrect.left,n=this._axrect.width,h=this._axrect.top,l=this._axrect.height;if(null!=this._customConvert){var o=this._customConvert(t,r,s);return this.axisType==AxisType.Y?h+o*l:a+o*n}if(this._getLogBase()){if(t<=0)return NaN;var _=Math.log(s/r);return this._reversed?this.axisType==AxisType.Y?h+Math.log(t/r)/_*l:a+n-Math.log(t/r)/_*n:this.axisType==AxisType.Y?h+l-Math.log(t/r)/_*l:a+Math.log(t/r)/_*n}return this._reversed?this.axisType==AxisType.Y?h+(t-r)/(s-r)*l:a+n-(t-r)/(s-r)*n:this.axisType==AxisType.Y?h+l-(t-r)/(s-r)*l:a+(t-r)/(s-r)*n}convertBack(t){if(this._actualMax==this._actualMin)return 0;var e=this._plotrect.left,i=this._plotrect.width,s=this._plotrect.top,r=this._plotrect.height,a=this._getActualRange(),n=this._getLogBase();if(null!=this._customConvertBack)return this.axisType==AxisType.Y?this._customConvertBack((t-s)/r,this._actualMin,this._actualMax):this._customConvertBack((t-e)/i,this._actualMin,this._actualMax);if(n){var h=0;h=this._reversed?this.axisType==AxisType.Y?(t-s)/r:1-(t-e)/i:this.axisType==AxisType.Y?1-(t-s)/r:(t-e)/i;return Math.pow(n,(Math.log(this._actualMin)+(Math.log(this._actualMax)-Math.log(this._actualMin))*h)/Math.log(n))}return this._reversed?this.axisType==AxisType.Y?this._actualMin+(t-s)*a/r:this._actualMin+(e+i-t)*a/i:this.axisType==AxisType.Y?this._actualMax-(t-s)*a/r:this._actualMin+(t-e)*a/i}get axisType(){var t=this._chart;if(t){if(t.axisX==this)return AxisType.X;if(t.axisY==this)return AxisType.Y}return this._axisType}_getMinNum(){return this._actualMin}_getMaxNum(){return this._actualMax}_getTitleSize(){return this._szTitle?this._szTitle:new Size}_invalidate(){this._chart&&this._chart.invalidate()}_cvCollectionChanged(t,e){this._invalidate()}_createLabels(t,e,i,s,r){for(var a=0;a<e;a++){var n=(t+i*a).toFixed(14),h=parseFloat(n),l=this._formatAxisValue(h);let e=r.indexOf(l);if(e>=0&&!isNumber(this.majorUnit)&&!this._format){let t=parseFloat(l);Math.abs(t-h)<Math.abs(t-s[e])&&(s[e]=h)}else{s.push(h);r.push(l)}}}_createLogarithmicLabels(t,e,i,s,r,a){var n=this._getLogBase(),h=Math.log(n),l=Math.floor(Math.log(t)/h),o=Math.ceil(Math.log(e)/h),_=n,d=!0;if(i>0){d=!1;_=i}_<n&&(_=n);var c=(o-l+1)*n/_,u=1;if(a){var g=this._getPosition(),f=this._getAnnoNumber(g==Position.Left||g==Position.Right);c>f?u=Math.floor(c/f+1):d&&(c<=.2*f?_=.2*n:c<=.1*f&&(_=.1*n))}for(var p=l;p<=o;p+=u)if(d)for(var m=Math.pow(n,p),x=0;x*_<n-1;x++){if((v=m*(1+x*_))>=t&&v<=e)if(0==x){s.unshift(v);r&&r.unshift(this._formatValue(v))}else if(!this.minorGrid&&this.minorTickMarks==TickMark.None){s.push(v);r&&r.push(this._formatValue(v))}}else{var v;if((v=Math.pow(_,p))>=t&&v<=e){s.push(v);r&&r.push(this._formatValue(v))}}}_createTimeLabels(t,e,i,s){var r=this._actualMin,a=this._actualMax,n=new Date(r),h=new Date(a),l=this._format,o=this._getAnnoNumber(this._axisType==AxisType.Y);o>10&&(o=10);var _=.001*(this._actualMax-this._actualMin)/o,d=new _timeSpan(_*_timeSpan.TicksPerSecond),c=isNumber(this._majorUnit)?_timeSpan.fromDays(this._majorUnit):_timeHelper.NiceTimeSpan(d,l);l||(this._tfmt=l=_timeHelper.GetTimeDefaultFormat(1e3*c.TotalSeconds,0));var u=c.Ticks,g=_timeHelper.RoundTime(r,c.TotalDays,!1);isFinite(g)&&(r=g);var f=_timeHelper.RoundTime(a,c.TotalDays,!0);isFinite(f)&&(a=f);var p=new Date(r);new Date(a);if(c.TotalDays>=365&&!isNumber(this._majorUnit)){(p=new Date(n.getFullYear(),0,1))<n&&p.setFullYear(p.getFullYear()+1);var m=c.TotalDays/365;m-=m%1;for(var x=p;x<=h&&m;x.setFullYear(x.getFullYear()+m)){var v=x.valueOf();i.push(v);s.push(this._formatValue(v))}}else if(c.TotalDays>=30&&!isNumber(this._majorUnit)){(p=new Date(n.getFullYear(),n.getMonth(),1))<n&&p.setMonth(p.getMonth()+1);var b=c.TotalDays/30;b-=b%1;for(x=p;x<=h;x.setMonth(x.getMonth()+b)){v=x.valueOf();i.push(v);s.push(this._formatValue(v))}}else{var y=1e3*u/_timeSpan.TicksPerSecond,S=(x=p,n.getTime()-x.getTime());S>y&&(x=new Date(x.getTime()+Math.floor(S/y)*y));for(;x<=h&&y;x=new Date(x.getTime()+y)){if((v=x.valueOf()+S)>=n.valueOf()){i.push(v);s.push(this._formatValue(v))}}}}_formatValue(t){if(this._isTimeAxis)return this._format?Globalize.format(new Date(t),this._format):Globalize.format(new Date(t),this._tfmt);if(this._format)return Globalize.format(t,this._format);var e=t==Math.round(t)?"n0":"n";return Globalize.format(t,e)}_hitTest(t){return this._groupsPanel?this._groupsPanel.hitTest(t):void 0}_formatAxisValue(t,e){if(this._isTimeAxis)return this._format?Globalize.format(new Date(t),this._format):Globalize.format(new Date(t),this._tfmt);if(this._format)return Globalize.format(t,this._format);if(isNumber(t)){let i=this._findFormat(t,e);return Globalize.format(t,i)}return t}_findFormat(t,e){var i=t==Math.round(t)?"n0":"n";void 0!==e&&(i+=e.toString());if("n"==i){let s=t.toFixed(14),r=s.search(".");if(r>=0){e=1;for(let t=s.length-1;t>=r;t--)if("0"!=s[t]){e=t-r-1;break}i+=e.toString()}}return i}_calcMajorUnit(){var t=this._majorUnit;if(!isNumber(t)){var e=this._getActualRange(),i=this._nicePrecision(e),s=e/this._getAnnoNumber(this.axisType==AxisType.Y);(t=this._niceNumber(2*s,-i,!0))<s&&(t=this._niceNumber(s,1-i,!1));t<s&&(t=this._niceTickNumber(s))>s&&(t*=.5)}return t}_getAnnoNumber(t){var e=t?this._annoSizeBase&&this._annoSizeBase.height:this._annoSize&&this._annoSize.width,i=t?this._axrect&&this._axrect.height:this._axrect&&this._axrect.width;if(e>0&&i>0){var s=Math.floor(i/(e+6));s<=0&&(s=1);return s}return 10}_nicePrecision(t){if(!isNumber(t)||t<=0)return 0;var e,i=Math.log(t)/Math.LN10;e=i>=0?Math.floor(i):Math.ceil(i);var s=t/Math.pow(10,e);if(s<3){e=1-e;(s=t/Math.pow(10,e))<3&&(e+=1)}return e}_niceTickNumber(t){if(0==t)return t;t<0&&(t=-t);var e=Math.log(t)/Math.LN10,i=Math.floor(e),s=t/Math.pow(10,i),r=10;s<=1?r=1:s<=2?r=2:s<=5&&(r=5);return r*Math.pow(10,i)}_niceNumber(t,e,i){if(0==t)return t;t<0&&(t=-t);var s=t/Math.pow(10,e),r=10;i?s<1.5?r=1:s<3?r=2:s<4.5?r=4:s<7&&(r=5):s<=1?r=1:s<=2?r=2:s<=5&&(r=5);return r*Math.pow(10,e)}get _uniqueId(){return this.__uniqueId}}Axis.MAX_MAJOR=1e3;Axis.MAX_MINOR=2e3;Axis._id=0;export class AxisCollection extends ObservableArray{getAxis(t){var e=this.indexOf(t);return e>-1?this[e]:null}indexOf(t){for(var e=0;e<this.length;e++)if(this[e].name==t)return e;return-1}}!function(t){t[t.tickf7=-7]="tickf7";t[t.tickf6=-6]="tickf6";t[t.tickf5=-5]="tickf5";t[t.tickf4=-4]="tickf4";t[t.tickf3=-3]="tickf3";t[t.tickf2=-2]="tickf2";t[t.tickf1=-1]="tickf1";t[t.second=1]="second";t[t.minute=60]="minute";t[t.hour=3600]="hour";t[t.day=86400]="day";t[t.week=604800]="week";t[t.month=2678400]="month";t[t.year=31536e3]="year";t[t.maxtime=Number.MAX_VALUE]="maxtime"}(_tmInc||(_tmInc={}));class _timeSpan{constructor(t){this.ticks=t}get Ticks(){return this.ticks}get TotalSeconds(){return this.ticks/1e7}get TotalDays(){return this.ticks/1e7/86400}static fromSeconds(t){return new _timeSpan(1e7*t)}static fromDays(t){return new _timeSpan(1e7*t*24*60*60)}}_timeSpan.TicksPerSecond=1e7;class _timeHelper{constructor(t){isDate(t)?this.init(t):isNumber(t)&&this.init(FlexChartCore._fromOADate(t))}init(t){this.year=t.getFullYear();this.month=t.getMonth();this.day=t.getDate();this.hour=t.getHours();this.minute=t.getMinutes();this.second=t.getSeconds()}getTimeAsDateTime(){if(this.hour>=24){this.hour-=24;this.day+=1}if(this.month<0){-1-this.day;this.month=1}else if(this.month>11){this.month-12;this.month=11}if(this.day<1){-1-this.day;this.day=1}else if(this.day>28&&1==this.month){this.day-28;this.day=28}else if(this.day>30&&(3==this.month||5==this.month||8==this.month||10==this.month)){this.day-30;this.day=30}else if(this.day>31){this.day-31;this.day=31}if(this.second>59){this.second-59;this.second=59}if(this.minute>59){this.minute-59;this.minute=59}return new Date(this.year,this.month,this.day,this.hour,this.minute,this.second)}getTimeAsDouble(){return this.getTimeAsDateTime().valueOf()}static tround(t,e,i){var s=t/e*e;s-=s%1;i&&s!=t&&(s+=e-=e%1);return s}static RoundTime(t,e,i){var s=24*e*60*60;if(s>0){var r=new _timeHelper(t);if(s<_tmInc.minute){r.second=this.tround(r.second,s,i);return r.getTimeAsDouble()}r.second=0;if(s<_tmInc.hour){s/=_tmInc.minute;r.minute=this.tround(r.minute,s,i);return r.getTimeAsDouble()}r.minute=0;if(s<_tmInc.day){s/=_tmInc.hour;r.hour=this.tround(r.hour,s,i);return r.getTimeAsDouble()}r.hour=0;if(s<_tmInc.month){s/=_tmInc.day;r.day=this.tround(r.day,s,i);return r.getTimeAsDouble()}r.day=1;if(s<_tmInc.year){s/=_tmInc.month;1!=r.month&&(r.month=this.tround(r.month,s,i));return r.getTimeAsDouble()}r.month=1;s/=_tmInc.year;r.year=this.tround(r.year,s,i);return r.getTimeAsDouble()}var a=t,n=a-s,h=n/e*e;i&&h!=n&&(h+=e);return a=s+h}static TimeSpanFromTmInc(t){var e=_timeSpan.fromSeconds(1);if(t!=_tmInc.maxtime)if(t>_tmInc.tickf1)e=_timeSpan.fromSeconds(t);else{var i=t,s=1;i+=7;for(;i>0;){s*=10;i--}e=new _timeSpan(s)}return e}static manualTimeInc(t){var e=_tmInc.second;if(null==t||0==t.length)return e;var i=t.indexOf("f");if(i>=0){var s=-1;if(i>0&&"%"==t.substr(i-1,1))s=-1;else for(var r=1;r<6&&!(i+r>=t.length);r++){if("f"!=t.substr(i+r,1))break;s--}e=s}else t.indexOf("s")>=0?e=_tmInc.second:t.indexOf("m")>=0?e=_tmInc.minute:t.indexOf("h")>=0||t.indexOf("H")?e=_tmInc.hour:t.indexOf("d")>=0?e=_tmInc.day:t.indexOf("M")>=0?e=_tmInc.month:t.indexOf("y")>=0&&(e=_tmInc.year);return e}static getNiceInc(t,e,i){for(var s=0;s<t.length;s++){var r=t[s]*i;if(e<=r)return r}return 0}static NiceTimeSpan(t,e){var i=_tmInc.second;null!=e&&e.length>0&&(i=_timeHelper.manualTimeInc(e));var s=0,r=0;if(i<_tmInc.second&&t.TotalSeconds<10){s=t.Ticks;r=_timeHelper.TimeSpanFromTmInc(i).Ticks;for(;s>10*r;)r*=10;var a=r;s>a&&(a*=2);s>a&&(a=5*r);s>a&&(a=10*r);return new _timeSpan(a)}if(0==(s=Math.ceil(t.TotalSeconds)))return _timeHelper.TimeSpanFromTmInc(i);r=1;if(i<_tmInc.minute){if(s<_tmInc.minute&&0!=(r=_timeHelper.getNiceInc([1,2,5,10,15,30],s,i)))return _timeSpan.fromSeconds(r);i=_tmInc.minute}if(i<_tmInc.hour){if(s<_tmInc.hour&&0!=(r=_timeHelper.getNiceInc([1,2,5,10,15,30],s,i)))return _timeSpan.fromSeconds(r);i=_tmInc.hour}if(i<_tmInc.day){if(s<_tmInc.day&&0!=(r=_timeHelper.getNiceInc([1,3,6,12],s,i)))return _timeSpan.fromSeconds(r);i=_tmInc.day}if(i<_tmInc.month){if(s<_tmInc.month&&0!=(r=_timeHelper.getNiceInc([1,2,7,14],s,i)))return _timeSpan.fromSeconds(r);i=_tmInc.month}if(i<_tmInc.year){if(s<_tmInc.year&&0!=(r=_timeHelper.getNiceInc([1,2,3,4,6],s,i)))return _timeSpan.fromSeconds(r);i=_tmInc.year}s<(r=100*_tmInc.year)&&0==(r=_timeHelper.getNiceInc([1,2,5,10,20,50],s,i))&&(r=100*_tmInc.year);return _timeSpan.fromSeconds(r)}static NiceTimeUnit(t,e){var i=_timeSpan.fromDays(t);return(i=_timeHelper.NiceTimeSpan(i,e)).TotalDays}static GetTimeDefaultFormat(t,e){if(!isNumber(t)||!isNumber(e))return"";var i="s",s=_timeSpan.fromSeconds(.001*(t-e)),r=s.TotalSeconds;if(r>=_tmInc.year)i="yyyy";else if(r>=_tmInc.month)i="MMM yyyy";else if(r>=_tmInc.day)i="MMM d";else if(r>=_tmInc.hour)i="ddd H:mm";else if(r>=.5*_tmInc.hour)i="H:mm";else if(r>=1)i="H:mm:ss";else if(r>0){var a=s.Ticks;i="s.";for(;a<_timeSpan.TicksPerSecond;){a*=10;i+="f"}}return i}}_timeHelper.secInYear=86400;export class _AxisLabel{constructor(t,e,i){this._start=e-.5;this._end=e+i-.5;this._value=e+.5*(i-1);this._label=t}get value(){return this._value}get label(){return this._label}get start(){return this._start}get end(){return this._end}set rect(t){this._rect=t}get rect(){return this._rect}}class _AxisGroup{constructor(t,e){this._labels=[];this._index=0;this._size=new Size;this._level=0;this._level=t;this._last=e}get labels(){return this._labels}set index(t){this._index=t}get index(){return this._index}set height(t){this._size.height=t}get height(){return this._size.height}set width(t){this._size.width=t}get width(){return this._size.width}get level(){return this._level}getSize(t,e,i){this._size=new Size;this.labels.forEach(s=>{const r=t.measureString(s.label,e,i);this._size.width=Math.max(this._size.width,r.width);this._size.height=Math.max(this._size.height,r.height)});return this._size}render(t,e,i,s,r){const a=e._getPosition(),n=e.axisType===AxisType.X;this.labels.forEach(h=>{let l,o=h.label,_=!1;const d=n?Math.abs(e.convert(h.end)-e.convert(h.start)):this.width,c=t.measureString(o,s,r);if(c.width>d){o=this._trimText(o,c.width,d);_=!0}switch(a){case Position.Bottom:l=FlexChartCore._renderText(t,o,new Point(e.convert(h.value),i),1,2,s,r);break;case Position.Top:l=FlexChartCore._renderText(t,o,new Point(e.convert(h.value),i),1,0,s,r);break;case Position.Left:l=FlexChartCore._renderText(t,o,new Point(i+this._size.width,e.convert(h.value)),2,1,s,r);break;case Position.Right:l=FlexChartCore._renderText(t,o,new Point(i-this._size.width,e.convert(h.value)),0,1,s,r)}h.rect=_?l:void 0});a===Position.Bottom||a===Position.Top?this.renderLinesX(t,e,i):this.renderLinesY(t,e,i)}hitTest(t){let e;for(let i=0;i<this.labels.length;i++){const s=this.labels[i];if(s.rect&&s.rect.contains(t)){e=s;break}}return e}renderLinesX(t,e,i){const s=e.groupsOptions.display===AxisGroupsDisplay.ShowGrid,r=e._getPosition();let a=4,n=r===Position.Bottom?1:-1,h=i-n*(this.height+a);a*=n;if(s){let s=e.convert(e.actualMin),r=e.convert(e.actualMax);this.drawLine(t,s,i+a,r,i+a);this.drawLine(t,s,h,r,h);let l=e.convert(this.labels[0].start),o=0===this.level?1===n?e._axrect.top:e._axrect.bottom:h;this.drawLine(t,l,i+a,l,o);this.labels.forEach(s=>{let r=new Point(e.convert(s.end),i);this._last?this.drawLine(t,r.x,r.y+a,r.x,1===n?e._axrect.top:e._axrect.bottom):this.drawLine(t,r.x,r.y+a,r.x,o)})}else this.labels.forEach(i=>{let s=e.convert(i.start)+Math.abs(a),r=e.convert(i.end)-Math.abs(a);this.drawLine(t,s,h,r,h);if(e.labels||!this._last){this.drawLine(t,s,h,s,h-2*a);this.drawLine(t,r,h,r,h-2*a)}let n=e.convert(i.value);this.drawLine(t,n,h,n,h+a)})}renderLinesY(t,e,i){const s=e.groupsOptions.display===AxisGroupsDisplay.ShowGrid,r=e._getPosition();let a=4,n=r===Position.Left?-1:1,h=i-n*(this.width+a);a*=n;if(s){let s=e.convert(e.actualMin),r=e.convert(e.actualMax);this.drawLine(t,i+a,s,i+a,r);this.drawLine(t,h,s,h,r);let l=e.convert(this.labels[0].start),o=0===this.level?1===n?e._axrect.left:e._axrect.right:h;this.drawLine(t,i+a,l,o,l);this.labels.forEach(s=>{let r=e.convert(s.end);this._last?this.drawLine(t,i+a,r,1===n?e._axrect.left:e._axrect.right,r):this.drawLine(t,i+a,r,o,r)})}else this.labels.forEach(i=>{let s=e.convert(i.start)-Math.abs(a),r=e.convert(i.end)+Math.abs(a);this.drawLine(t,h,s,h,r);this.drawLine(t,h,s,h-2*a,s);this.drawLine(t,h,r,h-2*a,r);let n=e.convert(i.value);this.drawLine(t,h,n,h+a,n)})}drawLine(t,e,i,s,r){t.drawLine(e,i,s,r,FlexChartCore._CSS_LINE)}_trimText(t,e,i){var s="",r=t.length,a=Math.floor((1-(e-i)/e)*r);t.length>0&&(s=t[0]+(a>1?t.substring(1,a-1)+"..":""));return s}}export class _AxisGroups{constructor(t){this._groups=[];this._margin=8;this._axis=t}get groups(){return this._groups}get axis(){return this._axis}createGroups(){this._groups=[];const t=this.axis._chart.collectionView;t&&t.groups&&t.groups.length>0&&t.groups.forEach(t=>this.createGroup(t,0))}createGroup(t,e){this.groups[e]||(this.groups[e]=new _AxisGroup(e,t.isBottomLevel));let i=this.groups[e],s=t.items;i.labels.push(new _AxisLabel(t.name,i.index,s.length));i.index+=s.length;t.groups.forEach(t=>this.createGroup(t,e+1))}layoutGroups(t){this.groups.forEach(e=>{e.width*=t})}getHeight(t){const e=this._axis._getPosition();let i=0;e===Position.Bottom||e===Position.Top?this.groups.forEach(e=>i+=this._margin+e.getSize(t,FlexChartCore._CSS_LABEL,this._axis._groupClass).height):this.groups.forEach(e=>i+=this._margin+e.getSize(t,FlexChartCore._CSS_LABEL,this._axis._groupClass).width);if(i>0&&this._axis.labels){let t=this.groups.length;i+=this._margin*t}this._height=i;return i}layout(){const t=this._axis,e=t._axrect;if(t.axisType===AxisType.Y){let i=(t.labels?t._annoSize.width+t._TICK_LABEL_DISTANCE+12:4)+t._getTitleSize().height,s=e.width-i;if(s<this._height){const t=this._margin*this._groups.length;this.layoutGroups((s-t)/(this._height-t));this._height=s}}}render(t){const e=this._axis._getPosition(),i=this._axis._getTitleSize();if(e===Position.Bottom){let e=this.axis._axrect.bottom-i.height-this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e-=i.height+this._margin})}else if(e===Position.Top){let e=this.axis._axrect.top+i.height+this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e+=i.height+this._margin})}else if(e===Position.Left){let e=this.axis._axrect.left+i.height+this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e+=i.width+this._margin})}else if(e===Position.Right){let e=this.axis._axrect.right-i.height-this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e-=i.width+this._margin})}}hitTest(t){let e;for(let i=0;i<this._groups.length;i++){const s=this._groups[i].hitTest(t);if(s){e=s;break}}return e}}export class _AreaPlotter extends _BasePlotter{constructor(){super();this.stacking=Stacking.None;this.isSpline=!1;this.isStep=!1;this.stackPos={};this.stackNeg={}}adjustLimits(t,e){this.dataInfo=t;let i=t.getMinX(),s=t.getMinY(),r=t.getMaxX(),a=t.getMaxY();for(let t=0;t<this.chart.series.length;t++){let e=this.chart.series[t];if(this._isRange(e)){let t=e._getChartType();if(!t||t==ChartType.Area){let t=e._getBindingValues(1);for(let e=0;e<t.length;e++)t[e]>a?a=t[e]:t[e]<s&&(s=t[e])}}}if(this.isSpline){let t=.1*(a-s);this.chart.axisY._getLogBase()||(s-=t);a+=t}return this.rotated?new Rect(s,i,a-s,r-i):new Rect(i,s,r-i,a-s)}clear(){super.clear();this.stackNeg={};this.stackPos={}}plotSeries(t,e,i,s,r,a,n,h){let l=s;if(this._isRange(l)){this.plotSeriesRanged(t,e,i,s,r,a,n,h);return}let o=[],_=this.chart.series.indexOf(s),d=s.getValues(0),c=s.getValues(1);if(!d)return;let u=d.length;if(!u)return;c||(c=this.dataInfo.getXVals());let g=!0;if(c)c.length<u&&(u=c.length);else{g=!1;c=new Array(u)}let f=new Array,p=new Array,m=new Array,x=new Array,v=this.stacking!=Stacking.None&&!l._isCustomAxisY(),b=this.stacking==Stacking.Stacked100pc&&!l._isCustomAxisY();void 0!==l._getChartType()&&(v=b=!1);let y=this.rotated,S=!1,w=l.interpolateNulls,C=null,T=null,M=this.chart._plotRect;for(let t=0;t<u;t++){let s=g?c[t]:t,r=d[t];(null===C||s>C)&&(C=s);(null===T||s<T)&&(T=s);if(_DataInfo.isValid(s,r)){let a=y?i.convert(s):e.convert(s);if(v){if(b){r/=this.dataInfo.getStackedAbsSum(s)}let t=0;if(r>=0){t=isNaN(this.stackPos[s])?0:this.stackPos[s];r=this.stackPos[s]=t+r}else{t=isNaN(this.stackNeg[s])?0:this.stackNeg[s];r=this.stackNeg[s]=t+r}if(y){t<e.actualMin&&(t=e.actualMin);m.push(e.convert(t));x.push(a)}else{m.push(a);t<i.actualMin&&(t=i.actualMin);x.push(i.convert(t))}}if(y){let i=e.convert(r);if(isNaN(a)||isNaN(i)){S=!0;if(!v&&!0!==w){f.push(void 0);p.push(void 0)}}else{f.push(i);p.push(a);if(FlexChartCore._contains(M,new Point(i,a))){let e=new _CircleArea(new Point(i,a),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(_,t,r,s);this.hitTester.add(e,_)}}}else{let e=i.convert(r);if(isNaN(a)||isNaN(e)){S=!0;if(!v&&!0!==w){f.push(void 0);p.push(void 0)}}else{f.push(a);p.push(e);if(FlexChartCore._contains(M,new Point(a,e))){let i=new _CircleArea(new Point(a,e),this._DEFAULT_SYM_SIZE);i.tag=new _DataPoint(_,t,s,r);this.hitTester.add(i,_)}}}}else{S=!0;if(!v&&!0!==w){f.push(void 0);p.push(void 0)}}}h&&f.forEach((t,e)=>{null!=t&&o.push(new Point(t,p[e]))});let P=this._DEFAULT_WIDTH,A=r._getColorLight(_),L=r._getColor(_),N=_BasePlotter.cloneStyle(s.style,["fill"]),k=_BasePlotter.cloneStyle(s.style,["stroke"]);if(!v&&!0!==w&&S){let s=[],r=[];for(let a=0;a<u;a++)if(void 0===f[a]){if(s.length>1){let a=this._modifyPoints(s,r);s=a.x;r=a.y;t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(s,r,null,N);this.hitTester.add(new _LinesArea(s,r),_);if(y){s.push(e.convert(e.actualMin),e.convert(e.actualMin));r.push(i.convert(i.actualMax),i.convert(i.actualMin))}else{s.push(s[s.length-1],s[0]);r.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(s,r,null,k,this.chart._plotrectId)}s=[];r=[]}else{s.push(f[a]);r.push(p[a])}if(s.length>1){let a=this._modifyPoints(s,r);s=a.x;r=a.y;t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(s,r,null,N);this.hitTester.add(new _LinesArea(s,r),_);if(y){s.push(e.convert(e.actualMin),e.convert(e.actualMin));r.push(i.convert(i.actualMax),i.convert(i.actualMin))}else{s.push(s[s.length-1],s[0]);r.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(s,r,null,k,this.chart._plotrectId)}}else{let s=this._modifyPoints(f,p);f=s.x;p=s.y;if(v){let t=this._modifyPoints(m,x);m=t.x;x=t.y;f=f.concat(m.reverse());p=p.concat(x.reverse())}else if(y){f.push(e.convert(e.actualMin),e.convert(e.actualMin));p.push(p[p.length-1],p[0])}else{f.push(f[f.length-1],f[0]);p.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(f,p,null,k,this.chart._plotrectId);if(v){f=f.slice(0,f.length-m.length);p=p.slice(0,p.length-x.length)}else{f=f.slice(0,f.length-2);p=p.slice(0,p.length-2)}t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(f,p,null,N,this.chart._plotrectId);this.hitTester.add(new _LinesArea(f,p),_)}this._drawSymbols(t,s,_);h&&o&&o.length&&h(o)}_isRange(t){let e=this.chart?this.chart._bindingSeparator:",",i=null==t.binding?null:t.binding.split(e);return null!=i&&2==i.length}_modifyPoints(t,e){let i={x:t,y:e};if(this.isSpline){let s=this._convertToSpline(t,e);i.x=s.xs;i.y=s.ys}else if(this.isStep){let s=this._createSteps(t,e);i.x=s.x;i.y=s.y}return i}plotSeriesRanged(t,e,i,s,r,a,n,h){let l=[],o=this.chart.series.indexOf(s),_=s,d=s.getValues(0),c=s.getValues(1),u=_._getBindingValues(1);if(!d)return;let g=d.length;if(!g)return;c||(c=this.dataInfo.getXVals());let f=!0;if(c)c.length<g&&(g=c.length);else{f=!1;c=new Array(g)}let p=new Array,m=new Array,x=new Array,v=this.rotated,b=!1,y=_.interpolateNulls,S=this.chart._plotRect;for(let t=0;t<g;t++){let s=f?c[t]:t,r=d[t],a=u[t];if(_DataInfo.isValid(s,r,a)){let n=v?i.convert(s):e.convert(s);if(v){let i=e.convert(r),h=e.convert(a);if(isNaN(n)||isNaN(i)){b=!0;if(!0!==y){p.push(void 0);m.push(void 0);x.push(void 0)}}else{p.push(i);m.push(n);x.push(h);if(FlexChartCore._contains(S,new Point(i,n))){let e=new _CircleArea(new Point(i,n),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(o,t,r,s);this.hitTester.add(e,o)}if(FlexChartCore._contains(S,new Point(h,n))){let e=new _CircleArea(new Point(h,n),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(o,t,a,s);this.hitTester.add(e,o)}}}else{let e=i.convert(r),h=i.convert(a);if(isNaN(n)||isNaN(e)){b=!0;if(!0!==y){p.push(void 0);m.push(void 0);x.push(void 0)}}else{p.push(n);m.push(e);x.push(h);if(FlexChartCore._contains(S,new Point(n,e))){let i=new _CircleArea(new Point(n,e),this._DEFAULT_SYM_SIZE);i.tag=new _DataPoint(o,t,s,r);this.hitTester.add(i,o)}if(FlexChartCore._contains(S,new Point(n,h))){let e=new _CircleArea(new Point(n,h),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(o,t,s,a);this.hitTester.add(e,o)}}}}else{b=!0;if(!0!==y){p.push(void 0);m.push(void 0);x.push(void 0)}}}h&&p.forEach((t,e)=>{null!=t&&l.push(new Point(t,m[e]))});let w=this._DEFAULT_WIDTH,C=r._getColorLight(o),T=r._getColor(o),M=_BasePlotter.cloneStyle(s.style,["fill"]),P=_BasePlotter.cloneStyle(s.style,["stroke"]);if(!0!==y&&b){let e=[],i=[],s=[];for(let r=0;r<g;r++)if(void 0===p[r]){if(e.length>1){let r=v?s.slice(0).reverse():e.slice(0).reverse(),a=v?i.slice(0).reverse():s.slice(0).reverse();this._drawRangedArea(t,e,i,r,a,C,T,w,P,M);this.hitTester.add(new _LinesArea(e,i),o);this.hitTester.add(new _LinesArea(r,a),o)}e=[];i=[];s=[]}else{e.push(p[r]);i.push(m[r]);s.push(x[r])}if(e.length>1){let r=v?s.slice(0).reverse():e.slice(0).reverse(),a=v?i.slice(0).reverse():s.slice(0).reverse();this._drawRangedArea(t,e,i,r,a,C,T,w,P,M);this.hitTester.add(new _LinesArea(e,i),o);this.hitTester.add(new _LinesArea(r,a),o)}}else{let e=v?x.slice(0).reverse():p.slice(0).reverse(),i=v?m.slice(0).reverse():x.slice(0).reverse();this._drawRangedArea(t,p,m,e,i,C,T,w,P,M);this.hitTester.add(new _LinesArea(p,m),o);this.hitTester.add(new _LinesArea(e,i),o)}this._drawSymbols(t,s,o);h&&l&&l.length&&h(l)}_drawRangedArea(t,e,i,s,r,a,n,h,l,o){if(this.isSpline){let t=this._convertToSpline(e,i),a=this._convertToSpline(s,r);e=t.xs;i=t.ys;s=a.xs;r=a.ys}e=e.concat(s);i=i.concat(r);t.fill=a;t.stroke="none";t.drawPolygon(e,i,null,l);e=e.slice(0,e.length-s.length);i=i.slice(0,i.length-r.length);t.stroke=n;t.strokeWidth=h;t.fill="none";t.drawLines(e,i,null,o);t.drawLines(s,r,null,o)}_convertToSpline(t,e){if(t&&e){var i=new _Curve(t,e).calculate();return{xs:i.xs,ys:i.ys}}return{xs:t,ys:e}}_drawSymbols(t,e,i){let s=this.getItemFormatter(e);if(null!=s){let e=this.hitTester._map[i];for(let i=0;i<e.length;i++){let r=tryCast(e[i],_CircleArea);if(r){let e=r.tag;t.startGroup();let i=new HitTestInfo(this.chart,r.center,ChartElement.SeriesSymbol);i._setDataPoint(e);s(t,i,()=>{});t.endGroup()}}t.cssPriority=!0}}}export class _BarPlotter extends _BasePlotter{constructor(){super(...arguments);this.origin=0;this.width=.7;this.isVolume=!1;this._volHelper=null;this.stackPosMap={};this.stackNegMap={};this.stacking=Stacking.None}clear(){super.clear();this.stackNegMap[this.chart.axisY._uniqueId]={};this.stackPosMap[this.chart.axisY._uniqueId]={};this._volHelper=null}load(){super.load();if(this.isVolume){var t,e,i,s,r,a,n,h,l=null,o=null;for(a=0;a<this.chart.series.length;a++){r=(t=this.chart.series[a]).getDataType(1)||t.chart._xDataType;e=t._getAxisX();if((i=null===(i=t._getChartType())||isUndefined(i)?this.chart._getChartType():i)===ChartType.Column){let e=this.chart?this.chart._bindingSeparator:",",i=t.binding.split(e).length-1;s=t._getBindingValues(i)}else s=i===ChartType.Candlestick?t._getBindingValues(4):null;if(r===DataType.Date){var _;n=[];h=[];for(a=0;a<t._getLength();a++){_=t._getItem(a)[t.bindingX].valueOf();n.push(_);h.push({value:_,text:Globalize.format(new Date(_),e.format||"d")})}}else n=this.dataInfo.getXVals();l=this.dataInfo.getMinX();o=this.dataInfo.getMaxX();if(s&&s.length>0){this._volHelper=new _VolumeHelper(s,n,l,o,r);e._customConvert=this._volHelper.convert.bind(this._volHelper);e._customConvertBack=this._volHelper.convertBack.bind(this._volHelper);h&&h.length>0&&(this._itemsSource=e.itemsSource=h);break}}}}unload(){super.unload();for(var t,e=0;e<this.chart.series.length;e++)if(t=this.chart.series[e]._getAxisX()){t._customConvert=null;t._customConvertBack=null;t.itemsSource&&t.itemsSource==this._itemsSource&&(this._itemsSource=t.itemsSource=null)}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMaxX(),r=t.getMinY(),a=t.getMaxY(),n=t.getDeltaX();n<=0&&(n=1);let h=!1;!this.isVolume||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.unload():this.load();for(let t=0;t<this.chart.series.length;t++){let e=this.chart.series[t],i=e._getChartType();i=null===i||isUndefined(i)?this.chart._getChartType():i;if(i===ChartType.Column||i===ChartType.Bar){if(this._isRange(e)){e._getBindingValues(1).forEach(t=>{t<r?r=t:t>a&&(a=t)})}}h||"BoxWhisker"==e.constructor.name||(h=!0)}if(this.rotated){!this.chart.axisY._getLogBase()&&t.getDataTypeY()!==DataType.Date&&h&&(this.origin>a?a=this.origin:this.origin<r&&(r=this.origin));return new Rect(r,i-.5*n,a-r,s-i+n)}!this.chart.axisY._getLogBase()&&t.getDataTypeY()!==DataType.Date&&h&&(this.origin>a?a=this.origin:this.origin<r&&(r=this.origin));return new Rect(i-.5*n,r,s-i+n,a-r)}_isRange(t){let e=this.chart?this.chart._bindingSeparator:",",i=(null==t.binding?"":t.binding.split(e)).length-1;return this.isVolume?2===i:1===i}plotSeries(t,e,i,s,r,a,n,h){var l=[],o=this.chart.series.indexOf(s),_=asType(s,SeriesBase),d=this.chart._options,c=this.width,u=0;a=a||0;n=n||1;if(d&&d.groupWidth){var g=d.groupWidth;if(isNumber(g)){var f=asNumber(g);if(isFinite(f)&&f>0){u=f;c=1}}else if(isString(g)){var p=asString(g);if(p&&p.indexOf("%")>=0){p=p.replace("%","");f=parseFloat(p);if(isFinite(f)){f<0?f=0:f>100&&(f=100);u=0;c=f/100}}else{f=parseFloat(p);if(isFinite(f)&&f>0){u=f;c=1}}}}var m=c/n,x=_._getAxisY()._uniqueId,v=this.stackNegMap[x],b=this.stackPosMap[x],y=s.getValues(0),S=s.getValues(1);let w=this._isRange(_),C=_._bindValues(null==_._cv?null==this.chart.collectionView?null:this.chart.collectionView.items:_._cv.items,_._getBinding(1)).values;if(!y)return;S||(S=this.dataInfo.getXVals());if(S){var T=this.dataInfo.getDeltaX();if(T>0){c*=T;m*=T}}var M=_._getSymbolFill(o),P=_._getAltSymbolFill(o)||M,A=_._getSymbolStroke(o),L=_._getAltSymbolStroke(o)||A,N=y.length;null!=S&&(N=Math.min(N,S.length));var k,E,I=this.origin,R=0,F=this.stacking!=Stacking.None,D=this.stacking==Stacking.Stacked100pc;void 0!==_._getChartType()&&(F=D=!1);let B=this.getItemFormatter(s),V=e._actualMin,z=e._actualMax,X=i._actualMin,O=i._actualMax;if(this.rotated){I<V?I=V:I>z&&(I=z);_._isCustomAxisY()&&(F=D=!1);for(Y=e.convert(I),G=0;G<N;G++){U=S?S[G]:G,W=y[G];let r=Y;this._getSymbolOrigin&&(r=i.convert(this._getSymbolOrigin(I,G)));if(w&&C&&C.length){let t=C[G];_DataInfo.isValid(t)&&(r=e.convert(t))}if(this._getSymbolStyles){M=(j=this._getSymbolStyles(G))&&j.fill?j.fill:M;P=j&&j.fill?j.fill:P;A=j&&j.stroke?j.fill:A;L=j&&j.stroke?j.fill:L}k=W>0?M:P;E=W>0?A:L;t.fill=k;t.stroke=E;if(_DataInfo.isValid(U,W))if(F){K=U+.5*c;if((q=U-.5*c)<X&&K<X||q>O&&K>O)continue;q=i.convert(Math.max(q,X));K=i.convert(Math.min(K,O));if(D){W/=this.dataInfo.getStackedAbsSum(U)}$=0;if(W>=0){$=isNaN(b[U])?0:b[U];et=e.convert($);Z=e.convert($+W);b[U]=$+W}else{$=isNaN(v[U])?0:v[U];et=e.convert($);Z=e.convert($+W);v[U]=$+W}h&&l.push(new Point(Z,i.convert(U)));if(!_DataInfo.isValid(et,Z))continue;J=new Rect(Math.min(et,Z),Math.min(q,K),Math.abs(Z-et),Math.abs(K-q));if(u>0){(st=1-u/J.height)<0&&(st=0);var H=J.top+.5*J.height;J.top+=(H-J.top)*st;J.height=Math.min(u,J.height)}tt=new _RectArea(J);this.drawSymbol(t,J,s,G,new Point(Z,J.top+.5*J.height),B);s._setPointIndex(G,R);R++;const r=D?Math.min($+W,1):$+W;tt.tag=new _DataPoint(o,G,r,U);this.hitTester.add(tt,o)}else{K=U-.5*c+(a+1)*m;if((q=U-.5*c+a*m)<X&&K<X||q>O&&K>O)continue;q=i.convert(Math.max(q,X));K=i.convert(Math.min(K,O));let _=e.convert(W);if(!_DataInfo.isValid(_,q,K))continue;let d=new Rect(Math.min(_,r),Math.min(q,K),Math.abs(r-_),Math.abs(K-q));h&&l.push(new Point(_,(q+K)/2));if(u>0){(st=1-(it=u/n)/d.height)<0&&(st=0);H=i.convert(U);d.top+=(H-d.top)*st;d.height=Math.min(it,d.height)}tt=new _RectArea(d);this.drawSymbol(t,d,s,G,new Point(_,d.top+.5*d.height),B);s._setPointIndex(G,R);R++;tt.tag=new _DataPoint(o,G,W,U);this.hitTester.add(tt,o)}else h&&l.push(null)}}else{I<X?I=X:I>O&&(I=O);var Y=i.convert(I);_._isCustomAxisY()&&(F=D=!1);for(var G=0;G<N;G++){let r=Y;var U=S?S[G]:G,W=y[G];this._getSymbolOrigin&&(r=i.convert(this._getSymbolOrigin(I,G,N)));if(w&&C&&C.length){let t=C[G];_DataInfo.isValid(t)&&(r=i.convert(t))}if(this._getSymbolStyles){var j;M=(j=this._getSymbolStyles(G,N))&&j.fill?j.fill:M;P=j&&j.fill?j.fill:P;A=j&&j.stroke?j.stroke:A;L=j&&j.stroke?j.stroke:L}k=W>0?M:P;E=W>0?A:L;t.fill=k;t.stroke=E;t.strokeWidth=null;if(_DataInfo.isValid(U,W))if(F){var q,K,Z=U+.5*c;if((et=U-.5*c)<V&&Z<V||et>z&&Z>z)continue;et=e.convert(et);Z=e.convert(Z);if(!_DataInfo.isValid(et,Z))continue;if(D){W/=this.dataInfo.getStackedAbsSum(U)}var $=0;if(W>=0){$=isNaN(b[U])?0:b[U];q=i.convert(Math.max($,X));K=i.convert(Math.max($+W,X));b[U]=$+W}else{$=isNaN(v[U])?0:v[U];q=i.convert($);K=i.convert($+W);v[U]=$+W}h&&l.push(new Point(e.convert(U),K));if(!_DataInfo.isValid(q,K))continue;var J=new Rect(Math.min(et,Z),Math.min(q,K),Math.abs(Z-et),Math.abs(K-q));if(u>0){(st=1-u/J.width)<0&&(st=0);var Q=J.left+.5*J.width;J.left+=(Q-J.left)*st;J.width=Math.min(u,J.width)}var tt=new _RectArea(J);this.drawSymbol(t,J,s,G,new Point(J.left+.5*J.width,K),B);s._setPointIndex(G,R);R++;const r=D?Math.min($+W,1):$+W;tt.tag=new _DataPoint(o,G,U,r);this.hitTester.add(tt,o)}else{var et,Z=U-.5*c+(a+1)*m;if((et=U-.5*c+a*m)<V&&Z<V||et>z&&Z>z)continue;et=e.convert(et);Z=e.convert(Z);let _=i.convert(W);if(!_DataInfo.isValid(_,et,Z))continue;let d=new Rect(Math.min(et,Z),Math.min(_,r),Math.abs(Z-et),Math.abs(r-_));h&&l.push(new Point((et+Z)/2,_));if(u>0){var it,st;(st=1-(it=u/n)/d.width)<0&&(st=0);Q=e.convert(U);d.left+=(Q-d.left)*st;d.width=Math.min(it,d.width)}var tt=new _RectArea(d);this.drawSymbol(t,d,s,G,new Point(d.left+.5*d.width,_),B);s._setPointIndex(G,R);R++;tt.tag=new _DataPoint(o,G,U,W);this.hitTester.add(tt,o)}else h&&l.push(null)}}h&&l&&l.length&&h(l)}drawSymbol(t,e,i,s,r,a){if(a){t.startGroup();var n=new HitTestInfo(this.chart,r,ChartElement.SeriesSymbol);n._setData(i,s);a(t,n,()=>{this.drawDefaultSymbol(t,e,i)});t.cssPriority=!0;t.endGroup()}else this.drawDefaultSymbol(t,e,i)}drawDefaultSymbol(t,e,i){t.drawRect(e.left,e.top,e.width,e.height,null,i.symbolStyle)}}export class _FunnelPlotter extends _BasePlotter{constructor(){super(...arguments);this.stacking=Stacking.None}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),r=t.getMaxX(),a=t.getMaxY();return new Rect(i,s,r-i,a-s)}plotSeries(t,e,i,s,r,a,n,h){var l=this.chart.series.indexOf(s);if(l>0)return;var o,_,d,c,u,g=asType(s,SeriesBase),f=this.chart._options,p=s.getValues(0),m=s.getValues(1),x=this.chart._plotRect,v=f&&f.funnel&&null!=f.funnel.neckWidth?f.funnel.neckWidth:.2,b=f&&f.funnel&&null!=f.funnel.neckHeight?f.funnel.neckHeight:0,y=v*x.width,S=0,w=0,C=0,T=0,M=x.left,P=x.top,A=x.width,L=x.height;if(!p)return;this.rotated&&(P+=x.height);y=y||1;m||(m=this.dataInfo.getXVals());var N=p.length;null!=m&&(N=Math.min(N,m.length));let k=0;for(S=0;S<N;S++)if(_DataInfo.isValid(p[S])){w+=p[S];p[S]>k&&(k=p[S])}var E,I,R=0;if(f&&f.funnel&&"rectangle"===f.funnel.type&&k>0){b=L/N;v=A;var F=A/k;for(S=0;S<N;S++){var D=m?m[S]:S,B=p[S],V=g._getSymbolFill(S),z=g._getAltSymbolFill(S)||V,X=g._getSymbolStroke(S),O=g._getAltSymbolStroke(S)||X;if(this._getSymbolStyles){V=(W=this._getSymbolStyles(S,N))&&W.fill?W.fill:V;z=W&&W.fill?W.fill:z;X=W&&W.stroke?W.stroke:X;O=W&&W.stroke?W.stroke:O}E=B>0?V:z;I=B>0?X:O;t.fill=E;t.stroke=I;if(_DataInfo.isValid(D)&&_DataInfo.isValid(B)){F||(F=A/B);var H=F*B;M+=(v-H)/2;this.rotated&&(P-=b);t.drawRect(M,P,H,b);Y=new _FunnelSegment(new Point(M,P),H,b,H,b);this.rotated||(P+=b);v=H;Y.tag=new _DataPoint(l,S,D,B);this.hitTester.add(Y,l);s._setPointIndex(S,R);R++}}}else{C=x.left+x.width*(1-v)/2;T=x.top+x.height*(this.rotated?b:1-b);_=(1-v)*x.width/2/(x.height*(1-b));if(isNaN(_)||!isFinite(_)){A=y;M=C;P=T}o=x.width*v*x.height+x.width*(1-v)/2*x.height*(1-b);for(S=0;S<N;S++){D=m?m[S]:S,B=p[S];var Y,G=[],U=[];V=g._getSymbolFill(S),z=g._getAltSymbolFill(S)||V,X=g._getSymbolStroke(S),O=g._getAltSymbolStroke(S)||X;if(this._getSymbolStyles){var W;V=(W=this._getSymbolStyles(S,N))&&W.fill?W.fill:V;z=W&&W.fill?W.fill:z;X=W&&W.stroke?W.stroke:X;O=W&&W.stroke?W.stroke:O}E=B>0?V:z;I=B>0?X:O;t.fill=E;t.stroke=I;if(_DataInfo.isValid(D)&&_DataInfo.isValid(B)){var j=o*B/w;if(A>y){c=this._getTrapezoidOffsetY(A,j,_);if(this.rotated)if(P-c>T){G=[M,M+(d=_*c),M+A-d,M+A];U=[P,P-c,P-c,P];Y=new _FunnelSegment(new Point(M,P-c),A,c,A-2*d,0,!0);A-=2*d;M+=d;P-=c}else{d=_*(c=P-T);u=(j-=this._getTrapezoidArea(A,_,c))/y;G.push(M,M+d,M+d,M+d+y,M+d+y,M+A);U.push(P,P-c,P-c-u,P-c-u,P-c,P);Y=new _FunnelSegment(new Point(M,P-c-u),A,c+u,y,u,!0);A=y;M+=d;P=P-c-u}else if(P+c<T){G=[M,M+(d=_*c),M+A-d,M+A];U=[P,P+c,P+c,P];Y=new _FunnelSegment(new Point(M,P),A,c,A-2*d,0);A-=2*d;M+=d;P+=c}else{d=_*(c=T-P);u=(j-=this._getTrapezoidArea(A,_,c))/y;G.push(M,M+d,M+d,M+d+y,M+d+y,M+A);U.push(P,P+c,P+c+u,P+c+u,P+c,P);Y=new _FunnelSegment(new Point(M,P),A,c+u,y,u);A=y;M+=d;P=P+c+u}t.drawPolygon(G,U)}else{u=j/y;this.rotated&&(P-=u);t.drawRect(M,P,A,u);Y=new _FunnelSegment(new Point(M,P),y,u,y,u);this.rotated||(P+=u)}Y.tag=new _DataPoint(l,S,D,B);this.hitTester.add(Y,l);s._setPointIndex(S,R);R++}}}}_getTrapezoidArea(t,e,i){var s=i*e;return s*i+(t-2*s)*i}_getTrapezoidOffsetY(t,e,i){var s=Math.pow(t/2/i,2)-e/i;return t/2/i-Math.sqrt(s>=0?s:0)}drawDefaultSymbol(t,e,i){t.drawRect(e.left,e.top,e.width,e.height,null,i.symbolStyle)}_getPointAndPosition(t,e,i,s){var r=i;t.x=r.center.x;t.y=r.center.y;e=null==e?LabelPosition.Center:e}}export class _FunnelSegment{constructor(t,e,i,s,r,a=!1){this._startPoint=t;this._width=e;this._height=i;this._neckWidth=s;this._neckHeight=r;this._center=new Point(this._startPoint.x+e/2,this._startPoint.y+i/2);this._offsetX=(e-s)/2;this._offsetY=i-r;this._rotated=a}contains(t){var e=this._startPoint,i=this._offsetX,s=this._offsetY;if(this._rotated){if(t.x>=e.x&&t.x<=e.x+this._width&&t.y>=e.y&&t.y<=e.y+this._height){if(t.x>=e.x+i&&t.x<=e.x+this._width-i)return!0;if(t.y<e.y+this._neckHeight)return!1;if(t.x<this._center.x)return(e.y+this._height-t.y)/(t.x-e.x)<s/i;if(t.x>this._center.x)return(e.y+this._height-t.y)/(e.x+this._width-t.x)<s/i}}else if(t.x>=e.x&&t.x<=e.x+this._width&&t.y>=e.y&&t.y<=e.y+this._height){if(t.x>=e.x+i&&t.x<=e.x+this._width-i)return!0;if(t.y>e.y+s)return!1;if(t.x<this._center.x)return(t.y-e.y)/(t.x-e.x)<s/i;if(t.x>this._center.x)return(t.y-e.y)/(e.x+this._width-t.x)<s/i}return!1}distance(t){if(this.contains(t))return 0;var e=this._startPoint,i=this._width,s=this._height,r=this._offsetX,a=this._offsetY;if(this._rotated){if(t.y>e.y+s)return t.x<e.x?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y+s-t.y,2)):t.x>e.x+i?Math.sqrt(Math.pow(t.x-e.x-i,2)+Math.pow(e.y+s-t.y,2)):t.y-e.y-s;if(t.y<e.y)return t.x<e.x+r?Math.sqrt(Math.pow(e.x+r-t.x,2)+Math.pow(t.y-e.y-s,2)):t.x>e.x+i-r?Math.sqrt(Math.pow(t.x-e.x-i+r,2)+Math.pow(t.y-e.y-s,2)):e.y-t.y;if(!(t.y<e.y+s-a))return t.x<e.x+r?Math.min(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(t.y-e.y-s,2)),Math.sqrt(Math.pow(t.x-r/2-e.x,2)+Math.pow(t.y-s+a/2-e.y,2)),Math.sqrt(Math.pow(t.x-r-e.x,2)+Math.pow(t.y-s+a-e.y,2))):Math.min(Math.sqrt(Math.pow(t.x-i-e.x,2)+Math.pow(t.y-s-e.y,2)),Math.sqrt(Math.pow(t.x-i+r/2-e.x,2)+Math.pow(t.y-s+a/2-e.y,2)),Math.sqrt(Math.pow(t.x-i+r-e.x,2)+Math.pow(t.y-s+a-e.y,2)));if(t.x<e.x+r)return e.x+r-t.x;if(t.x>e.x+i-r)return t.x-e.x-i+r}else{if(t.y<e.y)return t.x<e.x?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):t.x>e.x+i?Math.sqrt(Math.pow(t.x-e.x-i,2)+Math.pow(e.y-t.y,2)):e.y-t.y;if(t.y>e.y+s)return t.x<e.x+r?Math.sqrt(Math.pow(e.x+r-t.x,2)+Math.pow(t.y-e.y-s,2)):t.x>e.x+i-r?Math.sqrt(Math.pow(t.x-e.x-i+r,2)+Math.pow(t.y-e.y-s,2)):t.y-e.y-s;if(!(t.y>e.y+a))return t.x<e.x+r?Math.min(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(t.y-e.y,2)),Math.sqrt(Math.pow(t.x-r/2-e.x,2)+Math.pow(t.y-a/2-e.y,2)),Math.sqrt(Math.pow(t.x-r-e.x,2)+Math.pow(t.y-a-e.y,2))):Math.min(Math.sqrt(Math.pow(t.x-i-e.x,2)+Math.pow(t.y-e.y,2)),Math.sqrt(Math.pow(t.x-i+r/2-e.x,2)+Math.pow(t.y-a/2-e.y,2)),Math.sqrt(Math.pow(t.x-i+r-e.x,2)+Math.pow(t.y-a-e.y,2)));if(t.x<e.x+r)return e.x+r-t.x;if(t.x>e.x+i-r)return t.x-e.x-i+r}}get center(){return this._center}}export class _FinancePlotter extends _BasePlotter{constructor(){super(...arguments);this.isCandle=!0;this.isArms=!1;this.isEqui=!1;this.isVolume=!1;this._volHelper=null;this._symWidth=.7}clear(){super.clear();this._volHelper=null}load(){super.load();if(this.isVolume){var t,e,i,s,r,a,n,h,l=null,o=null;for(a=0;a<this.chart.series.length;a++){r=(t=this.chart.series[a]).getDataType(1)||t.chart._xDataType;e=t._getAxisX();s=(i=null===(i=t._getChartType())||isUndefined(i)?this.chart._getChartType():i)===ChartType.Column?t._getBindingValues(1):i===ChartType.Candlestick?t._getBindingValues(4):null;if(r===DataType.Date){var _;n=[];h=[];for(a=0;a<t._getLength();a++){_=t._getItem(a)[t.bindingX].valueOf();n.push(_);h.push({value:_,text:Globalize.format(new Date(_),e.format||"d")})}}else n=this.dataInfo.getXVals();l=this.dataInfo.getMinX();o=this.dataInfo.getMaxX();if(s&&s.length>0){this._volHelper=new _VolumeHelper(s,n,l,o,r);e._customConvert=this._volHelper.convert.bind(this._volHelper);e._customConvertBack=this._volHelper.convertBack.bind(this._volHelper);h&&h.length>0&&(this._itemsSource=e.itemsSource=h);break}}}}unload(){super.unload();for(var t,e=0;e<this.chart.series.length;e++)if(t=this.chart.series[e]._getAxisX()){t._customConvert=null;t._customConvertBack=null;t.itemsSource&&t.itemsSource==this._itemsSource&&(this._itemsSource=t.itemsSource=null)}}parseSymbolWidth(t){this._isPixel=void 0;if(t)if(isNumber(t)){var e=asNumber(t);if(isFinite(e)&&e>0){this._symWidth=e;this._isPixel=!0}}else if(isString(t)){var i=asString(t);if(i&&i.indexOf("%")>=0){i=i.replace("%","");var s=parseFloat(i);if(isFinite(s)){s<0?s=0:s>100&&(s=100);this._symWidth=s/100;this._isPixel=!1}}else{s=parseFloat(t);if(isFinite(s)&&s>0){this._symWidth=s;this._isPixel=!0}}}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),r=t.getMaxX(),a=t.getMaxY(),n=t.getDeltaX(),h=this.chart._xDataType;n<=0&&(n=1);var l=this.chart.series,o=l.length,_=0;this.parseSymbolWidth(this.symbolWidth);!this.isVolume||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.unload():this.load();for(var d=0;d<o;d++){var c=l[d];if(!c._isCustomAxisY()){var u=c._getBinding(1),g=c._getBinding(2),f=c._getBinding(3),p=c._getLength();if(p){var m=c._getSymbolSize();m>_&&(_=m);for(var x=0;x<p;x++){var v=c._getItem(x);if(v){[u?v[u]:null,g?v[g]:null,f?v[f]:null].forEach(t=>{if(_DataInfo.isValid(t)&&null!==t){(isNaN(s)||t<s)&&(s=t);(isNaN(a)||t>a)&&(a=t)}})}}}}}var b=r-i;return!(h===DataType.Date&&this.isVolume||h===DataType.Number)||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.chart._isRotated()?new Rect(s,i,a-s,b):new Rect(i,s,b,a-s):new Rect(i-.5*n,s,r-i+n,a-s)}plotSeries(t,e,i,s,r,a,n,h){var l=asType(s,SeriesBase),o=this.chart.series.indexOf(s),_=s.getValues(0),d=s.getValues(1),c=this._symWidth,u=this.chart._isRotated();if(!_)return;d||(d=this.dataInfo.getXVals());if(d){var g=this.dataInfo.getDeltaX();g>0&&!1===this._isPixel&&(c*=g)}var f=_.length,p=!0;if(d)f=Math.min(f,d.length);else{p=!1;d=new Array(f)}var m=this._DEFAULT_WIDTH,x=l._getSymbolFill(o),v=l._getAltSymbolFill(o)||"transparent",b=l._getSymbolStroke(o),y=l._getAltSymbolStroke(o)||b,S=void 0===this._isPixel?l._getSymbolSize():c;t.stroke=b;t.strokeWidth=m;t.fill=x;var w,C,T=l._getBinding(1),M=l._getBinding(2),P=l._getBinding(3),A=u?i.actualMin:e.actualMin,L=u?i.actualMax:e.actualMax,N=0,k=null,E=null;let I=this.getItemFormatter(s);for(var R=0;R<f;R++)if(k=l._getItem(R)){var F=p?d[R]:R;if(_DataInfo.isValid(F)&&A<=F&&F<=L){var D=_[R],B=T?k[T]:null,V=M?k[M]:null,z=P?k[P]:null;t.startGroup();if(this.isEqui&&null!==E){if(E[P]!==k[P]){w=E[P]<k[P]?v:x;C=E[P]<k[P]?y:b}}else{w=V<z?v:x;C=V<z?y:b}t.fill=w;t.stroke=C;t.strokeWidth=m;if(I){var X=new HitTestInfo(this.chart,new Point(e.convert(F),i.convert(D)),ChartElement.SeriesSymbol);X._setData(l,R);I(t,X,()=>{this._drawSymbol(t,e,i,o,R,w,S,F,D,B,V,z,f)});t.cssPriority=!0}else this._drawSymbol(t,e,i,o,R,w,S,F,D,B,V,z,f);t.endGroup();s._setPointIndex(R,N);N++}E=k}}_drawSymbol(t,e,i,s,r,a,n,h,l,o,_,d,c){var u,g=null,f=null,p=null,m=null,x=this.chart._isRotated(),v=e.convert(h),b=e._axrect,y=n/2,S=0===r&&v-b.left<=y,w=r===c-1&&b.right-v<=y,C=x?new _DataPoint(s,r,l,h):new _DataPoint(s,r,h,l);if(x){var T=i;i=e;e=T}if(!1===this._isPixel){if(S){p=h;m=h+n}else if(w){p=h-n;m=h}else{p=h-.5*n;m=h+.5*n}if((p=e.convert(p))>(m=e.convert(m))){var M=p;p=m;m=M}}h=v;if(!1!==this._isPixel)if(S){p=h;m=h+n}else if(w){p=h-n;m=h}else{p=h-.5*n;m=h+.5*n}if(this.isCandle){if(_DataInfo.isValid(_)&&_DataInfo.isValid(d)){_=i.convert(_);d=i.convert(d);f=(g=Math.min(_,d))+Math.abs(_-d);if(x){t.drawRect(g,p,f-g||1,m-p||1);u=new _RectArea(new Rect(g,p,f-g||1,m-p||1))}else{t.drawRect(p,g,m-p||1,f-g||1);u=new _RectArea(new Rect(p,g,m-p||1,f-g||1))}u.tag=C;this.hitTester.add(u,s)}if(_DataInfo.isValid(l)){l=i.convert(l);if(null!==g)if(x){t.drawLine(f,h,l,h);u.rect.width=u.rect.width+l}else{t.drawLine(h,g,h,l);u.rect.top=l;u.rect.height=u.rect.height+l}}if(_DataInfo.isValid(o)){o=i.convert(o);if(null!==f)if(x){t.drawLine(g,h,o,h);u.rect.left=o;u.rect.width=u.rect.width+o}else{t.drawLine(h,f,h,o);u.rect.height=u.rect.height+o}}}else if(this.isEqui){if(_DataInfo.isValid(l)&&_DataInfo.isValid(o)){l=i.convert(l);o=i.convert(o);f=(g=Math.min(l,o))+Math.abs(l-o);t.drawRect(p,g,m-p||1,f-g||1);(u=new _RectArea(new Rect(p,g,m-p||1,f-g||1))).tag=C;this.hitTester.add(u,s)}}else if(this.isArms){if(_DataInfo.isValid(_)&&_DataInfo.isValid(d)){_=i.convert(_);d=i.convert(d);f=(g=Math.min(_,d))+Math.abs(_-d);t.drawRect(p,g,m-p||1,f-g||1)}if(_DataInfo.isValid(l)&&null!==g){l=i.convert(l);t.drawLine(h,g,h,l)}if(_DataInfo.isValid(o)&&null!==f){o=i.convert(o);t.drawLine(h,f,h,o)}if(_DataInfo.isValid(l)&&_DataInfo.isValid(o)){t.fill="transparent";f=(g=Math.min(l,o))+Math.abs(l-o);t.drawRect(p,g,m-p||1,f-g||1);(u=new _RectArea(new Rect(p,g,m-p||1,f-g||1))).tag=C;this.hitTester.add(u,s)}}else{if(_DataInfo.isValid(l)&&_DataInfo.isValid(o)){l=i.convert(l);o=i.convert(o);f=(g=Math.min(l,o))+Math.abs(l-o);if(x){t.drawLine(o,h,l,h);u=new _RectArea(new Rect(g,p,f-g||1,m-p||1))}else{t.drawLine(h,o,h,l);u=new _RectArea(new Rect(p,g,m-p||1,f-g||1))}u.tag=C;this.hitTester.add(u,s)}if(_DataInfo.isValid(_)){_=i.convert(_);x?t.drawLine(_,p,_,h):t.drawLine(p,_,h,_)}if(_DataInfo.isValid(d)){d=i.convert(d);x?t.drawLine(d,h,d,m):t.drawLine(h,d,m,d)}}}}export class _LinePlotter extends _BasePlotter{constructor(){super();this.hasSymbols=!1;this.hasLines=!0;this.isSpline=!1;this.isStep=!1;this.hitTestSymbols=!0;this.stacking=Stacking.None;this.stackPos={};this.stackNeg={};this.clipping=!1}clear(){super.clear();this.stackNeg={};this.stackPos={}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),r=t.getMaxX(),a=t.getMaxY();if(this.isSpline&&!this.chart.axisY._getLogBase()){var n=.1*(a-s);s-=n;a+=n}return this.rotated?new Rect(s,i,a-s,r-i):new Rect(i,s,r-i,a-s)}plotSeries(t,e,i,s,r,a,n,h){var l=[],o=asType(s,SeriesBase),_=this.chart.series.indexOf(s),d=s.getValues(0),c=s.getValues(1);if(!d)return;c||(c=this.dataInfo.getXVals());var u=_BasePlotter.cloneStyle(s.style,["fill"]),g=d.length,f=!0;if(c)g=Math.min(g,c.length);else{f=!1;c=new Array(g)}var p=this._DEFAULT_WIDTH,m=o._getSymbolFill(_),x=o._getAltSymbolFill(_)||m,v=o._getSymbolStroke(_),b=o._getAltSymbolStroke(_)||v,y=o._getSymbolSize();t.stroke=v;t.strokeWidth=p;t.fill=m;let S=new Float64Array(g),w=new Float64Array(g),C=0,T=new Int8Array(g),M=0;var P=this.rotated,A=this.stacking!=Stacking.None&&!o._isCustomAxisY(),L=this.stacking==Stacking.Stacked100pc&&!o._isCustomAxisY();void 0!==o._getChartType()&&(A=L=!1);var N=o.interpolateNulls,k=!1;let E=this.getItemFormatter(s);for(var I=0;I<g;I++){var R=f?c[I]:I,F=d[I];if(isFinite(R)&&isFinite(F)){if(A){if(L){F/=this.dataInfo.getStackedAbsSum(R)}if(F>=0){var D=isNaN(this.stackPos[R])?0:this.stackPos[R];F=this.stackPos[R]=D+F}else{D=isNaN(this.stackNeg[R])?0:this.stackNeg[R];F=this.stackNeg[R]=D+F}}var B;if(P){B=new _DataPoint(_,I,F,R);var V=e.convert(F);F=i.convert(R);R=V}else{B=new _DataPoint(_,I,R,F);R=e.convert(R);F=i.convert(F)}if(isNaN(R)||isNaN(F)){k=!0;if(!0!==N){S[C]=NaN;w[C++]=NaN}T[M++]=1;h&&l.push(null)}else{S[C]=R;w[C++]=F;M++;h&&l.push(new Point(R,F));if(this.hitTestSymbols){var z=new _CircleArea(new Point(R,F),.5*y);z.tag=B;this.hitTester.add(z,_)}}}else{k=!0;if(!0!==N){S[C]=NaN;w[C++]=NaN}T[M++]=1;h&&l.push(null)}}var X=0;if(this.hasLines){t.fill=null;if(k&&!0!==N){var O=[],H=[];for(I=0;I<g;I++)if(isNaN(S[I])){if(O.length>1){this._drawLines(t,O,H,null,u,this.chart._plotrectId);this.hitTester.add(new _LinesArea(O,H),_);X++}O=[];H=[]}else{O.push(S[I]);H.push(w[I])}if(O.length>1){this._drawLines(t,O,H,null,u,this.chart._plotrectId);this.hitTester.add(new _LinesArea(O,H),_);X++}}else{this._drawLines(t,S,w,null,u,this.chart._plotrectId,C);this.hitTester.add(new _LinesArea(S,w),_);X++}}if(this.hasSymbols&&y>0||E){t.fill=m;var Y=0;for(I=0;I<g;I++)if(!N||!T[I]){R=S[Y],F=w[Y];if(!1===this.hasLines||E){t.fill=d[I]>0?m:x;t.stroke=d[I]>0?v:b;t.strokeWidth=p}if(this.isValid(R,F,e,i)){this._drawSymbol(t,R,F,y,o,I,E);s._setPointIndex(I,X);X++}Y++}}h&&l&&l.length&&h(l)}_drawLines(t,e,i,s,r,a,n){if(this.isSpline&&n>3)t.drawSplines(e,i,s,r,a,n);else if(this.isStep){let h=this._createSteps(e,i,n);e=h.x;i=h.y;t.drawLines(e,i,s,r,a)}else t.drawLines(e,i,s,r,a,n)}_drawSymbol(t,e,i,s,r,a,n){if(n){t.startGroup();var h=new HitTestInfo(this.chart,new Point(e,i),ChartElement.SeriesSymbol);h._setData(r,a);n(t,h,()=>{this.hasSymbols&&s>0&&this._drawDefaultSymbol(t,e,i,s,r.symbolMarker,r.symbolStyle)});t.cssPriority=!0;t.endGroup()}else this._drawDefaultSymbol(t,e,i,s,r.symbolMarker,r.symbolStyle)}_drawDefaultSymbol(t,e,i,s,r,a){r==Marker.Dot?t.drawEllipse(e,i,.5*s,.5*s,null,a):r==Marker.Box&&t.drawRect(e-.5*s,i-.5*s,s,s,null,a)}}export class _BubblePlotter extends _LinePlotter{constructor(){super();this._MIN_SIZE=5;this._MAX_SIZE=30;this.hasLines=!1;this.hasSymbols=!0;this.clipping=!0;this.hitTestSymbols=!1}adjustLimits(t,e){var i=this.getNumOption("minSize","bubble");this._minSize=i||this._MIN_SIZE;var s=this.getNumOption("maxSize","bubble");this._maxSize=s||this._MAX_SIZE;for(var r=this.chart.series,a=r.length,n=NaN,h=NaN,l=0;l<a;l++){if((p=r[l])._getChartType()==ChartType.Bubble||null==p._getChartType()&&p._chart._getChartType()==ChartType.Bubble){let t=p._getBindingValues(1);if(t)for(var o=t.length,_=0;_<o;_++)if(isFinite(t[_])){(isNaN(n)||t[_]<n)&&(n=t[_]);(isNaN(h)||t[_]>h)&&(h=t[_])}}}this._minValue=n;this._maxValue=h;let d=super.adjustLimits(t,e),c=e.left,u=e.right,g=e.top,f=e.bottom;for(l=0;l<a;l++){var p;if((p=r[l])._getChartType()==ChartType.Bubble||null==p._getChartType()&&p._chart._getChartType()==ChartType.Bubble){let t=p._getBindingValues(1),i=p.getValues(1),s=p.getValues(0);if(t&&i&&s){let r=t.length;for(_=0;_<r;_++){let r=i?i[_]:_,a=s[_],l=t[_];if(_DataInfo.isValid(r,a,l)){r=e.left+e.width*(r-d.left)/d.width;a=e.top+e.height*(a-d.top)/d.height;l=this._minSize+(this._maxSize-this._minSize)*(l-n)/(h-n);r-l<c&&(c=r-l);r+l>u&&(u=r+l);a-l<g&&(g=a-l);a+l>f&&(f=a+l)}}}}}c=e.left-c+5;u=u-e.right+5;g=e.top-g+5;f=f-e.bottom+5;var m=this.chart.axisX,x=this.chart.axisY;if(!m._isLogAxis())if(this.stacking==Stacking.Stacked100pc&&this.rotated){let t=(e.width-this._maxSize)/d.width;d.left-=.5*this._maxSize/t;d.width+=this._maxSize/t}else{let t=(e.width-(c+u))/d.width;d.left-=c/t;d.width+=(c+u)/t}if(!x._isLogAxis())if(this.stacking!=Stacking.Stacked100pc||this.rotated){let t=(e.height-(g+f))/d.height;d.top-=g/t;d.height+=(g+f)/t}else{let t=(e.height-this._maxSize)/d.height;d.top-=.5*this._maxSize/t;d.height+=this._maxSize/t}return d}_drawSymbol(t,e,i,s,r,a,n){if(null==this._minSize){var h=this.getNumOption("minSize","bubble");this._minSize=h||this._MIN_SIZE}if(null==this._maxSize){var l=this.getNumOption("maxSize","bubble");this._maxSize=l||this._MAX_SIZE}var o=r._getItem(a);if(o){var _=r._getBinding(1);if(_){s=o[_];if(isFinite(s)){null==s&&(s=this._minValue);var d=this._minValue==this._maxValue?1:Math.sqrt((s-this._minValue)/(this._maxValue-this._minValue));s=this._minSize+(this._maxSize-this._minSize)*d;if(n){var c=new HitTestInfo(this.chart,new Point(e,i),ChartElement.SeriesSymbol);c._setData(r,a);t.startGroup();n(t,c,()=>{this._drawDefaultSymbol(t,e,i,s,r.symbolMarker,r.symbolStyle)});t.endGroup()}else this._drawDefaultSymbol(t,e,i,s,r.symbolMarker,r.symbolStyle);let h=r.getValues(1);h||(h=this.dataInfo.getXVals());const l=h?h[a]:a,o=r.getValues(0)[a],_=this.chart.series.indexOf(r);let u=new _CircleArea(new Point(e,i),.5*s);u.tag=new _DataPoint(_,a,l,o);this.hitTester.add(u,_)}}}}}_registerModule("wijmo.chart",selfModule);
14
+ import{Point,Size,Rect,asEnum,asString,isNumber,asNumber,isString,assert,asBoolean,setCss,tryCast,DataType,isDate,isArray,Event,asType,copy,asFunction,Binding,EventArgs,asCollectionView,asInt,ObservableArray,Globalize,asDate,removeChild,isIE,hasClass,addClass,UtilitesClsNames,asArray,clamp,isUndefined,getElementRect,toggleClass,removeClass,isFunction,ControlClsNames,format,Control,Tooltip,CancelEventArgs,Color,mouseToPage,ControlStateClsNames,animate,_registerModule}from"@grapecity/wijmo";import*as selfModule from"@grapecity/wijmo.chart";export class _VolumeHelper{constructor(t,e,i,s,n){this._volumes=asArray(t);this._xVals=asArray(e);this._xDataMin=asNumber(i,!0,!1);this._xDataMax=asNumber(s,!0,!1);this._xDataType=asEnum(n,DataType,!0);this._calcData=[];this._init()}convert(t,e,i){var s,n=this._calcData.length,r=-1;if(this._hasXs&&this._xDataType===DataType.Date){if(-1===(r=this._xVals.indexOf(t)))for(let e=0;e<this._xVals.length;e++){if(e<this._xVals.length-1&&this._xVals[e]<=t&&t<=this._xVals[e+1]){r=e;break}if(0===e&&t<=this._xVals[e]){r=e;break}if(e===this._xVals.length-1&&this._xVals[e]<=t){r=e;break}}if(-1===r){r=this._xVals.indexOf(Math.floor(t));r=clamp(r,0,n-1)}}else if(this._hasXs){if(-1===(r=this._xVals.indexOf(t))){r=this._xVals.indexOf(Math.floor(t));r=clamp(r,0,n-1)}}else r=clamp(Math.round(t),0,n-1);if(0<=r&&r<n){this._hasXs&&(t=_VolumeHelper.convertToRange(t,0,n-1,this._xDataMin,this._xDataMax));s=((s=this._calcData[r].value+(t-r)*this._calcData[r].width-.5*this._calcData[r].width)-(e=this._getXVolume(e)))/((i=this._getXVolume(i))-e)}return s}convertBack(t,e,i){var s,n,r=this._calcData.length,a=-1;for(n=0;n<r;n++)if(this._calcData[n].x1<=t&&t<=this._calcData[n].x2||0===n&&t<=this._calcData[n].x2||n===r-1&&this._calcData[n].x1<=t){a=n;break}if(0<=a&&a<r){s=t/this._calcData[a].width-this._calcData[a].value/this._calcData[a].width+.5+n;this._hasXs&&(s=_VolumeHelper.convertToRange(s,this._xDataMin,this._xDataMax,0,r-1))}return s}_init(){this._hasXs=null!==this._xVals&&this._xVals.length>0;this._hasXs&&!isNumber(this._xDataMin)&&(this._xDataMin=Math.min.apply(null,this._xVals));this._hasXs&&!isNumber(this._xDataMax)&&(this._xDataMax=Math.max.apply(null,this._xVals));this._hasXs&&(this._hasXs=isNumber(this._xDataMin)&&isNumber(this._xDataMax));this._hasXs&&this._xDataType===DataType.Date&&this._fillGaps();var t=0,e=0,i=null!==this._volumes&&this._volumes.length>0?this._volumes.length:0;for(e=0;e<i;e++)t+=this._volumes[e]||0;var s,n,r=0;for(e=0;e<i;e++){s=r+(n=(this._volumes[e]||0)/t);this._calcData.push({value:s,width:n,x1:r,x2:s});r=this._calcData[e].value}}_getXVolume(t){var e=this._calcData.length,i=-1;if(this._hasXs){i=this._xVals.indexOf(t);for(let e=0;e<this._xVals.length;e++){if(e<this._xVals.length-1&&this._xVals[e]<=t&&t<=this._xVals[e+1]){i=e;break}if(0===e&&t<=this._xVals[e]){i=e;break}if(e===this._xVals.length-1&&this._xVals[e]<=t){i=e;break}}}this._hasXs&&(t=_VolumeHelper.convertToRange(t,0,e-1,this._xDataMin,this._xDataMax));-1===i&&(i=clamp(Math.round(t),0,e-1));return this._calcData[i].value+(t-i)*this._calcData[i].width-.5*this._calcData[i].width}static convertToRange(t,e,i,s,n){return e===i||s===n?0:(t-s)*(i-e)/(n-s)+e}_fillGaps(){if(!(this._xDataType!==DataType.Date||null===this._xVals||this._xVals.length<=0)){var t,e=this._xDataMin,i=this._xDataMax;for(t=1;e<i;t++){(e=new Date(e)).setDate(e.getDate()+1);if((e=e.valueOf())!==this._xVals[t]){this._xVals.splice(t,0,e);this._volumes.splice(t,0,0)}}}}}export class _Curve{constructor(t,e,i,s){this.monoX=!1;const n=i||Math.min(t.length,e.length);let r=0,a=0,h=0,o=0;if(n>3)for(let i=0;i<n-1;i++)if(i>0){a=Math.min(a,t[i]-t[i-1]);r=Math.max(r,t[i]-t[i-1]);o=Math.min(o,e[i]-e[i-1]);h=Math.max(h,e[i]-e[i-1])}this.monoX=r>0&&0===a||a<0&&0===r;this.monoX&&"spline"!==s?this.calc=a<0?new _SplineMono(t.reverse(),e.reverse(),i):new _SplineMono(t,e,i):this.calc=new _Spline(t,e,i)}calculate(){return this.calc.calculate()}}export class _Spline{constructor(t,e,i){this.k=.002;this._a=[];this._b=[];this._c=[];this._d=[];this.m=[[-.5,1.5,-1.5,.5],[1,-2.5,2,-.5],[-.5,0,.5,0],[0,1,0,0]];this._x=t;this._y=e;this._len=i||Math.min(t.length,e.length);const s=this._len;if(s>3)for(let i=0;i<s-1;i++){const n=0==i?new Point(t[i],e[i]):new Point(t[i-1],e[i-1]),r=new Point(t[i],e[i]),a=new Point(t[i+1],e[i+1]),h=i==s-2?new Point(t[i+1],e[i+1]):new Point(t[i+2],e[i+2]),o=new Point,l=new Point,_=new Point,c=new Point;o.x=n.x*this.m[0][0]+r.x*this.m[0][1]+a.x*this.m[0][2]+h.x*this.m[0][3];l.x=n.x*this.m[1][0]+r.x*this.m[1][1]+a.x*this.m[1][2]+h.x*this.m[1][3];_.x=n.x*this.m[2][0]+r.x*this.m[2][1]+a.x*this.m[2][2]+h.x*this.m[2][3];c.x=n.x*this.m[3][0]+r.x*this.m[3][1]+a.x*this.m[3][2]+h.x*this.m[3][3];o.y=n.y*this.m[0][0]+r.y*this.m[0][1]+a.y*this.m[0][2]+h.y*this.m[0][3];l.y=n.y*this.m[1][0]+r.y*this.m[1][1]+a.y*this.m[1][2]+h.y*this.m[1][3];_.y=n.y*this.m[2][0]+r.y*this.m[2][1]+a.y*this.m[2][2]+h.y*this.m[2][3];c.y=n.y*this.m[3][0]+r.y*this.m[3][1]+a.y*this.m[3][2]+h.y*this.m[3][3];this._a.push(o);this._b.push(l);this._c.push(_);this._d.push(c)}}calculatePoint(t){var e=Math.floor(t);e<0&&(e=0);e>this._len-2&&(e=this._len-2);var i=t-e;return{x:((this._a[e].x*i+this._b[e].x)*i+this._c[e].x)*i+this._d[e].x,y:((this._a[e].y*i+this._b[e].y)*i+this._c[e].y)*i+this._d[e].y}}calculate(){if(this._len<=3)return{xs:this._x,ys:this._y};const t=[],e=[];let i=this.calculatePoint(0);t.push(i.x);e.push(i.y);const s=Math.min(this._len*this.k,.2);for(let n=s;n<=this._len-1;n+=s){const r=Math.ceil(n),a=this.calculatePoint(n);if(Math.abs(i.x-a.x)>=3||Math.abs(i.y-a.y)>=3){t.push(a.x);e.push(a.y);i=a}if(n+s>=r){t.push(this._x[r]);e.push(this._y[r])}}return{xs:t,ys:e}}}class _SplineMono{constructor(t,e,i){this._x=[];this._y=[];this._c1s=[];this._c2s=[];this._c3s=[];this._len=i||Math.min(t.length,e.length);const s=this._len;for(let i=0;i<s;i++){this._x.push(t[i]);this._y.push(e[i])}t=this._x;e=this._y;if(this._len<=3)return;const n=[],r=[],a=[];for(let i=0;i<s-1;i++){const s=t[i+1]-t[i],h=e[i+1]-e[i];r[i]=s;n[i]=h;a[i]=h/s}var h=this._c1s;h.push(a[0]);for(let t=0;t<r.length-1;t++){const e=a[t],i=a[t+1];if(e*i<=0)h.push(0);else{const s=r[t],n=r[t+1],a=s+n;h.push(3*a/((a+n)/e+(a+s)/i))}}h.push(a[a.length-1]);const o=this._c2s,l=this._c3s;for(let t=0;t<h.length-1;t++){const e=h[t],i=a[t],s=1/r[t],n=e+h[t+1]-i-i;o[t]=(i-e-n)*s;l[t]=n*s*s}}interpolate(t){let e=this._x.length-1;if(t>=this._x[e])return this._y[e];for(var i,s=0,n=this._c3s.length-1;s<=n;){i=Math.floor(.5*(s+n));const e=this._x[i];if(e<t)s=i+1;else{if(!(e>t))return this._y[i];n=i-1}}e=Math.max(0,n);var r=t-this._x[e];return this._y[e]+r*(this._c1s[e]+r*(this._c2s[e]+r*this._c3s[e]))}calculate(){if(this._len<=3)return{xs:this._x,ys:this._y};const t=[],e=[],i=this._len,s=this._x[0],n=this._x[i-1],r=Math.min(.001*this._len,.2);for(let i=s;i<=n;i+=r){t.push(i);e.push(this.interpolate(i))}return{xs:t,ys:e}}}export const AxisClsNames={axisX:"wj-axis-x",axisXLabels:"wj-axis-x-labels",axisY:"wj-axis-y",axisYLabels:"wj-axis-y-labels",gridline:"wj-gridline",gridlineMinor:"wj-gridline-minor",line:"wj-line",tick:"wj-tick",tickMinor:"wj-tick-minor"};export const DataLabelClsNames={border:"wj-data-label-border",label:"wj-data-label",labels:"wj-data-labels",line:"wj-data-label-line"};export const FlexChartClsNames={footer:"wj-footer",header:"wj-header",hostElement:"wj-flexchart",label:"wj-label",legend:"wj-legend",plotArea:"wj-plot-area",title:"wj-title",touchDisabled:"wj-flexchart-touch-disabled"};export const FlexPieClsNames={hostElement:"wj-flexpie",slice:"wj-slice",sliceGroup:"wj-slice-group"};export const LegendClsNames={legend:"wj-legend",title:"wj-title"};export const LineMarkerClsNames={container:"wj-chart-linemarker-container",content:"wj-chart-linemarker-content",draggable:"wj-chart-linemarker-draggable",hline:"wj-chart-linemarker-hline",linemarker:"wj-chart-linemarker",vline:"wj-chart-linemarker-vline"};export const SeriesClsNames={group:"wj-series-group"};export class Palettes{static _isExtended(t){return-1!==Palettes._values(Palettes.Diverging).indexOf(t)||-1!==Palettes._values(Palettes.Qualitative).indexOf(t)||-1!==Palettes._values(Palettes.SequentialSingle).indexOf(t)||-1!==Palettes._values(Palettes.SequentialMulti).indexOf(t)}static _values(t){return Object.keys(t).map(e=>t[e])}}Palettes.standard=["#88bde6","#fbb258","#90cd97","#f6aac9","#bfa554","#bc99c7","#eddd46","#f07e6e","#8c8c8c"];Palettes.cocoa=["#466bb0","#c8b422","#14886e","#b54836","#6e5944","#8b3872","#73b22b","#b87320","#141414"];Palettes.coral=["#84d0e0","#f48256","#95c78c","#efa5d6","#ba8452","#ab95c2","#ede9d0","#e96b7d","#888888"];Palettes.dark=["#005fad","#f06400","#009330","#e400b1","#b65800","#6a279c","#d5a211","#dc0127","#000000"];Palettes.highcontrast=["#ff82b0","#0dda2c","#0021ab","#bcf28c","#19c23b","#890d3a","#607efd","#1b7700","#000000"];Palettes.light=["#ddca9a","#778deb","#cb9fbb","#b5eae2","#7270be","#a6c7a7","#9e95c7","#95b0c7","#9b9b9b"];Palettes.midnight=["#83aaca","#e37849","#14a46a","#e097da","#a26d54","#a584b7","#d89c54","#e86996","#2c343b"];Palettes.modern=["#2d9fc7","#ec993c","#89c235","#e377a4","#a68931","#a672a6","#d0c041","#e35855","#68706a"];Palettes.organic=["#9c88d9","#a3d767","#8ec3c0","#e9c3a9","#91ab36","#d4ccc0","#61bbd8","#e2d76f","#80715a"];Palettes.slate=["#7493cd","#f99820","#71b486","#e4a491","#cb883b","#ae83a4","#bacc5c","#e5746a","#505d65"];Palettes.zen=["#7bb5ae","#e2d287","#92b8da","#eac4cb","#7b8bbd","#c7d189","#b9a0c8","#dfb397","#a9a9a9"];Palettes.cyborg=["#2a9fd6","#77b300","#9933cc","#ff8800","#cc0000","#00cca3","#3d6dcc","#525252","#000000"];Palettes.superhero=["#5cb85c","#f0ad4e","#5bc0de","#d9534f","#9f5bde","#46db8c","#b6b86e","#4e5d6c","#2b3e4b"];Palettes.flatly=["#18bc9c","#3498db","#f39c12","#6cc1be","#99a549","#8f54b5","#e74c3c","#8a9899","#2c3e50"];Palettes.darkly=["#375a7f","#00bc8c","#3498db","#f39c12","#e74c3c","#8f61b3","#b08725","#4a4949","#000000"];Palettes.cerulan=["#033e76","#87c048","#59822c","#53b3eb","#fc6506","#d42323","#e3bb00","#cccccc","#222222"];Palettes.Qualitative={Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"]};Palettes.Diverging={BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]};Palettes.SequentialSingle={Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]};Palettes.SequentialMulti={BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]};export const empty={};export class PlotArea{constructor(t){this._row=0;this._col=0;this._rect=new Rect(0,0,0,0);copy(this,t)}get row(){return this._row}set row(t){if(t!=this._row){this._row=asInt(t,!0,!0);this._invalidate()}}get column(){return this._col}set column(t){if(t!=this._col){this._col=asInt(t,!0,!0);this._invalidate()}}get name(){return this._name}set name(t){t!=this._name&&(this._name=asString(t,!0))}get width(){return this._width}set width(t){if(t!=this._width){this._width=t;this._invalidate()}}get height(){return this._height}set height(t){if(t!=this._height){this._height=t;this._invalidate()}}get style(){return this._style}set style(t){if(t!=this._style){this._style=t;this._invalidate()}}_invalidate(){this._chart&&this._chart.invalidate()}_render(t){t.drawRect(this._rect.left,this._rect.top,this._rect.width,this._rect.height,null,this.style)}_setPlotX(t,e){this._rect.left=t;this._rect.width=e}_setPlotY(t,e){this._rect.top=t;this._rect.height=e}}export class PlotAreaCollection extends ObservableArray{getPlotArea(t){var e=this.indexOf(t);return e>-1?this[e]:null}indexOf(t){for(let e=0;e<this.length;e++)if(this[e].name==t)return e;return-1}_getWidth(t){for(let e=0;e<this.length;e++){const i=this[e];if(i.column==t&&0==i.row)return i.width}}_getHeight(t){for(let e=0;e<this.length;e++){const i=this[e];if(i.row==t&&0==i.column)return i.height}}_calculateWidths(t,e){if(e<=0)throw"ncols";var i=[];for(let t=0;t<e;t++){const e=this._getWidth(t);i[t]=new _GridLength(e)}return this._calculateLengths(t,e,i)}_calculateHeights(t,e){if(e<=0)throw"nrows";var i=[];for(let t=0;t<e;t++){const e=this._getHeight(t);i[t]=new _GridLength(e)}return this._calculateLengths(t,e,i)}_calculateLengths(t,e,i){var s=[e],n=0,r=0;for(let t=0;t<e;t++)if(i[t].isAbsolute){s[t]=i[t].value;n+=s[t]}else i[t].isStar?r+=i[t].value:i[t].isAuto&&r++;var a=(t-n)/r;for(let t=0;t<e;t++){i[t].isStar?s[t]=a*i[t].value:i[t].isAuto&&(s[t]=a);s[t]<0&&(s[t]=0)}return s}}var _GridUnitType,_tmInc;!function(t){t[t.Auto=0]="Auto";t[t.Pixel=1]="Pixel";t[t.Star=2]="Star"}(_GridUnitType||(_GridUnitType={}));class _GridLength{constructor(t=null){this._unitType=_GridUnitType.Auto;if(t)if((t=t.toString()).indexOf("*")>=0){this._unitType=_GridUnitType.Star;t=t.replace("*","");this._value=parseFloat(t);isNaN(this._value)&&(this._value=1)}else{this._unitType=_GridUnitType.Pixel;this._value=parseFloat(t);if(isNaN(this._value)){this._unitType=_GridUnitType.Auto;this._value=1}}}get value(){return this._value}get isStar(){return this._unitType==_GridUnitType.Star}get isAbsolute(){return this._unitType==_GridUnitType.Pixel}get isAuto(){return this._unitType==_GridUnitType.Auto}}export class _SvgRenderEngine{constructor(t){this._STROKE_JOIN="round";this._strokeWidth=1;this._fontSize=null;this._fontFamily=null;this._savedGradient={};this._bbCache={};this._baseUrl="";this._cssPriority=!0;this._readOnly=!1;this._isRtl=!1;this._precision=1;this._options=null;this._htmlText=!1;this._element=t;this._create();this._element&&this._element.appendChild(this._svg);const e=navigator.userAgent.toLowerCase();void 0===_SvgRenderEngine._isff&&(_SvgRenderEngine._isff=e.indexOf("firefox")>=0);void 0===_SvgRenderEngine._isSafari&&(_SvgRenderEngine._isSafari=e.indexOf("safari")>-1&&-1==e.indexOf("chrome"))}attach(t){this._element=t;if(t){t.insertBefore(this._svg,t.childNodes[0]);t.appendChild(this._svg)}}detach(){this._element&&this._element.removeChild(this._svg);for(;this._svg.firstChild;)removeChild(this._svg.firstChild)}beginRender(){for(;this._svg.firstChild;)removeChild(this._svg.firstChild);this._savedGradient={};this._bbCache={};this._svg.appendChild(this._defs);this._svg.appendChild(this._textGroup);this._isRtl=this._checkRtl()}endRender(){removeChild(this._textGroup)}setViewportSize(t,e){this._svg.setAttribute("width",t.toString());this._svg.setAttribute("height",e.toString())}get element(){return this._svg}get fill(){return this._fill}set fill(t){this._fill=t}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily=t}get stroke(){return this._stroke}set stroke(t){this._stroke=t}get strokeWidth(){return this._strokeWidth}set strokeWidth(t){this._strokeWidth=void 0===t?null:t}get textFill(){return this._textFill}set textFill(t){this._textFill=t}get cssPriority(){return this._cssPriority}set cssPriority(t){this._cssPriority=t}get readOnly(){return this._readOnly}set readOnly(t){this._readOnly=t}get precision(){return this._precision}set precision(t){this._precision=asNumber(t)}get group(){return this._group}get options(){return this._options}set options(t){this._options=t}addClipRect(t,e){if(t&&e){const i=this.precision,s=document.createElementNS(_SvgRenderEngine.svgNS,"clipPath"),n=document.createElementNS(_SvgRenderEngine.svgNS,"rect");n.setAttribute("x",(t.left-1).toFixed(i));n.setAttribute("y",(t.top-1).toFixed(i));n.setAttribute("width",(t.width+2).toFixed(i));n.setAttribute("height",(t.height+2).toFixed(i));s.appendChild(n);s.setAttribute("id",e);this._svg.appendChild(s)}}drawEllipse(t,e,i,s,n,r){const a=document.createElementNS(_SvgRenderEngine.svgNS,"ellipse"),h=this.precision;this._applyColor(a,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(a,"stroke-width",this._strokeWidth.toString());this._applyColor(a,"fill",this._fill);a.setAttribute("cx",t.toFixed(h));a.setAttribute("cy",e.toFixed(h));a.setAttribute("rx",i.toFixed(h));a.setAttribute("ry",s.toFixed(h));n&&a.setAttribute("class",n);this._applyStyle(a,r);this._appendChild(a);return a}drawRect(t,e,i,s,n,r,a){const h=document.createElementNS(_SvgRenderEngine.svgNS,"rect"),o=this.precision;this._applyColor(h,"fill",this._fill);this._applyColor(h,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(h,"stroke-width",this._strokeWidth.toString());h.setAttribute("x",t.toFixed(o));isNaN(Number(e))||h.setAttribute("y",e.toFixed(o));i>0&&i<.05?h.setAttribute("width","0.1"):h.setAttribute("width",i.toFixed(o));s>0&&s<.05?h.setAttribute("height","0.1"):h.setAttribute("height",s.toFixed(o));a&&this._setClipPath(h,a);n&&h.setAttribute("class",n);this._applyStyle(h,r);this._appendChild(h);return h}drawLine(t,e,i,s,n,r){const a=document.createElementNS(_SvgRenderEngine.svgNS,"line"),h=this.precision;this._applyColor(a,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(a,"stroke-width",this._strokeWidth.toString());a.setAttribute("x1",t.toFixed(h));a.setAttribute("x2",i.toFixed(h));a.setAttribute("y1",e.toFixed(h));a.setAttribute("y2",s.toFixed(h));n&&a.setAttribute("class",n);this._applyStyle(a,r);this._appendChild(a);return a}drawLines(t,e,i,s,n,r){if(t&&e){const a=r||Math.min(t.length,e.length);if(a>0){const r=document.createElementNS(_SvgRenderEngine.svgNS,"polyline"),h=this.precision;this._applyColor(r,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(r,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(r,"stroke-linejoin",this._STROKE_JOIN)}r.setAttribute("fill","none");let o="";for(let i=0;i<a;i++)o+=`${t[i].toFixed(h)},${e[i].toFixed(h)} `;r.setAttribute("points",o);i&&r.setAttribute("class",i);n&&this._setClipPath(r,n);this._applyStyle(r,s);this._appendChild(r);return r}}return null}drawSplines(t,e,i,s,n,r){if(t&&e){const a=new _Curve(t,e,r,this._options&&this._options.spline).calculate(),h=a.xs,o=a.ys,l=Math.min(h.length,o.length);if(l>0){const t=document.createElementNS(_SvgRenderEngine.svgNS,"polyline"),e=this.precision;this._applyColor(t,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(t,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(t,"stroke-linejoin",this._STROKE_JOIN)}t.setAttribute("fill","none");let r="";for(let t=0;t<l;t++)r+=`${h[t].toFixed(e)},${o[t].toFixed(e)} `;t.setAttribute("points",r);i&&t.setAttribute("class",i);n&&this._setClipPath(t,n);this._applyStyle(t,s);this._appendChild(t);return t}}return null}drawPolygon(t,e,i,s,n){if(t&&e){const r=Math.min(t.length,e.length);if(r>0){const a=document.createElementNS(_SvgRenderEngine.svgNS,"polygon"),h=this.precision;this._applyColor(a,"stroke",this._stroke);if(null!==this._strokeWidth){this._setAttribute(a,"stroke-width",this._strokeWidth.toString());this._strokeWidth>1&&this._setAttribute(a,"stroke-linejoin",this._STROKE_JOIN)}this._applyColor(a,"fill",this._fill);let o="";for(let i=0;i<r;i++)o+=`${t[i].toFixed(h)},${e[i].toFixed(h)} `;a.setAttribute("points",o);i&&a.setAttribute("class",i);n&&this._setClipPath(a,n);this._applyStyle(a,s);this._appendChild(a);return a}}return null}drawPieSegment(t,e,i,s,n,r,a,h){if(n>=2*Math.PI)return this.drawEllipse(t,e,i,i,r,a);const o=document.createElementNS(_SvgRenderEngine.svgNS,"path"),l=this.precision;this._applyColor(o,"fill",this._fill);this._applyColor(o,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(o,"stroke-width",this._strokeWidth.toString());var _=new Point(t,e);_.x+=i*Math.cos(s);_.y+=i*Math.sin(s);var c=s+n,d=new Point(t,e);d.x+=i*Math.cos(c);d.y+=i*Math.sin(c);var u=" 0 0,1 ";Math.abs(n)>Math.PI&&(u=" 0 1,1 ");var g=`M ${_.x.toFixed(l)},${_.y.toFixed(l)}`;g+=` A ${i.toFixed(l)},${i.toFixed(l)}${u}`;g+=`${d.x.toFixed(l)},${d.y.toFixed(l)}`;g+=` L ${t.toFixed(l)},${e.toFixed(l)} z`;o.setAttribute("d",g);h&&this._setClipPath(o,h);r&&o.setAttribute("class",r);this._applyStyle(o,a);this._appendChild(o);return o}drawDonutSegment(t,e,i,s,n,r,a,h,o){var l=!1;if(r>=2*Math.PI){l=!0;r-=.001}const _=document.createElementNS(_SvgRenderEngine.svgNS,"path"),c=this.precision+2;this._applyColor(_,"fill",this._fill);this._applyColor(_,"stroke",this._stroke);null!==this._strokeWidth&&this._setAttribute(_,"stroke-width",this._strokeWidth.toString());var d=new Point(t,e);d.x+=i*Math.cos(n);d.y+=i*Math.sin(n);var u=n+r,g=new Point(t,e);g.x+=i*Math.cos(u);g.y+=i*Math.sin(u);var p=new Point(t,e);p.x+=s*Math.cos(u);p.y+=s*Math.sin(u);var f=new Point(t,e);f.x+=s*Math.cos(n);f.y+=s*Math.sin(n);var m=" 0 0,1 ",x=" 0 0,0 ";if(Math.abs(r)>Math.PI){m=" 0 1,1 ";x=" 0 1,0 "}var b=`M ${d.x.toFixed(c)},${d.y.toFixed(c)}`;b+=` A ${i.toFixed(c)},${i.toFixed(c)}${m}`;b+=` ${g.x.toFixed(c)},${g.y.toFixed(c)}`;b+=l?` M ${p.x.toFixed(c)},${p.y.toFixed(c)}`:` L ${p.x.toFixed(c)},${p.y.toFixed(c)}`;b+=` A ${s.toFixed(c)},${s.toFixed(c)}${x}`;b+=`${f.x.toFixed(c)},${f.y.toFixed(c)}`;l||(b+=" z");_.setAttribute("d",b);o&&this._setClipPath(_,o);a&&_.setAttribute("class",a);this._applyStyle(_,h);this._appendChild(_);return _}drawString(t,e,i,s){return this._isHtmlString(t)?this._drawStringHtml(t,e,i,s):this._drawString(t,e,i,s)}_isHtmlString(t){return this._htmlText&&/<\/?[a-z][\s\S]*>/i.test(t)}_drawString(t,e,i,s){const n=this._createText(e,t),r=this.precision;i&&n.setAttribute("class",i);this._applyStyle(n,s);this._appendChild(n);var a,h=this._getKey(t,i,this._groupCls);if(this._bbCache[h]){a=this._bbCache[h];n.setAttribute("y",(e.y-(a.y+a.height)).toFixed(r))}else{a=this._getBBox(n);n.setAttribute("y",(e.y-(a.y+a.height-e.y)).toFixed(r))}this._isRtl&&!isIE()&&n.setAttribute("x",(e.x+a.width).toFixed(r));return n}_drawStringHtml(t,e,i,s){const n=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");n.setAttribute("width","1000");n.setAttribute("height","100");n.setAttribute("x",e.x.toFixed(2));const r=document.createElement("span"),a=this._groupCls;a&&addClass(r,a);i&&addClass(r,i);this._applyStyle(r,s);r.innerHTML=t;n.appendChild(r);this._appendChild(n);const h=r.getBoundingClientRect();n.setAttribute("width",Math.ceil(h.width+2).toFixed(2));n.setAttribute("height",Math.ceil(h.height+1).toFixed(2));n.setAttribute("y",(e.y-h.height).toFixed(2));return n}drawStringRotated(t,e,i,s,n,r){return this._isHtmlString(t)?this._drawStringRotatedHtml(t,e,i,s,n,r):this._drawStringRotated(t,e,i,s,n,r)}_drawStringRotated(t,e,i,s,n,r){const a=this._createText(e,t),h=this.precision;n&&a.setAttribute("class",n);this._applyStyle(a,r);var o=document.createElementNS(_SvgRenderEngine.svgNS,"g");o.setAttribute("transform",`rotate(${s.toFixed(h)},${i.x.toFixed(h)},${i.y.toFixed(h)})`);o.appendChild(a);this._appendChild(o);var l=this._getBBox(a);a.setAttribute("y",(e.y-(l.y+l.height-e.y)).toFixed(h));this._isRtl&&!isIE()&&a.setAttribute("x",(e.x+l.width).toFixed(h));return a}_drawStringRotatedHtml(t,e,i,s,n,r){const a=this.precision,h=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");h.setAttribute("width","1000");h.setAttribute("height","100");h.setAttribute("x",e.x.toFixed(2));const o=document.createElement("span"),l=this._groupCls;l&&addClass(o,l);n&&addClass(o,n);this._applyStyle(o,r);o.innerHTML=t;h.appendChild(o);this._appendChild(h);const _=o.getBoundingClientRect();h.setAttribute("width",Math.ceil(_.width+2).toFixed(2));h.setAttribute("height",Math.ceil(_.height+1).toFixed(2));h.setAttribute("y",(e.y-_.height).toFixed(2));var c=document.createElementNS(_SvgRenderEngine.svgNS,"g");c.setAttribute("transform",`rotate(${s.toFixed(a)},${i.x.toFixed(a)},${i.y.toFixed(a)})`);c.appendChild(h);this._appendChild(c);return h}measureString(t,e,i,s){return this._isHtmlString(t)?this._measureStringHtml(t,e,i,s):this._measureString(t,e,i,s)}_measureString(t,e,i,s){var n=new Size(0,0);if(!this._fontFamily&&!this._fontSize){const s=this._getKey(t,e,i);if(this._bbCache[s])return this._bbCache[s]}if(this.cssPriority){this._fontSize&&this._text.setAttribute("font-size",this._fontSize);this._fontFamily&&this._text.setAttribute("font-family",this._fontFamily)}else{const t={};this._fontSize&&(t.fontSize=this._fontSize);this._fontFamily&&(t.fontFamily=this._fontFamily);Object.keys(t).length>0&&setCss(this._text,t)}e&&this._text.setAttribute("class",e);i&&this._textGroup.setAttribute("class",i);this._applyStyle(this._text,s);this._setText(this._text,t);var r=this._getBBox(this._text);n.width=r.width;n.height=r.height;this._text.removeAttribute("font-size");this._text.removeAttribute("font-family");this._text.removeAttribute("class");this._text.removeAttribute("style");if(s)for(const t in s)this._text.removeAttribute(this._deCase(t));this._textGroup.removeAttribute("class");this._text.textContent=null;if(!this._fontFamily&&!this._fontSize){const s=this._getKey(t,e,i);this._bbCache[s]={x:r.x,y:r.y+1e3,width:r.width,height:r.height}}return n}_measureStringHtml(t,e,i,s){var n=new Size(0,0);const r=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");r.setAttribute("width","1000");r.setAttribute("height","100");r.setAttribute("x","-1000");r.setAttribute("y","-1000");const a=document.createElement("span");i&&addClass(a,i);e&&addClass(a,e);this._applyStyle(a,s);a.innerHTML=t;r.appendChild(a);e&&this._text.setAttribute("class",e);this._applyStyle(this._text,s);this._appendChild(r);const h=a.getBoundingClientRect();n.width=h.width;n.height=h.height;r.remove();return n}startGroup(t,e,i=!1){var s=document.createElementNS(_SvgRenderEngine.svgNS,"g");if(t){s.setAttribute("class",t);this._groupCls=t}e&&this._setClipPath(s,e);this._appendChild(s);i&&s.transform.baseVal.appendItem(this._svg.createSVGTransform());this._group=s;return s}endGroup(){if(this._group){const t=this._group.parentNode;if(t==this._svg){this._group=null;this._groupCls=null}else{this._group=t;this._groupCls=this._getClass(this._group)}}}drawImage(t,e,i,s,n){const r=document.createElementNS(_SvgRenderEngine.svgNS,"image"),a=this.precision;r.setAttributeNS(_SvgRenderEngine.xlinkNS,"href",t);r.setAttribute("x",e.toFixed(a));r.setAttribute("y",i.toFixed(a));r.setAttribute("width",s.toFixed(a));r.setAttribute("height",n.toFixed(a));this._appendChild(r);return r}_setClipPath(t,e){t.setAttribute("clip-path",`url(#${e})`);_SvgRenderEngine._isSafari&&setCss(t,{"-webkit-clip-path":`url(#${e})`})}_appendChild(t){if(!this.readOnly){var e=this._group;e||(e=this._svg);e.appendChild(t)}}_create(){this._svg=document.createElementNS(_SvgRenderEngine.svgNS,"svg");this._defs=document.createElementNS(_SvgRenderEngine.svgNS,"defs");this._svg.appendChild(this._defs);this._text=this._createText(new Point(-1e3,-1e3),"");this._textGroup=document.createElementNS(_SvgRenderEngine.svgNS,"g");this._textGroup.appendChild(this._text);this._svg.appendChild(this._textGroup)}_setText(t,e){var i=e?e.toString():null;if(i&&i.indexOf("tspan")>=0)try{t.textContent=null;const e=new DOMParser,s=`<svg xmlns="http://www.w3.org/2000/svg">${i}</svg>`;let n=e.parseFromString(s,"text/xml").documentElement.firstChild;for(;n;){t.appendChild(t.ownerDocument.importNode(n,!0));n=n.nextSibling}}catch(t){throw new Error("Error parsing XML string.")}else t.textContent=i}_getKey(t,e,i){return t+(e||"")+(i||"")}_createText(t,e){const i=document.createElementNS(_SvgRenderEngine.svgNS,"text"),s=this.precision;this._setText(i,e);i.setAttribute("x",t.x.toFixed(s));i.setAttribute("y",t.y.toFixed(s));if(this.cssPriority){null!=this._textFill&&i.setAttribute("fill",this._textFill);this._fontSize&&i.setAttribute("font-size",this._fontSize);this._fontFamily&&i.setAttribute("font-family",this._fontFamily)}else{const t={};null!=this._textFill&&(t.fill=this._textFill);this._fontSize&&(t.fontSize=this._fontSize);this._fontFamily&&(t.fontFamily=this._fontFamily);Object.keys(t).length>0&&setCss(i,t)}return i}_applyStyle(t,e){if(e)for(const i in e)"fill"===i||"stroke"===i?this._applyColor(t,i,e[i]):t.setAttribute(this._deCase(i),e[i])}_deCase(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}_getClass(t){let e;if(t)for(let i=t;i;i=i.parentNode){e=i.getAttribute("class");if(e)break}return e}_getBBox(t){if(!_SvgRenderEngine._isff)return t.getBBox();try{return t.getBBox()}catch(t){return{x:0,y:0,width:0,height:0}}}_applyColor(t,e,i){let s=_GradientColorUtil.tryParse(i);if(null!=s){if(!isString(s)){if(null==this._savedGradient[i]){const t="gc"+(1e6*Math.random()).toFixed();let e;if(null!=s.x1){e=document.createElementNS(_SvgRenderEngine.svgNS,"linearGradient");["x1","y1","x2","y2","gradientUnits"].forEach(t=>{null!=s[t]&&e.setAttribute(t,s[t])})}else if(null!=s.r){e=document.createElementNS(_SvgRenderEngine.svgNS,"radialGradient");["cx","cy","r","fx","fy","fr","gradientUnits"].forEach(t=>{null!=s[t]&&e.setAttribute(t,s[t])})}s.colors&&s.colors&&s.colors.length>0&&s.colors.forEach(t=>{const i=document.createElementNS(_SvgRenderEngine.svgNS,"stop");null!=t.color&&i.setAttribute("stop-color",t.color);null!=t.offset&&i.setAttribute("offset",t.offset);null!=t.opacity&&i.setAttribute("stop-opacity",t.opacity);e.appendChild(i)});e.setAttribute("id",t);this._defs.appendChild(e);this._savedGradient[i]=t}s=`url(${this._baseUrl}#${this._savedGradient[i]})`}this.cssPriority?t.setAttribute(e,s):this._addInlineStyle(t,e,s)}}_addInlineStyle(t,e,i){const s={};s[e.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i;setCss(t,s)}_setAttribute(t,e,i){this.cssPriority?t.setAttribute(e,i):this._addInlineStyle(t,e,i)}_checkRtl(){return this._element&&hasClass(this._element,UtilitesClsNames.rtl)}}_SvgRenderEngine.svgNS="http://www.w3.org/2000/svg";_SvgRenderEngine.xlinkNS="http://www.w3.org/1999/xlink";class _GradientColorUtil{static tryParse(t){if(_GradientColorUtil.parsedColor[t])return _GradientColorUtil.parsedColor[t];if(null==t||-1===t.indexOf("-")||-1!==t.indexOf("var("))return t;var e,i=t.replace(/\s+/g,"").split(/-/g),s=i[0][0],n=!1,r=i[0].match(/\(\S+\)/);if(!r||0==r.length)return t;var a=r[0].replace(/[(\\)]/g,"").split(/,/g);if("l"===s||"L"===s){e={x1:"0",y1:"0",x2:"0",y2:"0",colors:[]};"l"===s&&(n=!0);["x1","y1","x2","y2"].forEach((t,i)=>{null!=a[i]&&(e[t]=n?100*+a[i]+"%":""+a[i])})}else if("r"===s||"R"===s){e={cx:"0",cy:"0",r:"0",colors:[]};"r"===s&&(n=!0);["cx","cy","r","fx","fy","fr"].forEach((t,i)=>{null!=a[i]&&""!==a[i]&&(e[t]=n?100*+a[i]+"%":""+a[i])})}n||(e.gradientUnits="userSpaceOnUse");_GradientColorUtil.parsedColor[t]=e;var h=i.length-1;i.forEach((t,i)=>{t.indexOf(")")>-1&&(t=t.match(/\)\S+/)[0].replace(")",""));const s=t.split(":"),r={color:"black"};null!=s[0]&&(r.color=s[0]);null!=s[1]?r.offset=n?100*+s[1]+"%":""+s[1]:r.offset=i/h*100+"%";null!=s[2]&&(r.opacity=s[2]);e.colors.push(r)});return e}}_GradientColorUtil.parsedColor={};export class SvgRenderEngine extends _SvgRenderEngine{}export class Legend{constructor(t){this._position=Position.Right;this._title="";this._titleAlign="left";this._titlePadding=5;this._areas=[];this._sz=new Size;this._orient=Orientation.Auto;this._scrollbar=!1;this._chart=t}get position(){return this._position}set position(t){if((t=asEnum(t,Position))!=this._position){this._position=t;this._invalidate()}}get reverse(){return this._reverse}set reverse(t){if(t!=this._reverse){this._reverse=asBoolean(t,!0);this._invalidate()}}get title(){return this._title}set title(t){if(t!=this._title){this._title=asString(t,!1);this._invalidate()}}get titleAlign(){return this._titleAlign}set titleAlign(t){if(t!=this._titleAlign){const e=asString(t,!1);this._titleAlign="right"===e?"right":"center"===e?"center":"left";this._invalidate()}}get orientation(){return this._orient}set orientation(t){if((t=asEnum(t,Orientation))!=this._orient){this._orient=t;this._invalidate()}}get maxSize(){return this._maxSz}set maxSize(t){if(t!=this._maxSz){if(isNumber(t))this._maxSz=t;else if(isString(t)){const e=asString(t);assert(FlexChartBase._endsWith(e,"px")||FlexChartBase._endsWith(e,"%"),"number with unit (px or %) expected.");this._maxSz=e}else t&&assert(!1,"number or string expected.");this._invalidate()}}get scrollbar(){return this._scrollbar}set scrollbar(t){if(t!=this._scrollbar){this._scrollbar=asBoolean(t,!1);this._invalidate()}}get isVertical(){return this.orientation==Orientation.Auto?null==this.position||this.position==Position.Auto||this.position==Position.Right||this.position==Position.Left||this.position==Position.LeftTop||this.position==Position.LeftBottom||this.position==Position.RightTop||this.position==Position.RightBottom:this.orientation==Orientation.Vertical}_getDesiredSize(t,e,i,s){if(e==Position.None)return null;let n=new Size;if(this.title.length>0){n=t.measureString(this.title,LegendClsNames.title,LegendClsNames.legend);s-=n.height+this._titlePadding}var r=this._chart._getDesiredLegendSize(t,this.isVertical,i,s);if(null!=r){if(this.title.length>0){r.height+=n.height+this._titlePadding;if(n.width>r.width)if(this.position==Position.Left||this.position==Position.Right||this.position==Position.LeftTop||this.position==Position.LeftBottom||this.position==Position.RightTop||this.position==Position.RightBottom){const t=Math.min(n.width,this._getMaxSize(i));r.width=t;n.width=t}else i>r.width&&i<n.width?r.width=i:i>=n.width&&(r.width=n.width)}this._sz=r.clone();if(this.scrollbar)if(this.isVertical&&r.height>s){r.width+=18;r.height=s}else if(!this.isVertical&&r.width>i){r.width=i;r.height+=18}}return r}_getPosition(t,e){return this.position==Position.Auto?t>=e?Position.Right:Position.Bottom:this.position}_render(t,e,i,s,n){this._areas=[];let r=0;t.fill="transparent";t.stroke=null;t.drawRect(e.x,e.y,s,n);if(this.title.length){const i=e.clone(),a=t.measureString(this.title,LegendClsNames.title+"`");i.y+=a.height;"right"===this.titleAlign?i.x=e.x+s-a.width:"center"===this.titleAlign&&(i.x=e.x+.5*(s-a.width));t.drawString(this.title,i,LegendClsNames.title);r=a.height+this._titlePadding;e.y+=r;n-=r}let a=!1;this.scrollbar&&(this._sz.height>n&&this.isVertical||this._sz.width>s&&!this.isVertical)&&(a=!0);this._chart._renderLegend(t,e,this._areas,this.isVertical,a?s-18:s,n);if(a){n+=r;this._addScrollbar(t,e,s,n,this._sz,this.isVertical,r)}}_hitTest(t){var e=this._areas;for(let i=0;i<e.length;i++)if(e[i]&&FlexChartBase._contains(e[i],t))return i;return null}_addScrollbar(t,e,i,s,n,r,a){t.endGroup();const h=100-a/s*100,o=t.element,l=o.children.item(o.children.length-1),_=l.getBoundingClientRect();l.removeAttribute("clip-path");const c=[];l.children.length>0&&c.push(l.children.item(0));a>0&&c.push(l.children.item(1));Array.from(l.querySelectorAll("text,rect")).forEach(t=>{if(-1==c.indexOf(t)){t.setAttribute("x",(+t.getAttribute("x")-e.x).toFixed(2));t.setAttribute("y",(+t.getAttribute("y")-e.y).toFixed(2))}});Array.from(l.querySelectorAll("foreignObject")).forEach(t=>{if(-1==c.indexOf(t)){t.setAttribute("x",(+t.getAttribute("x")-e.x).toFixed(2));t.setAttribute("y",(+t.getAttribute("y")-e.y).toFixed(2))}});Array.from(l.querySelectorAll("ellipse")).forEach(t=>{t.setAttribute("cx",(+t.getAttribute("cx")-e.x).toFixed(2));t.setAttribute("cy",(+t.getAttribute("cy")-e.y).toFixed(2))});Array.from(l.querySelectorAll("line")).forEach(t=>{t.setAttribute("x1",(+t.getAttribute("x1")-e.x).toFixed(2));t.setAttribute("y1",(+t.getAttribute("y1")-e.y).toFixed(2));t.setAttribute("x2",(+t.getAttribute("x2")-e.x).toFixed(2));t.setAttribute("y2",(+t.getAttribute("y2")-e.y).toFixed(2))});const d=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");d.setAttribute("x",e.x.toFixed(2));d.setAttribute("y",e.y.toFixed(2));d.setAttribute("width",i.toFixed(2));d.setAttribute("height",s.toFixed(2));const u=document.createElement("div");u.className="wj-legend-scrollable";setCss(u,r?{width:"100%",height:h+"%",overflowX:"hidden",overflowY:"scroll"}:{width:"100%",height:h+"%",overflowY:"hidden",overflowX:"scroll"});const g=document.createElementNS("http://www.w3.org/2000/svg","svg");g.setAttribute("height",(_.height-a).toFixed(2));let p=_.width;!r&&n.width<p&&(p=n.width);g.setAttribute("width",p.toFixed(2));for(;l.children.length>c.length;){const t=l.children.item(c.length);l.removeChild(t);g.appendChild(t)}u.appendChild(g);d.appendChild(u);l.appendChild(d)}_invalidate(){this._chart&&this._chart.invalidate()}_getMaxSize(t){const e=this.maxSize;if(isNumber(e)){const i=asNumber(e,!0);if(i>0)return Math.min(i,t)}else{const i=asString(e,!0);if(i)if(FlexChartBase._endsWith(i,"px")){const e=parseFloat(i.replace("px",""));if(e>0)return Math.min(e,t)}else if(FlexChartBase._endsWith(i,"%")){const e=parseFloat(i.replace("%",""));if(e>0)return t*Math.min(e,100)/100}}return.5*t}}export class DataPoint{constructor(t=0,e=0){this.x=t;this.y=e}}export class RenderEventArgs extends CancelEventArgs{constructor(t){super();this._engine=t}get engine(){return this._engine}}export class SeriesRenderingEventArgs extends RenderEventArgs{constructor(t,e,i){super(t);this._index=e;this._count=i}get index(){return this._index}get count(){return this._count}}export var ImageFormat;!function(t){t[t.Png=0]="Png";t[t.Jpeg=1]="Jpeg";t[t.Svg=2]="Svg"}(ImageFormat||(ImageFormat={}));export var SelectionMode;!function(t){t[t.None=0]="None";t[t.Series=1]="Series";t[t.Point=2]="Point"}(SelectionMode||(SelectionMode={}));export var Position;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=3]="Right";t[t.Bottom=4]="Bottom";t[t.Auto=5]="Auto";t[t.TopLeft=6]="TopLeft";t[t.TopRight=7]="TopRight";t[t.BottomLeft=8]="BottomLeft";t[t.BottomRight=9]="BottomRight";t[t.LeftTop=10]="LeftTop";t[t.LeftBottom=11]="LeftBottom";t[t.RightTop=12]="RightTop";t[t.RightBottom=13]="RightBottom"}(Position||(Position={}));export var Orientation;!function(t){t[t.Auto=0]="Auto";t[t.Vertical=1]="Vertical";t[t.Horizontal=2]="Horizontal"}(Orientation||(Orientation={}));export class FlexChartBase extends Control{constructor(){super(...arguments);this._palette=null;this._selectionMode=SelectionMode.None;this._defPalette=Palettes.standard;this._notifyCurrentChanged=!0;this._legendHost=null;this._needBind=!1;this._skipLightClr=!1;this.rendering=new Event;this.rendered=new Event;this.itemsSourceChanging=new Event;this.itemsSourceChanged=new Event;this.selectionChanged=new Event}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){const e=new CancelEventArgs;if(!this.onItemsSourceChanging(e))return;if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._clearCachedValues();this.onItemsSourceChanged(e);this._bindChart()}}get collectionView(){return this._cv}get palette(){return this._palette}set palette(t){if(t!=this._palette){this._palette=asArray(t);this._skipLightClr=Palettes._isExtended(this._palette);this.invalidate()}}get plotMargin(){return this._plotMargin}set plotMargin(t){if(t!=this._plotMargin){this._plotMargin=t;this.invalidate()}}get legend(){return this._legend}set legend(t){if(t!=this._legend){this._legend=asType(t,Legend);null!=this._legend&&(this._legend._chart=this)}}get header(){return this._header}set header(t){if(t!=this._header){this._header=asString(t,!0);this.invalidate()}}get footer(){return this._footer}set footer(t){if(t!=this._footer){this._footer=asString(t,!0);this.invalidate()}}get headerStyle(){return this._headerStyle}set headerStyle(t){if(t!=this._headerStyle){this._headerStyle=t;this.invalidate()}}get footerStyle(){return this._footerStyle}set footerStyle(t){if(t!=this._footerStyle){this._footerStyle=t;this.invalidate()}}get selectionMode(){return this._selectionMode}set selectionMode(t){if((t=asEnum(t,SelectionMode))!=this._selectionMode){this._selectionMode=t;this.invalidate()}}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this.invalidate()}}get options(){return this._options}set options(t){if(t!=this._options){this._options=t;this.invalidate()}}onRendering(t){this.rendering.raise(this,t)}onRendered(t){this.rendered.raise(this,t)}onItemsSourceChanging(t){this.itemsSourceChanging.raise(this,t);return!t.cancel}onItemsSourceChanged(t){this.itemsSourceChanged.raise(this,t)}saveImageToFile(t){var e,i,s,n;t&&0!==t.length&&-1!==t.indexOf(".")||(t="image.png");n=t.split(".");e=n[0];i=n[1].toLowerCase();s=ImageFormat[i[0].toUpperCase()+i.substring(1)];this.saveImageToDataUrl(s,t=>{ExportHelper.downloadImage(t,e,i)})}saveImageToDataUrl(t,e){var i=asEnum(t,ImageFormat,!1),s=ImageFormat[i].toLowerCase();s&&s.length&&this._exportToImage(s,t=>{e.call(e,t)})}saveSvgToDataUrl(t,e=!0){this._exportToImage("svg",e=>{t.call(t,e)},{embedCss:e})}saveSvgToFile(t,e=!0){this.saveSvgToDataUrl(e=>{ExportHelper.downloadImage(e,t,"svg")},e)}_exportToImage(t,e,i=null){const s=this._currentRenderEngine.element;i&&!1===i.embedCss?ExportHelper.getDataUri2(s,this,i=>{this.prepareDataUri(s,t,i,e)}):ExportHelper.getDataUri(s,this,i=>{this.prepareDataUri(s,t,i,e)})}prepareDataUri(t,e,i,s){if("svg"===e)s.call(null,i);else{const n=new Image;n.onload=()=>{var i,r=document.createElement("canvas"),a=t.parentNode||t,h=getElementRect(a);r.width=h.width;r.height=h.height;var o=r.getContext("2d");let l=this._bgColor(this.hostElement);this._isTransparent(l)&&(l="#ffffff");o.fillStyle=l;o.fillRect(0,0,h.width,h.height);var _=window.getComputedStyle(a,null).getPropertyValue("padding-left").replace("px",""),c=window.getComputedStyle(a,null).getPropertyValue("padding-top").replace("px","");o.drawImage(n,+_||0,+c||0);i=r.toDataURL("image/"+e);s.call(null,i);r=null};n.src=i}}refresh(t=!0){super.refresh(t);this.isUpdating||this.disposed||this._refreshChart()}onSelectionChanged(t){this.selectionChanged.raise(this,t)}onLostFocus(t){this._tooltip&&this._tooltip.isVisible&&!this.isTouching&&this._tooltip.hide();super.onLostFocus(t)}_cvCollectionChanged(t,e){this._clearCachedValues();this._bindChart()}_cvCurrentChanged(t,e){this._notifyCurrentChanged&&this._bindChart()}_bgColor(t){if(!t)return"transparent";const e=getComputedStyle(t).backgroundColor;return this._isTransparent(e)?this._bgColor(t.parentElement):e}_isTransparent(t){const e=new Color(t);return 0==e.a&&0==e.b&&0==e.g&&0==e.r}_getColor(t){var e=this._defPalette;null!=this._palette&&this._palette.length>0&&(e=this._palette);return e[t%e.length]}_getColorLight(t){let e=this._getColor(t);this._skipLightClr||(e=this._getLightColor(e));return e}_getLightColor(t){var e=new Color(t);if(null!=e&&-1===t.indexOf("-")){1==e.a&&-1==t.indexOf("rgba")&&-1==t.indexOf("hsla")&&(e.a*=.7);t=e.toString()}return t}_bindChart(){this._needBind=!0;this.invalidate()}_clearCachedValues(){}_renderEls(t,e,i=!0,s=null,n=!1){let r=e.width,a=e.height;if(0==r)return;(isNaN(r)||r<0)&&(r=FlexChartBase._WIDTH);(a<=0||isNaN(a))&&(a=FlexChartBase._HEIGHT);const h=r>0&&a>0;h&&t.setViewportSize(r,a);let o=0,l=0;if(this.legend.scrollbar&&this._legendHost){const t=this._legendHost.querySelector(".wj-legend-scrollable");if(t)if(this.legend.isVertical){l=0;o=t.scrollTop}else{o=0;l=t.scrollLeft}}this._currentRenderEngine._htmlText=this._isHtmlText();t.beginRender();t.cssPriority=!0;if(h){this._rectChart=new Rect(0,0,r,a);this._prepareRender();if(s){const e=t.stroke,i=t.fill;t.fill=s;t.stroke=null;t.drawRect(0,0,r,a);t.fill=i;t.stroke=e}const e=new Rect(0,0,r,a);this._chartRectId="chartRect"+(1e6*Math.random()).toFixed();t.addClipRect(e,this._chartRectId);this._renderHeader(t,e);this._renderFooter(t,e);this._renderLegends(t,e);this._renderChart(t,e,i);if(this.legend.scrollbar&&this._legendHost){const t=this._legendHost.querySelector(".wj-legend-scrollable");if(t){t.scrollTop=o;t.scrollLeft=l}}}t.endRender()}_render(t,e=!0,i=null){const s=this._getHostSize();if(this._h){const t=s.height-this._h;t>=4&&t<=6&&!1!==this._isPCUnit("height")&&(s.height=this._h)}this._h=s.height;this._renderEls(t,s,e,i)}_isPCUnit(t){let e=null;const i=this.hostElement;if(i&&i.computedStyleMap){const s=i.computedStyleMap();if(s){const i=s.get(t);i&&(e="percent"==i.unit)}}return e}_renderHidden(t=null,e=null){const i=document.createElement("div");addClass(i,this.hostElement.getAttribute("class")||"");i.style.visibility="hidden";const s=new _SvgRenderEngine(i);document.body.appendChild(i);if(!t){const e=this._getHostComputedStyle();let i=0,s=0;if(e){i=this._parsePx(e.width);s=this._parsePx(e.height);0==i&&(i=FlexChartBase._WIDTH);0==s&&(s=FlexChartBase._HEIGHT);i-=this._parsePx(e.paddingLeft);i-=this._parsePx(e.paddingRight);s-=this._parsePx(e.paddingTop);s-=this._parsePx(e.paddingBottom);i-=this._parsePx(e.borderLeftWidth);i-=this._parsePx(e.borderRightWidth);s-=this._parsePx(e.borderTopWidth);s-=this._parsePx(e.borderBottomWidth)}0==i&&(i=FlexChartBase._WIDTH);0==s&&(s=FlexChartBase._HEIGHT);t=new Size(i,s)}this._renderEls(s,t,!0,e,!0);removeChild(i);return s.element}_renderHeader(t,e){t.startGroup(FlexChartBase._CSS_HEADER,this._chartRectId);e=this._drawTitle(t,e,this.header,this.headerStyle,!1);t.endGroup()}_renderFooter(t,e){t.startGroup(FlexChartBase._CSS_FOOTER,this._chartRectId);e=this._drawTitle(t,e,this.footer,this.footerStyle,!0);t.endGroup()}_renderLegends(t,e){var i,s,n=this.legend,r=e.width,a=e.height,h=n._getPosition(r,a);let o=r,l=a;h==Position.Left||h==Position.Right||h==Position.LeftTop||h==Position.LeftBottom||h==Position.RightTop||h==Position.RightBottom?o=this._getLegendSize(r,o):l=this._getLegendSize(a,l);if(!(i=n._getDesiredSize(t,h,o,l))){this._legendHost=null;this._rectLegend=null;return}h==Position.Left||h==Position.Right||h==Position.LeftTop||h==Position.LeftBottom||h==Position.RightTop||h==Position.RightBottom?i.width=this._getLegendSize(r,i.width):i.height=this._getLegendSize(a,i.height);i.height>e.height&&(i.height=e.height);switch(h){case Position.Right:r-=i.width;s=new Point(r,e.top+.5*(a-i.height));break;case Position.RightTop:r-=i.width;s=new Point(r,e.top);break;case Position.RightBottom:r-=i.width;s=new Point(r,e.top+(a-i.height));break;case Position.Left:e.left+=i.width;r-=i.width;s=new Point(0,e.top+.5*(a-i.height));break;case Position.LeftTop:e.left+=i.width;r-=i.width;s=new Point(0,e.top);break;case Position.LeftBottom:e.left+=i.width;r-=i.width;s=new Point(0,e.top+(a-i.height));break;case Position.Top:a-=i.height;s=new Point(.5*(r-i.width),e.top);e.top+=i.height;break;case Position.TopLeft:a-=i.height;s=new Point(0,e.top);e.top+=i.height;break;case Position.TopRight:a-=i.height;s=new Point(r-i.width,e.top);e.top+=i.height;break;case Position.Bottom:a-=i.height;s=new Point(.5*(r-i.width),e.top+a);break;case Position.BottomLeft:a-=i.height;s=new Point(0,e.top+a);break;case Position.BottomRight:a-=i.height;s=new Point(r-i.width,e.top+a)}e.width=r;e.height=a;this._rectLegend=new Rect(s.x,s.y,i.width,i.height);const _="legRect"+(1e6*Math.random()).toFixed();t.addClipRect(this._rectLegend,_);this._legendHost=t.startGroup(FlexChartBase._CSS_LEGEND,_);this.legend._render(t,s,h,i.width,i.height);t.endGroup()}_prepareRender(){}_renderChart(t,e,i){}_performBind(){}_getDesiredLegendSize(t,e,i,s){return null}_renderLegend(t,e,i,s,n,r){}_getHitTestItem(t){return null}_getHitTestValue(t,e){return null}_getHitTestLabel(t){return null}_refreshChart(){if(this._needBind){this._needBind=!1;this._performBind()}this.hostElement&&this._render(this._currentRenderEngine)}_drawTitle(t,e,i,s,n){var r=FlexChartBase._CSS_TITLE,a=n?FlexChartBase._CSS_FOOTER:FlexChartBase._CSS_HEADER,h=null;n?this._rectFooter=null:this._rectHeader=null;if(null!=i){let o=null,l=null,_=null,c=null;if(s){s.fontSize&&(o=s.fontSize);s.foreground&&(l=s.foreground);s.fill&&(l=s.fill);s.fontFamily&&(_=s.fontFamily);s.halign&&(c=s.halign)}t.fontSize=o;t.fontFamily=_;h=t.measureString(i,r,a,s);e.height-=h.height;l||(l=FlexChartBase._FG);t.textFill=l;if(n){"left"==c?FlexChartBase._renderText(t,i,new Point(e.left,e.bottom),0,0,r,a,s):"right"==c?FlexChartBase._renderText(t,i,new Point(e.left+e.width,e.bottom),2,0,r,a,s):FlexChartBase._renderText(t,i,new Point(e.left+.5*e.width,e.bottom),1,0,r,a,s);this._rectFooter=new Rect(e.left,e.bottom,e.width,h.height)}else{this._rectHeader=new Rect(e.left,e.top,e.width,h.height);e.top+=h.height;"left"==c?FlexChartBase._renderText(t,i,new Point(e.left,0),0,0,r,a,s):"right"==c?FlexChartBase._renderText(t,i,new Point(e.left+e.width,0),2,0,r,a,s):FlexChartBase._renderText(t,i,new Point(e.left+.5*e.width,0),1,0,r,a,s)}t.textFill=null;t.fontSize=null;t.fontFamily=null}return e}pageToControl(t,e){return this._toControl(t,e)}_toControl(t,e){isNumber(t)&&isNumber(e)?t=new Point(t,e):t instanceof MouseEvent&&(t=mouseToPage(t));asType(t,Point);var i=t.clone(),s=this._getHostOffset();i.x-=s.x;i.y-=s.y;const n=this._currentRenderEngine?this._currentRenderEngine.element:null;if(null!=n){const t=n.getBoundingClientRect(),e=parseFloat(n.getAttribute("width")),s=parseFloat(n.getAttribute("height"));t.width!=e&&(i.x*=e/t.width);t.height!=s&&(i.y*=s/t.height)}var r=this._getHostComputedStyle();if(r){const t=parseInt(r.paddingLeft.replace("px",""));t&&!isNaN(t)&&(i.x-=t);const e=parseInt(r.paddingTop.replace("px",""));e&&!isNaN(e)&&(i.y-=e)}return i}_highlightItems(t,e,i){if(i)for(let i=0;i<t.length;i++)addClass(t[i],e);else for(let i=0;i<t.length;i++)removeClass(t[i],e)}_parseMargin(t){var e={};if(isNumber(t)&&!isNaN(t))e.top=e.bottom=e.left=e.right=asNumber(t);else if(isString(t)){const i=asString(t).split(" ",4);let s=NaN,n=NaN,r=NaN,a=NaN;if(i){if(4==i.length){s=parseFloat(i[0]);a=parseFloat(i[1]);n=parseFloat(i[2]);r=parseFloat(i[3])}else if(2==i.length){s=n=parseFloat(i[0]);r=a=parseFloat(i[1])}else 1==i.length&&(s=n=r=a=parseFloat(i[1]));isNaN(s)||(e.top=s);isNaN(n)||(e.bottom=n);isNaN(r)||(e.left=r);isNaN(a)||(e.right=a)}}return e}_showToolTip(t,e){var i=this._tooltip.showDelay;this._clearTimeouts();if(!this.isDisabled){t||this._tooltip.hide();if(i>0)this._toShow=setTimeout(()=>{this._tooltip.show(this.hostElement,t,e);this._tooltip.hideDelay>0&&(this._toHide=setTimeout(()=>{this._tooltip.hide()},this._tooltip.hideDelay))},i);else{this._tooltip.show(this.hostElement,t,e);this._tooltip.hideDelay>0&&(this._toHide=setTimeout(()=>{this._tooltip.hide()},this._tooltip.hideDelay))}}}_hideToolTip(){this._clearTimeouts();this._tooltip.hide()}_clearTimeouts(){if(this._toShow){clearTimeout(this._toShow);this._toShow=null}if(this._toHide){clearTimeout(this._toHide);this._toHide=null}}_getHostOffset(){var t=getElementRect(this.hostElement);return new Point(t.left,t.top)}_getHostSize(){var t=new Size,e=this.hostElement,i=this._getHostComputedStyle(),s=e.offsetWidth,n=e.offsetHeight;if(i){s-=this._parsePx(i.paddingLeft);s-=this._parsePx(i.paddingRight);n-=this._parsePx(i.paddingTop);n-=this._parsePx(i.paddingBottom);s-=this._parsePx(i.borderLeftWidth);s-=this._parsePx(i.borderRightWidth);n-=this._parsePx(i.borderTopWidth);n-=this._parsePx(i.borderBottomWidth);t.width=s;t.height=n}return t}_parsePx(t){const e=parseFloat(t.replace("px",""));return isNaN(e)?0:e}_getHostComputedStyle(){var t=this.hostElement;return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(this.hostElement):null}_find(t,e){var i=[];for(let s=0;s<t.childElementCount;s++){const n=t.childNodes.item(s);if(e.indexOf(n.nodeName)>=0)i.push(n);else{const t=this._find(n,e);if(t.length>0)for(let e=0;e<t.length;e++)i.push(t[e])}}return i}_getLegendSize(t,e){return Math.min(e,this.legend._getMaxSize(t))}_isHtmlText(){return this._options&&this._options.htmlText}static _contains(t,e){return!(!t||!e)&&(e.x>=t.left&&e.x<=t.right&&e.y>=t.top&&e.y<=t.bottom)}static _intersects(t,e){return!(t.left>e.right||t.right<e.left||t.top>e.bottom||t.bottom<e.top)}static _toOADate(t){return t.valueOf()}static _fromOADate(t){return new Date(t)}static _renderText(t,e,i,s,n,r,a,h,o){var l=t.measureString(e,r,a,h),_=i.x,c=i.y;switch(s){case 1:_-=.5*l.width;break;case 2:_-=l.width}switch(n){case 1:c+=.5*l.height;break;case 0:c+=l.height}var d=new Rect(_,c-l.height,l.width,l.height);if(o){if(o(d)){t.drawString(e,new Point(_,c),r,h);return d}return null}t.drawString(e,new Point(_,c),r,h);return d}static _renderRotatedText(t,e,i,s,n,r,a,h,o,l){var _=t.measureString(e,h,o,l),c=i.x,d=i.y;switch(s){case 1:c-=.5*_.width;break;case 2:c-=_.width}switch(n){case 1:d+=.5*_.height;break;case 0:d+=_.height}return t.drawStringRotated(e,new Point(c,d),r,a,h,l)}static _endsWith(t,e){if(t&&e){const i=t.length-e.length;return i>=0&&t.indexOf(e,i)===i}return!1}}FlexChartBase._WIDTH=300;FlexChartBase._HEIGHT=200;FlexChartBase._SELECTION_THRESHOLD=15;FlexChartBase._CSS_LEGEND=FlexChartClsNames.legend;FlexChartBase._CSS_HEADER=FlexChartClsNames.header;FlexChartBase._CSS_FOOTER=FlexChartClsNames.footer;FlexChartBase._CSS_TITLE=FlexChartClsNames.title;FlexChartBase._CSS_LABEL=FlexChartClsNames.label;FlexChartBase._CSS_SELECTION=ControlStateClsNames.selected;FlexChartBase._CSS_PLOT_AREA=FlexChartClsNames.plotArea;FlexChartBase._FG="#666";FlexChartBase._epoch=new Date(1899,11,30).getTime();FlexChartBase._msPerDay=864e5;export class _KeyWords{constructor(){this._keys={};this._keys.seriesName=null;this._keys.pointIndex=null;this._keys.x=null;this._keys.y=null;this._keys.value=null;this._keys.name=null}replace(t,e){return format(t,{},(t,i,s,n)=>this.getValue(i,e,s))}getValue(t,e,i){switch(t){case"seriesName":return e.series?e.series.name:"";case"pointIndex":return null!=e.pointIndex?e.pointIndex.toFixed():"";case"x":return i?Globalize.format(e.x,i):e._xfmt;case"y":return i?Globalize.format(e.y,i):e._yfmt;case"value":return i?Globalize.format(e.value,i):e._getValueFmt();case"name":return e.name}if(e.item){0==t.indexOf("item.")&&(t=t.substr(5));const s=e.item[t];if(!isUndefined(s))return i?Globalize.format(s,i):s}return""}}class ExportHelper{static downloadImage(t,e,i){var s=document.createElement("a"),n="image/"+i;if(navigator.msSaveOrOpenBlob){t=t.substring(t.indexOf(",")+1);let s,r,a,h=atob(t),o=[],l=512;for(s=0;s<h.length;s+=l){r=h.slice(s,s+l);const t=new Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);const e=new Uint8Array(t);o.push(e)}a=new Blob(o,{type:n});navigator.msSaveOrOpenBlob(a,`${e}.${i}`)}else{s.download=`${e}.${i}`;s.href=t;document.body.appendChild(s);s.addEventListener("click",t=>{removeChild(s)});s.click()}}static getDataUri(t,e,i){var s,n,r,a,h,o,l,_,c,d,u=document.createElement("div"),g=t.cloneNode(!0);let p=!1;if("svg"==t.tagName){n=(s=getElementRect(t.parentNode||t)).width||0;r=s.height||0;0==n&&(p=!0);a=t.viewBox.baseVal&&0!==t.viewBox.baseVal.width?t.viewBox.baseVal.width:n;h=t.viewBox.baseVal&&0!==t.viewBox.baseVal.height?t.viewBox.baseVal.height:r}else{n=(o=t.getBBox()).x+o.width;r=o.y+o.height;g.setAttribute("transform",g.getAttribute("transform").replace(/translate\(.*?\)/,""));a=n;h=r;(_=document.createElementNS("http://www.w3.org/2000/svg","svg")).appendChild(g);g=_}if(p){const t=e._renderHidden(),i=e._getHostComputedStyle();let s=0,o=0;if(i){s=e._parsePx(i.width);o=e._parsePx(i.height)}0==s&&(s=FlexChartBase._WIDTH);0==o&&(o=FlexChartBase._HEIGHT);a=n=s;h=r=o;g=t.cloneNode(!0)}g.setAttribute("version","1.1");g.setAttributeNS(ExportHelper.xmlns,"xmlns","http://www.w3.org/2000/svg");g.setAttributeNS(ExportHelper.xmlns,"xmlns:xlink","http://www.w3.org/1999/xlink");g.setAttribute("width",n);g.setAttribute("height",r);g.setAttribute("viewBox",`0 0 ${a} ${h}`);addClass(g,t.parentNode&&t.parentNode.getAttribute("class")||"");u.appendChild(g);l=ExportHelper.getStyles(t);l+=`.${FlexChartClsNames.hostElement}{margin:0px;padding:0px;border:none;width:${n}px;height:${r}px;}\n`;(c=document.createElement("style")).setAttribute("type","text/css");c.innerHTML=`<![CDATA[\n${l}\n]]>`;(d=document.createElementNS("http://www.w3.org/2000/svg","defs")).appendChild(c);g.insertBefore(d,g.firstChild);isIE()||g.querySelectorAll("foreignObject").forEach(t=>{if(g===t.parentNode)g.removeChild(t);else for(const e of t.children)e.setAttribute("xmlns","http://www.w3.org/1999/xhtml")});const f=e._currentRenderEngine.canvas;if(f){const t=document.createElementNS("http://www.w3.org/2000/svg","image");t.setAttribute("width",f.width);t.setAttribute("height",f.height);t.setAttribute("href",f.toDataURL());g.insertBefore(t,g.firstChild);e.invalidate()}ExportHelper.convertImagesToDataUrl(g,()=>{const t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(ExportHelper.doctype+u.innerHTML)));i.call(null,t)})}static convertImagesToDataUrl(t,e){const i=t.querySelectorAll("image");if(0===i.length){e();return}const s=Array.from(i);Array.from(i).forEach(t=>{const i=new Image;i.onload=()=>{const n=document.createElement("canvas");n.width=+t.getAttribute("width");n.height=+t.getAttribute("height");const r=n.getContext("2d"),a=i.width/i.height;a<n.width/n.height?r.drawImage(i,0,0,i.width,i.height,.5*(n.width-a*n.height),0,a*n.height,n.height):r.drawImage(i,0,0,i.width,i.height,0,.5*(n.height-n.width/a),n.width,n.width/a);t.setAttribute("href",n.toDataURL());i.remove();s.splice(s.indexOf(t),1);0==s.length&&e()};i.src=t.getAttribute("href")})}static getDataUri2(t,e,i){var s,n,r,a,h,o,l,_=document.createElement("div"),c=ExportHelper.cloneWithComputedStyles(t);let d=!1;if("svg"==t.tagName){n=(s=getElementRect(t.parentNode||t)).width||0;r=s.height||0;0==n&&(d=!0);a=t.viewBox.baseVal&&0!==t.viewBox.baseVal.width?t.viewBox.baseVal.width:n;h=t.viewBox.baseVal&&0!==t.viewBox.baseVal.height?t.viewBox.baseVal.height:r}else{n=(o=t.getBBox()).x+o.width;r=o.y+o.height;c.setAttribute("transform",c.getAttribute("transform").replace(/translate\(.*?\)/,""));a=n;h=r;(l=document.createElementNS("http://www.w3.org/2000/svg","svg")).appendChild(c);c=l}if(d){const t=e._renderHidden(),i=e._getHostComputedStyle();let s=0,o=0;if(i){s=e._parsePx(i.width);o=e._parsePx(i.height)}0==s&&(s=FlexChartBase._WIDTH);0==o&&(o=FlexChartBase._HEIGHT);a=n=s;h=r=o;c=ExportHelper.cloneWithComputedStyles(t)}c.setAttribute("version","1.1");c.setAttributeNS(ExportHelper.xmlns,"xmlns","http://www.w3.org/2000/svg");c.setAttributeNS(ExportHelper.xmlns,"xmlns:xlink","http://www.w3.org/1999/xlink");c.setAttribute("width",n.toString());c.setAttribute("height",r.toString());c.setAttribute("viewBox",`0 0 ${a} ${h}`);_.appendChild(c);const u=e._currentRenderEngine.canvas;if(u){const t=document.createElementNS("http://www.w3.org/2000/svg","image");t.setAttribute("width",u.width);t.setAttribute("height",u.height);t.setAttribute("href",u.toDataURL());c.insertBefore(t,c.firstChild);e.invalidate()}ExportHelper.convertImagesToDataUrl(c,()=>{const t="data:image/svg+xml;base64,"+window.btoa(window.unescape(encodeURIComponent(ExportHelper.doctype+_.innerHTML)));i.call(null,t)})}static computeAttributes(t,e,i){const s=getComputedStyle(t);i.forEach(t=>{const i=s.getPropertyValue(t);i&&i.length>0&&e.setAttribute(t,i)})}static cloneWithComputedStyles(t){const e=t.cloneNode();Array.from(t.childNodes).forEach(t=>{const i=ExportHelper.cloneWithComputedStyles(t);1===t.nodeType&&("text"===t.nodeName?ExportHelper.computeAttributes(t,i,ExportHelper.textAttrs):"line"===t.nodeName&&ExportHelper.computeAttributes(t,i,ExportHelper.lineAttrs));e.appendChild(i)});return e}static getStyles(t){var e="",i=document.styleSheets;if(null==i||0===i.length)return null;[].forEach.call(i,i=>{var s;try{if(null==i.cssRules||0===i.cssRules.length)return!0}catch(t){if("SecurityError"==t.name){console.log("SecurityError. Can't read: "+i.href);return!0}}s=i.cssRules;[].forEach.call(s,i=>{var s,n=i.style;if(null==n)return!0;let r=i.selectorText;if(isIE()&&r){const t=r.match(/\[(.*?)\]/g);t&&t.forEach(t=>{r=r.replace(t,t.replace(":","\\:"))})}try{s=r=="."+FlexChartClsNames.hostElement||t.querySelector(r)}catch(t){console.warn(`Invalid CSS selector "${i.selectorText}"`,t)}s?e+=`${i.selectorText} { ${n.cssText} }\n`:i.cssText.match(/^@font-face/)&&(e+=i.cssText+"\n")})});const s=getComputedStyle(t),n=s?s.getPropertyValue("font"):null;n&&(e+=`.${FlexChartClsNames.hostElement}{font:${n}}\n`);return e}}ExportHelper.doctype='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';ExportHelper.xmlns="http://www.w3.org/2000/xmlns/";ExportHelper.textAttrs=["font-family","font-size","font-style","font-weight","fill"];ExportHelper.lineAttrs=["stroke","stroke-width","stroke-dasharray"];export class ChartTooltip extends Tooltip{constructor(){super();this._content="<b>{seriesName}</b><br/>{x} {y}";this._threshold=15}get content(){return this._content}set content(t){t!=this._content&&(this._content=t)}get threshold(){return this._threshold}set threshold(t){t!=this._threshold&&(this._threshold=asNumber(t))}show(t,e,i){super.show(t,e,i);const s=ChartTooltip._eTip;s&&s.style&&(s.style.pointerEvents="none")}}export var ChartType;!function(t){t[t.Column=0]="Column";t[t.Bar=1]="Bar";t[t.Scatter=2]="Scatter";t[t.Line=3]="Line";t[t.LineSymbols=4]="LineSymbols";t[t.Area=5]="Area";t[t.Bubble=6]="Bubble";t[t.Candlestick=7]="Candlestick";t[t.HighLowOpenClose=8]="HighLowOpenClose";t[t.Spline=9]="Spline";t[t.SplineSymbols=10]="SplineSymbols";t[t.SplineArea=11]="SplineArea";t[t.Funnel=12]="Funnel";t[t.Step=13]="Step";t[t.StepSymbols=14]="StepSymbols";t[t.StepArea=15]="StepArea"}(ChartType||(ChartType={}));export var Stacking;!function(t){t[t.None=0]="None";t[t.Stacked=1]="Stacked";t[t.Stacked100pc=2]="Stacked100pc"}(Stacking||(Stacking={}));export class FlexChartCore extends FlexChartBase{constructor(t,e){super(t,null,!0);this._series=new ObservableArray;this._axes=new AxisCollection;this._pareas=new PlotAreaCollection;this._interpolateNulls=!1;this._legendToggle=!1;this._symbolSize=10;this._dataInfo=new _DataInfo;this.__barPlotter=null;this.__linePlotter=null;this.__areaPlotter=null;this.__bubblePlotter=null;this.__financePlotter=null;this.__funnelPlotter=null;this._plotters=[];this._rotated=!1;this._stacking=Stacking.None;this._xlabels=[];this._xvals=[];this._lblAreas=[];this._colRowLens=[];this._selectedEls=[];this._markers=[];this._bindingSeparator=",";this.seriesVisibilityChanged=new Event;this.applyTemplate(`${ControlClsNames.hostElement} ${FlexChartClsNames.hostElement}`,null,null);this._series.collectionChanged.addHandler(()=>{var t=this._series;for(let e=0;e<t.length;e++){const i=tryCast(t[e],SeriesBase);if(!i)throw"chartSeries array must contain SeriesBase objects.";i._chart=this;if(i.axisX&&null==i.axisX._chart){i.axisX._chart=this;this.axes.push(i.axisX)}if(i.axisY&&null==i.axisY._chart){i.axisY._chart=this;this.axes.push(i.axisY)}}this.invalidate()});this._currentRenderEngine=new _SvgRenderEngine(this.hostElement);this._hitTester=new _HitTester(this);this._legend=new Legend(this);this._tooltip=new ChartTooltip;this._tooltip.showDelay=0;this._lbl=new DataLabel;this._lbl._chart=this;this._initAxes();this._axes.collectionChanged.addHandler(()=>{var t=this._axes;for(let e=0;e<t.length;e++){const i=tryCast(t[e],Axis);if(!i)throw"axes array must contain Axis objects.";i._chart=this}this.invalidate()});this._pareas.collectionChanged.addHandler(()=>{var t=this._pareas;for(let e=0;e<t.length;e++){const i=tryCast(t[e],PlotArea);if(!i)throw"plotAreas array must contain PlotArea objects.";i._chart=this}this.invalidate()});this._keywords=new _KeyWords;this.addEventListener(this.hostElement,"click",t=>{var e=this._tooltip;e.content&&this.isTouching&&this._updateTooltip(e,t)});this.addEventListener(this.hostElement,"mousemove",t=>{var e=this._tooltip;e.content&&!this.isTouching&&this._updateTooltip(e,t)});this.addEventListener(this.hostElement,"mouseleave",t=>{this._hideToolTip()});this.addEventListener(this.hostElement,"click",t=>{var e=this._hitTestData(t);if(this.selectionMode!=SelectionMode.None){let i=FlexChartCore._SELECTION_THRESHOLD;this.tooltip&&this.tooltip.threshold&&(i=this.tooltip.threshold);e.distance<=i&&e.series?this._select(e.series,e.pointIndex):this.selectionMode==SelectionMode.Series&&(e=this.hitTest(t)).chartElement==ChartElement.Legend&&e.series?this._select(e.series,null):this._select(null,null)}if(!0===this.legendToggle&&(e=this.hitTest(t)).chartElement==ChartElement.Legend&&e.series){e.series.visibility==SeriesVisibility.Legend?e.series.visibility=SeriesVisibility.Visible:e.series.visibility==SeriesVisibility.Visible&&(e.series.visibility=SeriesVisibility.Legend);this.focus()}});this.deferUpdate(()=>this.initialize(e))}initialize(t){if(t&&t.renderEngine){const t=asType(this._currentRenderEngine,_SvgRenderEngine,!0);t&&t.detach();this._currentRenderEngine=null}super.initialize(t)}_initAxes(){this._axisX=new Axis(Position.Bottom);this._axisY=new Axis(Position.Left);this._axisX.majorGrid=!1;this._axisX.name="axisX";this._axisY.majorGrid=!0;this._axisY.majorTickMarks=TickMark.None;this._axisY.name="axisY";this._axisX._chart=this;this._axisY._chart=this;this._axes.push(this._axisX);this._axes.push(this._axisY)}get series(){return this._series}get axes(){return this._axes}get axisX(){return this._axisX}set axisX(t){if(t!=this._axisX){this._axisX=asType(t,Axis);const e=this._axisX;this.beginUpdate();if(e){void 0===e.majorGrid&&(e.majorGrid=!1);void 0===e.name&&(e.name="axisX");e._axisType=AxisType.X;null!=e.position&&e.position!=Position.Left&&e.position!=Position.Right&&e.position!=Position.BottomLeft&&e.position!=Position.BottomRight&&e.position!=Position.TopLeft&&e.position!=Position.TopRight&&e.position!=Position.LeftTop&&e.position!=Position.LeftBottom&&e.position!=Position.RightTop&&e.position!=Position.RightBottom||(e.position=Position.Bottom);e._chart=this}this.endUpdate()}}get axisY(){return this._axisY}set axisY(t){if(t!=this._axisY){this._axisY=asType(t,Axis);const e=this._axisY;this.beginUpdate();if(e){void 0===e.majorGrid&&(e.majorGrid=!0);void 0===e.name&&(e.name="axisY");void 0===e.majorTickMarks&&(e.majorTickMarks=TickMark.None);e._axisType=AxisType.Y;null!=e.position&&e.position!=Position.Top&&e.position!=Position.Bottom&&e.position!=Position.BottomLeft&&e.position!=Position.BottomRight&&e.position!=Position.TopLeft&&e.position!=Position.TopRight&&e.position!=Position.LeftTop&&e.position!=Position.LeftBottom&&e.position!=Position.RightTop&&e.position!=Position.RightBottom||(e.position=Position.Left);e._chart=this}this.endUpdate()}}get plotAreas(){return this._pareas}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this.invalidate()}}get bindingX(){return this._bindingX}set bindingX(t){if(t!=this._bindingX){this._bindingX=asString(t,!0);this._bindChart()}}get symbolSize(){return this._symbolSize}set symbolSize(t){if(t!=this._symbolSize){this._symbolSize=asNumber(t,!1,!0);this.invalidate()}}get interpolateNulls(){return this._interpolateNulls}set interpolateNulls(t){if(t!=this._interpolateNulls){this._interpolateNulls=asBoolean(t);this.invalidate()}}get legendToggle(){return this._legendToggle}set legendToggle(t){t!=this._legendToggle&&(this._legendToggle=asBoolean(t))}get tooltip(){return this._tooltip}get dataLabel(){return this._lbl}set dataLabel(t){if(t!=this._lbl){this._lbl=asType(t,DataLabel);this._lbl&&(this._lbl._chart=this)}}get selection(){return this._selection}set selection(t){if(t!=this._selection){this._selection=asType(t,SeriesBase,!0);this.invalidate()}}get renderEngine(){return this._currentRenderEngine}set renderEngine(t){if(t!=this._currentRenderEngine){const e=asType(this._currentRenderEngine,_SvgRenderEngine,!0);e&&e.detach();this._currentRenderEngine=t;const i=asType(this._currentRenderEngine,_SvgRenderEngine,!0);i&&i.attach(this.hostElement);this.refresh()}}onSeriesVisibilityChanged(t){this.seriesVisibilityChanged.raise(this,t)}hitTest(t,e){var i=this._toControl(t,e),s=new HitTestInfo(this,i),n=null;if(FlexChartCore._contains(this._rectHeader,i))s._chartElement=ChartElement.Header;else if(FlexChartCore._contains(this._rectFooter,i))s._chartElement=ChartElement.Footer;else if(FlexChartCore._contains(this._rectLegend,i)){s._chartElement=ChartElement.Legend;const t=i.clone();if(this.legend.scrollbar&&this._legendHost){const e=this._legendHost.querySelector(".wj-legend-scrollable");if(e){if(this.rightToLeft&&!this.legend.isVertical){const i=e.scrollWidth-e.clientWidth-1;t.x+=i+e.scrollLeft}else t.x+=e.scrollLeft;t.y+=e.scrollTop}}null!==(n=this.legend._hitTest(t))&&n>=0&&n<this.series.length&&s._setData(this.series[n])}else if(FlexChartCore._contains(this._rectChart,i)){const e=this._hitTestLabels(i);if(e){s._chartElement=ChartElement.DataLabel;s._dist=0;s._setDataPoint(e.tag)}else{const e=this._hitTester.hitTest(i);let n=null,r=null;for(let e=this.series.length-1;e>=0;e--)if(this.series[e].hitTest!==Series.prototype.hitTest){const i=this.series[e].hitTest(t);if(i){if(!n||i.distance<n.distance){n=i;r=e}if(0===i.distance)break}}if(e&&e.area)if(n&&n.distance<e.distance)s=n;else if(n&&n.distance==e.distance&&r>e.area.tag.seriesIndex)s=n;else{s._setDataPoint(e.area.tag);s._dist=e.distance}else n&&(s=n);let a=!1;this.axes.some(t=>{if(FlexChartCore._contains(t._axrect,i)){let e;if(t.axisType===AxisType.X){s._chartElement=ChartElement.AxisX;e=t._hitTest(i)}else{s._chartElement=ChartElement.AxisY;e=t._hitTest(i)}e?s._setName(e.label):s._setName("");a=!0;return!0}return!1});a||(FlexChartCore._contains(this._plotRect,i)?s._chartElement=ChartElement.PlotArea:FlexChartCore._contains(this._rectChart,i)&&(s._chartElement=ChartElement.ChartArea))}}else s._chartElement=ChartElement.None;return s}pointToData(t,e){isNumber(t)&&isNumber(e)&&(t=new Point(t,e));if(t instanceof MouseEvent){t=new Point(t.pageX,t.pageY);t=this._toControl(t)}else t=t.clone();t.x=this.axisX.convertBack(t.x);t.y=this.axisY.convertBack(t.y);return t}dataToPoint(t,e){isNumber(t)&&isNumber(e)&&(t=new Point(t,e));asType(t,Point);var i=t.clone();i.x=this.axisX.convert(i.x);i.y=this.axisY.convert(i.y);return i}dispose(){this._markers.forEach(t=>{t.remove()});this._markers=[];super.dispose()}_copy(t,e){if("series"==t){this.series.clear();const t=asArray(e);for(let e=0;e<t.length;e++){const i=this._createSeries();copy(i,t[e]);this.series.push(i)}return!0}return!1}_createSeries(){return new Series}_clearCachedValues(){for(let t=0;t<this._series.length;t++){const e=this._series[t];null==e.itemsSource&&e._clearValues()}}_performBind(){this._xDataType=null;this._xlabels.splice(0);this._xvals.splice(0);if(this._cv){const t=this._cv.items;if(t){const e=t.length,i=this.bindingX?new Binding(this.bindingX):null;for(let s=0;s<e;s++){const e=t[s];if(i){const t=i.getValue(e);if(isNumber(t)){this._xvals.push(asNumber(t));this._xDataType=DataType.Number}else if(isDate(t)){this._xvals.push(asDate(t).valueOf());this._xDataType=DataType.Date}this._xlabels.push(t)}}this._xvals.length==e?this._xlabels.splice(0):this._xvals.splice(0)}}}_hitTestSeries(t,e){var i=this._toControl(t),s=new HitTestInfo(this,i),n=this._hitTester.hitTestSeries(i,e);if(n&&n.area){s._setDataPoint(n.area.tag);s._chartElement=ChartElement.PlotArea;s._dist=n.distance}return s}_hitTestData(t){var e=this._toControl(t),i=new HitTestInfo(this,e),s=this._hitTester.hitTest(e,!0);if(s&&s.area){i._setDataPoint(s.area.tag);i._dist=s.distance}return i}_hitTestLabels(t){var e=null,i=this._lblAreas.length;for(let s=0;s<i;s++)if(this._lblAreas[s].contains(t)){e=this._lblAreas[s];break}return e}static _dist2(t,e){var i=t.x-e.x,s=t.y-e.y;return i*i+s*s}static _dist(t,e,i){return Math.sqrt(FlexChartCore._distToSegmentSquared(t,e,i))}static _distToSegmentSquared(t,e,i){var s=FlexChartCore._dist2(e,i);if(0==s)return FlexChartCore._dist2(t,e);var n=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/s;return n<0?FlexChartCore._dist2(t,e):n>1?FlexChartCore._dist2(t,i):FlexChartCore._dist2(t,new Point(e.x+n*(i.x-e.x),e.y+n*(i.y-e.y)))}_isRotated(){return this._getChartType()==ChartType.Bar?!this._rotated:this._rotated}_getChartType(){return null}_prepareRender(){this._hitTester.clear()}_renderChart(t,e,i){var s=this._rectChart.clone(),n=new Size(s.width,s.height);e.width,e.height;this._selectedEls.length=0;var r=this._getPlotter(null);r.stacking=this._stacking;if(this._curPlotter!=r){this._curPlotter&&this._curPlotter.unload();this._curPlotter=r}r.load();var a=this._isRotated();this._dataInfo.analyse(this._series,a,r.stacking,this._xvals.length>0?this._xvals:null,this.axisX._getLogBase()>0,this.axisY._getLogBase()>0);var h=r.adjustLimits(this._dataInfo,e.clone());if(a){let t=this._dataInfo.getDataTypeX();t||(t=this._xDataType);this.axisX._updateActualLimits(this._dataInfo.getDataTypeY(),h.left,h.right);this.axisY._updateActualLimits(t,h.top,h.bottom,this._xlabels,this._xvals)}else{let t=this._dataInfo.getDataTypeX();t||(t=this._xDataType);this.axisX._updateActualLimits(t,h.left,h.right,this._xlabels,this._xvals);this.axisY._updateActualLimits(this._dataInfo.getDataTypeY(),h.top,h.bottom)}var o=this._getAxes();this._updateAuxAxes(o,a);this._layout(e,n,t);t.startGroup(FlexChartCore._CSS_PLOT_AREA);t.fill="transparent";t.stroke=null;if(this.plotAreas.length>0)for(let e=0;e<this.plotAreas.length;e++){this.plotAreas[e]._render(t)}else{const e=this._plotRect;t.drawRect(e.left,e.top,e.width,e.height)}t.endGroup();var l=this._series.length;this._clearPlotters();var _,c,d,u={};for(let t=0;t<l;t++){const e=this._series[t],i=e.visibility;if((i==SeriesVisibility.Visible||i==SeriesVisibility.Plot)&&e.getValues(0)){const t=e._getAxisY(),i=this._getPlotter(e);if(!t||t==this.axisY||i instanceof _BarPlotter)i.seriesCount++;else{const e=t._uniqueId;u[e]?u[e].count+=1:u[e]={count:1,index:0}}}}this.onRendering(new RenderEventArgs(t));if(this._getChartType()!==ChartType.Funnel)for(let e=0;e<o.length;e++){const s=o[e];_=s.axisType==AxisType.X?t.startGroup(FlexChartCore._CSS_AXIS_X,this._chartRectId):t.startGroup(FlexChartCore._CSS_AXIS_Y,this._chartRectId);s._hostElement=i?_:s._hostElement;s._render(t);t.endGroup()}t.startGroup(SeriesClsNames.group);this._plotrectId="plotRect"+(1e6*Math.random()).toFixed();t.addClipRect(this._plotRect,this._plotrectId);t.options=this._options&&this._options.spline?{spline:this._options.spline.approximation}:null;for(let e=0;e<l;e++){const s=this._series[e];s._pointIndexes=[];const n=this._getPlotter(s);s._plotter=n;const r=t.startGroup(s.cssClass,n.clipping?this._plotrectId:null);s._hostElement=i?r:s._hostElement;const a=s.visibility;let h=s.axisX,o=s.axisY;h||(h=this.axisX);o||(o=this.axisY);if(a==SeriesVisibility.Visible||a==SeriesVisibility.Plot){const e=u[o._uniqueId];if(!e||n instanceof _BarPlotter){c=n.seriesIndex;d=n.seriesCount;n.seriesIndex++;s.onRendering(t,c,d)||n.plotSeries(t,h,o,s,this,c,d)}else{c=e.index;d=e.count;e.index++;s.onRendering(t,c,d)||n.plotSeries(t,h,o,s,this,c,d)}s.onRendered(t)}t.endGroup()}t.endGroup();this._lblAreas=[];this.dataLabel.content&&this.dataLabel.position!=LabelPosition.None&&this._renderLabels(t);this._highlightCurrent();this.onRendered(new RenderEventArgs(t))}_getDesiredLegendSize(t,e,i,s){const n=new Size,r=this.series,a=r.length;this.legend.scrollbar;let h=0,o=0;this._colRowLens=[];for(let l=0;l<a;l++){let _=l;this._legendReversed()&&(_=a-l-1);const c=tryCast(r[_],SeriesBase),d=c.visibility;if(!c.name||d==SeriesVisibility.Hidden||d==SeriesVisibility.Plot)continue;const u=c.legendItemLength();for(let r=0;r<u;r++){const a=c.measureLegendItem(t,r);if(e){if(h+a.height>s&&!this.legend.scrollbar){n.height=s;this._colRowLens.push(o);o=0;h=0}o<a.width&&(o=a.width);h+=a.height}else{if(o+a.width>i&&!this.legend.scrollbar){n.width=i;this._colRowLens.push(h);h=0;o=0}h<a.height&&(h=a.height);o+=a.width}}}if(e){n.height<h&&(n.height=h);this._colRowLens.push(o);n.width=this._colRowLens.reduce((t,e)=>t+e,0)}else{n.width<o&&(n.width=o);this._colRowLens.push(h);n.height=this._colRowLens.reduce((t,e)=>t+e,0)}return n}_renderLegend(t,e,i,s,n,r){var a,h=this.series,o=h.length,l=e.clone(),_=0;if(this._legendReversed()){for(let c=o-1;c>=0;c--){a=tryCast(h[c],SeriesBase);_=this._renderLegendElements(t,a,e,l,i,s,n,r,_)}i.reverse()}else for(let c=0;c<o;c++){a=tryCast(h[c],SeriesBase);_=this._renderLegendElements(t,a,e,l,i,s,n,r,_)}}_legendReversed(){if(null==this._legend.reverse||null===this._legend.reverse){let t=!1;const e=this._getChartType();(e===ChartType.Bar||e===ChartType.Column&&this._rotated)&&(this._stacking!==Stacking.None||this.axisY.reversed||(t=!0));return t}return this._legend.reverse}_renderLegendElements(t,e,i,s,n,r,a,h,o){var l=new Rect(i.x,i.y,a,h),_=o;if(!e)return _;var c=e.visibility;if(!e.name||c==SeriesVisibility.Hidden||c==SeriesVisibility.Plot){e._legendElement=null;n.push(null);return _}var d=e.legendItemLength(),u=t.startGroup(e.cssClass);if(c==SeriesVisibility.Legend){u.setAttribute("opacity","0.5");e._legendElement=u}else c==SeriesVisibility.Visible?e._legendElement=u:e._legendElement=null;for(let a=0;a<d;a++){const h=e.measureLegendItem(t,a);if(r){if(s.y+h.height>l.bottom+1&&!this.legend.scrollbar){s.x+=this._colRowLens[_];_++;s.y=i.y}}else if(s.x+h.width>l.right+1&&!this.legend.scrollbar){s.y+=this._colRowLens[_];_++;s.x=i.x}const o=new Rect(s.x,s.y,h.width,h.height);c!=SeriesVisibility.Legend&&c!=SeriesVisibility.Visible||e.drawLegendItem(t,o,a);n.push(o);r?s.y+=h.height:s.x+=h.width}t.endGroup();return _}_renderLabels(t){var e=this.series,i=e.length;t.stroke="null";t.fill="transparent";t.strokeWidth=1;var s=FlexChartCore._CSS_DATA_LABELS;t.startGroup(s);for(let s=0;s<i;s++){const i=e[s],n=this._hitTester._map[s];n&&i._renderLabels(t,n,this,this._lblAreas)}t.endGroup()}_getAxes(){var t=[this.axisX,this.axisY],e=this.series.length;for(let i=0;i<e;i++){const e=this.series[i],s=e.axisX;s&&-1===t.indexOf(s)&&t.push(s);const n=e.axisY;n&&-1===t.indexOf(n)&&t.push(n)}return t}_clearPlotters(){var t=this._plotters.length;for(let e=0;e<t;e++)this._plotters[e].clear()}_initPlotter(t){t.chart=this;t.dataInfo=this._dataInfo;t.hitTester=this._hitTester;this._plotters.push(t)}get _barPlotter(){if(null===this.__barPlotter){this.__barPlotter=new _BarPlotter;this._initPlotter(this.__barPlotter)}return this.__barPlotter}get _linePlotter(){if(null===this.__linePlotter){this.__linePlotter=new _LinePlotter;this._initPlotter(this.__linePlotter)}return this.__linePlotter}get _areaPlotter(){if(null===this.__areaPlotter){this.__areaPlotter=new _AreaPlotter;this._initPlotter(this.__areaPlotter)}return this.__areaPlotter}get _bubblePlotter(){if(null===this.__bubblePlotter){this.__bubblePlotter=new _BubblePlotter;this._initPlotter(this.__bubblePlotter)}return this.__bubblePlotter}get _financePlotter(){if(null===this.__financePlotter){this.__financePlotter=new _FinancePlotter;this._initPlotter(this.__financePlotter)}return this.__financePlotter}get _funnelPlotter(){if(null===this.__funnelPlotter){this.__funnelPlotter=new _FunnelPlotter;this._initPlotter(this.__funnelPlotter)}return this.__funnelPlotter}_getPlotter(t){var e,i=this._getChartType(),s=!1;if(t){const e=t._getChartType();if(null!=e&&e!=i){i=e;s=!0}}switch(i){case ChartType.Column:this._barPlotter.isVolume=!1;this._barPlotter.width=.7;e=this._barPlotter;break;case ChartType.Bar:this._barPlotter.rotated=!this._rotated;this._barPlotter.isVolume=!1;this._barPlotter.width=.7;e=this._barPlotter;break;case ChartType.Line:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.Scatter:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!1;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.LineSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.Area:this._areaPlotter.isSpline=!1;this._areaPlotter.isStep=!1;e=this._areaPlotter;break;case ChartType.Bubble:e=this._bubblePlotter;break;case ChartType.Candlestick:{const t=this._financePlotter;t.isCandle=!0;t.isEqui=!1;t.isArms=!1;t.isVolume=!1;e=t;break}case ChartType.HighLowOpenClose:{const t=this._financePlotter;t.isCandle=!1;t.isEqui=!1;t.isArms=!1;t.isVolume=!1;e=t;break}case ChartType.Spline:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!0;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.SplineSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!0;this._linePlotter.isStep=!1;e=this._linePlotter;break;case ChartType.SplineArea:this._areaPlotter.isSpline=!0;this._areaPlotter.isStep=!1;e=this._areaPlotter;break;case ChartType.Funnel:e=this._funnelPlotter;break;case ChartType.Step:this._linePlotter.hasSymbols=!1;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!0;e=this._linePlotter;break;case ChartType.StepSymbols:this._linePlotter.hasSymbols=!0;this._linePlotter.hasLines=!0;this._linePlotter.isSpline=!1;this._linePlotter.isStep=!0;e=this._linePlotter;break;case ChartType.StepArea:this._areaPlotter.isSpline=!1;this._areaPlotter.isStep=!0;e=this._areaPlotter;break;default:throw"Invalid chart type."}e.rotated=this._rotated;i==ChartType.Bar&&(e.rotated=!e.rotated);s&&(e.rotated=this._isRotated());return e}_layout(t,e,i){this.plotAreas.length>0?this._layoutMultiple(t,e,i):this._layoutSingle(t,e,i)}_layoutSingle(t,e,i){var s=t.width,n=t.height,r=new Size(s,.75*n),a=new Size(n,.75*s),h=0,o=0,l=s,_=n,c=0,d=0,u=s,g=n;if(this.dataLabel.position===LabelPosition.Top?this.dataLabel.content:null){o=i.measureString(this.dataLabel.content,DataLabelClsNames.label).height}var p=this._getAxes(),f=this.axisY._getHeight(i,n);for(let t=0;t<p.length;t++){const e=p[t],m=e.origin,x=e._getPosition();if(e.axisType==AxisType.X){let t=e._getHeight(i,Math.max(10,s-f));t>r.height&&(t=r.height);e._desiredSize=new Size(r.width,t);e._hasOrigin=isNumber(m)&&m>this.axisY._getMinNum()&&m<this.axisY._getMaxNum();const n=e._hasOrigin,a=Math.min(.25*s,e._annoSize.width);if(x==Position.Bottom){h=Math.max(h,.5*a);l=Math.min(l,s-.5*a);if(n){const e=this._convertY(m,d,g);g-=Math.max(0,e+t-g)}else g-=t}else if(x==Position.Top){h=Math.max(h,.5*a);l=Math.min(l,s-.5*a);if(n){const e=this._convertY(m,d,g);d+=Math.max(0,d-(e-t))}else d+=t}}else if(e.axisType==AxisType.Y){let t=e===this.axisX?f:e._getHeight(i,n);t>a.height&&(t=a.height);e._desiredSize=new Size(a.width,t);e._hasOrigin=isNumber(m)&&m>this.axisX._getMinNum()&&m<this.axisX._getMaxNum();const s=e._hasOrigin;if(x==Position.Left){if(e._actualAngle<0)_=Math.min(_,n-e._annoSize.height);else if(e._actualAngle>0)o=Math.max(o,e._annoSize.height);else{o=Math.max(o,e._annoSize.height);_=Math.min(_,n-e._annoSize.height)}if(s){const e=this._convertX(m,c,u);c+=Math.max(0,c-(e-t))}else c+=t}else if(x==Position.Right){if(e._actualAngle>0)_=Math.min(_,n-e._annoSize.height);else if(e._actualAngle<0)o=Math.max(o,e._annoSize.height);else{o=Math.max(o,e._annoSize.height);_=Math.min(_,n-e._annoSize.height)}if(s){const e=this._convertX(m,c,u);u-=Math.max(0,e+t-u)}else u-=t}}}var m,x,b=this._parseMargin(this.plotMargin);h=c=isNaN(b.left)?Math.max(h,c)+t.left:b.left;l=u=isNaN(b.right)?Math.min(l,u)+t.left:e.width-b.right;o=d=isNaN(b.top)?Math.max(o,d)+t.top:b.top;_=g=isNaN(b.bottom)?Math.min(_,g)+t.top:e.height-b.bottom;s=Math.max(1,l-h);n=Math.max(1,_-o);this._plotRect=new Rect(h,o,s,n);_<=o&&(g=d+1);i.stroke=null;for(let t=0;t<p.length;t++){const e=p[t],i=e.origin,r=e._getPosition();if(e.axisType==AxisType.X){if(e._hasOrigin){const t=this._convertY(i,this._plotRect.top,this._plotRect.bottom);if(r==Position.Bottom){m=new Rect(h,t,s,e._desiredSize.height);g+=Math.max(0,m.bottom-this._plotRect.bottom)}else if(r==Position.Top){m=new Rect(h,t-e._desiredSize.height,s,e._desiredSize.height);d-=Math.max(0,this._plotRect.top-m.top)}else m=new Rect(h,t,s,1)}else if(r==Position.Bottom){m=new Rect(h,g,s,e._desiredSize.height);g+=e._desiredSize.height}else if(r==Position.Top){m=new Rect(h,d-e._desiredSize.height,s,e._desiredSize.height);d-=e._desiredSize.height}else m=new Rect(h,d,s,1);e._layout(m,this._plotRect)}else if(e.axisType==AxisType.Y){if(e._hasOrigin){const t=this._convertX(i,this._plotRect.left,this._plotRect.right);if(r==Position.Left){x=new Rect(t-e._desiredSize.height,o,n,e._desiredSize.height);c-=e._desiredSize.height}else if(r==Position.Right){x=new Rect(t,o,n,e._desiredSize.height);u+=e._desiredSize.height}else x=new Rect(t,o,n,1)}else if(r==Position.Left){x=new Rect(c-e._desiredSize.height,o,n,e._desiredSize.height);c-=e._desiredSize.height}else if(r==Position.Right){x=new Rect(u,o,n,e._desiredSize.height);u+=e._desiredSize.height}else x=new Rect(c,o,n,1);e._layout(x,this._plotRect)}}}_layoutMultiple(t,e,i){var s=t.width,n=t.height,r=[],a=[],h=this._getAxes(),o=h.length;for(let t=0;t<o;t++){const e=h[t];e._plotrect=null;if(e.axisType==AxisType.X){const t=e.plotArea?e.plotArea.column:0;for(;r.length<=t;)r.push(new _AreaDef);r[t].axes.push(e)}else if(e.axisType==AxisType.Y){const t=e.plotArea?e.plotArea.row:0;for(;a.length<=t;)a.push(new _AreaDef);a[t].axes.push(e)}}var l=r.length,_=a.length,c=new Size(s,.3*n),d=new Size(n,.3*s),u=0,g=0,p=s,f=n;for(let t=0;t<l;t++){const e=r[t];e.right=s;e.bottom=n;for(let r=0;r<e.axes.length;r++){const a=e.axes[r];let h=a._getHeight(i,a.axisType==AxisType.X?s:n);h>c.height&&(h=c.height);const o=new Size(c.width,h);a._desiredSize=o;0==t&&(e.left=Math.max(e.left,.5*a._annoSize.width));t==l-1&&(e.right=Math.min(e.right,s-.5*a._annoSize.width));const _=a._getPosition();_==Position.Bottom?e.bottom-=o.height:_==Position.Top&&(e.top+=o.height)}}for(let t=0;t<_;t++){const e=a[t];e.right=s;e.bottom=n;for(let r=0;r<e.axes.length;r++){const a=e.axes[r],h=new Size(d.width,a._getHeight(i,a.axisType==AxisType.X?s:n));h.height>d.height&&(h.height=d.height);a._desiredSize=h;0==t&&(e.top=Math.max(e.top,.5*a._annoSize.width));t==_-1&&(e.bottom=Math.min(e.bottom,n-.5*a._annoSize.width));const o=a._getPosition();o==Position.Left?e.left+=h.height:o==Position.Right&&(e.right-=h.height)}}var m=0,x=0,b=s,y=n;for(let t=0;t<l;t++){const e=r[t];m=Math.max(m,e.left);x=Math.max(x,e.top);b=Math.min(b,e.right);y=Math.min(y,e.bottom)}for(let t=0;t<_;t++){const e=a[t];m=Math.max(m,e.left);x=Math.max(x,e.top);b=Math.min(b,e.right);y=Math.min(y,e.bottom)}m=u=Math.max(u,m);b=p=Math.min(p,b);x=g=Math.max(g,x);y=f=Math.min(f,y);this._plotRect=new Rect(u,g,p-u,f-g);var S,v=this._plotRect.clone(),w=u,C=this.plotAreas._calculateWidths(this._plotRect.width,l);for(let t=0;t<l;t++){y=f;x=g;const e=r[t],i=C[t];for(let t=0;t<e.axes.length;t++){const s=e.axes[t],n=s._getPosition(),r=new Rect(w,v.top,i,v.height);if(n==Position.Bottom){S=new Rect(w,y,i,s._desiredSize.height);y+=s._desiredSize.height}else if(n==Position.Top){S=new Rect(w,x-s._desiredSize.height,i,s._desiredSize.height);x-=s._desiredSize.height}s._layout(S,r)}for(let e=0;e<this.plotAreas.length;e++){const s=this.plotAreas[e];s.column==t&&s._setPlotX(w,i)}w+=i}var T,M=g,P=this.plotAreas._calculateHeights(this._plotRect.height,_);for(let t=0;t<_;t++){m=u;b=p;const e=a[t],i=P[t];for(let t=0;t<e.axes.length;t++){const s=e.axes[t],n=s._getPosition(),r=new Rect(v.left,M,v.width,i);if(s._plotrect){r.left=s._plotrect.left;r.width=s._plotrect.width}else C&&C.length>0&&(r.width=C[0]);if(n==Position.Left){T=new Rect(m-s._desiredSize.height,M,i,s._desiredSize.height);m-=s._desiredSize.height}else if(n==Position.Right){T=new Rect(b,M,i,s._desiredSize.height);b+=s._desiredSize.height}s._layout(T,r)}for(let e=0;e<this.plotAreas.length;e++){const s=this.plotAreas[e];s.row==t&&s._setPlotY(M,i)}M+=i}}_convertX(t,e,i){var s=this.axisX;return s.reversed?i-(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum()):e+(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum())}_convertY(t,e,i){var s=this.axisY;return s.reversed?e+(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum()):i-(i-e)*(t-s._getMinNum())/(s._getMaxNum()-s._getMinNum())}_getLabelContent(t,e){return t.chartElement!==ChartElement.AxisX&&t.chartElement!==ChartElement.AxisY||!t.name?isString(e)?this._keywords.replace(e,t):isFunction(e)?e(t):null:t.name}_select(t,e){const i=this.selectionMode;var s=!1;(t!=this._selection||i==SelectionMode.Point&&e!=this._selectionIndex)&&(s=!0);this._selection&&this._highlight(this._selection,!1,this._selectionIndex);this._selection=t;this._selectionIndex=e;this._selection&&this._highlight(this._selection,!0,this._selectionIndex);if(i==SelectionMode.Point){const i=t?t.collectionView:this._cv;if(i){this._notifyCurrentChanged=!1;i.moveCurrentToPosition(t?e:-1);this._notifyCurrentChanged=!0}}s&&this.onSelectionChanged()}_highlightCurrent(){if(this.selectionMode!=SelectionMode.None){const t=this._selection;let e=-1;if(t){let i=t.collectionView;i||(i=this._cv);i&&(e=i.currentPosition);this._highlight(t,!0,e)}}}_highlight(t,e,i){t=asType(t,SeriesBase,!0);if(this.selectionMode==SelectionMode.Series){const i=this.series.indexOf(t),s=t.hostElement;e?s.parentNode.appendChild(s):s.parentNode.insertBefore(s,s.parentNode.childNodes.item(i));const n=this._find(s,["rect","ellipse","polyline","polygon","line","path"]);this._highlightItems(n,FlexChartCore._CSS_SELECTION,e);t.legendElement&&this._highlightItems(this._find(t.legendElement,["rect","ellipse","line"]),FlexChartCore._CSS_SELECTION,e)}else if(this.selectionMode==SelectionMode.Point){const s=this.series.indexOf(t),n=t.hostElement;if(e){n.parentNode.appendChild(n);const s=t.getPlotElement(i);if(s)if(s instanceof SVGElement){if("g"!=s.nodeName){this._highlightItems([s],FlexChartCore._CSS_SELECTION,e);this._selectedEls.push(s)}const t=this._find(s,["line","rect","ellipse","path","polygon"]);if(t.length>0){this._highlightItems(t,FlexChartCore._CSS_SELECTION,e);for(let e=0;e<t.length;e++)this._selectedEls.push(t[e])}}else if(Array.isArray(s)){this._highlightItems(s,FlexChartCore._CSS_SELECTION,e);for(let t=0;t<s.length;t++)this._selectedEls.push(s[t])}}else{n.parentNode.insertBefore(n,n.parentNode.childNodes.item(s));if(this._selectedEls.length>0){this._highlightItems(this._selectedEls,FlexChartCore._CSS_SELECTION,e);this._selectedEls.length=0}}}}_updateTooltip(t,e){const i=this.hitTest(e);let s;if(i.distance<=t.threshold){let e=t.content;if(i.series){const t=i.series.tooltipContent;(t||""===t)&&(e=t)}s=this._getLabelContent(i,e)}this._hideToolTip();s&&this._showToolTip(s,new Rect(e.clientX,e.clientY,5,5))}_updateAuxAxes(t,e){let i,s;for(let n=2;n<t.length;n++){const r=t[n];r._chart=this;const a=[];for(let t=0;t<this.series.length;t++){const e=this.series[t];e.axisX!=r&&e.axisY!=r||a.push(e)}for(let t=0;t<a.length;t++){const n=a[t].getDataRect()||a[t]._getDataRect();if(n)if(r.axisType==AxisType.X&&!e||r.axisType==AxisType.Y&&e){(void 0===i||n.left<i)&&(i=n.left);(void 0===s||n.right>s)&&(s=n.right)}else{(void 0===i||n.top<i)&&(i=n.top);(void 0===s||n.bottom>s)&&(s=n.bottom)}}let h=a[0].getDataType(0);null==h&&(h=DataType.Number);t[n]._updateActualLimits(h,i,s)}}}FlexChartCore._CSS_AXIS_X=AxisClsNames.axisX;FlexChartCore._CSS_AXIS_Y=AxisClsNames.axisY;FlexChartCore._CSS_LINE=AxisClsNames.line;FlexChartCore._CSS_GRIDLINE=AxisClsNames.gridline;FlexChartCore._CSS_TICK=AxisClsNames.tick;FlexChartCore._CSS_GRIDLINE_MINOR=AxisClsNames.gridlineMinor;FlexChartCore._CSS_TICK_MINOR=AxisClsNames.tickMinor;FlexChartCore._CSS_DATA_LABELS=DataLabelClsNames.labels;class _AreaDef{constructor(){this._axes=[];this.left=0;this.right=0;this.top=0;this.bottom=0}get axes(){return this._axes}}export class _DataInfo{constructor(){this.stackAbs={};this._xvals=null}analyse(t,e,i,s,n,r){this.minY=NaN;this.maxY=NaN;this.minX=NaN;this.maxX=NaN;this.minXp=NaN;this.minYp=NaN;this.dx=0;var a,h={},o={},l={};this.dataTypeX=null;this.dataTypeY=null;this._xvals=s;if(null!=s){const t=s.length;for(let e=0;e<t;e++){const t=s[e];(isNaN(this.minX)||this.minX>t)&&(this.minX=t);(isNaN(this.maxX)||this.maxX<t)&&(this.maxX=t);t>0&&(isNaN(this.minXp)||this.minXp>t)&&(this.minXp=t);if(e>0){const i=Math.abs(t-s[e-1]);!isNaN(i)&&(i<this.dx||0==this.dx)&&(this.dx=i)}}}for(let n=0;n<t.length;n++){const r=t[n],_=r._getChartType(),c=void 0!==r.chartType,d=r.visibility;if(d==SeriesVisibility.Hidden||d==SeriesVisibility.Legend)continue;const u=r.getDataRect();if(u){if(!isNaN(this.minX)&&this.minX<u.left){a=u.right;u.left=this.minX;u.width=a-this.minX}!isNaN(this.maxX)&&this.maxX>u.right&&(u.width=this.maxX-u.left);if(!r._isCustomAxisY()){if(!isNaN(this.minY)&&this.minY<u.top){a=u.bottom;u.top=this.minY;u.height=a-this.minY}!isNaN(this.maxY)&&this.maxY>u.bottom&&(u.height=this.maxY-u.top)}}let g=null;e?r._isCustomAxisY()||(g=r.getValues(1)):r._isCustomAxisX()||(g=r.getValues(1));if(g){this.dataTypeX||(this.dataTypeX=r.getDataType(1));for(let t=0;t<g.length;t++){const e=g[t];if(isFinite(e)){(isNaN(this.minX)||this.minX>e)&&(this.minX=e);(isNaN(this.maxX)||this.maxX<e)&&(this.maxX=e);if(t>0&&(!_||_==ChartType.Column||_==ChartType.Bar)){const i=Math.abs(e-g[t-1]);!isNaN(i)&&i>0&&(i<this.dx||0==this.dx)&&(this.dx=i)}}}}let p=null,f=!1;if(e){f=r._isCustomAxisX();p=r.getValues(0)}else{f=r._isCustomAxisY();p=r.getValues(0)}if(p){this.dataTypeY||f||(this.dataTypeY=r.getDataType(0));isNaN(this.minX)?this.minX=0:g||s||(this.minX=Math.min(this.minX,0));isNaN(this.maxX)?this.maxX=p.length-1:g||s||(this.maxX=Math.max(this.maxX,p.length-1));if(!f){const t=i==Stacking.None||c;for(let e=0;e<p.length;e++){const i=p[e],n=g?asNumber(g[e],!0):s?asNumber(s[e],!0):e;isArray(i)?i.forEach(e=>{this._parseYVal(e,n,t,l,h,o)}):this._parseYVal(i,n,t,l,h,o)}}}const m=r.getDataRect(new Rect(this.minX,this.minY,this.maxX-this.minX,this.maxY-this.minY),u);if(m){this.minX=m.left;this.maxX=m.right;if(!f){this.minY=m.top;this.maxY=m.bottom}}}if(i==Stacking.Stacked){for(const t in h)h[t]>this.maxY&&(this.maxY=h[t]);for(const t in o)o[t]<this.minY&&(this.minY=o[t])}else if(i==Stacking.Stacked100pc){this.minY=0;this.maxY=0;for(const t in l){const e=l[t];if(isFinite(e)&&0!=e){let i=h[t],s=o[t];if(isFinite(i)){i=Math.max(i/e,this.maxY);i>this.maxY&&(this.maxY=i)}if(isFinite(s)){s=Math.min(s/e,this.minY);s<this.minY&&(this.minY=s)}}}if(this.minY==this.maxY){this.minY=0;this.maxY=1}}this.stackAbs=l;n&&(e?this.minY=isNaN(this.minYp)?1:this.minYp:this.minX=isNaN(this.minXp)?1:this.minXp);r&&(e?this.minX=isNaN(this.minXp)?1:this.minXp:this.minY=isNaN(this.minYp)?1:this.minYp)}_parseYVal(t,e,i,s,n,r){if(isFinite(t)){null!=t&&(isNaN(this.minY)||this.minY>t)&&(this.minY=t);null!=t&&(isNaN(this.maxY)||this.maxY<t)&&(this.maxY=t);t>0&&(isNaN(this.minYp)||this.minYp>t)&&(this.minYp=t);if(!i){t>0?isNaN(n[e])?n[e]=t:n[e]+=t:isNaN(r[e])?r[e]=t:r[e]+=t;isNaN(s[e])?s[e]=Math.abs(t):s[e]+=Math.abs(t)}}}getMinY(){return this.minY}getMaxY(){return this.maxY}getMinX(){return this.minX}getMaxX(){return this.maxX}getMinXp(){return this.minXp}getMinYp(){return this.minYp}getDeltaX(){return this.dx}getDataTypeX(){return this.dataTypeX}getDataTypeY(){return this.dataTypeY}getStackedAbsSum(t){var e=this.stackAbs[t];return isFinite(e)?e:0}getXVals(){return this._xvals}static isValid(...t){const e=t.length;for(let i=0;i<e;i++)if(!isFinite(t[i]))return!1;return!0}}export class FlexChart extends FlexChartCore{constructor(t,e){super(t,null);this._chartType=ChartType.Column;this.initialize(e)}_getChartType(){return this._chartType}get chartType(){return this._chartType}set chartType(t){if((t=asEnum(t,ChartType))!=this._chartType){this._chartType=t;this.invalidate()}}get rotated(){return this._rotated}set rotated(t){if(t!=this._rotated){this._rotated=asBoolean(t);this.invalidate()}}get stacking(){return this._stacking}set stacking(t){if((t=asEnum(t,Stacking))!=this._stacking){this._stacking=t;this.invalidate()}}get options(){return this._options}set options(t){if(t!=this._options){this._options=t;this.invalidate()}}}export var LabelPosition;!function(t){t[t.None=0]="None";t[t.Left=1]="Left";t[t.Top=2]="Top";t[t.Right=3]="Right";t[t.Bottom=4]="Bottom";t[t.Center=5]="Center"}(LabelPosition||(LabelPosition={}));export var PieLabelPosition;!function(t){t[t.None=0]="None";t[t.Inside=1]="Inside";t[t.Center=2]="Center";t[t.Outside=3]="Outside";t[t.Radial=4]="Radial";t[t.Circular=5]="Circular"}(PieLabelPosition||(PieLabelPosition={}));export class DataLabelRenderEventArgs extends RenderEventArgs{constructor(t,e,i,s){super(t);this.cancel=!1;this._ht=e;this._pt=i;this._text=s}get point(){return this._pt}get text(){return this._text}set text(t){this._text=asString(t)}get hitTestInfo(){return this._ht}}export class DataLabelBase{constructor(){this.rendering=new Event}get content(){return this._content}set content(t){if(t!=this._content){this._content=t;this._invalidate()}}get border(){return this._bdr}set border(t){if(t!=this._bdr){this._bdr=asBoolean(t,!0);this._invalidate()}}get offset(){return this._off}set offset(t){if(t!=this._off){this._off=asNumber(t,!0);this._invalidate()}}get connectingLine(){return this._line}set connectingLine(t){if(t!=this._line){this._line=asBoolean(t,!0);this._invalidate()}}onRendering(t){this.rendering.raise(this,t);return!t.cancel}_invalidate(){this._chart&&this._chart.invalidate()}}export class DataLabel extends DataLabelBase{constructor(){super(...arguments);this._pos=LabelPosition.Top}get position(){return this._pos}set position(t){if((t=asEnum(t,LabelPosition))!=this._pos){this._pos=t;this._invalidate()}}}export class PieDataLabel extends DataLabelBase{constructor(){super(...arguments);this._pos=PieLabelPosition.Center}get position(){return this._pos}set position(t){if((t=asEnum(t,PieLabelPosition))!=this._pos){this._pos=t;this._invalidate()}}}export class _DataPoint{constructor(t,e,i,s){this._seriesIndex=t;this._pointIndex=e;this._dataX=i;this._dataY=s}get seriesIndex(){return this._seriesIndex}get pointIndex(){return this._pointIndex}get dataX(){return this._dataX}set dataX(t){t!==this._dataX&&(this._dataX=t)}get dataY(){return this._dataY}set dataY(t){t!==this._dataY&&(this._dataY=t)}}export var _MeasureOption;!function(t){t[t.X=0]="X";t[t.Y=1]="Y";t[t.XY=2]="XY"}(_MeasureOption||(_MeasureOption={}));export class _RectArea{constructor(t){this._rect=t}get rect(){return this._rect}contains(t){var e=this._rect;return t.x>=e.left&&t.x<=e.right&&t.y>=e.top&&t.y<=e.bottom}pointDistance(t,e,i){var s=e.x-t.x,n=e.y-t.y;return i==_MeasureOption.X?Math.abs(s):i==_MeasureOption.Y?Math.abs(n):Math.sqrt(s*s+n*n)}distance(t){var e=_MeasureOption.XY;isNaN(t.x)||null===t.x?e=_MeasureOption.Y:(isNaN(t.y)||null===t.y)&&(e=_MeasureOption.X);var i=this._rect;return t.x<i.left?t.y<i.top?this.pointDistance(t,new Point(i.left,i.top),e):t.y>i.bottom?this.pointDistance(t,new Point(i.left,i.bottom),e):e==_MeasureOption.Y?0:i.left-t.x:t.x>i.right?t.y<i.top?this.pointDistance(t,new Point(i.right,i.top),e):t.y>i.bottom?this.pointDistance(t,new Point(i.right,i.bottom),e):e==_MeasureOption.Y?0:t.x-i.right:e==_MeasureOption.X?0:t.y<i.top?i.top-t.y:t.y>i.bottom?t.y-i.bottom:0}}export class _CircleArea{constructor(t,e){this._center=t;this.setRadius(e)}setRadius(t){this._rad=t;this._rad2=t*t}get center(){return this._center}contains(t){var e=this._center.x-t.x,i=this._center.y-t.y;return e*e+i*i<=this._rad2}distance(t){var e=isNaN(t.x)?0:this._center.x-t.x,i=isNaN(t.y)?0:this._center.y-t.y,s=e*e+i*i;return s<=this._rad2?0:Math.sqrt(s)-this._rad}}export class _LinesArea{constructor(t,e){this._x=[];this._y=[];this._x=t;this._y=e}contains(t){return!1}distance(t){var e=NaN;for(let i=0;i<this._x.length-1;i++){const s=FlexChartCore._dist(t,new Point(this._x[i],this._y[i]),new Point(this._x[i+1],this._y[i+1]));(isNaN(e)||s<e)&&(e=s)}return e}}export class _HitResult{}export class _HitTester{constructor(t){this._map={};this._chart=t}add(t,e){if(this._map[e]){t.tag||(t.tag=new _DataPoint(e,NaN,NaN,NaN));this._map[e].push(t)}}clear(){this._map={};var t=this._chart.series;for(let e=0;e<t.length;e++)t[e].hitTest===Series.prototype.hitTest&&(this._map[e]=[])}hitTest(t,e=!1){var i=null,s=Number.MAX_VALUE;for(let n=this._chart.series.length-1;n>=0;n--){const r=this._map[n];if(r){for(let n=r.length-1;n>=0;n--){const a=r[n];if(tryCast(a,_LinesArea)&&!e)continue;const h=a.distance(t);if(h<s){i=a;if(0==(s=h))break}}if(0==s)break}}if(i){const t=new _HitResult;t.area=i;t.distance=s;return t}return null}hitTestSeries(t,e){var i=null,s=Number.MAX_VALUE,n=this._map[e];if(n){for(let e=n.length-1;e>=0;e--){const r=n[e],a=r.distance(t);if(a<s){i=r;if(0==(s=a))break}}}if(i){const t=new _HitResult;t.area=i;t.distance=s;return t}return null}}export var ChartElement;!function(t){t[t.PlotArea=0]="PlotArea";t[t.AxisX=1]="AxisX";t[t.AxisY=2]="AxisY";t[t.ChartArea=3]="ChartArea";t[t.Legend=4]="Legend";t[t.Header=5]="Header";t[t.Footer=6]="Footer";t[t.Series=7]="Series";t[t.SeriesSymbol=8]="SeriesSymbol";t[t.DataLabel=9]="DataLabel";t[t.None=10]="None"}(ChartElement||(ChartElement={}));export class HitTestInfo{constructor(t,e,i){this._pointIndex=null;this._chartElement=ChartElement.None;this._chart=t;this._pt=e;this._chartElement=i}get chart(){return this._chart}get point(){return this._pt}get series(){return this._series}get pointIndex(){return this._pointIndex}get chartElement(){return this._chartElement}get distance(){return this._dist}get item(){if(null==this._item&&null!==this.pointIndex)if(null!=this.series)this._item=this.series._getItem(this.pointIndex);else{const t=this._chart._getHitTestItem(this.pointIndex);t&&(this._item=t)}return this._item}get x(){void 0===this._x&&(this._x=this._getValue(1,!1));return this._x}get y(){void 0===this._y&&(this._y=this._getValue(0,!1));return this._y}get value(){var t=this._chart._getHitTestValue(this.pointIndex,this._groupIndex);return null!=t?t:this.series&&null!=this.series._getValue?this.series._getValue(this.pointIndex):this.y}get name(){if(void 0===this._name){const t=this._chart._getHitTestLabel(this.pointIndex);return null==t?this.series.name:t.toString()}return this._name}get groupIndex(){return this._groupIndex}get _xfmt(){void 0===this.__xfmt&&(this.__xfmt=this._getValue(1,!0));return this.__xfmt}get _yfmt(){void 0===this.__yfmt&&(this.__yfmt=this._getValue(0,!0));return this.__yfmt}_setData(t,e){this._series=t;this._pointIndex=e}_setDataGroup(t,e){this._groupIndex=t;this._pointIndex=e}_setName(t){this._name=t;t&&(this._dist=0)}_setDataPoint(t){if(t=asType(t,_DataPoint,!0)){this._pointIndex=t.pointIndex;const e=asType(this._chart,FlexChartCore,!0),i=t.seriesIndex;null!==i&&i>=0&&i<e.series.length&&(this._series=e.series[i]);null!=t.item&&(this._item=t.item);null!=t.x&&(this._x=t.x);null!=t.y&&(this._y=t.y);null!=t.xfmt&&(this.__xfmt=t.xfmt);null!=t.yfmt&&(this.__yfmt=t.yfmt);null!=t.name&&(this._name=t.name)}}_getValueFmt(){let t=this.value;if(null!=t){if(null==this.series){const e=t==Math.round(t)?"{val:n0}":"{val:n}";return format(e,{val:t})}t=this._chart._isRotated()?this.ax._formatValue(t):this.ay._formatValue(t)}return t}_getValue(t,e){var i=this._chart._getHitTestValue(this.pointIndex,this.groupIndex);if(null!==i)return i;var s=null,n=this._chart,r=this.pointIndex,a=n._isRotated();if(null!==this.series&&null!==r){const i=this.series.getValues(t),a=this.series.getDataType(t);if(i&&this.pointIndex<i.length){s=i[this.pointIndex];a!=DataType.Date||e||(s=new Date(s))}else if(1==t)if(n._xlabels&&n._xlabels.length>0&&r<n._xlabels.length)s=n._xlabels[r];else if(n._xvals&&r<n._xvals.length){s=n._xvals[r];n._xDataType!=DataType.Date||e||(s=new Date(s))}}null!==s&&e&&(a?0==t?s=this.ax._formatValue(s):1==t&&(s=this.ay._formatValue(s)):0==t?s=this.ay._formatValue(s):1==t&&(s=this.ax._formatValue(s)));return s}get ax(){return this.series.axisX?this.series.axisX:this._chart.axisX}get ay(){return this.series.axisY?this.series.axisY:this._chart.axisY}}export var SeriesVisibility;!function(t){t[t.Visible=0]="Visible";t[t.Plot=1]="Plot";t[t.Legend=2]="Legend";t[t.Hidden=3]="Hidden"}(SeriesVisibility||(SeriesVisibility={}));export var Marker;!function(t){t[t.Dot=0]="Dot";t[t.Box=1]="Box"}(Marker||(Marker={}));export class DataArray{}export class SeriesEventArgs extends EventArgs{constructor(t){super();this._series=asType(t,SeriesBase)}get series(){return this._series}}export class SeriesBase{constructor(t){this._altStyle=null;this._symbolMarker=Marker.Dot;this._visibility=SeriesVisibility.Visible;this._interpolateNulls=null;this._cache={};this.rendering=new Event;this.rendered=new Event;this.initialize(t)}get interpolateNulls(){return null==this._interpolateNulls?this._chart&&this._chart.interpolateNulls:this._interpolateNulls}set interpolateNulls(t){if(t!=this._interpolateNulls){this._interpolateNulls=asBoolean(t,!0);this._invalidate()}}get style(){return this._style}set style(t){if(t!=this._style){this._style=t;this._invalidate()}}get altStyle(){return this._altStyle}set altStyle(t){if(t!=this._altStyle){this._altStyle=t;this._invalidate()}}get symbolStyle(){return this._symbolStyle}set symbolStyle(t){if(t!=this._symbolStyle){this._symbolStyle=t;this._invalidate()}}get symbolSize(){return this._symbolSize}set symbolSize(t){if(t!=this._symbolSize){this._symbolSize=asNumber(t,!0,!0);this._invalidate()}}get symbolMarker(){return this._symbolMarker}set symbolMarker(t){if((t=asEnum(t,Marker,!0))!=this._symbolMarker){this._symbolMarker=t;this._invalidate()}}get binding(){return this._binding?this._binding:this._chart?this._chart.binding:null}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._clearValues();this._invalidate()}}get bindingX(){return this._bindingX?this._bindingX:this._chart?this._chart.bindingX:null}set bindingX(t){if(t!=this._bindingX){this._bindingX=asString(t,!0);this._clearValues();this._invalidate()}}get name(){return this._name}set name(t){this._name=t}get itemsSource(){return this._itemsSource}set itemsSource(t){if(t!=this._itemsSource){if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._itemsSource=t;this._cv=asCollectionView(t);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._clearValues();this._itemsSource=t;this._invalidate()}}get collectionView(){return this._cv?this._cv:this._chart?this._chart.collectionView:null}get chart(){return this._chart}get hostElement(){return this._hostElement}get legendElement(){return this._legendElement}get cssClass(){return this._cssClass}set cssClass(t){this._cssClass=asString(t,!0)}get visibility(){return this._visibility}set visibility(t){if((t=asEnum(t,SeriesVisibility))!=this._visibility){this._visibility=t;this._clearValues();this._invalidate();this._chart&&this._chart.onSeriesVisibilityChanged(new SeriesEventArgs(this))}}get tooltipContent(){return this._tooltipContent}set tooltipContent(t){t!=this._tooltipContent&&(this._tooltipContent=t)}get itemFormatter(){return this._itemFormatter}set itemFormatter(t){if(t!=this._itemFormatter){this._itemFormatter=asFunction(t);this._invalidate()}}hitTest(t,e){isNumber(t)&&isNumber(e)?t=new Point(t,e):t instanceof MouseEvent&&(t=new Point(t.pageX,t.pageY));asType(t,Point);return this._chart?this._chart._hitTestSeries(t,this._chart.series.indexOf(this)):null}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){const e=this._pointIndexes[t];if(e<this.hostElement.childNodes.length)return this.hostElement.childNodes[e]}return null}get axisX(){return this._axisX}set axisX(t){if(t!=this._axisX){this._axisX=asType(t,Axis,!0);if(this._axisX){this._axisX._chart=this._chart;const t=this._axisX._chart;t&&-1==t.axes.indexOf(this._axisX)&&t.axes.push(this._axisX)}this._invalidate()}}get axisY(){return this._axisY}set axisY(t){if(t!=this._axisY){this._axisY=asType(t,Axis,!0);if(this._axisY){this._axisY._chart=this._chart;const t=this._axisY._chart;t&&-1==t.axes.indexOf(this._axisY)&&t.axes.push(this._axisY)}this._invalidate()}}initialize(t){copy(this,t)}pointToData(t){asType(t,Point);(t=t.clone()).x=this._getAxisX().convertBack(t.x);t.y=this._getAxisY().convertBack(t.y);return t}dataToPoint(t){asType(t,Point);(t=t.clone()).x=this._getAxisX().convert(t.x);t.y=this._getAxisY().convert(t.y);return t}onRendering(t,e,i){var s=new SeriesRenderingEventArgs(t,e,i);this.rendering.raise(this,s);return s.cancel}onRendered(t){this.rendered.raise(this,new RenderEventArgs(t))}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}_getSymbolSize(){return null!=this.symbolSize?this.symbolSize:this.chart.symbolSize}get _plotter(){this.chart&&!this.__plotter&&(this.__plotter=this.chart._getPlotter(this));return this.__plotter}set _plotter(t){t!=this.__plotter&&(this.__plotter=t)}getDataType(t){return 0==t?this._valueDataType:1==t?this._xvalueDataType:null}getValues(t){if(0==t){if(null==this._values){this._valueDataType=null;if(null!=this._cv){const t=this._bindValues(this._cv.items,this._getBinding(0));this._values=t.values;this._valueDataType=t.dataType}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){const t=this._bindValues(this._chart.collectionView.items,this._getBinding(0));this._values=t.values;this._valueDataType=t.dataType}}return this._values}if(1==t){if(null==this._xvalues){this._xvalueDataType=null;if(null!=this.bindingX)if(null!=this._cv){const t=this._bindValues(this._cv.items,this.bindingX,!0);this._xvalueDataType=t.dataType;this._xvalues=t.values}else{if(null==this._bindingX)return null;if(null!=this._chart&&null!=this._chart.collectionView){const t=this._bindValues(this._chart.collectionView.items,this.bindingX,!0);this._xvalueDataType=t.dataType;this._xvalues=t.values}}}return this._xvalues}return null}drawLegendItem(t,e,i){var s=this._getChartType();null==s&&(s=this._chart._getChartType());const n=this._getLegendStyle(this.style);s===ChartType.Funnel?this._drawFunnelLegendItem(t,e,i,n,this.symbolStyle):this._drawLegendItem(t,e,s,this.name,n,this.symbolStyle)}_getLegendStyle(t){if(!t)return;const e={};t.fill&&(e.fill=t.fill);t.stroke&&(e.stroke=t.stroke);return e}measureLegendItem(t,e){var i=this._getChartType();null==i&&(i=this._chart._getChartType());return i===ChartType.Funnel?this._measureLegendItem(t,this._getFunnelLegendName(e)):this._measureLegendItem(t,this.name)}legendItemLength(){var t=this._getChartType();null==t&&(t=this._chart._getChartType());return t===ChartType.Funnel?this._chart._xlabels&&this._chart._xlabels.length?this._chart._xlabels.length:this._chart._xvals&&this._chart._xvals.length?this._chart._xvals.length:1:1}getDataRect(t,e){return null}_getChartType(){return this._chartType}_clearValues(){this._values=null;this._xvalues=null;this.__plotter=null;this._cache={}}_getBinding(t){var e=this.binding;if(e){const i=this.chart?this.chart._bindingSeparator:",";if(i){const s=e.split(i);s&&s.length>t&&(e=s[t].trim())}}return e}_getBindingValues(t){if(this._cache[t])return this._cache[t];{let e;null!=this._cv?e=this._cv.items:null!=this._chart&&null!=this._chart.collectionView&&(e=this._chart.collectionView.items);const i=this._bindValues(e,this._getBinding(t));this._cache[t]=i.values;return this._cache[t]}}_getItem(t){var e=null,i=null;null!=this.itemsSource?i=null!=this._cv?this._cv.items:this.itemsSource:null!=this._chart.itemsSource&&(i=null!=this._chart.collectionView?this._chart.collectionView.items:this._chart.itemsSource);null!=i&&(e=i[t]);return e}_getLength(){var t=0,e=null;null!=this.itemsSource?e=null!=this._cv?this._cv.items:this.itemsSource:null!=this._chart.itemsSource&&(e=null!=this._chart.collectionView?this._chart.collectionView.items:this._chart.itemsSource);null!=e&&(t=e.length);return t}_setPointIndex(t,e){this._pointIndexes[t]=e}_getDataRect(){var t=this.getValues(0),e=this.getValues(1);if(t){let i=NaN,s=NaN,n=NaN,r=NaN;const a=t.length;for(let h=0;h<a;h++){const a=t[h];if(isArray(a)){const t=a,e=Math.min(...t),i=Math.max(...t);if(isNaN(s)){s=e;r=i}else{e<s&&(s=e);i>r&&(r=i)}}else isFinite(a)&&(isNaN(s)?s=r=a:a<s?s=a:a>r&&(r=a));if(e){const t=e[h];isFinite(t)&&(isNaN(i)?i=n=t:t<i?i=t:a>r&&(n=t))}}if(!e){i=0;n=a-1}if(!isNaN(s))return new Rect(i,s,n-i,r-s)}return null}_isCustomAxisX(){return!!this._axisX&&(!this._chart||this._axisX!=this.chart.axisX)}_isCustomAxisY(){return!!this._axisY&&(!this._chart||this._axisY!=this.chart.axisY)}_getAxisX(){var t=null;this.axisX?t=this.axisX:this.chart&&(t=this.chart.axisX);return t}_getAxisY(){var t=null;this.axisY?t=this.axisY:this.chart&&(t=this.chart.axisY);return t}_measureLegendItem(t,e){var i=new Size;i.width=SeriesBase._LEGEND_ITEM_WIDTH;i.height=SeriesBase._LEGEND_ITEM_HEIGHT;if(this._name){const s=t.measureString(e,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND);i.width+=s.width;i.height<s.height&&(i.height=s.height)}i.width+=3*SeriesBase._LEGEND_ITEM_MARGIN;i.height+=2*SeriesBase._LEGEND_ITEM_MARGIN;return i}_drawFunnelLegendItem(t,e,i,s,n){t.strokeWidth=1;var r=SeriesBase._LEGEND_ITEM_MARGIN,a=null,h=null;null===a&&(a=this._chart._getColorLight(i));null===h&&(h=this._chart._getColor(i));t.fill=a;t.stroke=h;var o=e.top+.5*e.height,l=SeriesBase._LEGEND_ITEM_WIDTH,_=SeriesBase._LEGEND_ITEM_HEIGHT,c=this._getFunnelLegendName(i);t.drawRect(e.left+r,o-.5*_,l,_,null,n||s);null!=c&&FlexChartCore._renderText(t,c,new Point(e.left+_+2*r,o),0,1,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND)}_getFunnelLegendName(t){var e,i=this._chart;if(i._xlabels&&i._xlabels.length&&t<i._xlabels.length)e=i._xlabels[t];else if(i._xvals&&i._xvals.length&&t<i._xvals.length){e=i._xvals[t];i._xDataType===DataType.Date&&(e=FlexChartCore._fromOADate(e))}null==e&&(e=this.name);return e.toString()}_drawLegendItem(t,e,i,s,n,r){t.strokeWidth=1;var a=SeriesBase._LEGEND_ITEM_MARGIN,h=null,o=null;null===h&&(h=this._chart._getColorLight(this._chart.series.indexOf(this)));null===o&&(o=this._chart._getColor(this._chart.series.indexOf(this)));t.fill=h;t.stroke=o;var l=e.top+.5*e.height,_=SeriesBase._LEGEND_ITEM_WIDTH,c=SeriesBase._LEGEND_ITEM_HEIGHT;switch(i){case ChartType.Area:case ChartType.SplineArea:case ChartType.StepArea:t.drawRect(e.left+a,l-.5*c,_,c,null,n);break;case ChartType.Bar:case ChartType.Column:t.drawRect(e.left+a,l-.5*c,_,c,null,r||n);break;case ChartType.Scatter:case ChartType.Bubble:{const i=.3*_,s=.3*c;this.symbolMarker==Marker.Box?t.drawRect(e.left+a+.5*_-i,l-s,2*i,2*s,null,r||n):t.drawEllipse(e.left+.5*_+a,l,i,s,null,r||n)}break;case ChartType.Line:case ChartType.Spline:case ChartType.Step:t.drawLine(e.left+a,l,e.left+_+a,l,null,n);break;case ChartType.LineSymbols:case ChartType.SplineSymbols:case ChartType.StepSymbols:{const i=.3*_,s=.3*c;this.symbolMarker==Marker.Box?t.drawRect(e.left+a+.5*_-i,l-s,2*i,2*s,null,r||n):t.drawEllipse(e.left+.5*_+a,l,i,s,null,r||n);t.drawLine(e.left+a,l,e.left+_+a,l,null,n)}break;case ChartType.Candlestick:case ChartType.HighLowOpenClose:t.drawLine(e.left+a,l,e.left+_+a,l,null,r||n)}this._name&&FlexChartCore._renderText(t,s,new Point(e.left+c+2*a,l),0,1,FlexChartCore._CSS_LABEL,FlexChartCore._CSS_LEGEND)}_cvCollectionChanged(t,e){this._clearValues();this._invalidate()}_cvCurrentChanged(t,e){this._chart&&this._chart._notifyCurrentChanged&&this._invalidate()}_bindValues(t,e,i=!1){var s,n,r;if(null!=t){const a=t.length;s=new Array(t.length);const h=e?new Binding(e):null;for(let e=0;e<a;e++){r=null;let a=t[e];null!=h&&(a=h.getValue(a));if(isArray(a)&&a.length>0){r=a;a=a[0]}if(isNumber(a)){s[e]=a;n=DataType.Number}else if(isDate(a)){s[e]=a.valueOf();n=DataType.Date}else if(i&&a){s[e]=e;n=DataType.Number}isArray(r)&&r.length>0&&(s[e]=r)}}var a=new DataArray;a.values=s;a.dataType=n;return a}_invalidate(){this._chart&&this._chart.invalidate()}_indexToPoint(t){if(t>=0&&t<this._values.length){const e=this._values[t],i=this._xvalues?this._xvalues[t]:t;return new Point(i,e)}return null}_getSymbolFill(t){var e=null;this.symbolStyle&&(e=this.symbolStyle.fill);!e&&this.style&&(e=this.style.fill);!e&&this.chart&&(e=this.chart._getColorLight(t));return e}_getSymbolStroke(t){var e=null;this.symbolStyle&&(e=this.symbolStyle.stroke);!e&&this.style&&(e=this.style.stroke);!e&&this.chart&&(e=this.chart._getColor(t));return e}_getAltSymbolStroke(t){var e=null;this.altStyle&&(e=this.altStyle.stroke);return e}_getAltSymbolFill(t){var e=null;this.altStyle&&(e=this.altStyle.fill);return e}_renderLabels(t,e,i,s){this._plotter&&this._plotter._renderLabels(t,this,e,i,s)}}SeriesBase._LEGEND_ITEM_WIDTH=10;SeriesBase._LEGEND_ITEM_HEIGHT=10;SeriesBase._LEGEND_ITEM_MARGIN=4;export class _BasePlotter{constructor(){this._DEFAULT_WIDTH=2;this._DEFAULT_SYM_SIZE=10;this.clipping=!0}clear(){this.seriesCount=0;this.seriesIndex=0}_renderLabels(t,e,i,s,n){var r=i.length,a=s.dataLabel,h=a.border,o=a.offset,l=a.connectingLine;void 0===o&&(o=l?16:0);h&&(o-=2);for(let h=0;h<r;h++){const r=i[h],l=asType(r.tag,_DataPoint,!0);l&&!r.ignoreLabel&&this._renderLabel(t,r,l,s,a,e,o,n)}}_renderLabel(t,e,i,s,n,r,a,h){var o,l=null==n.position?LabelPosition.Top:n.position,_=n.border,c=n.connectingLine,d=new HitTestInfo(s,o);d._setDataPoint(i);var u=s._getLabelContent(d,n.content);o=this._getLabelPoint(r,i);this._getPointAndPosition(o,l,e,s);if(s._plotRect.contains(o)){var g=new DataLabelRenderEventArgs(t,d,o,u);if(n.onRendering)if(n.onRendering(g)){u=g.text;o=g.point}else u=null;if(u){const e=this._renderLabelAndBorder(t,u,l,a,o,c,2,_);if(e){const t=new _RectArea(e);t.tag=i;h.push(t)}}t.cssPriority=!0}}_getPointAndPosition(t,e,i,s){if(i instanceof _RectArea){const e=i;s._isRotated()?t.y=e.rect.top+.5*e.rect.height:t.x=e.rect.left+.5*e.rect.width}}_getLabelPoint(t,e){var i=t._getAxisX(),s=t._getAxisY();return new Point(i.convert(e.dataX),s.convert(e.dataY))}_renderLabelAndBorder(t,e,i,s,n,r,a,h){let o,l=DataLabelClsNames.label,_=DataLabelClsNames.line,c=DataLabelClsNames.border,d=FlexChartCore._CSS_DATA_LABELS;switch(i){case LabelPosition.Top:r&&t.drawLine(n.x,n.y,n.x,n.y-s,_);n.y-=a+s;o=FlexChartCore._renderText(t,e,n,1,2,l,d);break;case LabelPosition.Bottom:r&&t.drawLine(n.x,n.y,n.x,n.y+s,_);n.y+=a+s;o=FlexChartCore._renderText(t,e,n,1,0,l,d);break;case LabelPosition.Left:r&&t.drawLine(n.x,n.y,n.x-s,n.y,_);n.x-=a+s;o=FlexChartCore._renderText(t,e,n,2,1,l,d);break;case LabelPosition.Right:r&&t.drawLine(n.x,n.y,n.x+s,n.y,_);n.x+=a+s;o=FlexChartCore._renderText(t,e,n,0,1,l,d);break;case LabelPosition.Center:o=FlexChartCore._renderText(t,e,n,1,1,l,d)}h&&o&&t.drawRect(o.left-a,o.top-a,o.width+2*a,o.height+2*a,c);return o}getOption(t,e){var i=this.chart._options;e&&(i=i?i[e]:null);if(i&&!isUndefined(i[t])&&null!==i[t])return i[t]}getNumOption(t,e){var i=this.chart._options;e&&(i=i?i[e]:null);if(i&&i[t])return asNumber(i[t],!0)}getItemFormatter(t){if(t instanceof SeriesBase){const e=t;return e.itemFormatter?e.itemFormatter:this.chart.itemFormatter}return this.chart.itemFormatter}static cloneStyle(t,e){if(!t)return t;var i={};for(var s in t)e&&e.indexOf(s)>=0||(i[s]=t[s]);return i}isValid(t,e,i,s){return isFinite(t)&&isFinite(e)&&FlexChartCore._contains(this.chart._plotRect,new Point(t,e))}load(){}unload(){}_createSteps(t,e,i){const s=this.getOption("position","step"),n=i||t.length,r=[],a=[],h=this.chart._isRotated();if("center"==s)if(h)for(let i=0;i<n;i++){const s=0==i?e[i+1]-e[i]:e[i]-e[i-1],h=i==n-1?e[i]-e[i-1]:e[i+1]-e[i];r.push(t[i]);a.push(e[i]-.5*s);r.push(t[i]);a.push(e[i]+.5*h)}else for(let i=0;i<n;i++){const s=0==i?t[i+1]-t[i]:t[i]-t[i-1],h=i==n-1?t[i]-t[i-1]:t[i+1]-t[i];r.push(t[i]-.5*s);a.push(e[i]);r.push(t[i]+.5*h);a.push(e[i])}else if("end"==s)for(let i=0;i<n;i++){if(i>0)if(h){r.push(t[i]);a.push(e[i-1])}else{r.push(t[i-1]);a.push(e[i])}r.push(t[i]);a.push(e[i])}else for(let i=0;i<n;i++){r.push(t[i]);a.push(e[i]);if(i<n-1)if(h){r.push(t[i]);a.push(e[i+1])}else{r.push(t[i+1]);a.push(e[i])}}return{x:r,y:a}}}export class Series extends SeriesBase{get chartType(){return this._chartType}set chartType(t){if((t=asEnum(t,ChartType,!0))!=this._chartType){this._chartType=t;this._invalidate()}}}export class FlexPie extends FlexChartBase{constructor(t,e){super(t,null,!0);this._areas=[];this._keywords=new _KeyWords;this._startAngle=0;this._innerRadius=0;this._offset=0;this._reversed=!1;this._isAnimated=!1;this._selectedItemPosition=Position.None;this._selectedItemOffset=0;this._pieGroups=[];this._rotationAngles=[];this._centers=[new Point];this._selectedOffset=new Point;this._selectedIndex=-1;this._angles=[];this._colRowLens=[];this._titles=void 0;this._values=[];this._labels=[];this._pels=[];this._sum=0;this._sums=[];this._bindingSeparator=",";this.applyTemplate(`${ControlClsNames.hostElement} ${FlexChartClsNames.hostElement} ${FlexPieClsNames.hostElement}`,null,null);this._currentRenderEngine=new _SvgRenderEngine(this.hostElement);this._legend=new Legend(this);this._tooltip=new ChartTooltip;this._tooltip.content="<b>{name}</b><br/>{value}";this._tooltip.showDelay=0;this._lbl=new PieDataLabel;this._lbl._chart=this;this.addEventListener(this.hostElement,"mousemove",t=>{var e=this._tooltip;if(e.content&&!this.isTouching){const i=this.hitTest(t,void 0,!0);if(i.distance<=e.threshold){const e=this._getLabelContent(i,this.tooltip.content);this._showToolTip(e,new Rect(t.clientX,t.clientY,5,5))}else this._hideToolTip()}});this.addEventListener(this.hostElement,"click",t=>{var e=!0;if(this.selectionMode==SelectionMode.Point){const i=this.hitTest(t);let s=FlexChartBase._SELECTION_THRESHOLD;this.tooltip&&this.tooltip.threshold&&(s=this.tooltip.threshold);if(i.distance<=s){i.pointIndex!=this._selectionIndex&&this.selectedItemPosition!=Position.None&&(e=!1);i.pointIndex!=this._selectionIndex&&this._select(i.pointIndex,!0)}else this._selectedIndex>=0&&this._select(null)}if(e&&this.isTouching){const e=this._tooltip;if(e.content){const i=this.hitTest(t,void 0,!0);if(i.distance<=e.threshold){const e=this._getLabelContent(i,this.tooltip.content);this._showToolTip(e,new Rect(t.clientX,t.clientY,5,5))}else this._hideToolTip()}}});this.addEventListener(this.hostElement,"mouseleave",t=>{this._hideToolTip()});this.deferUpdate(()=>this.initialize(e))}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._bindChart()}}get bindingName(){return this._bindingName}set bindingName(t){if(t!=this._bindingName){this._bindingName=asString(t,!0);this._bindChart()}}get startAngle(){return this._startAngle}set startAngle(t){if(t!=this._startAngle){this._startAngle=asNumber(t,!0);this.invalidate()}}get offset(){return this._offset}set offset(t){if(t!=this._offset){this._offset=asNumber(t,!0);this.invalidate()}}get innerRadius(){return this._innerRadius}set innerRadius(t){if(t!=this._innerRadius){this._innerRadius=asNumber(t,!0);this.invalidate()}}get innerTextStyle(){return this._innerTextStyle}set innerTextStyle(t){if(t!=this._innerText){this._innerTextStyle=t;this.invalidate()}}get innerText(){return this._innerText}set innerText(t){if(t!=this._innerText){this._innerText=t;this.invalidate()}}get reversed(){return this._reversed}set reversed(t){if(t!=this._reversed){this._reversed=asBoolean(t,!0);this.invalidate()}}get selectedItemPosition(){return this._selectedItemPosition}set selectedItemPosition(t){if((t=asEnum(t,Position,!0))!=this._selectedItemPosition){this._selectedItemPosition=t;this.invalidate()}}get selectedItemOffset(){return this._selectedItemOffset}set selectedItemOffset(t){if(t!=this._selectedItemOffset){this._selectedItemOffset=asNumber(t,!0);this.invalidate()}}get isAnimated(){return this._isAnimated}set isAnimated(t){t!=this._isAnimated&&(this._isAnimated=t)}get tooltip(){return this._tooltip}get dataLabel(){return this._lbl}set dataLabel(t){if(t!=this._lbl){this._lbl=t;this._lbl&&(this._lbl._chart=this)}}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(t!=this._selectedIndex){const e=asNumber(t,!0);this._select(e,!0)}}get titles(){return this._titles}set titles(t){if(t!==this._titles){this._titles=t;this.invalidate()}}get chartsPerLine(){return this._chartsPerLine}set chartsPerLine(t){if(t!=this._chartsPerLine){this._chartsPerLine=asNumber(t,!0,!0);this.invalidate()}}_getLabelsForLegend(){return this._labels}hitTest(t,e,i){var s=this._toControl(t,e),n=new HitTestInfo(this,s),r=null;if(FlexChartBase._contains(this._rectHeader,s))n._chartElement=ChartElement.Header;else if(FlexChartBase._contains(this._rectFooter,s))n._chartElement=ChartElement.Footer;else if(FlexChartBase._contains(this._rectLegend,s)){n._chartElement=ChartElement.Legend;null!==(r=this.legend._hitTest(s))&&r>=0&&r<this._areas.length&&n._setData(null,r)}else if(FlexChartBase._contains(this._rectChart,s)){this._hitTestData(n,s,i);n._chartElement=ChartElement.ChartArea}else n._chartElement=ChartElement.None;return n}_hitTestData(t,e,i){var s,n=this._areas.length,r=NaN;for(let a=0;a<n;a++){const n=e.clone(),h=this._areas[a],o=this._rotationAngles[h.gi];if(0!=o){const t=this._centers[h.gi],e=t.x,i=t.y,s=-e+n.x,r=-i+n.y,a=Math.sqrt(s*s+r*r),l=Math.atan2(r,s)-o*Math.PI/180;n.x=e+a*Math.cos(l);n.y=i+a*Math.sin(l)}if(a==this._selectedIndex){n.x-=this._selectedOffset.x;n.y-=this._selectedOffset.y}const l=this._areas[a];if(l.contains(n)){if(!0===i){r=0;s=l;continue}t._setDataGroup(h.gi,l.tag);t._dist=0;if(a!=this._selectedIndex)break}const _=l.distance(n);if(void 0!==_&&(isNaN(r)||_<r||!0===i&&this._isSmallSegment(_,s,l))){r=_;s=l}}if(0!==t._dist&&null!=s){t._setDataGroup(s.gi,s.tag);t._dist=r}}_isSmallSegment(t,e,i){return t<=.5*this.tooltip.threshold&&Math.abs(i.sweep)<=.035&&Math.abs(e.sweep/i.sweep)>=10}_performBind(){this._initData();if(this._cv){this._selectionIndex=this._cv.currentPosition;const t=this._cv.items;if(t){const e=t.length,i=this._getBindings();for(let t=0;t<i.length;t++){this._values[t]=[];this._sums[t]=0}for(let s=0;s<e;s++){const e=t[s];for(let t=0;t<i.length;t++)this._sums[t]+=Math.abs(this._getBindData(e,this._values[t],0==t?this._labels:null,i[t],this.bindingName))}}}}_getBindings(){let t=[];const e=this.binding;if(e){const i=this._bindingSeparator;i&&(t=e.split(i))}return t}_initData(){this._sum=0;this._sums=[];this._values=[];this._labels=[]}_getBindData(t,e,i,s,n){var r,a=0;const h=s?new Binding(s):null;h&&(r=h.getValue(t));a=0;isNumber(r)?a=asNumber(r):r&&(a=parseFloat(r.toString()));if(!isNaN(a)&&isFinite(a))e.push(a);else{a=0;e.push(a)}const o=n?new Binding(n):null;if(i)if(o&&t){let e=o.getValue(t);e&&(e=e.toString());i.push(e)}else i.push(a.toString());return a}_render(t,e=!0,i=null){this._selectionAnimationID&&clearInterval(this._selectionAnimationID);this.onRendering(new RenderEventArgs(t));super._render(t,e,i)}_prepareRender(){this._areas=[]}_renderChart(t,e,i){var s=this._rectChart.clone(),n=(new Size(s.width,s.height),e.width),r=e.height,a=this._parseMargin(this.plotMargin),h=this.dataLabel,o=h.content&&h.position==PieLabelPosition.Outside,l=o?(isNumber(h.offset)?h.offset:0)+24:0;isNaN(a.left)&&(a.left=o?l:FlexPie._MARGIN);isNaN(a.right)&&(a.right=o?l:FlexPie._MARGIN);isNaN(a.top)&&(a.top=o?l:FlexPie._MARGIN);isNaN(a.bottom)&&(a.bottom=o?l:FlexPie._MARGIN);e.top+=a.top;r=e.height-(a.top+a.bottom);e.height=r>0?r:24;e.left+=a.left;n=e.width-(a.left+a.right);e.width=n>0?n:24;const _=this._getBindings();let c=this.titles;void 0===c&&_.length>1&&(c=_);const d=this._layout(t,e,c,_.length);this._angles=[];this._pels=[];this._pieGroups=[];this._rotationAngles=[];for(let e=0;e<_.length;e++){const i=d[e];c&&e<c.length&&c[e]&&FlexChartBase._renderText(t,c[e],new Point(i.left+.5*i.width,i.top),1,2,FlexPie._CSS_GROUP_TITLE);const s=t.startGroup(FlexPieClsNames.sliceGroup,null,!0);this._pieGroups.push(s);this._renderData(t,i,e,s);t.endGroup();this._rotationAngles.push(0)}this._highlightCurrent();this.innerText&&this._renderInnerText(t);this.dataLabel.content&&this.dataLabel.position!=PieLabelPosition.None&&this._renderLabels(t);this.onRendered(new RenderEventArgs(t))}_layout(t,e,i,s){let n=0,r=s,a=1,h=0;if(i)for(let e=0;e<i.length;e++)h=Math.max(h,t.measureString(i[e],FlexPie._CSS_GROUP_TITLE).height);const o=Math.floor(this.chartsPerLine);if(o>0){r=Math.min(s,o);a=Math.ceil(s/r);const t=Math.floor(e.width/r),i=Math.floor(e.height/a)-h;n=Math.min(t,i)}else for(let t=1;t<=s;t++){const i=Math.floor((s+(t-1))/t);let o=Math.floor(e.width/t),l=Math.floor(e.height/i);l-=h;l<o&&(o=l);if(o>n){n=o;r=t;a=i}}const l=[],_=.5*(e.width-n*r),c=.5*(e.height-(n+h)*a);for(let t=0;t<a;t++)for(let i=0;i<r;i++)l.push(new Rect(e.left+n*i+8+_,e.top+(n+h)*t+8+c+h,n-16,n-16));return l}_getDesiredLegendSize(t,e,i,s){var n=new Size,r=(new Size(i,s),this._getLabelsForLegend()),a=r.length,h=0,o=0;this.legend.scrollbar;this._colRowLens=[];for(let l=0;l<a;l++){const a=this._measureLegendItem(t,r[l]);if(e){if(o+a.height>s&&!this.legend.scrollbar){n.height=s;this._colRowLens.push(h);h=0;o=0}h<a.width&&(h=a.width);o+=a.height}else{if(h+a.width>i&&!this.legend.scrollbar){n.width=i;this._colRowLens.push(o);o=0;h=0}o<a.height&&(o=a.height);h+=a.width}}if(e){n.height<o&&(n.height=o);this._colRowLens.push(h);n.width=this._colRowLens.reduce((t,e)=>t+e,0)}else{n.width<h&&(n.width=h);this._colRowLens.push(o);n.height=this._colRowLens.reduce((t,e)=>t+e,0)}return n}_renderLegend(t,e,i,s,n,r){var a=new Rect(e.x,e.y,n,r),h=this._getLabelsForLegend(),o=h.length,l=0,_=e.clone();for(let n=0;n<o;n++){const r=this._measureLegendItem(t,h[n]);if(s){if(_.y+r.height>a.bottom+1&&!this.legend.scrollbar){_.x+=this._colRowLens[l];l++;_.y=e.y}}else if(_.x+r.width>a.right+1&&!this.legend.scrollbar){_.y+=this._colRowLens[l];l++;_.x=e.x}const o=new Rect(_.x,_.y,r.width,r.height);this._drawLegendItem(t,o,n,h[n]);i.push(o);s?_.y+=r.height:_.x+=r.width}}_renderData(t,e,i,s){var n=this._sums[i],r=this.startAngle+180,a=this.innerRadius,h=this.offset;a>1&&(a=1);if(n>0){let s=r*Math.PI/180,n=e.left+.5*e.width,o=e.top+.5*e.height,l=Math.min(.5*e.width,.5*e.height);this._centers[i]=new Point(n,o);const _=Math.max(h,this.selectedItemOffset);if(_>0){l/=1+_;h*=l}this._radius=l;const c=a*l;this._renderPie(t,i,l,c,s,h)}}_renderPie(t,e,i,s,n,r){this._renderSlices(t,this._values[e],this._sums[e],e,i,s,n,2*Math.PI,r)}_getCenter(){return this._centers[0]}_renderSlices(t,e,i,s,n,r,a,h,o){var l,_,c,d=e.length,u=0,g=a,p=1==this.reversed,f=this._centers[s];for(let t=0;t<d;t++)e[t]>0&&u++;var m=1===u?360:359.9/360;for(let a=0;a<d;a++){_=f.x;c=f.y;l=t.startGroup(FlexPieClsNames.slice);t.fill=this._getColorLight(a);t.stroke=this._getColor(a);const d=Math.abs(e[a]);let u=Math.abs(d-i)<1e-10?h:h*d/i;u=Math.min(u,h*m);const x=p?g-.5*u:g+.5*u;if(o>0&&u<h){_+=o*Math.cos(x);c+=o*Math.sin(x)}this._renderSlice(t,_,c,x,s,a,n,r,g,u,h);p?g-=u:g+=u;t.endGroup();this._pels.push(l)}}_renderSlice(t,e,i,s,n,r,a,h,o,l,_){var c=!!this.reversed;this._angles.push(s);if(this.itemFormatter){const _=new HitTestInfo(this,new Point(e+a*Math.cos(s),i+a*Math.sin(s)),ChartElement.SeriesSymbol);_._setData(null,r);this.itemFormatter(t,_,()=>{this._drawSlice(t,n,r,c,e,i,a,h,o,l)});t.cssPriority=!0}else this._drawSlice(t,n,r,c,e,i,a,h,o,l)}_getSelectedItemOffset(t,e){var i=0,s=0,n=0;t==this._selectedIndex&&this.selectedItemOffset>0&&(n=this.selectedItemOffset);if(n>0){i=Math.cos(e)*n*this._radius;s=Math.sin(e)*n*this._radius}return{x:i,y:s}}_renderInnerText(t){const e=this.innerText,i=this.innerTextStyle;for(let s=0;s<this._centers.length;s++){const n=this._centers[s];let r;r=isFunction(e)?e(s):isArray(e)?asString(e[s]):asString(e);if(r){r=format(r,{total:this._sums[s],binding:this._getBindings()[s]});i&&(t.cssPriority=!1);FlexPie._renderText(t,r,n,1,1,FlexChartBase._CSS_TITLE,null,i);t.cssPriority=!0}}}_renderLabels(t){var e,i=this._areas.length,s=this.dataLabel,n=s.position,r=DataLabelClsNames.labels,a=DataLabelClsNames.label,h=DataLabelClsNames.border,o=DataLabelClsNames.line,l=this._rotationAngles,_=s.connectingLine,c=s.offset?s.offset:0;t.stroke="null";t.fill="transparent";t.strokeWidth=1;t.startGroup(r);for(let r=0;r<i;r++){const i=this._areas[r];if(i){let d=i.radius,u=i.langle+l[i.gi],g=1,p=1;if(n==PieLabelPosition.Center||n===PieLabelPosition.Radial||n===PieLabelPosition.Circular)d*=.5*(1+(i.innerRadius||0)/i.radius);else{u=_Math.clampAngle(u);if(u<=-170||u>=170){g=2;p=1}else if(u>=-100&&u<=-80){g=1;p=2}else if(u>=-10&&u<=10){g=0;p=1}else if(u>=80&&u<=100){g=1;p=0}else if(-180<u&&u<-90){g=2;p=2}else if(-90<=u&&u<0){g=0;p=2}else if(0<u&&u<90){g=0;p=0}else if(90<u&&u<180){g=2;p=0}if(n==PieLabelPosition.Inside){g=2-g;p=2-p}}u*=Math.PI/180;const f=i.gi?r-i.gi*this._values[0].length:r,m=this._getSelectedItemOffset(f,u),x=m.x,b=m.y;let y=d;n==PieLabelPosition.Outside?y+=c:n==PieLabelPosition.Inside&&(y-=c);let S=i.center.x,v=i.center.y;const w=this._centers[i.gi],C=S-w.x,T=v-w.y;if(0!=this._rotationAngles[i.gi]){const t=Math.sqrt(C*C+T*T),e=Math.atan2(T,C)+this._rotationAngles[i.gi]*Math.PI/180;S=w.x+t*Math.cos(e);v=w.y+t*Math.sin(e)}let M=new Point(S+x+y*Math.cos(u),v+b+y*Math.sin(u));if(s.border&&n!=PieLabelPosition.Center){0==g?M.x+=2:2==g&&(M.x-=2);0==p?M.y+=2:2==p&&(M.y-=2)}const P=new HitTestInfo(this,M);P._setDataGroup(i.gi,i.tag);let A=this._getLabelContent(P,s.content);const L=new DataLabelRenderEventArgs(t,P,M,A);if(s.onRendering)if(s.onRendering(L)){A=L.text;M=L.point}else A=null;if(A){let i=180*Math.atan2(v-M.y,S-M.x)/Math.PI;i=(i+360)%360;if(n===PieLabelPosition.Radial||n===PieLabelPosition.Circular){if(n===PieLabelPosition.Radial)i>90&&i<270&&(i+=180);else{i>180&&i<360&&(i+=180);i-=90}(e=FlexChartBase._renderRotatedText(t,A,M,g,p,M,i,a).getBBox()).left=e.x;e.top=e.y}else e=FlexChartBase._renderText(t,A,M,g,p,a);s.border&&t.drawRect(e.left-2,e.top-2,e.width+4,e.height+4,h);if(_){const e=new Point(S+x+d*Math.cos(u),v+b+d*Math.sin(u));t.drawLine(M.x,M.y,e.x,e.y,o)}}t.cssPriority=!0}}t.endGroup()}_drawSlice(t,e,i,s,n,r,a,h,o,l){var _;if(s)if(h>0){0!=l&&t.drawDonutSegment(n,r,a,h,o-l,l);(_=new _DonutSegment(new Point(n,r),a,h,o-l,l,this.startAngle)).tag=i;this._areas.push(_)}else{0!=l&&t.drawPieSegment(n,r,a,o-l,l);(_=new _PieSegment(new Point(n,r),a,o-l,l,this.startAngle)).tag=i;this._areas.push(_)}else{if(h>0){0!=l&&t.drawDonutSegment(n,r,a,h,o,l);(_=new _DonutSegment(new Point(n,r),a,h,o,l,this.startAngle)).tag=i;this._areas.push(_)}else{0!=l&&t.drawPieSegment(n,r,a,o,l);(_=new _PieSegment(new Point(n,r),a,o,l,this.startAngle)).tag=i;this._areas.push(_)}o+=l}_&&(_.gi=e)}_measureLegendItem(t,e){var i=new Size;i.width=Series._LEGEND_ITEM_WIDTH;i.height=Series._LEGEND_ITEM_HEIGHT;if(e){const s=t.measureString(e,FlexChartBase._CSS_LABEL,FlexChartBase._CSS_LEGEND);i.width+=s.width;i.height<s.height&&(i.height=s.height)}i.width+=3*Series._LEGEND_ITEM_MARGIN;i.height+=2*Series._LEGEND_ITEM_MARGIN;return i}_drawLegendItem(t,e,i,s){t.strokeWidth=1;var n=Series._LEGEND_ITEM_MARGIN,r=null,a=null;null===r&&(r=this._getColorLight(i));null===a&&(a=this._getColor(i));t.fill=r;t.stroke=a;var h=e.top+.5*e.height,o=Series._LEGEND_ITEM_WIDTH,l=Series._LEGEND_ITEM_HEIGHT;t.drawRect(e.left+n,h-.5*l,o,l,null);null!=s&&FlexChartBase._renderText(t,s.toString(),new Point(e.left+l+2*n,h),0,1,FlexChartBase._CSS_LABEL)}_getLabelContent(t,e){return isString(e)?this._keywords.replace(e,t):isFunction(e)?e(t):null}_select(t,e=!1){this._highlight(!1,this._selectionIndex);this._selectionIndex=t;if(this.selectionMode==SelectionMode.Point){const e=this._cv;if(e){this._notifyCurrentChanged=!1;e.moveCurrentToPosition(t);this._notifyCurrentChanged=!0}}if(null==t){this._selectedIndex=-1;this.invalidate()}else if(this.isAnimated&&this.selectedItemPosition!=Position.None||!(this.selectedItemOffset>0||this.selectedItemPosition!=Position.None))this._highlight(!0,this._selectionIndex,e);else{this._selectedIndex=t;this.invalidate()}this.onSelectionChanged()}_highlightCurrent(){if(this.selectionMode!=SelectionMode.None){let t=-1;const e=this._cv;e&&(t=e.currentPosition);this._highlight(!0,t)}}_highlight(t,e,i=!1){if(this.selectionMode==SelectionMode.Point&&null!=e&&e>=0)if(t){const n=[];for(let r=0;r<this._pieGroups.length;r++){const a=this._pels[e+r*this._values[0].length];if(a){a.parentNode.appendChild(a);var s=this._find(a,["ellipse"]);this._highlightItems(this._find(a,["path","ellipse"]),FlexChartBase._CSS_SELECTION,t)}const h=this._angles[e+r*this._values[0].length];if(this.selectedItemPosition!=Position.None&&0!=h){let t=0;this.selectedItemPosition==Position.Left?t=180:this.selectedItemPosition==Position.Top?t=-90:this.selectedItemPosition==Position.Bottom&&(t=90);let e=t*Math.PI/180-h;e*=180/Math.PI;if(i&&this.isAnimated)n.push(e);else{this._rotationAngles[r]=e;this._pieGroups[r].transform.baseVal.getItem(0).setRotate(e,this._centers[r].x,this._centers[r].y)}}const o=this.selectedItemOffset;if(o>0&&s&&0==s.length){this._selectedOffset.x=Math.cos(h)*o*this._radius;const t=this._selectedOffset.x;this._selectedOffset.y=Math.sin(h)*o*this._radius;const e=this._selectedOffset.y;a&&a.setAttribute("transform",`translate(${t.toFixed()},${e.toFixed()})`)}this._selectedIndex=e}n.length>0&&this._animateSelectionAngle(n,.5)}else{for(let i=0;i<this._pieGroups.length;i++){const s=this._pels[e+i*this._values[0].length];if(s){s.parentNode.insertBefore(s,s.parentNode.childNodes.item(e));s.removeAttribute("transform");this._highlightItems(this._find(s,["path","ellipse"]),FlexChartBase._CSS_SELECTION,t)}}this._selectedIndex==e&&(this._selectedIndex=-1)}}_animateSelectionAngle(t,e){var i=this._pieGroups;this._selectionAnimationID&&clearInterval(this._selectionAnimationID);this._selectionAnimationID=animate(e=>{if(i==this._pieGroups){for(let s=0;s<i.length;s++){let n=_Math.clampAngle(this._rotationAngles[s]);const r=_Math.clampAngle(t[s])-n,a=n;this._rotationAngles[s]=n=a+r*e;i[s].transform.baseVal.getItem(0).setRotate(n,this._centers[s].x,this._centers[s].y)}1==e&&clearInterval(this._selectionAnimationID);e>.99&&(this.selectedItemOffset>0||this.selectedItemPosition!=Position.None)&&this.invalidate()}},1e3*e)}_getHitTestItem(t){var e=null,i=null;(e=null!=this._cv?this._cv.items:this.itemsSource)&&t<e.length&&(i=e[t]);return i}_getHitTestValue(t,e){null==e&&(e=0);return this._values[e][t]}_getHitTestLabel(t){return this._labels[t]}}FlexPie._MARGIN=4;FlexPie._CSS_GROUP_TITLE=FlexChartClsNames.label;class _Math{static clampAngle(t,e=0){var i=(t+180)%360-180;i<-180+(e<0?e+360:e)&&(i+=360);return i}}export class _PieSegment{constructor(t,e,i,s,n=0){this._isFull=!1;this._center=t;this._radius=e;this._originAngle=i;this._originSweep=s;s>=2*Math.PI&&(this._isFull=!0);this._sweep=.5*s*180/Math.PI;this._angle=_Math.clampAngle(180*i/Math.PI+this._sweep);this._radius2=e*e;this._startAngle=n}contains(t){var e=t.x-this._center.x,i=t.y-this._center.y;if(e*e+i*i<=this._radius2){const t=180*Math.atan2(i,e)/Math.PI,s=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(t,this._startAngle);if(this._isFull||Math.abs(s)<=this._sweep)return!0}return!1}distance(t){if(this.contains(t))return 0;var e=t.x-this._center.x,i=t.y-this._center.y,s=e*e+i*i,n=180*Math.atan2(i,e)/Math.PI,r=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(n,this._startAngle);if(this._isFull||Math.abs(r)<=this._sweep)return Math.sqrt(s)-this._radius;const a=this.center.clone();a.x+=this.radius*Math.cos(this._originAngle);a.y+=this.radius*Math.sin(this._originAngle);const h=this.center.clone();h.x+=this.radius*Math.cos(this._originAngle+this._originSweep);h.y+=this.radius*Math.sin(this._originAngle+this._originSweep);const o=FlexChartCore._dist(t,this.center,a),l=FlexChartCore._dist(t,this.center,h);return Math.min(o,l)}get center(){return this._center}get radius(){return this._radius}get langle(){return this._angle}get angle(){return this._originAngle}get sweep(){return this._originSweep}}export class _DonutSegment{constructor(t,e,i,s,n,r=0){this._isFull=!1;this._center=t;this._radius=e;this._iradius=i;this._originAngle=s;this._originSweep=n;n>=2*Math.PI&&(this._isFull=!0);this._sweep=.5*n*180/Math.PI;this._angle=_Math.clampAngle(180*s/Math.PI+this._sweep);this._radius2=e*e;this._iradius2=i*i;this._startAngle=r}contains(t){var e=t.x-this._center.x,i=t.y-this._center.y,s=e*e+i*i;if(s>=this._iradius2&&s<=this._radius2){const t=180*Math.atan2(i,e)/Math.PI,s=_Math.clampAngle(this._angle,this._startAngle)-_Math.clampAngle(t,this._startAngle);if(this._isFull||Math.abs(s)<=this._sweep)return!0}return!1}distance(t){if(this.contains(t))return 0;const e=this.center.clone();e.x+=this.radius*Math.cos(this._originAngle);e.y+=this.radius*Math.sin(this._originAngle);const i=this.center.clone();i.x+=this._iradius*Math.cos(this._originAngle);i.y+=this._iradius*Math.sin(this._originAngle);const s=this.center.clone();s.x+=this.radius*Math.cos(this._originAngle+this._originSweep);s.y+=this.radius*Math.sin(this._originAngle+this._originSweep);const n=this.center.clone();n.x+=this._iradius*Math.cos(this._originAngle+this._originSweep);n.y+=this._iradius*Math.sin(this._originAngle+this._originSweep);const r=FlexChartCore._dist(t,e,i),a=FlexChartCore._dist(t,s,n);return Math.min(r,a)}get center(){return this._center}get radius(){return this._radius}get langle(){return this._angle}get angle(){return this._originAngle}get sweep(){return this._originSweep}get innerRadius(){return this._iradius}}export var AxisType;!function(t){t[t.X=0]="X";t[t.Y=1]="Y"}(AxisType||(AxisType={}));export var OverlappingLabels;!function(t){t[t.Auto=0]="Auto";t[t.Show=1]="Show"}(OverlappingLabels||(OverlappingLabels={}));export var TickMark;!function(t){t[t.None=0]="None";t[t.Outside=1]="Outside";t[t.Inside=2]="Inside";t[t.Cross=3]="Cross"}(TickMark||(TickMark={}));export var AxisGroupsDisplay;!function(t){t[t.None=0]="None";t[t.Show=1]="Show";t[t.ShowGrid=2]="ShowGrid"}(AxisGroupsDisplay||(AxisGroupsDisplay={}));export class Axis{constructor(t){this._GRIDLINE_WIDTH=1;this._LINE_WIDTH=1;this._TICK_WIDTH=1;this._TICK_HEIGHT=4;this._TICK_OVERLAP=1;this._TICK_LABEL_DISTANCE=4;this._minorGrid=!1;this._isMinimumAuto=!0;this._isMaximumAuto=!0;this._labels=!0;this._isTimeAxis=!1;this._labelPadding=5;this._actualLabels=[];this._labelMin=!1;this._labelMax=!1;this.rangeChanged=new Event;this._customConvert=null;this._customConvertBack=null;this.__uniqueId=Axis._id++;t==Position.BottomLeft||t==Position.BottomRight||t==Position.TopLeft||t==Position.TopRight||t==Position.LeftTop||t==Position.LeftBottom||t==Position.RightTop||t==Position.RightBottom?this._position=void 0:this._position=t;this._position==Position.Bottom||this._position==Position.Top?this._axisType=AxisType.X:this._position!=Position.Left&&this._position!=Position.Right||(this._axisType=AxisType.Y);this._minorTickMarks=TickMark.None;this._overlap=OverlappingLabels.Auto}get hostElement(){return this._hostElement}get actualMin(){return this._isTimeAxis?new Date(this._actualMin):this._actualMin}get actualMax(){return this._isTimeAxis?new Date(this._actualMax):this._actualMax}get min(){return this._min}set min(t){if(t!=this._min){this._isMinimumAuto=!1;isDate(t)?this._min=asDate(t,!0):this._min=asNumber(t,!0);this._invalidate()}}get max(){return this._max}set max(t){if(t!=this._max){this._isMaximumAuto=!1;isDate(t)?this._max=asDate(t,!0):this._max=asNumber(t,!0);this._invalidate()}}get reversed(){return this._reversed}set reversed(t){if(this._reversed!=t){this._reversed=asBoolean(t);this._invalidate()}}get position(){return this._position}set position(t){if((t=asEnum(t,Position,!1))!=this._position){t==Position.BottomLeft||t==Position.BottomRight||t==Position.TopLeft||t==Position.TopRight||t==Position.LeftTop||t==Position.LeftBottom||t==Position.RightTop||t==Position.RightBottom?this._position=this._axisType==AxisType.X?Position.Bottom:this._axisType==AxisType.Y?Position.Left:void 0:this._position=t;this._position==Position.Bottom||this._position==Position.Top?null==this._axisType?this._axisType=AxisType.X:this._axisType==AxisType.Y&&(this._position=Position.Left):this._position!=Position.Left&&this._position!=Position.Right||(null==this._axisType?this._axisType=AxisType.Y:this._axisType==AxisType.X&&(this._position=Position.Bottom));this._invalidate()}}get majorUnit(){return this._majorUnit}set majorUnit(t){if(t!=this._majorUnit){this._majorUnit=asNumber(t,!0);this._invalidate()}}get minorUnit(){return this._minorUnit}set minorUnit(t){if(t!=this._minorUnit){this._minorUnit=asNumber(t,!0);this._invalidate()}}get name(){return this._name}set name(t){t!=this._name&&(this._name=asString(t,!0))}get title(){return this._title}set title(t){if(t!=this._title){this._title=asString(t,!0);this._invalidate()}}get format(){return this._format}set format(t){if(t!=this._format){this._format=asString(t,!0);this._invalidate()}}get majorGrid(){return this._majorGrid}set majorGrid(t){if(t!=this._majorGrid){this._majorGrid=asBoolean(t,!0);this._invalidate()}}get majorTickMarks(){return this._majorTickMarks}set majorTickMarks(t){if((t=asEnum(t,TickMark,!0))!=this._majorTickMarks){this._majorTickMarks=t;this._invalidate()}}get minorGrid(){return this._minorGrid}set minorGrid(t){if(t!=this._minorGrid){this._minorGrid=asBoolean(t,!0);this._invalidate()}}get minorTickMarks(){return this._minorTickMarks}set minorTickMarks(t){if((t=asEnum(t,TickMark,!0))!=this._minorTickMarks){this._minorTickMarks=t;this._invalidate()}}get axisLine(){return void 0===this._axisLine?this.axisType==AxisType.X:this._axisLine}set axisLine(t){if(t!=this._axisLine){this._axisLine=asBoolean(t,!0);this._invalidate()}}get labels(){return this._labels}set labels(t){if(t!=this._labels){this._labels=asBoolean(t,!0);this._invalidate()}}get labelAlign(){return this._labelAlign}set labelAlign(t){if(t!=this._labelAlign){this._labelAlign=asString(t,!0);this._invalidate()}}get labelAngle(){return this._labelAngle}set labelAngle(t){if(t!=this._labelAngle){this._labelAngle=asNumber(t,!0);this._invalidate()}}get labelMin(){return this._labelMin}set labelMin(t){if(t!=this._labelMin){this._labelMin=asBoolean(t,!0);this._invalidate()}}get labelMax(){return this._labelMax}set labelMax(t){if(t!=this._labelMax){this._labelMax=asBoolean(t,!0);this._invalidate()}}get origin(){return this._origin}set origin(t){if(t!=this._origin){this._origin=asNumber(t,!0);this._invalidate()}}get overlappingLabels(){return this._overlap}set overlappingLabels(t){if((t=asEnum(t,OverlappingLabels,!0))!=this._overlap){this._overlap=t;this._invalidate()}}get itemsSource(){return this._items}set itemsSource(t){if(this._items!=t){if(this._cv){this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=t;this._cv=asCollectionView(t);null!=this._cv&&this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}}get binding(){return this._binding}set binding(t){if(t!=this._binding){this._binding=asString(t,!0);this._invalidate()}}get itemFormatter(){return this._ifmt}set itemFormatter(t){if(this._ifmt!=t){this._ifmt=asFunction(t,!0);this._invalidate()}}get logBase(){return this._logBase}set logBase(t){if(t!=this._logBase){this._logBase=asNumber(t,!0,!0);this._invalidate()}}get groupsOptions(){return this._groupsOptions}set groupsOptions(t){if(t!=this._groupsOptions){this._groupsOptions=t;this._invalidate()}}get axisLabels(){return this._actualLabels}_getLogBase(){return this._chart&&this._chart._stacking===Stacking.Stacked100pc?0:this.logBase}_isLogAxis(){const t=this._getLogBase();return null!=t&&t>0}get plotArea(){return this._parea}set plotArea(t){if(t!=this._parea){this._parea=asType(t,PlotArea,!0);this._invalidate()}}get labelPadding(){return this._labelPadding}set labelPadding(t){if(t!=this._labelPadding){this._labelPadding=asNumber(t,!0,!0);this._invalidate()}}get _groupClass(){return this.axisType===AxisType.X?FlexChartCore._CSS_AXIS_X:FlexChartCore._CSS_AXIS_Y}onRangeChanged(t){this.rangeChanged.raise(this,t)}_getPosition(){if(this.axisType==AxisType.X){if(this.position==Position.Auto)return Position.Bottom}else if(this.axisType==AxisType.Y&&this.position==Position.Auto)return Position.Left;return this.position}_isOverlapped(t,e,i,s){var n=this._lbls;if(null!=n&&n.length>1){const s=n.length,r=this._values&&this._values.length==s?this._values:null;let a=0,h=0;for(let o=0;o<s;o++){const s=r?r[o]:o;if(s>=this._actualMin&&s<=this._actualMax){const r=e*(s-this._actualMin)/(this._actualMax-this._actualMin),l=t.measureString(n[o],i,this._groupClass);if(this.axisType==AxisType.X){if(o>0&&Math.abs(r-a)<.5*(l.width+h))return!0;a=r;h=l.width}else this.axisType,AxisType.Y}}}return!1}_getHeight(t,e){this._actualAngle=null;const i=FlexChartCore._CSS_LABEL,s=FlexChartCore._CSS_TITLE;let n=.1*this._getActualRange();const r=this._lbls;let a=this.labelAngle;if(this.labels&&this._chart._getChartType()!==ChartType.Funnel){n=this._updateAutoFormat(n);if(null!=r&&r.length>0){const s=r.length,n=this._values&&this._values.length==s?this._values:null;this._annoSize=new Size;for(let e=0;e<s;e++){const s=n?n[e]:e;if(s>=this._actualMin&&s<=this._actualMax){let n=r[e],a=i;if(this.itemFormatter){const e=this._getFormattedItem(t,s,n,new Point,i,!0);n=e.text;a=e.cls}const h=t.measureString(n,a,this._groupClass);this.axisType,AxisType.X,h.width>this._annoSize.width&&(this._annoSize.width=h.width);h.height>this._annoSize.height&&(this._annoSize.height=h.height)}}null==a&&this.axisType==AxisType.X&&(this._isOverlapped(t,Math.max(10,e-this._annoSize.width),i,this.axisType)?a=this._actualAngle=-45:this._actualAngle=0)}else if(isNumber(this.majorUnit)&&this._axisType===AxisType.Y&&this.itemFormatter){const e=[],s=[];this._annoSize=new Size;this._getAutoLbsAndVals(e,s);for(let e=0;e<s.length;e++){const n=s[e];let r=this._formatValue(n),a=i;r=this._getFormattedItem(t,n,r,new Point,i,!0).text;a=i;const h=t.measureString(r,a,this._groupClass);h.width>this._annoSize.width&&(this._annoSize.width=h.width);h.height>this._annoSize.height&&(this._annoSize.height=h.height)}}else{let e=this._actualMin-n,s=this._formatValue(e),r=i;if(this.itemFormatter){s=this._getFormattedItem(t,e,s,new Point,i,!0).text;r=i}let a=t.measureString(s,r,this._groupClass);this._annoSize=a;e=this._actualMax+n;s=this._formatValue(e);r=i;if(this.itemFormatter){s=this._getFormattedItem(t,e,s,new Point,i,!0).text;r=i}a=t.measureString(s,r,this._groupClass);a.width>this._annoSize.width&&(this._annoSize.width=a.width);a.height>this._annoSize.height&&(this._annoSize.height=a.height)}this._annoSizeBase=new Size(this._annoSize.width,this._annoSize.height);if(a){a>90?a=90:a<-90&&(a=-90);const t=a*Math.PI/180,e=this._annoSize.width,i=this._annoSize.height;this._annoSize.width=e*Math.abs(Math.cos(t))+i*Math.abs(Math.sin(t));this._annoSize.height=e*Math.abs(Math.sin(t))+i*Math.abs(Math.cos(t));this._actualAngle=a}}else{this._annoSize=new Size(8,8);this._annoSizeBase=new Size(this._annoSize.width,this._annoSize.height)}let h=0;if(this.labels){h=2*(this._labelPadding||5);this._axisType==AxisType.X?h+=this._annoSize.height:h+=this._annoSize.width+this._TICK_LABEL_DISTANCE+2}const o=this._TICK_HEIGHT;let l=this._TICK_OVERLAP,_=this.majorTickMarks;_==TickMark.Outside?l=1:_==TickMark.Inside?l=-1:_==TickMark.Cross&&(l=0);null==_&&(_=TickMark.Outside);_!=TickMark.None&&(h+=.5*(1+l)*o);if(this._title){const e=this._title;this._szTitle=t.measureString(e,s,this._groupClass);h+=this._szTitle.height}else this._szTitle=void 0;if(this._lbls&&this.groupsOptions&&this.groupsOptions.display!==AxisGroupsDisplay.None){this._groupsPanel||(this._groupsPanel=new _AxisGroups(this));this._groupsPanel.createGroups();h+=this._groupsPanel.getHeight(t)}t.fontSize=null;return h}_updateAutoFormat(t){if(this._isTimeAxis){const e=this.format,i=.001*this._getActualRange()/10,s=new _timeSpan(i*_timeSpan.TicksPerSecond),n=isNumber(this._majorUnit)?_timeSpan.fromDays(this._majorUnit):_timeHelper.NiceTimeSpan(s,e);e||(this._tfmt=_timeHelper.GetTimeDefaultFormat(1e3*n.TotalSeconds,0));t=n.TotalSeconds}return t}_getActualRange(){return this._actualMax-this._actualMin}_updateActualLimitsByChartType(t,e,i){if(t&&t.length>0&&!this._isTimeAxis){const t=this._chart._getChartType();if(t!=ChartType.Column&&t!=ChartType.Bar){e-=.5;i+=.5}}return{min:e,max:i}}_updateActualLimits(t,e,i,s=null,n=null){var r=this._actualMin,a=this._actualMax;this._isTimeAxis=t==DataType.Date;var h=this._updateActualLimitsByChartType(s,e,i);e=h.min;i=h.max;var o=this._min,l=this._max;isDate(o)&&(o=o.valueOf());isDate(l)&&(l=l.valueOf());let _=this._getSeries(),c=this._chart&&(null!=_&&void 0!==_._getChartType()||this._chart._stacking!==Stacking.Stacked100pc);c||(c=this._chart._isRotated()?this.axisType==AxisType.Y:this.axisType==AxisType.X);this._actualMin=null!=o&&c?o:e;const d=this._actualMin;this._actualMax=null!=l&&c?l:i;if(d==this._actualMax)if(void 0!==o&&void 0===l)this._actualMax+=1;else if(void 0===o&&void 0!==l)this._actualMin-=1;else if(0===d)this._actualMax=1;else{const t=Math.abs(d);if(t<1){this._actualMin-=t;this._actualMax+=t}else{this._actualMin-=1;this._actualMax+=1}}if(this._getLogBase()>0){const t=this.logBase,e=Math.log(t);if(!this._max){const i=Math.ceil(Math.log(this._actualMax)/e);this._actualMax=Math.pow(t,i)}if(!this._min){const i=Math.floor(Math.log(this._actualMin)/e);this._actualMin=Math.pow(t,i)}(this._actualMin<=0||!isNumber(this._actualMin))&&(this._actualMin=1);this._actualMax<this._actualMin?this._actualMax=this._actualMin+1:this._actualMax===this._actualMin&&(this._actualMin=.1*this._actualMax)}(r!=this._actualMin&&(isNumber(r)||isNumber(this._actualMin))||a!=this._actualMax&&(isNumber(a)||isNumber(this._actualMax)))&&this.onRangeChanged();if(this._items){this._values=[];this._lbls=[];const t=this._items.length;let e="value",i="text";if(this.binding){const t=this.binding.split(",");if(2==t.length){e=t[0];i=t[1]}}for(let s=0;s<t;s++){const t=this._items[s],n=t[e];if(isNumber(n)){this._values.push(n);this._lbls.push(t[i])}else if(isDate(n)){this._values.push(n.getTime());this._lbls.push(t[i])}}}else{this._lbls=s;this._values=n}}_layout(t,e){var i=this.axisType==AxisType.Y;this._plotrect=e;this._axrect=i?new Rect(t.left,t.top,t.height,t.width):t;this._groupsPanel&&this._groupsPanel.layout()}_hasVisibileSeries(){for(var t,e=this._chart.series,i=0,s=e.length;i<s;i++)if((t=e[i].visibility)==SeriesVisibility.Plot||t==SeriesVisibility.Visible)return!0;return!1}_getSeries(){if(this._chart){let t=this._chart.series,e=0,i=t.length;for(;e<i;e++)if(t[e].axisY==this||t[e].axisX==this)return t[e]}return null}_render(t){if(this.position==Position.None)return;if(!this._hasVisibileSeries())return;this.axisLabels.length=0;this._vals={};var e=0;this.labelAngle&&((e=this.labelAngle)>90?e=90:e<-90&&(e=-90));null==this.labelAngle&&null!=this._actualAngle&&(e=this._actualAngle);var i=FlexChartCore._FG;let s=[],n=!1;var r=this._getActualRange();if(isNumber(r)){let r=[];this._rects=[];this._vals.major=s;this._vals.hasLbls=[];if(this._lbls&&this._lbls.length>0){r=this._lbls;if(0==this._values.length){n=!0;for(let t=0;t<r.length;t++)s.push(t)}else s=this._values}else this._getAutoLbsAndVals(r,s);const a=Math.min(s.length,r.length);t.textFill=i;const h=this._TICK_HEIGHT;let o=this._TICK_OVERLAP,l=this.majorTickMarks;null==l&&(l=TickMark.Outside);l==TickMark.Outside?o=1:l==TickMark.Inside?o=-1:l==TickMark.Cross&&(o=0);const _=.5*(o-1)*h,c=.5*(1+o)*h;if(this._isTimeAxis&&a>=2){if(s[1]-s[0]>864e5){null==this._min&&(this._actualMin=_timeHelper.FloorDay(this._actualMin));null==this._max&&(this._actualMax=_timeHelper.CeilDay(this._actualMax))}}for(let i=0;i<a;i++){let a=!0;const h=s[i],o=r[i];let d=this.labels;d&&(n||this.itemsSource)&&this.majorUnit&&i%this.majorUnit!=0&&(d=!1);if(h>=this._actualMin&&h<=this._actualMax){const s=t.textFill;a=this._renderLabelsAndTicks(t,i,h,o,e,l,d,_,c);t.textFill=s}this._vals.hasLbls.push(a);a&&this.axisLabels.push(o)}}(this.minorGrid||this.minorTickMarks!=TickMark.None)&&this._renderMinor(t,s,n);t.stroke=i;t.fontSize=null;this._renderLineAndTitle(t);this._lbls&&this.groupsOptions&&this.groupsOptions.display!==AxisGroupsDisplay.None&&this._groupsPanel&&this._groupsPanel.render(t);t.stroke=null;t.fontSize=null;t.textFill=null;t.strokeWidth=null}_getAutoLbsAndVals(t,e){var i=this._actualMax-this._actualMin,s=this._calcMajorUnit();0==s&&(s=.1*this._niceTickNumber(i));var n=Math.floor(this._actualMin/s)*s;n<this._actualMin&&(n+=s);var r=Math.min(Axis.MAX_MAJOR,Math.floor(i/s)+1);if(this._isTimeAxis){this._createTimeLabels(n,r,e,t);this._addMinMaxLabels(e,t)}else if(this._getLogBase()){this._createLogarithmicLabels(this._actualMin,this._actualMax,this.majorUnit,e,t,!0);this._addMinMaxLabels(e,t)}else{this._createLabels(n,r,s,e,t);this._addMinMaxLabels(e,t)}}_renderLineAndTitle(t){var e=this._getPosition(),i=this.axisType==AxisType.Y,s=e!=Position.Top&&e!=Position.Right,n=FlexChartCore._CSS_TITLE,r=FlexChartCore._CSS_LINE;if(i)if(s){if(this._title){const e=new Point(this._axrect.left+.5*this._szTitle.height,this._axrect.top+.5*this._axrect.height);FlexChartCore._renderRotatedText(t,this._title,e,1,1,e,-90,n,this._groupClass)}this.axisLine&&t.drawLine(this._axrect.right,this._axrect.top,this._axrect.right,this._axrect.bottom,r)}else{if(this._title){const e=new Point(this._axrect.right-.5*this._szTitle.height,this._axrect.top+.5*this._axrect.height);FlexChartCore._renderRotatedText(t,this._title,e,1,1,e,90,n,this._groupClass)}this.axisLine&&t.drawLine(this._axrect.left,this._axrect.top,this._axrect.left,this._axrect.bottom,r)}else if(s){this.axisLine&&t.drawLine(this._axrect.left,this._axrect.top,this._axrect.right,this._axrect.top,r);this._title&&FlexChartCore._renderText(t,this._title,new Point(this._axrect.left+.5*this._axrect.width,this._axrect.bottom),1,2,n)}else{this.axisLine&&t.drawLine(this._axrect.left,this._axrect.bottom,this._axrect.right,this._axrect.bottom,r);this._title&&FlexChartCore._renderText(t,this._title,new Point(this._axrect.left+.5*this._axrect.width,this._axrect.top),1,0,n)}}_renderMinor(t,e,i){var s=this._getPosition(),n=this.axisType==AxisType.Y,r=s!=Position.Top&&s!=Position.Right;this._getLogBase()?this._createLogarithmicMinors(t,e,n,r,i):this._createMinors(t,e,n,r,i)}_renderRotatedText(t,e,i,s,n,r,a,h,o,l,_){if(this.itemFormatter){const n=this._getFormattedItem(t,e,i,s,o);if(n){i=n.text;o=n.cls}else i=null}FlexChartCore._renderRotatedText(t,i,s,n,r,a,h,o,l,_)}_getFormattedItem(t,e,i,s,n,r=!1){if(this.itemFormatter){const a=s.clone();this._plotrect&&(this.axisType==AxisType.X?this.position==Position.Top?a.y=this._plotrect.top:a.y=this._plotrect.bottom:this.position==Position.Right?a.x=this._plotrect.right:a.x=this._plotrect.left);let h={val:e,text:i,pos:a,cls:n};r&&(t.readOnly=!0);h=this.itemFormatter(t,h);r&&(t.readOnly=!1);return h}}_renderLabelsAndTicks(t,e,i,s,n,r,a,h,o){var l=this._getPosition(),_=!1,c=this.axisType==AxisType.Y,d=l!=Position.Top&&l!=Position.Right,u=this.labelPadding||5,g=this._TICK_WIDTH,p=this._getLabelAlign(c),f=FlexChartCore._CSS_LABEL,m=FlexChartCore._CSS_GRIDLINE,x=FlexChartCore._CSS_TICK,b=FlexChartCore._FG,y=FlexChartCore._FG,S=this._GRIDLINE_WIDTH,v=i!=this._actualMin&&this.majorGrid;if(c){const e=this.convert(i);if(v){t.stroke=b;t.strokeWidth=S;t.drawLine(this._plotrect.left,e,this._plotrect.right,e,m)}t.stroke=y;t.strokeWidth=g;if(d){if(a){_=!0;const r=new Point(this._axrect.right-o-this._TICK_LABEL_DISTANCE-u,e);n>0?90==n?this._renderRotatedText(t,i,s,r,1,0,r,n,f,this._groupClass):this._renderRotatedText(t,i,s,r,2,1,r,n,f,this._groupClass):n<0?-90==n?this._renderRotatedText(t,i,s,r,1,2,r,n,f,this._groupClass):this._renderRotatedText(t,i,s,r,2,1,r,n,f,this._groupClass):_=this._renderLabel(t,i,s,r,2,p,f)}r!=TickMark.None&&_&&t.drawLine(this._axrect.right-h,e,this._axrect.right-o,e,x)}else{if(a){_=!0;const r=new Point(this._axrect.left+o+this._TICK_LABEL_DISTANCE+u,e);n>0?90==n?this._renderRotatedText(t,i,s,r,1,2,r,n,f,this._groupClass):this._renderRotatedText(t,i,s,r,0,1,r,n,f,this._groupClass):n<0?-90==n?this._renderRotatedText(t,i,s,r,1,0,r,n,f,this._groupClass):this._renderRotatedText(t,i,s,r,0,1,r,n,f,this._groupClass):_=this._renderLabel(t,i,s,r,0,p,f)}r!=TickMark.None&&_&&t.drawLine(this._axrect.left+h,e,this._axrect.left+o,e,x)}}else{let e=this.convert(i);if(v&&a){t.stroke=b;t.strokeWidth=S;t.drawLine(e,this._plotrect.top,e,this._plotrect.bottom,m)}this.overlappingLabels==OverlappingLabels.Auto&&this._xCross(e)&&(a=!1);t.stroke=y;t.strokeWidth=g;if(d){if(a){const r=new Point(e,this._axrect.top+o+u);_=0!=n?this._renderRotatedLabel(t,i,s,r,p,n,f,d):this._renderLabel(t,i,s,r,p,0,f)}if(r!=TickMark.None&&_){e=this.convert(i);t.drawLine(e,this._axrect.top+h,e,this._axrect.top+o,x)}}else{if(a){const r=new Point(e,this._axrect.bottom-o-u);_=0!=n?this._renderRotatedLabel(t,i,s,r,p,n,f,d):this._renderLabel(t,i,s,r,p,2,f)}if(r!=TickMark.None&&_){e=this.convert(i);t.drawLine(e,this._axrect.bottom-h,e,this._axrect.bottom-o,x)}}}return _}_xCross(t){var e=this._rects.length;for(let i=0;i<e;i++){const e=this._rects[i];if(t>=e.left&&t<=e.right)return!0}return!1}_createMinors(t,e,i,s,n){if(e){const r=this.majorUnit?this._isTimeAxis?24*this.majorUnit*3600*1e3:this.majorUnit:e.length>1?e[1]-e[0]:e[0],a=isNumber(this.minorUnit)?this._isTimeAxis?24*this.minorUnit*3600*1e3:this.minorUnit:.5*r;if(a<=0)return;const h=[];for(let t=e[0];t>this._actualMin&&h.length<Axis.MAX_MINOR;t-=a)-1==e.indexOf(t)&&h.push(t);for(let t=e[0]+a;t<this._actualMax&&h.length<Axis.MAX_MINOR;t+=a)(-1==e.indexOf(t)||n&&this.majorUnit&&t%this.majorUnit!=0)&&h.push(t);this._renderMinors(t,h,i,s)}}_createLogarithmicMinors(t,e,i,s,n){if(e&&(!this.minorUnit||this.minorUnit<this._getLogBase())){let n=this.logBase;this.majorUnit>n&&(n=this.majorUnit);if(0==e.length){const t=Math.log(n),i=Math.floor(Math.log(this._actualMin)/t),s=Math.ceil(Math.log(this.actualMax)/t);if(this.majorUnit>0){e.push(Math.pow(n,i));e.push(Math.pow(n,s))}else{e.push(Math.pow(n,s));e.push(Math.pow(n,i))}}this.minorUnit||(this.minorUnit=n-1<1?.2*(n-1):.2*n);const r=[];if(this.majorUnit>0){for(let t=e[0]-e[0]/n*this.minorUnit;t>=this._actualMin&&r.length<Axis.MAX_MINOR;t-=e[0]/n*this.minorUnit)r.push(t);for(let t=0;t<e.length-1;t++)for(let i=e[t]+e[t]*this.minorUnit;i<e[t+1]&&r.length<Axis.MAX_MINOR;i+=e[t]*this.minorUnit)i>=this._actualMin&&i<=this._actualMax&&r.push(i);for(let t=e[e.length-1]+e[e.length-1]*this.minorUnit;t<=this._actualMax&&r.length<Axis.MAX_MINOR;t+=e[e.length-1]*this.minorUnit)r.push(t)}else{for(let t=e[e.length-1]-e[e.length-1]/n*this.minorUnit;t>=this._actualMin&&r.length<Axis.MAX_MINOR;t-=e[e.length-1]/n*this.minorUnit)r.push(t);for(let t=0;t<e.length-1;t++)for(let i=e[t]-e[t+1]*this.minorUnit;i>e[t+1]&&r.length<Axis.MAX_MINOR;i-=e[t+1]*this.minorUnit)i>=this._actualMin&&i<=this._actualMax&&r.push(i);for(let t=e[0]+e[0]*this.minorUnit;t<=this._actualMax&&r.length<Axis.MAX_MINOR;t+=e[0]*this.minorUnit)r.push(t)}this._renderMinors(t,r,i,s)}}_renderMinors(t,e,i,s){var n=this._TICK_HEIGHT,r=this._TICK_WIDTH,a=this._TICK_OVERLAP,h=FlexChartCore._FG,o=this.minorTickMarks,l=!0;this._vals.minor=e;o==TickMark.Outside?a=1:o==TickMark.Inside?a=-1:o==TickMark.Cross?a=0:l=!1;var _=.5*(a-1)*n,c=.5*(1+a)*n,d=e?e.length:0,u=this.minorGrid,g=this._plotrect,p=this._GRIDLINE_WIDTH,f=FlexChartCore._FG,m=FlexChartCore._CSS_GRIDLINE_MINOR,x=FlexChartCore._CSS_TICK_MINOR;for(let n=0;n<d;n++)if(e[n]>=this.actualMin&&e[n]<=this.actualMax)if(i){const i=this.convert(e[n]);if(l){t.stroke=h;t.strokeWidth=r;s?t.drawLine(this._axrect.right-_,i,this._axrect.right-c,i,x):t.drawLine(this._axrect.left+_,i,this._axrect.left+c,i,x)}if(u){t.stroke=f;t.strokeWidth=p;t.drawLine(g.left,i,g.right,i,m)}}else{const i=this.convert(e[n]);if(l){t.stroke=h;t.strokeWidth=r;s?t.drawLine(i,this._axrect.top+_,i,this._axrect.top+c,x):t.drawLine(i,this._axrect.bottom-_,i,this._axrect.bottom-c,x)}if(u){t.stroke=f;t.strokeWidth=p;t.drawLine(i,g.top,i,g.bottom,m)}}}_renderLabel(t,e,i,s,n,r,a){var h=!1;if(this.itemFormatter){const n=this._getFormattedItem(t,e,i,s,a);if(n){i=n.text;a=n.cls}else i=null}if(i){const e=this._rects,o=this.overlappingLabels==OverlappingLabels.Auto&&!isNumber(this._actualAngle),l=FlexChartCore._renderText(t,i,s,n,r,a,this._groupClass,null,t=>{if(o){const i=e.length;for(let s=0;s<i;s++)if(FlexChartCore._intersects(e[s],t))return!1}return!0});if(l){l.left+=4;l.width+=8;e.push(l);h=!0}}return h}_renderRotatedLabel(t,e,i,s,n,r,a,h){if(this.itemFormatter){const n=this._getFormattedItem(t,e,i,s,a);if(n){i=n.text;a=n.cls}else i=null}if(i){const e=t.measureString(i,a,this._groupClass),o=.5*e.height,l=.5*e.width*Math.abs(Math.sin(r*Math.PI/180)),_=.5*e.width,c=.5*(e.width*Math.abs(Math.cos(r*Math.PI/180))+e.height*Math.abs(Math.sin(r*Math.PI/180))),d=new Point(s.x,s.y),u=new Point(s.x,s.y);this.labelAlign||(n=90==r||-90==r?1:h?r>0?0:2:r>0?2:0);if(h){s.y+=o+l;d.y+=o+l-.5*e.height}else{s.y-=o+l-e.height;d.y-=o+l-.5*e.height}let g=0;if(2===n){d.x-=c;s.x-=_+c;g=d.x+c-e.height-2}else if(0===n){d.x+=c;s.x-=_-c;g=d.x-c}else{s.x-=_;g=d.x-e.height/2}const p=new Rect(g,u.y,e.height+2,e.width),f=this._rects;if(this.overlappingLabels==OverlappingLabels.Auto){const t=f.length;for(let e=0;e<t;e++)if(FlexChartCore._intersects(f[e],p))return!1}FlexChartCore._renderRotatedText(t,i,s,0,2,d,r,a,this._groupClass);this._rects.push(p);return!0}return!1}_getLabelAlign(t){var e=1;if(this.labelAlign){const i=this.labelAlign.toLowerCase();t?"top"==i?e=0:"bottom"==i&&(e=2):"left"==i?e=0:"right"==i&&(e=2)}return e}_addMinMaxLabels(t,e){if(this.labelMin){const i=this.actualMin;if(isFinite(i)&&!t.includes(i)){e.splice(0,0,this._formatValue(i));t.splice(0,0,i)}}if(this.labelMax){const i=this.actualMax;if(isFinite(i)&&!t.includes(i)){e.splice(0,0,this._formatValue(i));t.splice(0,0,i)}}}convert(t,e,i){var s=null==e?this._actualMax:e,n=null==i?this._actualMin:i;if(s==n||!this._axrect)return 0;var r=this._axrect.left,a=this._axrect.width,h=this._axrect.top,o=this._axrect.height;if(null!=this._customConvert){const e=this._customConvert(t,n,s);return this.axisType==AxisType.Y?h+e*o:r+e*a}if(this._getLogBase()){if(t<=0)return NaN;const e=Math.log(s/n);return this._reversed?this.axisType==AxisType.Y?h+Math.log(t/n)/e*o:r+a-Math.log(t/n)/e*a:this.axisType==AxisType.Y?h+o-Math.log(t/n)/e*o:r+Math.log(t/n)/e*a}return this._reversed?this.axisType==AxisType.Y?h+(t-n)/(s-n)*o:r+a-(t-n)/(s-n)*a:this.axisType==AxisType.Y?h+o-(t-n)/(s-n)*o:r+(t-n)/(s-n)*a}convertBack(t){if(this._actualMax==this._actualMin)return 0;var e=this._plotrect.left,i=this._plotrect.width,s=this._plotrect.top,n=this._plotrect.height,r=this._getActualRange(),a=this._getLogBase();if(null!=this._customConvertBack)return this.axisType==AxisType.Y?this._customConvertBack((t-s)/n,this._actualMin,this._actualMax):this._customConvertBack((t-e)/i,this._actualMin,this._actualMax);if(a){let r=0;r=this._reversed?this.axisType==AxisType.Y?(t-s)/n:1-(t-e)/i:this.axisType==AxisType.Y?1-(t-s)/n:(t-e)/i;return Math.pow(a,(Math.log(this._actualMin)+(Math.log(this._actualMax)-Math.log(this._actualMin))*r)/Math.log(a))}return this._reversed?this.axisType==AxisType.Y?this._actualMin+(t-s)*r/n:this._actualMin+(e+i-t)*r/i:this.axisType==AxisType.Y?this._actualMax-(t-s)*r/n:this._actualMin+(t-e)*r/i}get axisType(){var t=this._chart;if(t){if(t.axisX==this)return AxisType.X;if(t.axisY==this)return AxisType.Y}return this._axisType}_getMinNum(){return this._actualMin}_getMaxNum(){return this._actualMax}_getTitleSize(){return this._szTitle?this._szTitle:new Size}_invalidate(){this._chart&&this._chart.invalidate()}_cvCollectionChanged(t,e){this._invalidate()}_createLabels(t,e,i,s,n){for(let r=0;r<e;r++){const e=(t+i*r).toFixed(14),a=parseFloat(e),h=this._formatAxisValue(a),o=n.indexOf(h);if(o>=0&&!isNumber(this.majorUnit)&&!this._format){const t=parseFloat(h);Math.abs(t-a)<Math.abs(t-s[o])&&(s[o]=a)}else{s.push(a);n.push(h)}}}_createLogarithmicLabels(t,e,i,s,n,r){var a=this._getLogBase(),h=Math.log(a),o=Math.floor(Math.log(t)/h),l=Math.ceil(Math.log(e)/h),_=a,c=!0;if(i>0){c=!1;_=i}_<a&&(_=a);var d=(l-o+1)*a/_,u=1;if(r){const t=this._getPosition(),e=this._getAnnoNumber(t==Position.Left||t==Position.Right);d>e?u=Math.floor(d/e+1):c&&(d<=.2*e?_=.2*a:d<=.1*e&&(_=.1*a))}for(let i=o;i<=l;i+=u)if(c){const r=Math.pow(a,i);for(let i=0;i*_<a-1;i++){const a=r*(1+i*_);if(a>=t&&a<=e)if(0==i){s.unshift(a);n&&n.unshift(this._formatValue(a))}else if(!this.minorGrid&&this.minorTickMarks==TickMark.None){s.push(a);n&&n.push(this._formatValue(a))}}}else{const r=Math.pow(_,i);if(r>=t&&r<=e){s.push(r);n&&n.push(this._formatValue(r))}}}_createTimeLabels(t,e,i,s){var n=this._actualMin,r=this._actualMax,a=new Date(n),h=new Date(r),o=this._format,l=this._getAnnoNumber(this._axisType==AxisType.Y);l>10&&(l=10);var _=.001*(this._actualMax-this._actualMin)/l,c=new _timeSpan(_*_timeSpan.TicksPerSecond),d=isNumber(this._majorUnit)?_timeSpan.fromDays(this._majorUnit):_timeHelper.NiceTimeSpan(c,o);o||(this._tfmt=o=_timeHelper.GetTimeDefaultFormat(1e3*d.TotalSeconds,0));var u=d.Ticks,g=_timeHelper.RoundTime(n,d.TotalDays,!1);isFinite(g)&&(n=g);var p=_timeHelper.RoundTime(r,d.TotalDays,!0);isFinite(p)&&(r=p);var f=new Date(n);new Date(r);if(d.TotalDays>=365&&!isNumber(this._majorUnit)){(f=new Date(a.getFullYear(),0,1))<a&&f.setFullYear(f.getFullYear()+1);let t=d.TotalDays/365;t-=t%1;for(let e=f;e<=h&&t;e.setFullYear(e.getFullYear()+t)){const t=e.valueOf();i.push(t);s.push(this._formatValue(t))}}else if(d.TotalDays>=30&&!isNumber(this._majorUnit)){(f=new Date(a.getFullYear(),a.getMonth(),1))<a&&f.setMonth(f.getMonth()+1);let t=d.TotalDays/30;t-=t%1;for(let e=f;e<=h;e.setMonth(e.getMonth()+t)){const t=e.valueOf();i.push(t);s.push(this._formatValue(t))}}else{let t=1e3*u/_timeSpan.TicksPerSecond,e=f,n=a.getTime()-e.getTime();n>t&&(e=new Date(e.getTime()+Math.floor(n/t)*t));for(;e<=h&&t;e=new Date(e.getTime()+t)){const t=e.valueOf();i.push(t);s.push(this._formatValue(t))}}}_formatValue(t){if(this._isTimeAxis)return this._format?Globalize.format(new Date(t),this._format):Globalize.format(new Date(t),this._tfmt);if(this._format)return Globalize.format(t,this._format);{const e=t==Math.round(t)?"n0":"n";return Globalize.format(t,e)}}_hitTest(t){return this._groupsPanel?this._groupsPanel.hitTest(t):void 0}_formatAxisValue(t,e){if(this._isTimeAxis)return this._format?Globalize.format(new Date(t),this._format):Globalize.format(new Date(t),this._tfmt);if(this._format)return Globalize.format(t,this._format);if(isNumber(t)){const i=this._findFormat(t,e);return Globalize.format(t,i)}return t}_findFormat(t,e){var i=t==Math.round(t)?"n0":"n";void 0!==e&&(i+=e.toString());if("n"==i){const s=t.toFixed(14),n=s.search(".");if(n>=0){e=1;for(let t=s.length-1;t>=n;t--)if("0"!=s[t]){e=t-n-1;break}i+=e.toString()}}return i}_calcMajorUnit(){var t=this._majorUnit;if(!isNumber(t)){const e=this._getActualRange(),i=this._nicePrecision(e),s=e/this._getAnnoNumber(this.axisType==AxisType.Y);(t=this._niceNumber(2*s,-i,!0))<s&&(t=this._niceNumber(s,1-i,!1));t<s&&(t=this._niceTickNumber(s))>s&&(t*=.5)}return t}_getAnnoNumber(t){var e=t?this._annoSizeBase&&this._annoSizeBase.height:this._annoSize&&this._annoSize.width,i=t?this._axrect&&this._axrect.height:this._axrect&&this._axrect.width;if(e>0&&i>0){let t=Math.floor(i/(e+6));t<=0&&(t=1);return t}return 10}_nicePrecision(t){if(!isNumber(t)||t<=0)return 0;var e,i=Math.log(t)/Math.LN10;e=i>=0?Math.floor(i):Math.ceil(i);var s=t/Math.pow(10,e);if(s<3){e=1-e;(s=t/Math.pow(10,e))<3&&(e+=1)}return e}_niceTickNumber(t){if(0==t)return t;t<0&&(t=-t);var e=Math.log(t)/Math.LN10,i=Math.floor(e),s=t/Math.pow(10,i),n=10;s<=1?n=1:s<=2?n=2:s<=5&&(n=5);return n*Math.pow(10,i)}_niceNumber(t,e,i){if(0==t)return t;t<0&&(t=-t);var s=t/Math.pow(10,e),n=10;i?s<1.5?n=1:s<3?n=2:s<4.5?n=4:s<7&&(n=5):s<=1?n=1:s<=2?n=2:s<=5&&(n=5);return n*Math.pow(10,e)}get _uniqueId(){return this.__uniqueId}}Axis.MAX_MAJOR=1e3;Axis.MAX_MINOR=2e3;Axis._id=0;export class AxisCollection extends ObservableArray{getAxis(t){var e=this.indexOf(t);return e>-1?this[e]:null}indexOf(t){for(let e=0;e<this.length;e++)if(this[e].name==t)return e;return-1}}!function(t){t[t.tickf7=-7]="tickf7";t[t.tickf6=-6]="tickf6";t[t.tickf5=-5]="tickf5";t[t.tickf4=-4]="tickf4";t[t.tickf3=-3]="tickf3";t[t.tickf2=-2]="tickf2";t[t.tickf1=-1]="tickf1";t[t.second=1]="second";t[t.minute=60]="minute";t[t.hour=3600]="hour";t[t.day=86400]="day";t[t.week=604800]="week";t[t.month=2678400]="month";t[t.year=31536e3]="year";t[t.maxtime=Number.MAX_VALUE]="maxtime"}(_tmInc||(_tmInc={}));class _timeSpan{constructor(t){this.ticks=t}get Ticks(){return this.ticks}get TotalSeconds(){return this.ticks/1e7}get TotalDays(){return this.ticks/1e7/86400}static fromSeconds(t){return new _timeSpan(1e7*t)}static fromDays(t){return new _timeSpan(1e7*t*24*60*60)}}_timeSpan.TicksPerSecond=1e7;class _timeHelper{init(t){this.year=t.getFullYear();this.month=t.getMonth();this.day=t.getDate();this.hour=t.getHours();this.minute=t.getMinutes();this.second=t.getSeconds()}constructor(t){isDate(t)?this.init(t):isNumber(t)&&this.init(FlexChartCore._fromOADate(t))}getTimeAsDateTime(){let t=0,e=0,i=0;if(this.hour>=24){this.hour-=24;this.day+=1}if(this.month<0){t=-1-this.day;this.month=1}else if(this.month>11){t=this.month-12;this.month=11}if(this.day<1){e=-1-this.day;this.day=1}else if(this.day>28&&1==this.month){e=this.day-28;this.day=28}else if(this.day>30&&(3==this.month||5==this.month||8==this.month||10==this.month)){e=this.day-30;this.day=30}else if(this.day>31){e=this.day-31;this.day=31}if(this.second>59){i=this.second-59;this.second=59}let s=0;if(this.minute>59){s=this.minute-59;this.minute=59}return new Date(this.year,this.month,this.day,this.hour,this.minute,this.second)}getTimeAsDouble(){return this.getTimeAsDateTime().valueOf()}static tround(t,e,i){var s=t/e*e;s-=s%1;i&&s!=t&&(s+=e-=e%1);return s}static FloorDay(t){const e=new Date(t);return new Date(e.getFullYear(),e.getMonth(),e.getDate()).valueOf()}static CeilDay(t){const e=new Date(t),i=new Date(e.getFullYear(),e.getMonth(),e.getDate()).valueOf();return i<t?new Date(e.getFullYear(),e.getMonth(),e.getDate()+1).valueOf():i}static RoundTime(t,e,i){var s=24*e*60*60;if(s>0){const e=new _timeHelper(t);if(s<_tmInc.minute){e.second=_timeHelper.tround(e.second,s,i);return e.getTimeAsDouble()}e.second=0;if(s<_tmInc.hour){s/=_tmInc.minute;e.minute=_timeHelper.tround(e.minute,s,i);return e.getTimeAsDouble()}e.minute=0;if(s<_tmInc.day){s/=_tmInc.hour;e.hour=_timeHelper.tround(e.hour,s,i);return e.getTimeAsDouble()}e.hour=0;if(s<_tmInc.month){s/=_tmInc.day;e.day=_timeHelper.tround(e.day,s,i);return e.getTimeAsDouble()}e.day=1;if(s<_tmInc.year){s/=_tmInc.month;1!=e.month&&(e.month=_timeHelper.tround(e.month,s,i));return e.getTimeAsDouble()}e.month=1;s/=_tmInc.year;e.year=_timeHelper.tround(e.year,s,i);return e.getTimeAsDouble()}{let n=t;const r=n-s;let a=r/e*e;i&&a!=r&&(a+=e);n=s+a;return n}}static TimeSpanFromTmInc(t){var e=_timeSpan.fromSeconds(1);if(t!=_tmInc.maxtime)if(t>_tmInc.tickf1)e=_timeSpan.fromSeconds(t);else{let i=t,s=1;i+=7;for(;i>0;){s*=10;i--}e=new _timeSpan(s)}return e}static manualTimeInc(t){var e=_tmInc.second;if(null==t||0==t.length)return e;var i=t.indexOf("f");if(i>=0){let s=-1;if(i>0&&"%"==t.substr(i-1,1))s=-1;else for(let e=1;e<6&&!(i+e>=t.length);e++){if("f"!=t.substr(i+e,1))break;s--}e=s}else t.indexOf("s")>=0?e=_tmInc.second:t.indexOf("m")>=0?e=_tmInc.minute:t.indexOf("h")>=0||t.indexOf("H")?e=_tmInc.hour:t.indexOf("d")>=0?e=_tmInc.day:t.indexOf("M")>=0?e=_tmInc.month:t.indexOf("y")>=0&&(e=_tmInc.year);return e}static getNiceInc(t,e,i){for(let s=0;s<t.length;s++){const n=t[s]*i;if(e<=n)return n}return 0}static NiceTimeSpan(t,e){var i=_tmInc.second;null!=e&&e.length>0&&(i=_timeHelper.manualTimeInc(e));var s=0,n=0;if(i<_tmInc.second&&t.TotalSeconds<10){s=t.Ticks;n=_timeHelper.TimeSpanFromTmInc(i).Ticks;for(;s>10*n;)n*=10;let e=n;s>e&&(e*=2);s>e&&(e=5*n);s>e&&(e=10*n);return new _timeSpan(e)}if(0==(s=Math.ceil(t.TotalSeconds)))return _timeHelper.TimeSpanFromTmInc(i);n=1;if(i<_tmInc.minute){if(s<_tmInc.minute&&0!=(n=_timeHelper.getNiceInc([1,2,5,10,15,30],s,i)))return _timeSpan.fromSeconds(n);i=_tmInc.minute}if(i<_tmInc.hour){if(s<_tmInc.hour&&0!=(n=_timeHelper.getNiceInc([1,2,5,10,15,30],s,i)))return _timeSpan.fromSeconds(n);i=_tmInc.hour}if(i<_tmInc.day){if(s<_tmInc.day&&0!=(n=_timeHelper.getNiceInc([1,3,6,12],s,i)))return _timeSpan.fromSeconds(n);i=_tmInc.day}if(i<_tmInc.month){if(s<_tmInc.month&&0!=(n=_timeHelper.getNiceInc([1,2,7,14],s,i)))return _timeSpan.fromSeconds(n);i=_tmInc.month}if(i<_tmInc.year){if(s<_tmInc.year&&0!=(n=_timeHelper.getNiceInc([1,2,3,4,6],s,i)))return _timeSpan.fromSeconds(n);i=_tmInc.year}s<(n=100*_tmInc.year)&&0==(n=_timeHelper.getNiceInc([1,2,5,10,20,50],s,i))&&(n=100*_tmInc.year);return _timeSpan.fromSeconds(n)}static NiceTimeUnit(t,e){var i=_timeSpan.fromDays(t);return(i=_timeHelper.NiceTimeSpan(i,e)).TotalDays}static GetTimeDefaultFormat(t,e){if(!isNumber(t)||!isNumber(e))return"";var i="s",s=_timeSpan.fromSeconds(.001*(t-e)),n=s.TotalSeconds;if(n>=_tmInc.year)i="yyyy";else if(n>=_tmInc.month)i="MMM yyyy";else if(n>=_tmInc.day)i="MMM d";else if(n>=_tmInc.hour)i="ddd H:mm";else if(n>=.5*_tmInc.hour)i="H:mm";else if(n>=1)i="H:mm:ss";else if(n>0){let t=s.Ticks;i="s.";for(;t<_timeSpan.TicksPerSecond;){t*=10;i+="f"}}return i}}export class _AxisLabel{constructor(t,e,i){this._start=e-.5;this._end=e+i-.5;this._value=e+.5*(i-1);this._label=t}get value(){return this._value}get label(){return this._label}get start(){return this._start}get end(){return this._end}set rect(t){this._rect=t}get rect(){return this._rect}}class _AxisGroup{constructor(t,e){this._labels=[];this._index=0;this._size=new Size;this._level=0;this._level=t;this._last=e}get labels(){return this._labels}set index(t){this._index=t}get index(){return this._index}set height(t){this._size.height=t}get height(){return this._size.height}set width(t){this._size.width=t}get width(){return this._size.width}get level(){return this._level}getSize(t,e,i){this._size=new Size;this.labels.forEach(s=>{const n=t.measureString(s.label,e,i);this._size.width=Math.max(this._size.width,n.width);this._size.height=Math.max(this._size.height,n.height)});return this._size}render(t,e,i,s,n){const r=e._getPosition(),a=e.axisType===AxisType.X;this.labels.forEach(h=>{let o,l=h.label,_=!1;const c=a?Math.abs(e.convert(h.end)-e.convert(h.start)):this.width,d=t.measureString(l,s,n);if(d.width>c){l=this._trimText(l,d.width,c);_=!0}switch(r){case Position.Bottom:o=FlexChartCore._renderText(t,l,new Point(e.convert(h.value),i),1,2,s,n);break;case Position.Top:o=FlexChartCore._renderText(t,l,new Point(e.convert(h.value),i),1,0,s,n);break;case Position.Left:o=FlexChartCore._renderText(t,l,new Point(i+this._size.width,e.convert(h.value)),2,1,s,n);break;case Position.Right:o=FlexChartCore._renderText(t,l,new Point(i-this._size.width,e.convert(h.value)),0,1,s,n)}h.rect=_?o:void 0});r===Position.Bottom||r===Position.Top?this.renderLinesX(t,e,i):this.renderLinesY(t,e,i)}hitTest(t){let e;for(let i=0;i<this.labels.length;i++){const s=this.labels[i];if(s.rect&&s.rect.contains(t)){e=s;break}}return e}renderLinesX(t,e,i){const s=e.groupsOptions.display===AxisGroupsDisplay.ShowGrid,n=e._getPosition();let r=4;const a=n===Position.Bottom?1:-1,h=i-a*(this.height+r);r*=a;if(s){const s=e.convert(e.actualMin),n=e.convert(e.actualMax);this.drawLine(t,s,i+r,n,i+r);this.drawLine(t,s,h,n,h);const o=e.convert(this.labels[0].start),l=0===this.level?1===a?e._axrect.top:e._axrect.bottom:h;this.drawLine(t,o,i+r,o,l);this.labels.forEach(s=>{const n=new Point(e.convert(s.end),i);this._last?this.drawLine(t,n.x,n.y+r,n.x,1===a?e._axrect.top:e._axrect.bottom):this.drawLine(t,n.x,n.y+r,n.x,l)})}else this.labels.forEach(i=>{const s=e.convert(i.start)+Math.abs(r),n=e.convert(i.end)-Math.abs(r);this.drawLine(t,s,h,n,h);if(e.labels||!this._last){this.drawLine(t,s,h,s,h-2*r);this.drawLine(t,n,h,n,h-2*r)}const a=e.convert(i.value);this.drawLine(t,a,h,a,h+r)})}renderLinesY(t,e,i){const s=e.groupsOptions.display===AxisGroupsDisplay.ShowGrid,n=e._getPosition();let r=4;const a=n===Position.Left?-1:1,h=i-a*(this.width+r);r*=a;if(s){const s=e.convert(e.actualMin),n=e.convert(e.actualMax);this.drawLine(t,i+r,s,i+r,n);this.drawLine(t,h,s,h,n);const o=e.convert(this.labels[0].start),l=0===this.level?1===a?e._axrect.left:e._axrect.right:h;this.drawLine(t,i+r,o,l,o);this.labels.forEach(s=>{const n=e.convert(s.end);this._last?this.drawLine(t,i+r,n,1===a?e._axrect.left:e._axrect.right,n):this.drawLine(t,i+r,n,l,n)})}else this.labels.forEach(i=>{const s=e.convert(i.start)-Math.abs(r),n=e.convert(i.end)+Math.abs(r);this.drawLine(t,h,s,h,n);this.drawLine(t,h,s,h-2*r,s);this.drawLine(t,h,n,h-2*r,n);const a=e.convert(i.value);this.drawLine(t,h,a,h+r,a)})}drawLine(t,e,i,s,n){t.drawLine(e,i,s,n,FlexChartCore._CSS_LINE)}_trimText(t,e,i){var s="",n=t.length,r=Math.floor((1-(e-i)/e)*n);t.length>0&&(s=t[0]+(r>1?t.substring(1,r-1)+"..":""));return s}}export class _AxisGroups{constructor(t){this._groups=[];this._margin=8;this._axis=t}get groups(){return this._groups}get axis(){return this._axis}createGroups(){this._groups=[];const t=this.axis._chart.collectionView;t&&t.groups&&t.groups.length>0&&t.groups.forEach(t=>{this.createGroup(t,0)})}createGroup(t,e){this.groups[e]||(this.groups[e]=new _AxisGroup(e,t.isBottomLevel));const i=this.groups[e],s=t.items;i.labels.push(new _AxisLabel(t.name,i.index,s.length));i.index+=s.length;t.groups.forEach(t=>{this.createGroup(t,e+1)})}layoutGroups(t){this.groups.forEach(e=>{e.width*=t})}getHeight(t){const e=this._axis._getPosition();let i=0;e===Position.Bottom||e===Position.Top?this.groups.forEach(e=>{const s=e.getSize(t,FlexChartCore._CSS_LABEL,this._axis._groupClass);i+=this._margin+s.height}):this.groups.forEach(e=>{const s=e.getSize(t,FlexChartCore._CSS_LABEL,this._axis._groupClass);i+=this._margin+s.width});if(i>0&&this._axis.labels){const t=this.groups.length;i+=this._margin*t}this._height=i;return i}layout(){const t=this._axis,e=t._axrect;if(t.axisType===AxisType.Y){const i=(t.labels?t._annoSize.width+t._TICK_LABEL_DISTANCE+12:4)+t._getTitleSize().height,s=e.width-i;if(s<this._height){const t=this._margin*this._groups.length;this.layoutGroups((s-t)/(this._height-t));this._height=s}}}render(t){const e=this._axis._getPosition(),i=this._axis._getTitleSize();if(e===Position.Bottom){let e=this.axis._axrect.bottom-i.height-this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e-=i.height+this._margin})}else if(e===Position.Top){let e=this.axis._axrect.top+i.height+this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e+=i.height+this._margin})}else if(e===Position.Left){let e=this.axis._axrect.left+i.height+this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e+=i.width+this._margin})}else if(e===Position.Right){let e=this.axis._axrect.right-i.height-this._margin;this.groups.forEach(i=>{i.render(t,this.axis,e,FlexChartCore._CSS_LABEL,this._axis._groupClass);e-=i.width+this._margin})}}hitTest(t){let e;for(let i=0;i<this._groups.length;i++){const s=this._groups[i].hitTest(t);if(s){e=s;break}}return e}}export class _AreaPlotter extends _BasePlotter{constructor(){super(...arguments);this.stacking=Stacking.None;this.isSpline=!1;this.isStep=!1;this.stackPos={};this.stackNeg={}}adjustLimits(t,e){this.dataInfo=t;const i=t.getMinX();let s=t.getMinY();const n=t.getMaxX();let r=t.getMaxY();for(let t=0;t<this.chart.series.length;t++){const e=this.chart.series[t];if(this._isRange(e)){const t=e._getChartType();if(!t||t==ChartType.Area){const t=e._getBindingValues(1);for(let e=0;e<t.length;e++)t[e]>r?r=t[e]:t[e]<s&&(s=t[e])}}}if(this.isSpline){const t=.1*(r-s);this.chart.axisY._getLogBase()||(s-=t);r+=t}return this.rotated?new Rect(s,i,r-s,n-i):new Rect(i,s,n-i,r-s)}clear(){super.clear();this.stackNeg={};this.stackPos={}}plotSeries(t,e,i,s,n,r,a,h){const o=s;if(this._isRange(o)){this.plotSeriesRanged(t,e,i,s,n,r,a,h);return}const l=[],_=this.chart.series.indexOf(s),c=s.getValues(0);let d=s.getValues(1);if(!c)return;let u=c.length;if(!u)return;d||(d=this.dataInfo.getXVals());let g=!0;if(d)d.length<u&&(u=d.length);else{g=!1;d=new Array(u)}let p=[],f=[],m=[],x=[],b=this.stacking!=Stacking.None&&!o._isCustomAxisY(),y=this.stacking==Stacking.Stacked100pc&&!o._isCustomAxisY();void 0!==o._getChartType()&&(b=y=!1);const S=this.rotated;let v=!1;const w=o.interpolateNulls;let C=null,T=null;const M=this.chart._plotRect;for(let t=0;t<u;t++){const s=g?d[t]:t;let n=c[t];(null===C||s>C)&&(C=s);(null===T||s<T)&&(T=s);if(_DataInfo.isValid(s,n)){const r=S?i.convert(s):e.convert(s);if(b){if(y){n/=this.dataInfo.getStackedAbsSum(s)}let t=0;if(n>=0){t=isNaN(this.stackPos[s])?0:this.stackPos[s];n=this.stackPos[s]=t+n}else{t=isNaN(this.stackNeg[s])?0:this.stackNeg[s];n=this.stackNeg[s]=t+n}if(S){t<e.actualMin&&(t=e.actualMin);m.push(e.convert(t));x.push(r)}else{m.push(r);t<i.actualMin&&(t=i.actualMin);x.push(i.convert(t))}}if(S){const i=e.convert(n);if(isNaN(r)||isNaN(i)){v=!0;if(!b&&!0!==w){p.push(void 0);f.push(void 0)}}else{p.push(i);f.push(r);if(FlexChartCore._contains(M,new Point(i,r))){const e=new _CircleArea(new Point(i,r),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(_,t,n,s);this.hitTester.add(e,_)}}}else{const e=i.convert(n);if(isNaN(r)||isNaN(e)){v=!0;if(!b&&!0!==w){p.push(void 0);f.push(void 0)}}else{p.push(r);f.push(e);if(FlexChartCore._contains(M,new Point(r,e))){const i=new _CircleArea(new Point(r,e),this._DEFAULT_SYM_SIZE);i.tag=new _DataPoint(_,t,s,n);this.hitTester.add(i,_)}}}}else{v=!0;if(!b&&!0!==w){p.push(void 0);f.push(void 0)}}}h&&p.forEach((t,e)=>{null!=t&&l.push(new Point(t,f[e]))});const P=this._DEFAULT_WIDTH,A=n._getColorLight(_),L=n._getColor(_),N=_BasePlotter.cloneStyle(s.style,["fill"]),E=_BasePlotter.cloneStyle(s.style,["stroke"]);if(!b&&!0!==w&&v){let s=[],n=[];for(let r=0;r<u;r++)if(void 0===p[r]){if(s.length>1){const r=this._modifyPoints(s,n);s=r.x;n=r.y;t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(s,n,null,N);this.hitTester.add(new _LinesArea(s,n),_);if(S){s.push(e.convert(e.actualMin),e.convert(e.actualMin));n.push(i.convert(i.actualMax),i.convert(i.actualMin))}else{s.push(s[s.length-1],s[0]);n.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(s,n,null,E,this.chart._plotrectId)}s=[];n=[]}else{s.push(p[r]);n.push(f[r])}if(s.length>1){const r=this._modifyPoints(s,n);s=r.x;n=r.y;t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(s,n,null,N);this.hitTester.add(new _LinesArea(s,n),_);if(S){s.push(e.convert(e.actualMin),e.convert(e.actualMin));n.push(i.convert(i.actualMax),i.convert(i.actualMin))}else{s.push(s[s.length-1],s[0]);n.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(s,n,null,E,this.chart._plotrectId)}}else{const s=this._modifyPoints(p,f);p=s.x;f=s.y;if(b){const t=this._modifyPoints(m,x);m=t.x;x=t.y;p=p.concat(m.reverse());f=f.concat(x.reverse())}else if(S){p.push(e.convert(e.actualMin),e.convert(e.actualMin));f.push(f[f.length-1],f[0])}else{p.push(p[p.length-1],p[0]);f.push(i.convert(i.actualMin),i.convert(i.actualMin))}t.fill=A;t.stroke="none";t.drawPolygon(p,f,null,E,this.chart._plotrectId);if(b){p=p.slice(0,p.length-m.length);f=f.slice(0,f.length-x.length)}else{p=p.slice(0,p.length-2);f=f.slice(0,f.length-2)}t.stroke=L;t.strokeWidth=P;t.fill="none";t.drawLines(p,f,null,N,this.chart._plotrectId);this.hitTester.add(new _LinesArea(p,f),_)}this._drawSymbols(t,s,_);h&&l&&l.length&&h(l)}_isRange(t){const e=this.chart?this.chart._bindingSeparator:",",i=null==t.binding?null:t.binding.split(e);return null!=i&&2==i.length}_modifyPoints(t,e){const i={x:t,y:e};if(this.isSpline){const s=this._convertToSpline(t,e);i.x=s.xs;i.y=s.ys}else if(this.isStep){const s=this._createSteps(t,e);i.x=s.x;i.y=s.y}return i}plotSeriesRanged(t,e,i,s,n,r,a,h){const o=[],l=this.chart.series.indexOf(s),_=s,c=s.getValues(0);let d=s.getValues(1);const u=_._getBindingValues(1);if(!c)return;let g=c.length;if(!g)return;d||(d=this.dataInfo.getXVals());let p=!0;if(d)d.length<g&&(g=d.length);else{p=!1;d=new Array(g)}const f=[],m=[],x=[],b=this.rotated;let y=!1;const S=_.interpolateNulls,v=this.chart._plotRect;for(let t=0;t<g;t++){const s=p?d[t]:t,n=c[t],r=u[t];if(_DataInfo.isValid(s,n,r)){const a=b?i.convert(s):e.convert(s);if(b){const i=e.convert(n),h=e.convert(r);if(isNaN(a)||isNaN(i)){y=!0;if(!0!==S){f.push(void 0);m.push(void 0);x.push(void 0)}}else{f.push(i);m.push(a);x.push(h);if(FlexChartCore._contains(v,new Point(i,a))){const e=new _CircleArea(new Point(i,a),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(l,t,n,s);this.hitTester.add(e,l)}if(FlexChartCore._contains(v,new Point(h,a))){const e=new _CircleArea(new Point(h,a),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(l,t,r,s);this.hitTester.add(e,l)}}}else{const e=i.convert(n),h=i.convert(r);if(isNaN(a)||isNaN(e)){y=!0;if(!0!==S){f.push(void 0);m.push(void 0);x.push(void 0)}}else{f.push(a);m.push(e);x.push(h);if(FlexChartCore._contains(v,new Point(a,e))){const i=new _CircleArea(new Point(a,e),this._DEFAULT_SYM_SIZE);i.tag=new _DataPoint(l,t,s,n);this.hitTester.add(i,l)}if(FlexChartCore._contains(v,new Point(a,h))){const e=new _CircleArea(new Point(a,h),this._DEFAULT_SYM_SIZE);e.tag=new _DataPoint(l,t,s,r);this.hitTester.add(e,l)}}}}else{y=!0;if(!0!==S){f.push(void 0);m.push(void 0);x.push(void 0)}}}h&&f.forEach((t,e)=>{null!=t&&o.push(new Point(t,m[e]))});const w=this._DEFAULT_WIDTH,C=n._getColorLight(l),T=n._getColor(l),M=_BasePlotter.cloneStyle(s.style,["fill"]),P=_BasePlotter.cloneStyle(s.style,["stroke"]);if(!0!==S&&y){let e=[],i=[],s=[];for(let n=0;n<g;n++)if(void 0===f[n]){if(e.length>1){const n=b?s.slice(0).reverse():e.slice(0).reverse(),r=b?i.slice(0).reverse():s.slice(0).reverse();this._drawRangedArea(t,e,i,n,r,C,T,w,P,M);this.hitTester.add(new _LinesArea(e,i),l);this.hitTester.add(new _LinesArea(n,r),l)}e=[];i=[];s=[]}else{e.push(f[n]);i.push(m[n]);s.push(x[n])}if(e.length>1){const n=b?s.slice(0).reverse():e.slice(0).reverse(),r=b?i.slice(0).reverse():s.slice(0).reverse();this._drawRangedArea(t,e,i,n,r,C,T,w,P,M);this.hitTester.add(new _LinesArea(e,i),l);this.hitTester.add(new _LinesArea(n,r),l)}}else{const e=b?x.slice(0).reverse():f.slice(0).reverse(),i=b?m.slice(0).reverse():x.slice(0).reverse();this._drawRangedArea(t,f,m,e,i,C,T,w,P,M);this.hitTester.add(new _LinesArea(f,m),l);this.hitTester.add(new _LinesArea(e,i),l)}this._drawSymbols(t,s,l);h&&o&&o.length&&h(o)}_drawRangedArea(t,e,i,s,n,r,a,h,o,l){if(this.isSpline){const t=this._convertToSpline(e,i),r=this._convertToSpline(s,n);e=t.xs;i=t.ys;s=r.xs;n=r.ys}e=e.concat(s);i=i.concat(n);t.fill=r;t.stroke="none";t.drawPolygon(e,i,null,o);e=e.slice(0,e.length-s.length);i=i.slice(0,i.length-n.length);t.stroke=a;t.strokeWidth=h;t.fill="none";t.drawLines(e,i,null,l);t.drawLines(s,n,null,l)}_convertToSpline(t,e){if(t&&e){const i=new _Curve(t,e).calculate();return{xs:i.xs,ys:i.ys}}return{xs:t,ys:e}}_drawSymbols(t,e,i){const s=this.getItemFormatter(e);if(null!=s){const e=this.hitTester._map[i];for(let i=0;i<e.length;i++){const n=tryCast(e[i],_CircleArea);if(n){const e=n.tag;t.startGroup();const i=new HitTestInfo(this.chart,n.center,ChartElement.SeriesSymbol);i._setDataPoint(e);s(t,i,()=>{});t.endGroup()}}t.cssPriority=!0}}}export class _BarPlotter extends _BasePlotter{constructor(){super(...arguments);this.origin=0;this.width=.7;this.isVolume=!1;this._volHelper=null;this.stackPosMap={};this.stackNegMap={};this.stacking=Stacking.None}clear(){super.clear();this.stackNegMap[this.chart.axisY._uniqueId]={};this.stackPosMap[this.chart.axisY._uniqueId]={};this._volHelper=null}load(){super.load();if(!this.isVolume)return;let t,e,i,s,n,r,a,h,o=null,l=null;for(r=0;r<this.chart.series.length;r++){t=this.chart.series[r];n=t.getDataType(1)||t.chart._xDataType;e=t._getAxisX();i=t._getChartType();i=null===i||isUndefined(i)?this.chart._getChartType():i;if(i===ChartType.Column){const e=this.chart?this.chart._bindingSeparator:",",i=t.binding.split(e).length-1;s=t._getBindingValues(i)}else s=i===ChartType.Candlestick?t._getBindingValues(4):null;if(n===DataType.Date){let i;a=[];h=[];for(r=0;r<t._getLength();r++){i=t._getItem(r)[t.bindingX].valueOf();a.push(i);h.push({value:i,text:Globalize.format(new Date(i),e.format||"d")})}}else a=this.dataInfo.getXVals();o=this.dataInfo.getMinX();l=this.dataInfo.getMaxX();if(s&&s.length>0){this._volHelper=new _VolumeHelper(s,a,o,l,n);e._customConvert=this._volHelper.convert.bind(this._volHelper);e._customConvertBack=this._volHelper.convertBack.bind(this._volHelper);h&&h.length>0&&(this._itemsSource=e.itemsSource=h);break}}}unload(){super.unload();let t,e;for(let i=0;i<this.chart.series.length;i++){t=this.chart.series[i];e=t._getAxisX();if(e){e._customConvert=null;e._customConvertBack=null;e.itemsSource&&e.itemsSource==this._itemsSource&&(this._itemsSource=e.itemsSource=null)}}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMaxX(),n=t.getMinY(),r=t.getMaxY(),a=t.getDeltaX();a<=0&&(a=1);let h=!1;!this.isVolume||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.unload():this.load();for(let t=0;t<this.chart.series.length;t++){const e=this.chart.series[t];let i=e._getChartType();i=null===i||isUndefined(i)?this.chart._getChartType():i;if(i===ChartType.Column||i===ChartType.Bar){if(this._isRange(e)){e._getBindingValues(1).forEach(t=>{t<n?n=t:t>r&&(r=t)})}}h||"BoxWhisker"==e.constructor.name||(h=!0)}if(this.rotated){!this.chart.axisY._getLogBase()&&t.getDataTypeY()!==DataType.Date&&h&&(this.origin>r?r=this.origin:this.origin<n&&(n=this.origin));return new Rect(n,i-.5*a,r-n,s-i+a)}!this.chart.axisY._getLogBase()&&t.getDataTypeY()!==DataType.Date&&h&&(this.origin>r?r=this.origin:this.origin<n&&(n=this.origin));return new Rect(i-.5*a,n,s-i+a,r-n)}_isRange(t){const e=this.chart?this.chart._bindingSeparator:",",i=(null==t.binding?"":t.binding.split(e)).length-1;return this.isVolume?2===i:1===i}plotSeries(t,e,i,s,n,r,a,h){var o,l,_,c,d=[],u=this.chart.series.indexOf(s),g=asType(s,SeriesBase),p=this.chart._options,f=this.width,m=0;r=r||0;a=a||1;if(p&&p.groupWidth){const t=p.groupWidth;if(isNumber(t)){const e=asNumber(t);if(isFinite(e)&&e>0){m=e;f=1}}else if(isString(t)){let e=asString(t);if(e&&e.indexOf("%")>=0){e=e.replace("%","");let t=parseFloat(e);if(isFinite(t)){t<0?t=0:t>100&&(t=100);m=0;f=t/100}}else{const t=parseFloat(e);if(isFinite(t)&&t>0){m=t;f=1}}}}let x=f/a;const b=g._getAxisY()._uniqueId,y=this.stackNegMap[b],S=this.stackPosMap[b],v=s.getValues(0);let w=s.getValues(1);const C=this._isRange(g),T=g._bindValues(null==g._cv?null==this.chart.collectionView?null:this.chart.collectionView.items:g._cv.items,g._getBinding(1)).values;if(!v)return;w||(w=this.dataInfo.getXVals());if(w){const t=this.dataInfo.getDeltaX();if(t>0){f*=t;x*=t}}let M=g._getSymbolFill(u),P=g._getAltSymbolFill(u)||M,A=g._getSymbolStroke(u),L=g._getAltSymbolStroke(u)||A,N=v.length;null!=w&&(N=Math.min(N,w.length));let E,k,I=this.origin,R=0,D=this.stacking!=Stacking.None,F=this.stacking==Stacking.Stacked100pc;void 0!==g._getChartType()&&(D=F=!1);const B=this.getItemFormatter(s),V=e._actualMin,z=e._actualMax,X=i._actualMin,H=i._actualMax;if(this.rotated){I<V?I=V:I>z&&(I=z);g._isCustomAxisY()&&(D=F=!1);const n=e.convert(I);for(let o=0;o<N;o++){let l=w?w[o]:o,g=v[o],p=n;this._getSymbolOrigin&&(p=i.convert(this._getSymbolOrigin(I,o)));if(C&&T&&T.length){const t=T[o];_DataInfo.isValid(t)&&(p=e.convert(t))}if(this._getSymbolStyles){const t=this._getSymbolStyles(o);M=t&&t.fill?t.fill:M;P=t&&t.fill?t.fill:P;A=t&&t.stroke?t.fill:A;L=t&&t.stroke?t.fill:L}E=g>0?M:P;k=g>0?A:L;t.fill=E;t.stroke=k;if(_DataInfo.isValid(l,g))if(D){let n=l-.5*f,r=l+.5*f;if(n<X&&r<X||n>H&&r>H)continue;n=i.convert(Math.max(n,X));r=i.convert(Math.min(r,H));if(F){g/=this.dataInfo.getStackedAbsSum(l)}let a=0;if(g>=0){a=isNaN(S[l])?0:S[l];_=e.convert(a);c=e.convert(a+g);S[l]=a+g}else{a=isNaN(y[l])?0:y[l];_=e.convert(a);c=e.convert(a+g);y[l]=a+g}h&&d.push(new Point(c,i.convert(l)));if(!_DataInfo.isValid(_,c))continue;const p=new Rect(Math.min(_,c),Math.min(n,r),Math.abs(c-_),Math.abs(r-n));if(m>0){let t=1-m/p.height;t<0&&(t=0);const e=p.top+.5*p.height;p.top+=(e-p.top)*t;p.height=Math.min(m,p.height)}const x=new _RectArea(p);this.drawSymbol(t,p,s,o,new Point(c,p.top+.5*p.height),B);s._setPointIndex(o,R);R++;const b=F?Math.min(a+g,1):a+g;x.tag=new _DataPoint(u,o,b,l);this.hitTester.add(x,u)}else{let n=l-.5*f+r*x,_=l-.5*f+(r+1)*x;if(n<X&&_<X||n>H&&_>H)continue;n=i.convert(Math.max(n,X));_=i.convert(Math.min(_,H));const c=e.convert(g);if(!_DataInfo.isValid(c,n,_))continue;const b=new Rect(Math.min(c,p),Math.min(n,_),Math.abs(p-c),Math.abs(_-n));h&&d.push(new Point(c,(n+_)/2));if(m>0){const t=m/a;let e=1-t/b.height;e<0&&(e=0);const s=i.convert(l);b.top+=(s-b.top)*e;b.height=Math.min(t,b.height)}const y=new _RectArea(b);this.drawSymbol(t,b,s,o,new Point(c,b.top+.5*b.height),B);s._setPointIndex(o,R);R++;y.tag=new _DataPoint(u,o,g,l);this.hitTester.add(y,u)}else h&&d.push(null)}}else{I<X?I=X:I>H&&(I=H);const n=i.convert(I);g._isCustomAxisY()&&(D=F=!1);for(let _=0;_<N;_++){let c=n;const g=w?w[_]:_;let p=v[_];this._getSymbolOrigin&&(c=i.convert(this._getSymbolOrigin(I,_,N)));if(C&&T&&T.length){const t=T[_];_DataInfo.isValid(t)&&(c=i.convert(t))}if(this._getSymbolStyles){const t=this._getSymbolStyles(_,N);M=t&&t.fill?t.fill:M;P=t&&t.fill?t.fill:P;A=t&&t.stroke?t.stroke:A;L=t&&t.stroke?t.stroke:L}E=p>0?M:P;k=p>0?A:L;t.fill=E;t.stroke=k;t.strokeWidth=null;if(_DataInfo.isValid(g,p))if(D){let n=g-.5*f,r=g+.5*f;if(n<V&&r<V||n>z&&r>z)continue;n=e.convert(n);r=e.convert(r);if(!_DataInfo.isValid(n,r))continue;if(F){p/=this.dataInfo.getStackedAbsSum(g)}let a=0;if(p>=0){a=isNaN(S[g])?0:S[g];o=i.convert(Math.max(a,X));l=i.convert(Math.max(a+p,X));S[g]=a+p}else{a=isNaN(y[g])?0:y[g];o=i.convert(a);l=i.convert(a+p);y[g]=a+p}h&&d.push(new Point(e.convert(g),l));if(!_DataInfo.isValid(o,l))continue;const c=new Rect(Math.min(n,r),Math.min(o,l),Math.abs(r-n),Math.abs(l-o));if(m>0){let t=1-m/c.width;t<0&&(t=0);const e=c.left+.5*c.width;c.left+=(e-c.left)*t;c.width=Math.min(m,c.width)}const x=new _RectArea(c);this.drawSymbol(t,c,s,_,new Point(c.left+.5*c.width,l),B);s._setPointIndex(_,R);R++;const b=F?Math.min(a+p,1):a+p;x.tag=new _DataPoint(u,_,g,b);this.hitTester.add(x,u)}else{let n=g-.5*f+r*x,o=g-.5*f+(r+1)*x;if(n<V&&o<V||n>z&&o>z)continue;n=e.convert(n);o=e.convert(o);const l=i.convert(p);if(!_DataInfo.isValid(l,n,o))continue;const b=new Rect(Math.min(n,o),Math.min(l,c),Math.abs(o-n),Math.abs(c-l));h&&d.push(new Point((n+o)/2,l));if(m>0){const t=m/a;let i=1-t/b.width;i<0&&(i=0);const s=e.convert(g);b.left+=(s-b.left)*i;b.width=Math.min(t,b.width)}const y=new _RectArea(b);this.drawSymbol(t,b,s,_,new Point(b.left+.5*b.width,l),B);s._setPointIndex(_,R);R++;y.tag=new _DataPoint(u,_,g,p);this.hitTester.add(y,u)}else h&&d.push(null)}}h&&d&&d.length&&h(d)}drawSymbol(t,e,i,s,n,r){if(r){t.startGroup();const a=new HitTestInfo(this.chart,n,ChartElement.SeriesSymbol);a._setData(i,s);r(t,a,()=>{this.drawDefaultSymbol(t,e,i)});t.cssPriority=!0;t.endGroup()}else this.drawDefaultSymbol(t,e,i)}drawDefaultSymbol(t,e,i){t.drawRect(e.left,e.top,e.width,e.height,null,i.symbolStyle)}}export class _FunnelPlotter extends _BasePlotter{constructor(){super(...arguments);this.stacking=Stacking.None}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),n=t.getMaxX(),r=t.getMaxY();return new Rect(i,s,n-i,r-s)}plotSeries(t,e,i,s,n,r,a,h){var o=this.chart.series.indexOf(s);if(o>0)return;var l,_,c,d,u,g=asType(s,SeriesBase),p=this.chart._options,f=s.getValues(0),m=s.getValues(1),x=this.chart._plotRect,b=p&&p.funnel&&null!=p.funnel.neckWidth?p.funnel.neckWidth:.2,y=p&&p.funnel&&null!=p.funnel.neckHeight?p.funnel.neckHeight:0,S=b*x.width,v=0,w=0,C=0,T=0,M=x.left,P=x.top,A=x.width,L=x.height;if(!f)return;this.rotated&&(P+=x.height);S=S||1;m||(m=this.dataInfo.getXVals());var N=f.length;null!=m&&(N=Math.min(N,m.length));let E=0;for(v=0;v<N;v++)if(_DataInfo.isValid(f[v])){w+=f[v];f[v]>E&&(E=f[v])}var k,I,R,D=0;if(p&&p.funnel&&"rectangle"===p.funnel.type&&E>0){y=L/N;b=A;let e=A/E;for(v=0;v<N;v++){const i=m?m[v]:v,n=f[v];let r=g._getSymbolFill(v),a=g._getAltSymbolFill(v)||r,h=g._getSymbolStroke(v),l=g._getAltSymbolStroke(v)||h;if(this._getSymbolStyles){const t=this._getSymbolStyles(v,N);r=t&&t.fill?t.fill:r;a=t&&t.fill?t.fill:a;h=t&&t.stroke?t.stroke:h;l=t&&t.stroke?t.stroke:l}k=n>0?r:a;I=n>0?h:l;t.fill=k;t.stroke=I;if(_DataInfo.isValid(i)&&_DataInfo.isValid(n)){e||(e=A/n);const r=e*n;M+=(b-r)/2;this.rotated&&(P-=y);t.drawRect(M,P,r,y);R=new _FunnelSegment(new Point(M,P),r,y,r,y);this.rotated||(P+=y);b=r;R.tag=new _DataPoint(o,v,i,n);this.hitTester.add(R,o);s._setPointIndex(v,D);D++}}}else{C=x.left+x.width*(1-b)/2;T=x.top+x.height*(this.rotated?y:1-y);_=(1-b)*x.width/2/(x.height*(1-y));if(isNaN(_)||!isFinite(_)){A=S;M=C;P=T}l=x.width*b*x.height+x.width*(1-b)/2*x.height*(1-y);for(v=0;v<N;v++){const e=m?m[v]:v,i=f[v];let n=[],r=[],a=g._getSymbolFill(v),h=g._getAltSymbolFill(v)||a,p=g._getSymbolStroke(v),x=g._getAltSymbolStroke(v)||p;if(this._getSymbolStyles){const t=this._getSymbolStyles(v,N);a=t&&t.fill?t.fill:a;h=t&&t.fill?t.fill:h;p=t&&t.stroke?t.stroke:p;x=t&&t.stroke?t.stroke:x}k=i>0?a:h;I=i>0?p:x;t.fill=k;t.stroke=I;if(_DataInfo.isValid(e)&&_DataInfo.isValid(i)){let a=l*i/w;if(A>S){d=this._getTrapezoidOffsetY(A,a,_);if(this.rotated)if(P-d>T){n=[M,M+(c=_*d),M+A-c,M+A];r=[P,P-d,P-d,P];R=new _FunnelSegment(new Point(M,P-d),A,d,A-2*c,0,!0);A-=2*c;M+=c;P-=d}else{c=_*(d=P-T);a-=this._getTrapezoidArea(A,_,d);u=a/S;n.push(M,M+c,M+c,M+c+S,M+c+S,M+A);r.push(P,P-d,P-d-u,P-d-u,P-d,P);R=new _FunnelSegment(new Point(M,P-d-u),A,d+u,S,u,!0);A=S;M+=c;P=P-d-u}else if(P+d<T){n=[M,M+(c=_*d),M+A-c,M+A];r=[P,P+d,P+d,P];R=new _FunnelSegment(new Point(M,P),A,d,A-2*c,0);A-=2*c;M+=c;P+=d}else{c=_*(d=T-P);a-=this._getTrapezoidArea(A,_,d);u=a/S;n.push(M,M+c,M+c,M+c+S,M+c+S,M+A);r.push(P,P+d,P+d+u,P+d+u,P+d,P);R=new _FunnelSegment(new Point(M,P),A,d+u,S,u);A=S;M+=c;P=P+d+u}t.drawPolygon(n,r)}else{u=a/S;this.rotated&&(P-=u);t.drawRect(M,P,A,u);R=new _FunnelSegment(new Point(M,P),S,u,S,u);this.rotated||(P+=u)}R.tag=new _DataPoint(o,v,e,i);this.hitTester.add(R,o);s._setPointIndex(v,D);D++}}}}_getTrapezoidArea(t,e,i){var s=i*e;return s*i+(t-2*s)*i}_getTrapezoidOffsetY(t,e,i){var s=Math.pow(t/2/i,2)-e/i;return t/2/i-Math.sqrt(s>=0?s:0)}drawDefaultSymbol(t,e,i){t.drawRect(e.left,e.top,e.width,e.height,null,i.symbolStyle)}_getPointAndPosition(t,e,i,s){var n=i;t.x=n.center.x;t.y=n.center.y;e=null==e?LabelPosition.Center:e}}export class _FunnelSegment{constructor(t,e,i,s,n,r=!1){this._startPoint=t;this._width=e;this._height=i;this._neckHeight=n;this._center=new Point(this._startPoint.x+e/2,this._startPoint.y+i/2);this._offsetX=(e-s)/2;this._offsetY=i-n;this._rotated=r}contains(t){var e=this._startPoint,i=this._offsetX,s=this._offsetY;if(this._rotated){if(t.x>=e.x&&t.x<=e.x+this._width&&t.y>=e.y&&t.y<=e.y+this._height){if(t.x>=e.x+i&&t.x<=e.x+this._width-i)return!0;if(t.y<e.y+this._neckHeight)return!1;if(t.x<this._center.x)return(e.y+this._height-t.y)/(t.x-e.x)<s/i;if(t.x>this._center.x)return(e.y+this._height-t.y)/(e.x+this._width-t.x)<s/i}}else if(t.x>=e.x&&t.x<=e.x+this._width&&t.y>=e.y&&t.y<=e.y+this._height){if(t.x>=e.x+i&&t.x<=e.x+this._width-i)return!0;if(t.y>e.y+s)return!1;if(t.x<this._center.x)return(t.y-e.y)/(t.x-e.x)<s/i;if(t.x>this._center.x)return(t.y-e.y)/(e.x+this._width-t.x)<s/i}return!1}distance(t){if(this.contains(t))return 0;var e=this._startPoint,i=this._width,s=this._height,n=this._offsetX,r=this._offsetY;if(this._rotated){if(t.y>e.y+s)return t.x<e.x?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y+s-t.y,2)):t.x>e.x+i?Math.sqrt(Math.pow(t.x-e.x-i,2)+Math.pow(e.y+s-t.y,2)):t.y-e.y-s;if(t.y<e.y)return t.x<e.x+n?Math.sqrt(Math.pow(e.x+n-t.x,2)+Math.pow(t.y-e.y-s,2)):t.x>e.x+i-n?Math.sqrt(Math.pow(t.x-e.x-i+n,2)+Math.pow(t.y-e.y-s,2)):e.y-t.y;if(!(t.y<e.y+s-r))return t.x<e.x+n?Math.min(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(t.y-e.y-s,2)),Math.sqrt(Math.pow(t.x-n/2-e.x,2)+Math.pow(t.y-s+r/2-e.y,2)),Math.sqrt(Math.pow(t.x-n-e.x,2)+Math.pow(t.y-s+r-e.y,2))):Math.min(Math.sqrt(Math.pow(t.x-i-e.x,2)+Math.pow(t.y-s-e.y,2)),Math.sqrt(Math.pow(t.x-i+n/2-e.x,2)+Math.pow(t.y-s+r/2-e.y,2)),Math.sqrt(Math.pow(t.x-i+n-e.x,2)+Math.pow(t.y-s+r-e.y,2)));if(t.x<e.x+n)return e.x+n-t.x;if(t.x>e.x+i-n)return t.x-e.x-i+n}else{if(t.y<e.y)return t.x<e.x?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):t.x>e.x+i?Math.sqrt(Math.pow(t.x-e.x-i,2)+Math.pow(e.y-t.y,2)):e.y-t.y;if(t.y>e.y+s)return t.x<e.x+n?Math.sqrt(Math.pow(e.x+n-t.x,2)+Math.pow(t.y-e.y-s,2)):t.x>e.x+i-n?Math.sqrt(Math.pow(t.x-e.x-i+n,2)+Math.pow(t.y-e.y-s,2)):t.y-e.y-s;if(!(t.y>e.y+r))return t.x<e.x+n?Math.min(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(t.y-e.y,2)),Math.sqrt(Math.pow(t.x-n/2-e.x,2)+Math.pow(t.y-r/2-e.y,2)),Math.sqrt(Math.pow(t.x-n-e.x,2)+Math.pow(t.y-r-e.y,2))):Math.min(Math.sqrt(Math.pow(t.x-i-e.x,2)+Math.pow(t.y-e.y,2)),Math.sqrt(Math.pow(t.x-i+n/2-e.x,2)+Math.pow(t.y-r/2-e.y,2)),Math.sqrt(Math.pow(t.x-i+n-e.x,2)+Math.pow(t.y-r-e.y,2)));if(t.x<e.x+n)return e.x+n-t.x;if(t.x>e.x+i-n)return t.x-e.x-i+n}}get center(){return this._center}}export class _FinancePlotter extends _BasePlotter{constructor(){super(...arguments);this.isCandle=!0;this.isArms=!1;this.isEqui=!1;this.isVolume=!1;this._volHelper=null;this._symWidth=.7}clear(){super.clear();this._volHelper=null}load(){super.load();if(this.isVolume){var t,e,i,s,n,r,a,h,o=null,l=null;for(r=0;r<this.chart.series.length;r++){n=(t=this.chart.series[r]).getDataType(1)||t.chart._xDataType;e=t._getAxisX();s=(i=null===(i=t._getChartType())||isUndefined(i)?this.chart._getChartType():i)===ChartType.Column?t._getBindingValues(1):i===ChartType.Candlestick?t._getBindingValues(4):null;if(n===DataType.Date){let i;a=[];h=[];for(r=0;r<t._getLength();r++){i=t._getItem(r)[t.bindingX].valueOf();a.push(i);h.push({value:i,text:Globalize.format(new Date(i),e.format||"d")})}}else a=this.dataInfo.getXVals();o=this.dataInfo.getMinX();l=this.dataInfo.getMaxX();if(s&&s.length>0){this._volHelper=new _VolumeHelper(s,a,o,l,n);e._customConvert=this._volHelper.convert.bind(this._volHelper);e._customConvertBack=this._volHelper.convertBack.bind(this._volHelper);h&&h.length>0&&(this._itemsSource=e.itemsSource=h);break}}}}unload(){super.unload();var t;for(let e=0;e<this.chart.series.length;e++)if(t=this.chart.series[e]._getAxisX()){t._customConvert=null;t._customConvertBack=null;t.itemsSource&&t.itemsSource==this._itemsSource&&(this._itemsSource=t.itemsSource=null)}}parseSymbolWidth(t){this._isPixel=void 0;if(t)if(isNumber(t)){const e=asNumber(t);if(isFinite(e)&&e>0){this._symWidth=e;this._isPixel=!0}}else if(isString(t)){let e=asString(t);if(e&&e.indexOf("%")>=0){e=e.replace("%","");let t=parseFloat(e);if(isFinite(t)){t<0?t=0:t>100&&(t=100);this._symWidth=t/100;this._isPixel=!1}}else{const e=parseFloat(t);if(isFinite(e)&&e>0){this._symWidth=e;this._isPixel=!0}}}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),n=t.getMaxX(),r=t.getMaxY(),a=t.getDeltaX(),h=this.chart._xDataType;a<=0&&(a=1);var o=this.chart.series,l=o.length;let _=0;this.parseSymbolWidth(this.symbolWidth);!this.isVolume||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.unload():this.load();for(let t=0;t<l;t++){const e=o[t];if(e._isCustomAxisY())continue;const i=e._getBinding(1),n=e._getBinding(2),a=e._getBinding(3),h=e._getLength();if(h){const t=e._getSymbolSize();t>_&&(_=t);for(let t=0;t<h;t++){const h=e._getItem(t);if(h){[i?h[i]:null,n?h[n]:null,a?h[a]:null].forEach(t=>{if(_DataInfo.isValid(t)&&null!==t){(isNaN(s)||t<s)&&(s=t);(isNaN(r)||t>r)&&(r=t)}})}}}}var c=n-i;return!(h===DataType.Date&&this.isVolume||h===DataType.Number)||this.chart._getChartType()!==ChartType.Column&&this.chart._getChartType()!==ChartType.Candlestick?this.chart._isRotated()?new Rect(s,i,r-s,c):new Rect(i,s,c,r-s):new Rect(i-.5*a,s,n-i+a,r-s)}plotSeries(t,e,i,s,n,r,a,h){var o=asType(s,SeriesBase),l=this.chart.series.indexOf(s),_=s.getValues(0),c=s.getValues(1),d=this._symWidth,u=this.chart._isRotated();if(!_)return;c||(c=this.dataInfo.getXVals());if(c){const t=this.dataInfo.getDeltaX();t>0&&!1===this._isPixel&&(d*=t)}var g=_.length,p=!0;if(c)g=Math.min(g,c.length);else{p=!1;c=new Array(g)}var f=this._DEFAULT_WIDTH,m=o._getSymbolFill(l),x=o._getAltSymbolFill(l)||"transparent",b=o._getSymbolStroke(l),y=o._getAltSymbolStroke(l)||b,S=void 0===this._isPixel?o._getSymbolSize():d;t.stroke=b;t.strokeWidth=f;t.fill=m;var v,w,C=o._getBinding(1),T=o._getBinding(2),M=o._getBinding(3),P=u?i.actualMin:e.actualMin,A=u?i.actualMax:e.actualMax,L=0,N=null,E=null;const k=this.getItemFormatter(s);for(let n=0;n<g;n++)if(N=o._getItem(n)){const r=p?c[n]:n;if(_DataInfo.isValid(r)&&P<=r&&r<=A){const a=_[n],h=C?N[C]:null,c=T?N[T]:null,d=M?N[M]:null;t.startGroup();if(this.isEqui&&null!==E){if(E[M]!==N[M]){v=E[M]<N[M]?x:m;w=E[M]<N[M]?y:b}}else{v=c<d?x:m;w=c<d?y:b}t.fill=v;t.stroke=w;t.strokeWidth=f;if(k){const s=new HitTestInfo(this.chart,new Point(e.convert(r),i.convert(a)),ChartElement.SeriesSymbol);s._setData(o,n);k(t,s,()=>{this._drawSymbol(t,e,i,l,n,v,S,r,a,h,c,d,g)});t.cssPriority=!0}else this._drawSymbol(t,e,i,l,n,v,S,r,a,h,c,d,g);t.endGroup();s._setPointIndex(n,L);L++}E=N}}_drawSymbol(t,e,i,s,n,r,a,h,o,l,_,c,d){var u,g=null,p=null,f=null,m=null,x=this.chart._isRotated(),b=e.convert(h),y=e._axrect,S=a/2,v=0===n&&b-y.left<=S,w=n===d-1&&y.right-b<=S,C=x?new _DataPoint(s,n,o,h):new _DataPoint(s,n,h,o);if(x){const t=i;i=e;e=t}if(!1===this._isPixel){if(v){f=h;m=h+a}else if(w){f=h-a;m=h}else{f=h-.5*a;m=h+.5*a}if((f=e.convert(f))>(m=e.convert(m))){const t=f;f=m;m=t}}h=b;if(!1!==this._isPixel)if(v){f=h;m=h+a}else if(w){f=h-a;m=h}else{f=h-.5*a;m=h+.5*a}if(this.isCandle){if(_DataInfo.isValid(_)&&_DataInfo.isValid(c)){_=i.convert(_);c=i.convert(c);p=(g=Math.min(_,c))+Math.abs(_-c);if(x){t.drawRect(g,f,p-g||1,m-f||1);u=new _RectArea(new Rect(g,f,p-g||1,m-f||1))}else{t.drawRect(f,g,m-f||1,p-g||1);u=new _RectArea(new Rect(f,g,m-f||1,p-g||1))}u.tag=C;this.hitTester.add(u,s)}if(_DataInfo.isValid(o)){o=i.convert(o);if(null!==g)if(x){t.drawLine(p,h,o,h);u.rect.width=u.rect.width+o}else{t.drawLine(h,g,h,o);u.rect.top=o;u.rect.height=u.rect.height+o}}if(_DataInfo.isValid(l)){l=i.convert(l);if(null!==p)if(x){t.drawLine(g,h,l,h);u.rect.left=l;u.rect.width=u.rect.width+l}else{t.drawLine(h,p,h,l);u.rect.height=u.rect.height+l}}}else if(this.isEqui){if(_DataInfo.isValid(o)&&_DataInfo.isValid(l)){o=i.convert(o);l=i.convert(l);p=(g=Math.min(o,l))+Math.abs(o-l);t.drawRect(f,g,m-f||1,p-g||1);(u=new _RectArea(new Rect(f,g,m-f||1,p-g||1))).tag=C;this.hitTester.add(u,s)}}else if(this.isArms){if(_DataInfo.isValid(_)&&_DataInfo.isValid(c)){_=i.convert(_);c=i.convert(c);p=(g=Math.min(_,c))+Math.abs(_-c);t.drawRect(f,g,m-f||1,p-g||1)}if(_DataInfo.isValid(o)&&null!==g){o=i.convert(o);t.drawLine(h,g,h,o)}if(_DataInfo.isValid(l)&&null!==p){l=i.convert(l);t.drawLine(h,p,h,l)}if(_DataInfo.isValid(o)&&_DataInfo.isValid(l)){t.fill="transparent";p=(g=Math.min(o,l))+Math.abs(o-l);t.drawRect(f,g,m-f||1,p-g||1);(u=new _RectArea(new Rect(f,g,m-f||1,p-g||1))).tag=C;this.hitTester.add(u,s)}}else{if(_DataInfo.isValid(o)&&_DataInfo.isValid(l)){o=i.convert(o);l=i.convert(l);p=(g=Math.min(o,l))+Math.abs(o-l);if(x){t.drawLine(l,h,o,h);u=new _RectArea(new Rect(g,f,p-g||1,m-f||1))}else{t.drawLine(h,l,h,o);u=new _RectArea(new Rect(f,g,m-f||1,p-g||1))}u.tag=C;this.hitTester.add(u,s)}if(_DataInfo.isValid(_)){_=i.convert(_);x?t.drawLine(_,f,_,h):t.drawLine(f,_,h,_)}if(_DataInfo.isValid(c)){c=i.convert(c);x?t.drawLine(c,h,c,m):t.drawLine(h,c,m,c)}}}}class LineMarkers{constructor(){this._moveMarker=function(t){var e=t.currentTarget,i=this._markers,s=e.getAttribute("data-markerIndex");null!=s&&i[s].forEach(e=>{e._moveMarker(t)})};this._markers=[];this._bindMoveMarker=this._moveMarker.bind(this)}attach(t){var e,i=t.chart.hostElement,s=this._markers,n=i.getAttribute("data-markerIndex"),r=[];if(null!=n)if((r=s[n])&&isArray(r))r.push(t);else{s[n]=[t];this._bindMoveEvent(i)}else{e=s.length;r=[t];s.push(r);i.setAttribute("data-markerIndex",e.toString());this._bindMoveEvent(i)}}detach(t){var e,i,s=t.chart.hostElement,n=this._markers,r=s.getAttribute("data-markerIndex");if(null!=r){(e=(i=n[r]).indexOf(t))>-1&&i.splice(e,1);if(0===i.length){(e=n.indexOf(i))>-1&&(n[e]=void 0);this._unbindMoveEvent(s)}}}_unbindMoveEvent(t){var e=this._bindMoveMarker;t.removeEventListener("mousemove",e);"ontouchstart"in window&&t.removeEventListener("touchmove",e)}_bindMoveEvent(t){var e=this._bindMoveMarker;t.addEventListener("mousemove",e);"ontouchstart"in window&&t.addEventListener("touchmove",e)}}var lineMarkers=new LineMarkers;export var LineMarkerLines;!function(t){t[t.None=0]="None";t[t.Vertical=1]="Vertical";t[t.Horizontal=2]="Horizontal";t[t.Both=3]="Both"}(LineMarkerLines||(LineMarkerLines={}));export var LineMarkerInteraction;!function(t){t[t.None=0]="None";t[t.Move=1]="Move";t[t.Drag=2]="Drag"}(LineMarkerInteraction||(LineMarkerInteraction={}));export var LineMarkerAlignment;!function(t){t[t.Auto=2]="Auto";t[t.Right=0]="Right";t[t.Left=1]="Left";t[t.Bottom=4]="Bottom";t[t.Top=6]="Top"}(LineMarkerAlignment||(LineMarkerAlignment={}));export class LineMarker{constructor(t,e){this._wrapperMousedown=null;this._wrapperMouseup=null;this._savedPosition=new Point;this.positionChanged=new Event;this._chart=t;t._markers.push(this);t.rendered.addHandler(this._initialize,this);this._resetDefaultValue();copy(this,e);this._initialize()}get chart(){return this._chart}get isVisible(){return this._isVisible}set isVisible(t){if(t!==this._isVisible){this._isVisible=asBoolean(t);this._marker&&this._toggleVisibility()}}get seriesIndex(){return this._seriesIndex}set seriesIndex(t){t!==this._seriesIndex&&(this._seriesIndex=asNumber(t,!0))}get horizontalPosition(){return this._horizontalPosition}set horizontalPosition(t){if(t!==this._horizontalPosition){this._horizontalPosition=asNumber(t,!0);this._savedPosition.x=this._horizontalPosition;if(this._horizontalPosition<0||this._horizontalPosition>1)throw"horizontalPosition's value should be in (0, 1).";this._marker&&this._updateMarkerPosition()}}get x(){var t=this._chart.axisX;const e=this.chart.pageToControl(this._targetPoint);return t.convertBack(e.x)}get y(){var t=this._chart.axisY;const e=this.chart.pageToControl(this._targetPoint);return t.convertBack(e.y)}get content(){return this._content}set content(t){if(t!==this._content){this._content=asFunction(t);this._updateMarkerPosition()}}get verticalPosition(){return this._verticalPosition}set verticalPosition(t){if(t!==this._verticalPosition){this._verticalPosition=asNumber(t,!0);this._savedPosition.y=this._verticalPosition;if(this._verticalPosition<0||this._verticalPosition>1)throw"verticalPosition's value should be in (0, 1).";this._marker&&this._updateMarkerPosition()}}get alignment(){return this._alignment}set alignment(t){if(t!==this._alignment){this._alignment=t;this._marker&&this._updatePositionByAlignment()}}get lines(){return this._lines}set lines(t){if((t=asEnum(t,LineMarkerLines))!=this._lines){this._lines=t;this._marker&&this._resetLinesVisibility()}}get interaction(){return this._interaction}set interaction(t){if((t=asEnum(t,LineMarkerInteraction))!=this._interaction){this._marker&&this._detach();this._interaction=t;this._marker&&this._attach();this._toggleElesDraggableClass(this._interaction==LineMarkerInteraction.Drag)}}get dragThreshold(){return this._dragThreshold}set dragThreshold(t){t!=this._dragThreshold&&(this._dragThreshold=asNumber(t))}get dragContent(){return this._dragContent}set dragContent(t){t!==this._dragContent&&(this._dragContent=asBoolean(t));toggleClass(this._dragEle,LineMarker._CSS_LINE_DRAGGABLE,this._interaction===LineMarkerInteraction.Drag&&this._dragContent&&this._lines!==LineMarkerLines.None)}get dragLines(){return this._dragLines}set dragLines(t){t!=this._dragLines&&(this._dragLines=asBoolean(t))}onPositionChanged(t){this.positionChanged.raise(this,t)}remove(){var t=this._chart;if(this._marker){t.rendered.removeHandler(this._initialize,this);this._detach();this._removeMarker();this._wrapperMoveMarker=null;this._wrapperMousedown=null;this._wrapperMouseup=null}}_attach(){var t=this._chart.hostElement;this._interaction!==LineMarkerInteraction.None?addClass(t,LineMarker._CSS_TOUCH_DISABLED):removeClass(t,LineMarker._CSS_TOUCH_DISABLED);lineMarkers.attach(this);this._attachDrag()}_attachDrag(){if(this._interaction===LineMarkerInteraction.Drag){this._wrapperMousedown||(this._wrapperMousedown=this._onMousedown.bind(this));this._wrapperMouseup||(this._wrapperMouseup=this._onMouseup.bind(this));this._toggleDragEventAttach(!0)}}_detach(){removeClass(this._chart.hostElement,LineMarker._CSS_TOUCH_DISABLED);lineMarkers.detach(this);this._detachDrag()}_detachDrag(){this._interaction===LineMarkerInteraction.Drag&&this._toggleDragEventAttach(!1)}_toggleDragEventAttach(t){var e=this._chart.hostElement,i=t?"addEventListener":"removeEventListener";e[i]("mousedown",this._wrapperMousedown);document[i]("mouseup",this._wrapperMouseup);"ontouchstart"in window&&e[i]("touchstart",this._wrapperMousedown);"ontouchend"in window&&document[i]("touchend",this._wrapperMouseup)}_onMousedown(t){var e,i,s,n,r,a=this._getEventPoint(t);if(this._interaction===LineMarkerInteraction.Drag){n=!(0===(e=getElementRect(this._hLine)).width||0===e.height);r=!(0===(i=getElementRect(this._vLine)).width||0===i.height);s=getElementRect(this._markerContent);if(this._dragContent&&this._pointInRect(a,s)){this._capturedEle=this._markerContent;this._contentDragStartPoint=new Point(a.x,a.y);this._mouseDownCrossPoint=new Point(this._targetPoint.x,this._targetPoint.y)}else if(n&&(Math.abs(e.top-a.y)<=this._dragThreshold||Math.abs(a.y-e.top-e.height)<=this._dragThreshold||a.y>=e.top&&a.y<=e.top+e.height)){this._capturedEle=this._hLine;this._contentDragStartPoint=void 0;addClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}else if(r&&(Math.abs(i.left-a.x)<=this._dragThreshold||Math.abs(a.x-i.left-i.width)<=this._dragThreshold||a.x>=i.left&&a.x<=i.left+i.width)){this._capturedEle=this._vLine;this._contentDragStartPoint=void 0;addClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}t.preventDefault()}}_onMouseup(t){var e=this._alignment===LineMarkerAlignment.Auto&&this._capturedEle===this._markerContent&&this._lines!==LineMarkerLines.None;this._capturedEle=void 0;this._contentDragStartPoint=void 0;this._mouseDownCrossPoint=void 0;if(e){this._updatePositionByAlignment();this._updatePositionByAlignment()}removeClass(this._chart.hostElement,LineMarker._CSS_LINE_DRAGGABLE)}_moveMarker(t){var e,i,s,n,r,a,h=this._chart,o=this._getEventPoint(t),l=this._plotRect,_=this._interaction===LineMarkerInteraction.Drag,c=this._lines===LineMarkerLines.Horizontal,d=this._lines===LineMarkerLines.Vertical,u=this._seriesIndex,g=getElementRect(h.hostElement);if(l&&this._isVisible&&this._interaction!==LineMarkerInteraction.None&&(this._interaction!==LineMarkerInteraction.Drag||this._capturedEle&&this._lines!==LineMarkerLines.None)){if(_)if(this._contentDragStartPoint){o.x=c?this._targetPoint.x:this._mouseDownCrossPoint.x+o.x-this._contentDragStartPoint.x;o.y=d?this._targetPoint.y:this._mouseDownCrossPoint.y+o.y-this._contentDragStartPoint.y}else c||!this._dragLines&&this._capturedEle===this._hLine?o.x=this._targetPoint.x:(d||!this._dragLines&&this._capturedEle===this._vLine)&&(o.y=this._targetPoint.y);if(_&&this._lines===LineMarkerLines.Horizontal||!this._dragLines&&this._capturedEle===this._hLine){if(o.y<=l.top||o.y>=l.top+l.height)return}else if(_&&this._lines===LineMarkerLines.Vertical||!this._dragLines&&this._capturedEle===this._vLine){if(o.x<=l.left||o.x>=l.left+l.width)return}else{const t=this._getTop();if(o.x<=l.left||o.y<=t||o.x>=l.left+l.width||o.y>=t+l.height)return}if(null!=u&&u>=0&&u<h.series.length){if(null==(i=(e=h.series[u]).hitTest(new Point(o.x,NaN)))||null==i.x||null==i.y)return;s=e.axisX||h.axisX;n=e._getAxisY();r=isDate(i.x)?FlexChartCore._toOADate(i.x):i.x;r=isString(r)?i.pointIndex:r;a=isDate(i.y)?FlexChartCore._toOADate(i.y):i.y;const t=this._getElementPaddingValuee(h.hostElement,"padding-left"),l=this._getElementPaddingValuee(h.hostElement,"padding-top");o.x=s.convert(r)+t+g.left;this.chart._stacking!=Stacking.None&&(a=this._calcStackedValue(u,r,a));o.y=n.convert(a)+l+g.top}this._updateMarkerPosition(o);t.preventDefault()}}_calcStackedValue(t,e,i){let s=i;const n=this.chart._stacking==Stacking.Stacked100pc;for(let r=0;r<t;r++){const t=this.chart.series[r],a=t.getValues(1),h=t.getValues(0);if(h)for(let t=0;t<h.length;t++){if(e===(a?a[t]:t)){isFinite(h[t])&&(n||this._sign(i)==this._sign(h[t]))&&(s+=h[t]);break}}}if(n&&s){s/=this.chart._dataInfo.getStackedAbsSum(e);s>1&&(s=1)}return s}_sign(t){return t>0?1:t<0?-1:0}_getElementPaddingValuee(t,e){return+window.getComputedStyle(t,null).getPropertyValue(e).replace("px","")}_show(t){(t||this._marker).style.display="block"}_hide(t){(t||this._marker).style.display="none"}_toggleVisibility(){this._isVisible?this._show():this._hide()}_resetDefaultValue(){this._isVisible=!0;this._alignment=LineMarkerAlignment.Auto;this._lines=LineMarkerLines.None;this._interaction=LineMarkerInteraction.None;this._horizontalPosition=null;this._verticalPosition=null;this._content=null;this._seriesIndex=null;this._dragThreshold=15;this._dragContent=!1;this._dragLines=!1;this._targetPoint=new Point}_initialize(){var t,e=this._chart.hostElement.querySelector("."+FlexChartCore._CSS_PLOT_AREA);this._plot=e;this._marker||this._createMarker();if(e){this._plotRect=getElementRect(e);t=e.getBBox();this._plotRect.width=t.width;this._plotRect.height=t.height;this._updateMarkerSize();this._updateLinesSize()}this._updateMarkerPosition();this._wrapperMoveMarker=this._moveMarker.bind(this);this._attach()}_createMarker(){var t,e;t=document.createElement("div");addClass(t,LineMarker._CSS_MARKER);(e=this._getContainer()).appendChild(t);this._markerContainer=e;this._marker=t;this._createChildren()}_removeMarker(){var t=this._markerContainer;t.removeChild(this._marker);this._content=null;this._hLine=null;this._vLine=null;if(!t.hasChildNodes()){this._chart.hostElement.removeChild(this._markerContainer);this._markerContainer=null}this._marker=null}_getContainer(){var t=this._chart.hostElement.querySelector(LineMarker._CSS_MARKER_CONTAINER);t||(t=this._createContainer());return t}_createContainer(){var t=document.createElement("div"),e=this._chart.hostElement;addClass(t,LineMarker._CSS_MARKER_CONTAINER);e.insertBefore(t,e.firstChild);return t}_createChildren(){var t,e,i,s,n=this._marker;(s=document.createElement("div")).style.position="absolute";s.style.height="100%";s.style.width="100%";n.appendChild(s);this._dragEle=s;t=document.createElement("div");addClass(t,LineMarker._CSS_MARKER_CONTENT);n.appendChild(t);this._markerContent=t;e=document.createElement("div");addClass(e,LineMarker._CSS_MARKER_HLINE);n.appendChild(e);this._hLine=e;i=document.createElement("div");addClass(i,LineMarker._CSS_MARKER_VLINE);n.appendChild(i);this._vLine=i;this._toggleElesDraggableClass(this._interaction===LineMarkerInteraction.Drag);this._resetLinesVisibility()}_toggleElesDraggableClass(t){toggleClass(this._hLine,LineMarker._CSS_LINE_DRAGGABLE,t);toggleClass(this._vLine,LineMarker._CSS_LINE_DRAGGABLE,t);toggleClass(this._dragEle,LineMarker._CSS_LINE_DRAGGABLE,t&&this._dragContent&&this._lines!==LineMarkerLines.None)}_updateMarkerSize(){var t=this._plotRect,e=this._chart.hostElement,i=window.getComputedStyle(e,null),s=getElementRect(e);if(this._marker){this._marker.style.marginTop=t.top-s.top-(parseFloat(i.getPropertyValue("padding-top"))||0)+"px";this._marker.style.marginLeft=t.left-s.left-(parseFloat(i.getPropertyValue("padding-left"))||0)+"px"}}_updateLinesSize(){var t=this._plotRect;if(this._hLine&&this._vLine){this._hLine.style.width=t.width+"px";this._vLine.style.height=t.height+"px"}}_resetLinesVisibility(){if(this._hLine&&this._vLine){this._hide(this._hLine);this._hide(this._vLine);this._lines!==LineMarkerLines.Horizontal&&this._lines!==LineMarkerLines.Both||this._show(this._hLine);this._lines!==LineMarkerLines.Vertical&&this._lines!==LineMarkerLines.Both||this._show(this._vLine)}}_updateMarkerPosition(t){var e,i,s=this._plotRect,n=this._targetPoint,r=!1;this._interaction,LineMarkerInteraction.Drag;if(this._plot){e=s.left+s.width*(this._horizontalPosition||0);i=s.top+s.height*(this._verticalPosition||0);null==this._horizontalPosition&&t?e=t.x:this._savedPosition.x>0&&(e=s.left+s.width*this._savedPosition.x);null==this._verticalPosition&&t?i=t.y:this._savedPosition.y>0&&(i=s.top+s.height*this._savedPosition.y);e===n.x&&i===n.y||(r=!0);n.x=e;n.y=i;this._savedPosition.x=clamp((e-s.left)/s.width,0,1);this._savedPosition.y=clamp((i-s.top)/s.height,0,1);this._toggleVisibility();this._content&&this._updateContent();r&&this._raisePositionChanged(e,i);this._updatePositionByAlignment(!!t)}}_updateContent(){var t,e=this._chart,i=this._targetPoint,s=e.hitTest(i);t=this._content.call(null,s,i);this._markerContent.innerHTML=t||""}_raisePositionChanged(t,e){this._plotRect;this.onPositionChanged(new Point(t,e))}_updatePositionByAlignment(t){var e=this._alignment,i=this._targetPoint,s=this._marker,n=0,r=0,a=s.clientWidth,h=s.clientHeight,o=this._plotRect;if(!this._plot)return;const l=this._getTop();if(!this._capturedEle||this._capturedEle&&this._capturedEle!==this._markerContent){if(e===LineMarkerAlignment.Auto){i.x+a+12>o.left+o.width&&i.x-a>=0&&(r=a);n=h;i.y-h<l&&(n=0)}else{1==(1&e)&&(r=a);2==(2&e)&&(n=h)}this._interaction===LineMarkerInteraction.Move&&0===n&&0===r&&null==this.verticalPosition&&(r=-12)}else{parseInt(this._hLine.style.top)>0&&(n=h);parseInt(this._vLine.style.left)>0&&(r=a)}s.style.left=i.x-r-o.left+"px";s.style.top=i.y-n-l+"px";this._hLine.style.top=n+"px";this._hLine.style.left=o.left-i.x+r+"px";this._vLine.style.top=l-i.y+n+"px";this._vLine.style.left=r+"px"}_getEventPoint(t){return t instanceof MouseEvent?new Point(t.pageX,t.pageY):new Point(t.changedTouches[0].pageX,t.changedTouches[0].pageY)}_pointInRect(t,e){return!(!t||!e)&&(t.x>=e.left&&t.x<=e.left+e.width&&t.y>=e.top&&t.y<=e.top+e.height)}_getTop(){let t=0;const e=this.chart._getHostComputedStyle();if(e){t+=this.chart._parsePx(e.paddingTop);t+=this.chart._parsePx(e.borderTopWidth);t+=this.chart._parsePx(e.marginTop)}return this._chart._plotRect.top+this._plot.getBoundingClientRect().top-t}}LineMarker._CSS_MARKER=LineMarkerClsNames.linemarker;LineMarker._CSS_MARKER_HLINE=LineMarkerClsNames.hline;LineMarker._CSS_MARKER_VLINE=LineMarkerClsNames.vline;LineMarker._CSS_MARKER_CONTENT=LineMarkerClsNames.content;LineMarker._CSS_MARKER_CONTAINER=LineMarkerClsNames.container;LineMarker._CSS_LINE_DRAGGABLE=LineMarkerClsNames.draggable;LineMarker._CSS_TOUCH_DISABLED=FlexChartClsNames.touchDisabled;export class _LinePlotter extends _BasePlotter{constructor(){super();this.hasSymbols=!1;this.hasLines=!0;this.isSpline=!1;this.isStep=!1;this.hitTestSymbols=!0;this.stacking=Stacking.None;this.stackPos={};this.stackNeg={};this.clipping=!1}clear(){super.clear();this.stackNeg={};this.stackPos={}}adjustLimits(t,e){this.dataInfo=t;var i=t.getMinX(),s=t.getMinY(),n=t.getMaxX(),r=t.getMaxY();if(this.isSpline&&!this.chart.axisY._getLogBase()){const t=.1*(r-s);s-=t;r+=t}return this.rotated?new Rect(s,i,r-s,n-i):new Rect(i,s,n-i,r-s)}plotSeries(t,e,i,s,n,r,a,h){var o=[],l=asType(s,SeriesBase),_=this.chart.series.indexOf(s),c=s.getValues(0),d=s.getValues(1);if(!c)return;d||(d=this.dataInfo.getXVals());var u=_BasePlotter.cloneStyle(s.style,["fill"]),g=c.length,p=!0;if(d)g=Math.min(g,d.length);else{p=!1;d=new Array(g)}var f=this._DEFAULT_WIDTH,m=l._getSymbolFill(_),x=l._getAltSymbolFill(_)||m,b=l._getSymbolStroke(_),y=l._getAltSymbolStroke(_)||b,S=l._getSymbolSize();t.stroke=b;t.strokeWidth=f;t.fill=m;const v=new Float64Array(g),w=new Float64Array(g);let C=0;const T=new Int8Array(g);let M=0;var P=this.rotated,A=this.stacking!=Stacking.None&&!l._isCustomAxisY(),L=this.stacking==Stacking.Stacked100pc&&!l._isCustomAxisY();void 0!==l._getChartType()&&(A=L=!1);var N=l.interpolateNulls,E=!1;const k=this.getItemFormatter(s);var I;for(let t=0;t<g;t++){let s=p?d[t]:t,n=c[t];if(isFinite(s)&&isFinite(n)){if(A){if(L){n/=this.dataInfo.getStackedAbsSum(s)}if(n>=0){const t=isNaN(this.stackPos[s])?0:this.stackPos[s];n=this.stackPos[s]=t+n}else{const t=isNaN(this.stackNeg[s])?0:this.stackNeg[s];n=this.stackNeg[s]=t+n}}if(P){I=new _DataPoint(_,t,n,s);const r=e.convert(n);n=i.convert(s);s=r}else{I=new _DataPoint(_,t,s,n);s=e.convert(s);n=i.convert(n)}if(isNaN(s)||isNaN(n)){E=!0;if(!0!==N){v[C]=NaN;w[C++]=NaN}T[M++]=1;h&&o.push(null)}else{v[C]=s;w[C++]=n;M++;h&&o.push(new Point(s,n));if(this.hitTestSymbols){const t=new _CircleArea(new Point(s,n),.5*S);t.tag=I;this.hitTester.add(t,_)}}}else{E=!0;if(!0!==N){v[C]=NaN;w[C++]=NaN}T[M++]=1;h&&o.push(null)}}var R=0;if(this.hasLines){t.fill=null;if(E&&!0!==N){let e=[],i=[];for(let s=0;s<g;s++)if(isNaN(v[s])){if(e.length>1){this._drawLines(t,e,i,null,u,this.chart._plotrectId);this.hitTester.add(new _LinesArea(e,i),_);R++}e=[];i=[]}else{e.push(v[s]);i.push(w[s])}if(e.length>1){this._drawLines(t,e,i,null,u,this.chart._plotrectId);this.hitTester.add(new _LinesArea(e,i),_);R++}}else{this._drawLines(t,v,w,null,u,this.chart._plotrectId,C);this.hitTester.add(new _LinesArea(v,w),_);R++}}if(this.hasSymbols&&S>0||k){t.fill=m;let n=0;for(let r=0;r<g;r++){if(N&&T[r])continue;const a=v[n],h=w[n];if(!1===this.hasLines||k){t.fill=c[r]>0?m:x;t.stroke=c[r]>0?b:y;t.strokeWidth=f}if(this.isValid(a,h,e,i)){this._drawSymbol(t,a,h,S,l,r,k);s._setPointIndex(r,R);R++}n++}}h&&o&&o.length&&h(o)}_drawLines(t,e,i,s,n,r,a){if(this.isSpline&&a>3)t.drawSplines(e,i,s,n,r,a);else if(this.isStep){const h=this._createSteps(e,i,a);e=h.x;i=h.y;t.drawLines(e,i,s,n,r)}else t.drawLines(e,i,s,n,r,a)}_drawSymbol(t,e,i,s,n,r,a){if(a){t.startGroup();const h=new HitTestInfo(this.chart,new Point(e,i),ChartElement.SeriesSymbol);h._setData(n,r);a(t,h,()=>{this.hasSymbols&&s>0&&this._drawDefaultSymbol(t,e,i,s,n.symbolMarker,n.symbolStyle)});t.cssPriority=!0;t.endGroup()}else this._drawDefaultSymbol(t,e,i,s,n.symbolMarker,n.symbolStyle)}_drawDefaultSymbol(t,e,i,s,n,r){n==Marker.Dot?t.drawEllipse(e,i,.5*s,.5*s,null,r):n==Marker.Box&&t.drawRect(e-.5*s,i-.5*s,s,s,null,r)}}export class _BubblePlotter extends _LinePlotter{constructor(){super();this._MIN_SIZE=5;this._MAX_SIZE=30;this.hasLines=!1;this.hasSymbols=!0;this.clipping=!0;this.hitTestSymbols=!1}adjustLimits(t,e){var i=this.getNumOption("minSize","bubble");this._minSize=i||this._MIN_SIZE;var s=this.getNumOption("maxSize","bubble");this._maxSize=s||this._MAX_SIZE;var n=this.chart.series,r=n.length,a=NaN,h=NaN;for(let t=0;t<r;t++){const e=n[t];if(e._getChartType()==ChartType.Bubble||null==e._getChartType()&&e._chart._getChartType()==ChartType.Bubble){const t=e._getBindingValues(1);if(t){const e=t.length;for(let i=0;i<e;i++)if(isFinite(t[i])){(isNaN(a)||t[i]<a)&&(a=t[i]);(isNaN(h)||t[i]>h)&&(h=t[i])}}}}this._minValue=a;this._maxValue=h;const o=super.adjustLimits(t,e);let l=e.left,_=e.right,c=e.top,d=e.bottom;for(let t=0;t<r;t++){const i=n[t];if(i._getChartType()==ChartType.Bubble||null==i._getChartType()&&i._chart._getChartType()==ChartType.Bubble){const t=i._getBindingValues(1),s=i.getValues(1),n=i.getValues(0);if(t&&s&&n){const i=t.length;for(let r=0;r<i;r++){let i=s?s[r]:r,u=n[r],g=t[r];if(_DataInfo.isValid(i,u,g)){i=e.left+e.width*(i-o.left)/o.width;u=e.top+e.height*(u-o.top)/o.height;g=this._minSize+(this._maxSize-this._minSize)*(g-a)/(h-a);i-g<l&&(l=i-g);i+g>_&&(_=i+g);u-g<c&&(c=u-g);u+g>d&&(d=u+g)}}}}}l=e.left-l+5;_=_-e.right+5;c=e.top-c+5;d=d-e.bottom+5;var u=this.chart.axisX,g=this.chart.axisY;if(!u._isLogAxis())if(this.stacking==Stacking.Stacked100pc&&this.rotated){const t=(e.width-this._maxSize)/o.width;o.left-=.5*this._maxSize/t;o.width+=this._maxSize/t}else{const t=(e.width-(l+_))/o.width;o.left-=l/t;o.width+=(l+_)/t}if(!g._isLogAxis())if(this.stacking!=Stacking.Stacked100pc||this.rotated){const t=(e.height-(c+d))/o.height;o.top-=c/t;o.height+=(c+d)/t}else{const t=(e.height-this._maxSize)/o.height;o.top-=.5*this._maxSize/t;o.height+=this._maxSize/t}return o}_drawSymbol(t,e,i,s,n,r,a){if(null==this._minSize){const t=this.getNumOption("minSize","bubble");this._minSize=t||this._MIN_SIZE}if(null==this._maxSize){const t=this.getNumOption("maxSize","bubble");this._maxSize=t||this._MAX_SIZE}const h=n._getItem(r);if(h){const s=n._getBinding(1);if(s){let o=h[s];if(isFinite(o)){null==o&&(o=this._minValue);const s=this._minValue==this._maxValue?1:Math.sqrt((o-this._minValue)/(this._maxValue-this._minValue));o=this._minSize+(this._maxSize-this._minSize)*s;if(a){const s=new HitTestInfo(this.chart,new Point(e,i),ChartElement.SeriesSymbol);s._setData(n,r);t.startGroup();a(t,s,()=>{this._drawDefaultSymbol(t,e,i,o,n.symbolMarker,n.symbolStyle)});t.endGroup()}else this._drawDefaultSymbol(t,e,i,o,n.symbolMarker,n.symbolStyle);let h=n.getValues(1);h||(h=this.dataInfo.getXVals());const l=h?h[r]:r,_=n.getValues(0)[r],c=this.chart.series.indexOf(n),d=new _CircleArea(new Point(e,i),.5*o);d.tag=new _DataPoint(c,r,l,_);this.hitTester.add(d,c)}}}}}_registerModule("wijmo.chart",selfModule);