@grapecity/wijmo.chart.analytics
Advanced tools
Comparing version 5.20241.19 to 5.20242.21
/*! | ||
* | ||
* Wijmo Library 5.20241.19 | ||
* Wijmo Library 5.20242.21 | ||
* https://developer.mescius.com/wijmo | ||
@@ -14,2 +14,2 @@ * | ||
"use strict";var __importStar=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.hasOwnProperty.call(t,i)&&(e[i]=t[i]);e.default=t;return e};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_1=require("@grapecity/wijmo"),wijmo_chart_1=require("@grapecity/wijmo.chart"),selfModule=__importStar(require("@grapecity/wijmo.chart.analytics"));class Waterfall extends wijmo_chart_1.SeriesBase{constructor(t){super();this._startLabel="Start";this._relativeData=!0;this._connectorLines=!1;this._showTotal=!1;this._totalLabel="Total";this._getXValues=!1;this._showIntermediateTotal=!1;this._intermediateTotalPos=[];this._chartType=wijmo_chart_1.ChartType.Bar;this.tooltipContent="<b>{seriesName}</b><br/>{x} {value}";this.rendering.addHandler(this._rendering,this);this.initialize(t)}get relativeData(){return this._relativeData}set relativeData(t){if(t!=this._relativeData){this._relativeData=wijmo_1.asBoolean(t,!0);this._invalidate()}}get start(){return this._start}set start(t){if(t!=this._start){this._start=wijmo_1.asNumber(t,!0);this._invalidate()}}get startLabel(){return this._startLabel}set startLabel(t){if(t!=this._startLabel){this._startLabel=wijmo_1.asString(t,!1);this._invalidate()}}get showTotal(){return this._showTotal}set showTotal(t){if(t!=this._showTotal){this._showTotal=wijmo_1.asBoolean(t,!0);this._invalidate()}}get totalLabel(){return this._totalLabel}set totalLabel(t){if(t!=this._totalLabel){this._totalLabel=wijmo_1.asString(t,!1);this._invalidate()}}get showIntermediateTotal(){return this._showIntermediateTotal}set showIntermediateTotal(t){if(t!=this._showIntermediateTotal){this._showIntermediateTotal=wijmo_1.asBoolean(t,!1);this._invalidate()}}get intermediateTotalPositions(){return this._intermediateTotalPositions}set intermediateTotalPositions(t){if(t!=this._intermediateTotalPositions){this._intermediateTotalPositions=wijmo_1.asArray(t,!0);this._invalidate()}}get intermediateTotalLabels(){return this._intermediateTotalLabels}set intermediateTotalLabels(t){if(t!=this._intermediateTotalLabels){wijmo_1.assert(null==t||wijmo_1.isArray(t)||wijmo_1.isString(t),"Array or string expected.");this._intermediateTotalLabels=t;this._invalidate()}}get connectorLines(){return this._connectorLines}set connectorLines(t){if(t!=this._connectorLines){this._connectorLines=wijmo_1.asBoolean(t,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!=this._styles){this._styles=t;this._invalidate()}}getValues(t){var e,i,s,r,a=[],n=0;e=super.getValues(t);if(0===t){if(!this._yValues){a=[];var l=null!=this.start?this.start:0,h=0,o=e&&e.length||0;if(this.relativeData){for(;h<o;h++){l+=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}else{for(;h<o;h++){l=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}if((i=this._yValues)&&i.length>0){if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){this._intermediateTotalPos=i.slice();this.intermediateTotalPositions.reduceRight((t,e)=>{var s=0===e?i[0]:i[e-1];if(i.length>e){i.splice(e,0,s);this._intermediateTotalPos.splice(e,0,!0)}else if(i.length===e){i.push(s);this._intermediateTotalPos.push(!0)}return 0},0)}if(null!=this.start){i.splice(0,0,this.start);this._intermediateTotalPos.splice(0,0,!1)}this.showTotal&&i&&i.push(i[i.length-1])}}return this._yValues}if(!this._xValues&&this._getXValues){this._xValues=e&&e.slice();this._getXValues=!1;if(this._xValues&&this._xValues.length>1){o=this._xValues.length;r=this._xValues[o-1];n=Math.abs(this._xValues[o-1]-this._xValues[o-2])}if(this.chart&&this.chart._xlabels&&this.chart._xlabels.length){s=this.chart._xlabels;if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){var u=this.intermediateTotalLabels;u&&this.intermediateTotalPositions.reduceRight((t,e,i)=>{var a="";a=wijmo_1.isString(u)?u:u[i]||"";s.length>e?s.splice(e,0,a):s.length===e&&s.push(a);if(n){r+=n;this._xValues.push(r)}return 0},0)}if(null!=this.start){s.splice(0,0,this.startLabel);if(n){r+=n;this._xValues.push(r)}}if(this.showTotal){s.push(this.totalLabel);if(n){r+=n;this._xValues.push(r)}}}}return this._xValues}legendItemLength(){return this.showTotal?3:2}measureLegendItem(t,e){var i=this._getName(e);return i?this._measureLegendItem(t,i):new wijmo_1.Size(0,0)}drawLegendItem(t,e,i){var s=this._getLegendStyles(i);this._getName(i)&&this._drawLegendItem(t,e,wijmo_chart_1.ChartType.Bar,this._getName(i),s,this.symbolStyle)}_clearValues(){super._clearValues();this._xValues=null;this._yValues=null;this._wfstyle=null;this._getXValues=!0;this._intermediateTotalPos=[];this.chart&&this.chart._performBind()}_invalidate(){super._invalidate();this._clearValues()}_getXOffset(){return null!=this.start?1:0}_getYOffset(t){return this.getValues(0)[t+this._getXOffset()]}_getValue(t){let e=t;if(null!=this.start){if(0==t)return this.start;t--}return this.showIntermediateTotal&&this.intermediateTotalPositions&&this._intermediateTotalPos[e],this.getValues(0)[e]}_getItem(t){let e=null;null!=this.start&&(0==t?(e={})[this.binding]=this.start:t--);if(this.showIntermediateTotal&&this.intermediateTotalPositions){let i=this._intermediateTotalPos;if(!0===i[t]){(e={})[this.binding]=this.getValues(0)[t];return e}{let e=t;for(let s=0;s<t;s++)!0===i[s]&&e--;t=e}}e||!(e=super._getItem(t))&&this.showTotal&&this._yValues&&this._yValues.length>0&&((e={})[this.binding]=this._yValues[this._yValues.length-1]);return e}_rendering(t,e){e.cancel=!0;this._wfstyle=null;var i,s,r,a,n,l,h=this.chart,o=this._getAxisY(),u=this._getAxisX(),_=o.origin||0,c=e.engine;this._barPlotter=h._getPlotter(this);r=this._barPlotter.rotated;this._barPlotter._getSymbolOrigin||(this._barPlotter._getSymbolOrigin=(t,e,i)=>0===e?t:!0===this._intermediateTotalPos[e]?t:e===i-1&&this.showTotal?t:this._yValues[e-1]);this._barPlotter._getSymbolStyles||(this._barPlotter._getSymbolStyles=(t,e)=>{var i=this._getStyles();return 0===t&&null!=this.start?i.start:!0===this._intermediateTotalPos[t]?i.intermediateTotal:t===e-1&&this.showTotal?i.total:0==t?this._yValues[t]<0?i.falling:i.rising:this._yValues[t]<this._yValues[t-1]?i.falling:i.rising});this._barPlotter.plotSeries(c,u,o,t,h,0,1);if(this.connectorLines&&(a=this._barPlotter.hitTester._map[0])&&a.length){c.startGroup(Waterfall.CSS_CONNECTOR_LINE_GROUP);l=this._yValues[0]<_;n=a[0].rect;for(i=1,s=a.length;i<s;i++)if(!0!==this._intermediateTotalPos[i]||i===s-1){this._drawConnectorLine(c,r,n,a[i].rect,l);n=a[i].rect;l=this._yValues[i]<this._yValues[i-1]}c.endGroup()}}_getStyles(){if(this._wfstyle)return this._wfstyle;var t=this._chart.series.indexOf(this),e=this._getSymbolFill(t),i=this._getSymbolStroke(t),s=this.styles||{};this._wfstyle={start:this._getStyleByKey(s,"start",e,i),intermediateTotal:this._getStyleByKey(s,"intermediateTotal",e,i),total:this._getStyleByKey(s,"total",e,i),falling:this._getStyleByKey(s,"falling","red","red"),rising:this._getStyleByKey(s,"rising","green","green")};return this._wfstyle}_getStyleByKey(t,e,i,s){return{fill:t[e]&&t[e].fill?t[e].fill:i,stroke:t[e]&&t[e].stroke?t[e].stroke:s}}_drawConnectorLine(t,e,i,s,r){var a=new wijmo_1.Point,n=new wijmo_1.Point,l=this.chart.axisY.reversed,h=this.chart.axisX.reversed;l^=r;if(e){if(l){a.x=i.left;n.x=i.left}else{a.x=i.left+i.width;n.x=i.left+i.width}if(h){a.y=i.top;n.y=s.top+s.height}else{a.y=i.top+i.height;n.y=s.top}}else{if(l){a.y=i.top+i.height;n.y=i.top+i.height}else{a.y=i.top;n.y=i.top}if(h){a.x=i.left+i.width;n.x=s.left}else{a.x=i.left;n.x=s.left+s.width}}t.drawLine(a.x,a.y,n.x,n.y,Waterfall.CSS_CONNECTOR_LINE,this.styles&&this.styles.connectorLines||{stroke:"black"})}_getLegendStyles(t){if(t<0||null===this.styles)return null;var e=this._getStyles();return 0===t?e.rising:1===t?e.falling:e.total}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}}Waterfall.CSS_CONNECTOR_LINE_GROUP="water-fall-connector-lines";Waterfall.CSS_CONNECTOR_LINE="water-fall-connector-line";Waterfall.CSS_ENDLABEL="water-fall-end-label";exports.Waterfall=Waterfall;class TrendLineBase extends wijmo_chart_1.SeriesBase{constructor(t){super();this._chartType=wijmo_chart_1.ChartType.Line;this._sampleCount=100;this.initialize(t)}get sampleCount(){return this._sampleCount}set sampleCount(t){if((t=wijmo_1.asNumber(t,!1,!0))!=this._sampleCount){this._sampleCount=t;this._invalidate()}}approximate(t){return 0}getValues(t){var e=this.binding,i=this.bindingX;if(e!==this._bind){this._bind=e;this.binding=e}if(i!==this._bindX){this._bindX=i;this.bindingX=i}null==this._originYValues&&(this._originYValues=super.getValues(0));null==this._originXValues&&(this._originXValues=super.getValues(1));if(null==this._originXValues||null==this._originYValues)return null;super.getValues(t);null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){}_invalidate(){super._invalidate();this._clearCalculatedValues()}_clearValues(){super._clearValues();this._originXValues=null;this._originYValues=null;this._clearCalculatedValues()}_clearCalculatedValues(){this._xValues=null;this._yValues=null}}exports.TrendLineBase=TrendLineBase;var MovingAverageType,TrendLineFitType;!function(t){t[t.Simple=0]="Simple";t[t.Weighted=1]="Weighted";t[t.Exponential=2]="Exponential";t[t.Triangular=3]="Triangular"}(MovingAverageType=exports.MovingAverageType||(exports.MovingAverageType={}));class MovingAverage extends TrendLineBase{constructor(t){super();this._chartType=wijmo_chart_1.ChartType.Line;this._type=MovingAverageType.Simple;this._period=2;this.initialize(t)}get type(){return this._type}set type(t){if((t=wijmo_1.asEnum(t,MovingAverageType,!1))!=this._type){this._type=t;this._invalidate()}}get period(){return this._period}set period(t){if((t=wijmo_1.asNumber(t,!1,!0))!=this._period){this._period=wijmo_1.asNumber(t,!1,!0);this._invalidate()}}_checkPeriod(){var t=this.period,e=this._originXValues;t<=1&&wijmo_1.assert(!1,"period must be greater than 1.");e&&e.length&&t>=e.length&&wijmo_1.assert(!1,"period must be less than itemSource's length.")}_calculateValues(){this._type;var t="_calculate"+MovingAverageType[this._type],e=[],i=[];this._checkPeriod();this[t]&&this[t].call(this,e,i);this._yValues=i;this._xValues=e}_calculateSimple(t,e,i=!1){for(var s=this._originXValues,r=this._originYValues,a=s.length,n=this._period,l=0,h=0;h<a;h++){l+=r[h]||0;h>=n&&(l-=r[h-n]||0);if(h>=n-1){t.push(s[h]);e.push(l/n)}else if(i){t.push(s[h]);e.push(l/(h+1))}}}_calculateWeighted(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=a*(a+1)/2,l=0,h=0,o=0;o<r;o++){o>0&&(l+=s[o-1]||0);o>a&&(l-=s[o-a-1]||0);if(o<a-1)h+=(s[o]||0)*(o+1);else{h+=(s[o]||0)*a;o>a-1&&(h-=l);t.push(i[o]);e.push(h/n)}}}_calculateExponential(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=0,l=0;l<r;l++)if(l<=a-2){n+=s[l]||0;l===a-2&&(n/=a-1)}else{n+=2/(a+1)*((s[l]||0)-n);t.push(i[l]);e.push(n)}}_calculateTriangular(t,e){var i=this._period,s=[],r=[],a=0;this._calculateSimple(s,r,!0);for(var n=0,l=s.length;n<l;n++){a+=r[n]||0;n>=i&&(a-=r[n-i]||0);if(n>=i-1){t.push(s[n]);e.push(a/i)}}}}exports.MovingAverage=MovingAverage;class MathHelper{static round(t,e){if(!t)return 0;var i=Math.pow(10,e||2);return Math.round(t*i)/i}static avg(t){return MathHelper.sum(t)/t.length}static sum(t){return(t=wijmo_1.asArray(t,!1)).reduce((t,e)=>t+e,0)}static sumOfPow(t,e){t=wijmo_1.asArray(t,!1);e=wijmo_1.asNumber(e,!1);return t.reduce((t,i)=>t+Math.pow(i,e),0)}static sumProduct(...t){t.length;var e,i,s=0,r=[];(t=wijmo_1.asArray(t,!1)).forEach((t,e)=>{t=wijmo_1.asArray(t,!1);0===e?s=t.length:wijmo_1.assert(t.length===s,"The length of the arrays must be equal")});for(e=0;e<s;e++){i=1;t.some((t,s)=>{var r=t[e];if(!r||!wijmo_1.isNumber(r)){i=0;return!0}i*=r});r.push(i)}return MathHelper.sum(r)}static variance(t){t=wijmo_1.asArray(t,!1);var e,i=MathHelper.avg(t);e=t.map(t=>t-i);return MathHelper.sumOfSquares(e)/(t.length-1)}static covariance(t,e){t=wijmo_1.asArray(t,!1);e=wijmo_1.asArray(e,!1);wijmo_1.assert(t.length===e.length,"Length of arrays must be equal");var i,s=MathHelper.avg(t),r=MathHelper.avg(e),a=t.length,n=0;for(i=0;i<a;i++)n+=(t[i]-s)*(e[i]-r)/a;return n}}MathHelper.min=t=>Math.min.apply(Math,wijmo_1.asArray(t,!1));MathHelper.max=t=>Math.max.apply(Math,wijmo_1.asArray(t,!1));MathHelper.square=t=>Math.pow(wijmo_1.asNumber(t,!1),2);MathHelper.sumOfSquares=t=>MathHelper.sumOfPow(t,2);MathHelper.stdDev=t=>Math.sqrt(MathHelper.variance(t));!function(t){t[t.Linear=0]="Linear";t[t.Exponential=1]="Exponential";t[t.Logarithmic=2]="Logarithmic";t[t.Power=3]="Power";t[t.Fourier=4]="Fourier";t[t.Polynomial=5]="Polynomial";t[t.MinX=6]="MinX";t[t.MinY=7]="MinY";t[t.MaxX=8]="MaxX";t[t.MaxY=9]="MaxY";t[t.AverageX=10]="AverageX";t[t.AverageY=11]="AverageY"}(TrendLineFitType=exports.TrendLineFitType||(exports.TrendLineFitType={}));class TrendLine extends TrendLineBase{constructor(t){super();this._fitType=TrendLineFitType.Linear;this._order=2;this.initialize(t)}get fitType(){return this._fitType}set fitType(t){if((t=wijmo_1.asEnum(t,TrendLineFitType,!1))!=this._fitType){this._fitType=t;this._invalidate()}}get order(){return this._order}set order(t){if(t!=this._order){this._order=wijmo_1.asNumber(t,!1,!0);this._invalidate()}}get coefficients(){return this._helper?this._helper.coefficients:null}approximate(t){return this._helper?this._helper.approximate(t):NaN}getEquation(t){return(this._helper?this._helper.getEquation(t):"").replace(/\S(\+|\-)\d/g,(function(t){return t[0]+" "+t[1]+" "+t[2]}))}_calculateValues(){var t=TrendLineFitType[this._fitType];if(TrendLineHelper[t]){var e=!1,i=this._originXValues;if(0==this._chart._xvals.length&&this._chart._xlabels.length>0){i=this._originXValues.map(t=>t+1);e=!0}var s=new TrendLineHelper[t](this._originYValues,i,this.sampleCount,this.order);s._isXString=e;var r=s.calculateValues();this._yValues=r[0];this._xValues=r[1];this._helper=s}}}exports.TrendLine=TrendLine;class Calculator{constructor(t,e){this._x=t;this._y=e}get x(){return this._x}get y(){return this._y}get minX(){null==this._minX&&(this._minX=MathHelper.min(this._x));return this._minX}get minY(){null==this._minY&&(this._minY=MathHelper.min(this._y));return this._minY}get maxX(){null==this._maxX&&(this._maxX=MathHelper.max(this._x));return this._maxX}get maxY(){null==this._maxY&&(this._maxY=MathHelper.max(this._y));return this._maxY}get averageX(){null==this._averageX&&(this._averageX=MathHelper.avg(this._x));return this._averageX}get averageY(){null==this._averageY&&(this._averageY=MathHelper.avg(this._y));return this._averageY}get sumX(){null==this._sumX&&(this._sumX=MathHelper.sum(this._x));return this._sumX}get sumY(){null==this._sumY&&(this._sumY=MathHelper.sum(this._y));return this._sumY}get LogX(){null==this._logX&&(this._logX=this._x.map(t=>Math.log(t)));return this._logX}get LogY(){null==this._logY&&(this._logY=this._y.map(t=>Math.log(t)));return this._logY}get sumLogX(){null==this._sumLogX&&(this._sumLogX=MathHelper.sum(this.LogX));return this._sumLogX}get sumLogY(){null==this._sumLogY&&(this._sumLogY=MathHelper.sum(this.LogY));return this._sumLogY}get sumOfSquareX(){null==this._sumOfSquareX&&(this._sumOfSquareX=MathHelper.sumOfSquares(this._x));return this._sumOfSquareX}get sumOfSquareY(){null==this._sumOfSquareY&&(this._sumOfSquareY=MathHelper.sumOfSquares(this._y));return this._sumOfSquareY}get sumOfSquareLogX(){null==this._sumOfSquareLogX&&(this._sumOfSquareLogX=MathHelper.sumOfSquares(this.LogX));return this._sumOfSquareLogX}get sumOfSquareLogY(){null==this._sumOfSquareLogY&&(this._sumOfSquareLogY=MathHelper.sumOfSquares(this.LogY));return this._sumOfSquareLogY}sumProduct(t,e){null==this._sumProduct&&(this._sumProduct=MathHelper.sumProduct(t,e));return this._sumProduct}}class TrendHelperBase{constructor(t,e,i){this._coefficients=[];this.y=wijmo_1.asArray(t);this.x=wijmo_1.asArray(e);wijmo_1.assert(t.length===e.length,"Length of X and Y arrays are not equal");this.count=i||t.length;this._calculator=new Calculator(e,t);this.xMin=this._calculator.minX;this.xMax=this._calculator.maxX}get calculator(){return this._calculator}get y(){return this._y}set y(t){t!==this.y&&(this._y=wijmo_1.asArray(t,!1))}get x(){return this._x}set x(t){t!==this.x&&(this._x=wijmo_1.asArray(t,!1))}get count(){return this._count}set count(t){t!==this.count&&(this._count=wijmo_1.asInt(t,!1,!0))}get xMin(){return this._xMin}set xMin(t){t!==this.xMin&&(this._xMin=wijmo_1.asNumber(t,!1))}get xMax(){return this._xMax}set xMax(t){t!==this.xMax&&(this._xMax=wijmo_1.asNumber(t,!1))}get coefficients(){return this._coefficients}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this._coefficients.push(e,t)}calculateValues(){for(var t=(this.xMax-this.xMin)/(this.count-1),e=[[],[]],i=0;i<this.count;i++){var s=this.xMin+t*i,r=this.calcY(s);e[0].push(r);this._isXString?e[1].push(s-1):e[1].push(s)}return e}calcA(t){var e=this.y.length,i=this.calculator.sumX;return(this.calculator.sumY-(t=t||this.calcB())*i)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.x,e.y),s=e.sumX;return(t*i-s*e.sumY)/(t*e.sumOfSquareX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]+e[1]*t}approximate(t){return this.calcY(t)}getEquation(t){t=t||this._defaultEquationFmt;return this._getEquation(t)}_getEquation(t){var e=this.coefficients,i=[];e.forEach(e=>{i.push(t(e))});return this._concatEquation(i)}_concatEquation(t){return""}_defaultEquationFmt(t){var e,i=Math.abs(t),s=String(i),r=0;if(i>=1e5){e=String(Math.round(i)).length-1;return Math.round(t/Number("1e"+e))+"e"+e}if(i<1e-4){e=s.indexOf("e")>-1?Math.abs(+s.substring(s.indexOf("e")+1)):s.match(/\.0+/)[0].length;return Math.round(t*Number("1e"+e))+"e-"+e}r=t>0?6:7;i>=1e4&&r--;return String(+String(t).substring(0,r))}}class LinearHelper extends TrendHelperBase{get yOffset(){return this._yOffset}set yOffset(t){t!==this.yOffset&&(this._yOffset=wijmo_1.asNumber(t,!0))}constructor(t,e,i,s){super(t,e,i);this._calculateCoefficients();this.yOffset=s}calcA(t){return null!=this.yOffset?this.yOffset:super.calcA(t)}calcB(){return null!=this.yOffset?this._calculateBSimple():super.calcB()}_calculateBSimple(){var t=this.calculator,e=t.sumProduct(t.x,t.y),i=t.sumX,s=t.sumOfSquareX;return(e-this.yOffset*i)/s}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return e[0]*t+e[1]}_concatEquation(t){return"y = "+t[0]+"x"+(this.coefficients[1]>=0?"+":"")+t[1]}}class LogHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.y.length,i=this.calculator,s=i.sumY,r=i.sumLogX;return(s-(t=t||this.calcB())*r)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.y,e.LogX),s=e.sumY,r=e.sumLogX;return(t*i-s*r)/(t*e.sumOfSquareLogX-MathHelper.square(r))}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return Math.log(t)*e[0]+e[1]}_concatEquation(t){return"y = "+t[0]+"ln(x)"+(this.coefficients[1]>=0?"+":"")+t[1]}}class ExpHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX,a=e.sumProduct(e.x,e.LogY);return Math.exp((i*s-r*a)/(t*s-MathHelper.square(r)))}calcB(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX;return(t*e.sumProduct(e.x,e.LogY)-r*i)/(t*s-MathHelper.square(r))}calcY(t){var e=this.coefficients;return e[0]*Math.exp(e[1]*t)}_concatEquation(t){return"y = "+t[0]+"e<sup>"+t[1]+"x</sup>"}}class PowerHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.calculator,i=this.y.length,s=e.sumLogX,r=e.sumLogY;t=t||this.calcB();return Math.exp((r-t*s)/i)}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.LogX,e.LogY),s=e.sumLogX;return(t*i-s*e.sumLogY)/(t*e.sumOfSquareLogX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]*Math.pow(t,e[1])}_concatEquation(t){return"y = "+t[0]+"x<sup>"+t[1]+"</sup>"}}class LeastSquaresHelper extends TrendHelperBase{constructor(t,e,i,s){super(t,e,i);this._order=null==s?2:s;this._basis=[];this._calculateCoefficients()}get basis(){return this._basis}get order(){return this._order}set order(t){this._order=wijmo_1.asNumber(t,!0)}_calculateCoefficients(){this._coefficients.length=this.order;this._createBasis();this._normalizeAndSolveGauss()}_createBasis(){var t=this.x.length,e=this.order;if(t<2)throw"Incompatible data: Less than 2 data points.";if(e<1)throw"Incompatible data: Less than 1 coefficient in the fit";if(e>t)throw"Incompatible data: Number of data points less than number of terms"}_normalizeAndSolveGauss(){var t=[];this._computeNormalEquations(t);this._genDefValForArray(t,0);if(!this._solveGauss(t))throw"Incompatible data: No solution."}_genDefValForArray(t,e){var i=t.length+1;t.forEach(t=>{for(var s=0;s<i;s++)null==t[s]&&(t[s]=e)})}_computeNormalEquations(t){var e,i,s,r,a=this.y,n=this.basis,l=this.order,h=a.length;for(e=0;e<l;e++){s=0;null==t[e]&&(t[e]=[]);a.forEach((t,i)=>{s+=t*n[i][e]});t[e][l]=s;for(i=e;i<l;i++){s=0;for(r=0;r<h;r++)s+=n[r][i]*n[r][e];null==t[i]&&(t[i]=[]);t[i][e]=s;t[e][i]=s}}}_solveGauss(t){var e,i,s=t.length,r=this._coefficients,a=!0;if(r.length<s||t[0].length<s+1)throw"Dimension of matrix is not correct.";t.some((e,r)=>{var n,l,h=r,o=Math.abs(e[r]);for(i=r+1;i<s;i++)if(o<(n=Math.abs(t[i][r]))){o=n;h=i}if(!(o>0)){a=!1;return!0}for(i=r;i<=s;i++){l=t[r][i];t[r][i]=t[h][i];t[h][i]=l}for(h=r+1;h<s;h++){l=t[h][r]/e[r];t[h][r]=0;for(i=r+1;i<=s;i++)t[h][i]-=l*e[i]}});if(a)for(e=s-1;e>=0;e--){r[e]=t[e][s];for(i=e+1;i<s;i++)r[e]-=t[e][i]*r[i];r[e]=r[e]/t[e][e]}return a}}class PolyHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s)}get coefficients(){return this._coefficients.slice(0).reverse()}calcY(t){var e=this._coefficients,i=0,s=1;e.forEach((e,r)=>{r>0&&(s*=t);i+=e*s});return i}_calculateCoefficients(){this._coefficients;this.order++;0;super._calculateCoefficients();0;this.order--}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{e[s]=[1];for(var r=1;r<=i;r++)e[s][r]=t*e[s][r-1]})}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a,n=i-1-r;if(0===n)e+=t;else if(1===n){a=s[r+1]>=0?"+":"";e+=t+"x"+a}else{a=s[r+1]>=0?"+":"";e+=t+"x<sup>"+n+"</sup>"+a}}));return e}}class FourierHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s=null==s?e.length:s)}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{var r,a;e[s]=[1];for(r=1;r<i;r++){a=Math.floor((r+1)/2);r%2==1?e[s].push(Math.cos(a*t)):e[s].push(Math.sin(a*t))}})}calcY(t){var e;this._coefficients.forEach((i,s)=>{var r,a=Math.floor((s+1)/2);if(0===s)e=i;else{r=a*t;e+=s%2==1?i*Math.cos(r):i*Math.sin(r)}});return e}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a=r===i-1?"":s[r+1]>=0?"+":"",n="",l=Math.ceil(r/2);if(0===r)e+=t+a;else{n=r%2==1?"cos":"sin";n+="("+(1===l?"":String(l))+"x)";e+=t+n+a}}));return e}}class SimpleTrendHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}_setVal(t){this._val=t}calcY(t){return this._val}}class MinXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMin;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MinYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.min(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.min(this.y);t&&(e=t(e));return"y = "+e}}class MaxXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMax,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMax;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MaxYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.max(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.max(this.y);t&&(e=t(e));return"y = "+e}}class AverageXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.x),s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}_getEquation(t){var e=MathHelper.avg(this.x);this._isXString&&(e-=1);t&&(e=t(e));return" x ="+e}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}class AverageYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.y),s=this.xMin,r=this.xMax;if(this._isXString){s-=1;r-=1}t=[s,r];e=[i,i];this._setVal(i);return[e,t]}_getEquation(t){return"y = "+t(MathHelper.avg(this.y))}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}var ErrorAmount,ErrorBarEndStyle,ErrorBarDirection,QuartileCalculation,TrendLineHelper={TrendHelperBase:TrendHelperBase,Linear:LinearHelper,Exponential:ExpHelper,Logarithmic:LogHelper,Power:PowerHelper,Polynomial:PolyHelper,Fourier:FourierHelper,MinX:MinXHelper,MinY:MinYHelper,MaxX:MaxXHelper,MaxY:MaxYHelper,AverageX:AverageXHelper,AverageY:AverageYHelper};class FunctionSeries extends TrendLineBase{constructor(t){super();this._min=0;this._max=1;this.initialize(t);null==this.itemsSource&&(this.itemsSource=[new wijmo_1.Point(0,0)])}get min(){return this._min}set min(t){if(this._min!==t){this._min=wijmo_1.asNumber(t,!1);this._invalidate()}}get max(){return this._max}set max(t){if(this._max!==t){this._max=wijmo_1.asNumber(t,!1);this._invalidate()}}getValues(t){null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){for(var t,e=this.sampleCount,i=[],s=[],r=(this.max-this.min)/(e-1),a=0;a<e;a++){t=a===e-1?this.max:this.min+r*a;i[a]=this._calculateX(t);s[a]=this._calculateY(t)}this._yValues=s;this._xValues=i}_validateValue(t){return isFinite(t)?t:Number.NaN}_calculateValue(t,e){var i;try{i=t(e)}catch(t){i=Number.NaN}return this._validateValue(i)}_calculateX(t){return 0}_calculateY(t){return 0}}exports.FunctionSeries=FunctionSeries;class YFunctionSeries extends FunctionSeries{constructor(t){super(t)}get func(){return this._func}set func(t){if(t&&this._func!==t){this._func=wijmo_1.asFunction(t,!1);this._invalidate()}}_calculateX(t){return t}_calculateY(t){return this._calculateValue(this.func,t)}approximate(t){return this._calculateValue(this.func,t)}}exports.YFunctionSeries=YFunctionSeries;class ParametricFunctionSeries extends FunctionSeries{constructor(t){super(t)}get xFunc(){return this._xFunc}set xFunc(t){if(t&&this._xFunc!==t){this._xFunc=wijmo_1.asFunction(t,!1);this._invalidate()}}get yFunc(){return this._yFunc}set yFunc(t){if(t&&this._yFunc!==t){this._yFunc=wijmo_1.asFunction(t,!1);this._invalidate()}}_calculateX(t){return this._calculateValue(this.xFunc,t)}_calculateY(t){return this._calculateValue(this.yFunc,t)}approximate(t){var e=this._calculateValue(this.xFunc,t),i=this._calculateValue(this.yFunc,t);return new wijmo_1.Point(e,i)}}exports.ParametricFunctionSeries=ParametricFunctionSeries;!function(t){t[t.FixedValue=0]="FixedValue";t[t.Percentage=1]="Percentage";t[t.StandardDeviation=2]="StandardDeviation";t[t.StandardError=3]="StandardError";t[t.Custom=4]="Custom"}(ErrorAmount=exports.ErrorAmount||(exports.ErrorAmount={}));!function(t){t[t.Cap=0]="Cap";t[t.NoCap=1]="NoCap"}(ErrorBarEndStyle=exports.ErrorBarEndStyle||(exports.ErrorBarEndStyle={}));!function(t){t[t.Both=0]="Both";t[t.Minus=1]="Minus";t[t.Plus=2]="Plus"}(ErrorBarDirection=exports.ErrorBarDirection||(exports.ErrorBarDirection={}));class ErrorBar extends wijmo_chart_1.Series{constructor(t){super();this._errorAmount=ErrorAmount.FixedValue;this._endStyle=ErrorBarEndStyle.Cap;this._direction=ErrorBarDirection.Both;this.rendering.addHandler(this._rendering,this);this.initialize(t)}get value(){return this._value}set value(t){if(t!=this._value){this._value=t;this._invalidate()}}get errorAmount(){return this._errorAmount}set errorAmount(t){if((t=wijmo_1.asEnum(t,ErrorAmount,!0))!=this._errorAmount){this._errorAmount=t;this._invalidate()}}get errorBarStyle(){return this._errorBarStyle}set errorBarStyle(t){if(t!=this._errorBarStyle){this._errorBarStyle=t;this._invalidate()}}get endStyle(){return this._endStyle}set endStyle(t){if((t=wijmo_1.asEnum(t,ErrorBarEndStyle,!0))!=this._endStyle){this._endStyle=t;this._invalidate()}}get direction(){return this._direction}set direction(t){if((t=wijmo_1.asEnum(t,ErrorBarDirection,!0))!=this._direction){this._direction=t;this._invalidate()}}getDataRect(t,e){if(!t)return null;this._chart;var i,s=this.errorAmount,r=0,a=0;this._paddings=[];this._calculateErrorValue();var n,l,h=this.getValues(0),o=t.top,u=t.bottom;if(!h)return t;for(n=0,i=h.length;n<i;n++){var _={plus:0,val:0,minus:0},c=this._value||0;l=h[n];switch(s){case ErrorAmount.Custom:(_=this._getCustomValue(n)).val=l;this._paddings.push(_);break;case ErrorAmount.FixedValue:this._paddings.push({plus:c,minus:c,val:l});break;case ErrorAmount.Percentage:this._paddings.push({plus:l*c,minus:l*c,val:l});break;case ErrorAmount.StandardDeviation:this._paddings.push({plus:this._errorValue*c,minus:this._errorValue*c,val:l});break;case ErrorAmount.StandardError:this._paddings.push({plus:this._errorValue,minus:this._errorValue,val:l})}(isNaN(o)||o>l-_.minus)&&(o=l-_.minus);(isNaN(u)||u<l+_.plus)&&(u=l+_.plus)}switch(s){case ErrorAmount.FixedValue:r=c;a=c;break;case ErrorAmount.Percentage:r=o*c;a=u*c;break;case ErrorAmount.StandardDeviation:r=this._errorValue*c;a=this._errorValue*c;break;case ErrorAmount.StandardError:r=this._errorValue;a=this._errorValue}this._showPlus&&(u+=a);this._showMinus&&(o-=r);return new wijmo_1.Rect(t.left,o,t.width,u-o)}_getCustomValue(t){var e,i=this.value,s={minus:0,val:0,plus:0};if(null!=this._minusBindingValues||null!=this._plusBindingValues){s.minus=this._minusBindingValues&&this._minusBindingValues[t]||0;s.plus=this._plusBindingValues&&this._plusBindingValues[t]||0;return s}if(null==i)return s;if(wijmo_1.isArray(i)){(e=i[t])&&e.minus&&(s.minus=e.minus);e&&e.plus&&(s.plus=e.plus)}else if(wijmo_1.isNumber(i)){s.minus=i;s.plus=i}else{i.minus&&(s.minus=i.minus);i.plus&&(s.plus=i.plus)}return s}_calculateErrorValue(){var t=0,e=0,i=0;if(this._errorAmount===ErrorAmount.StandardDeviation||this._errorAmount===ErrorAmount.StandardError){var s=this.getValues(0);if(null!=s){s.forEach(i=>{t+=i;e++});i=t/e;this._mean=i;t=0;s.forEach(e=>{t+=Math.pow(e-i,2)});this._errorValue=Math.sqrt(t/(e-1))}this._errorAmount==ErrorAmount.StandardError&&(this._errorValue=this._errorValue/Math.sqrt(e))}}_clearValues(){this.__errorValue=null;this._mean=null;this._plusBindingValues=null;this._minusBindingValues=null;super._clearValues()}getValues(t){if(0==t&&this.errorAmount===ErrorAmount.Custom){var e=this._getBinding(1),i=this._getBinding(2);if((null==this._plusBindingValues||null==this._minusBindingValues)&&e&&i)if(null!=this._cv){if(e){var s=this._bindValues(this._cv.items,e);this._plusBindingValues=s.values}if(i){var r=this._bindValues(this._cv.items,i);this._minusBindingValues=r.values}}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){if(e){s=this._bindValues(this._chart.collectionView.items,e);this._plusBindingValues=s.values}if(i){r=this._bindValues(this._chart.collectionView.items,i);this._minusBindingValues=r.values}}}return super.getValues(t)}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}get _errorValue(){return this.__errorValue}set _errorValue(t){t!=this.__errorValue&&(this.__errorValue=t)}get _showPlus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Plus}get _showMinus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Minus}_rendering(t,e){this._errorBarEles=[];e.cancel=!0;var i=this.chart,s=i._plotRect,r=this._getAxisY(),a=this._getAxisX(),n=(r.origin,e.engine),l=i.series.indexOf(this),h=this._plotter;h.plotSeries(n,a,r,this,i,e.index,e.count,t=>{var e,o,u,_=this._paddings,c=this._showPlus,m=this._showMinus,d=i._isRotated(),g=this.errorBarStyle&&this.errorBarStyle["stroke-width"]||2;u=(o=d?a:r).actualMax;e=o.convert(u);var f=n.stroke,p=n.strokeWidth;n.stroke="black";n.strokeWidth=1;let v=this.chart._plotrectId;n.startGroup(null,v);t&&t.length&&t.forEach((t,i)=>{if(null!=t&&null!=t.x&&null!=t.y){var r=_[i],a=r&&r.minus||0,f=r&&r.plus||0,p=Math.abs(o.convert(u-a)-e),v=Math.abs(o.convert(u+f)-e),y=new wijmo_1.Point(t.x,t.y),x=new wijmo_1.Point(t.x,t.y);if(d){if(this.errorAmount===ErrorAmount.StandardDeviation){t=new wijmo_1.Point(o.convert(this._mean),t.y);y.x=t.x;x.x=t.x}m&&(y.x=y.x-p);c&&(x.x=x.x+v)}else{if(this.errorAmount===ErrorAmount.StandardDeviation){t=new wijmo_1.Point(t.x,o.convert(this._mean));y.y=t.y;x.y=t.y}m&&(y.y=y.y+p);c&&(x.y=x.y-v)}let w;w=d?new wijmo_1.Rect(y.x,y.y-g,Math.abs(x.x-y.x),2*g):new wijmo_1.Rect(x.x-g,x.y,2*g,Math.abs(x.y-y.y));let M=new wijmo_chart_1._RectArea(w);M.ignoreLabel=!0;let S=new wijmo_chart_1._DataPoint(l,i,i,r.val);M.tag=S;h.hitTester.add(M,l);let b=[n.drawLine(y.x,y.y,x.x,x.y,"error-bar",this.errorBarStyle)];this._errorBarEles[i]=b;if(this.endStyle===ErrorBarEndStyle.Cap){if(c){let t;if(d){if(x.x<=s.right){t=n.drawLine(x.x,x.y-g,x.x,x.y+g,"error-bar",this.errorBarStyle);b.push(t)}}else if(x.y>=s.top){t=n.drawLine(x.x-g,x.y,x.x+g,x.y,"error-bar",this.errorBarStyle);b.push(t)}}if(m){let t;if(d){if(y.x>=s.left){t=n.drawLine(y.x,y.y-g,y.x,y.y+g,"error-bar",this.errorBarStyle);b.push(t)}}else if(y.y<=s.bottom){t=n.drawLine(y.x-g,y.y,y.x+g,y.y,"error-bar",this.errorBarStyle);b.push(t)}}}}});n.endGroup();n.stroke=f;n.strokeWidth=p})}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){let i=null==this._errorBarEles[t]?[]:this._errorBarEles[t].slice();var e=this._pointIndexes[t];e<this.hostElement.childNodes.length&&i.push(this.hostElement.childNodes[e]);return i}return null}}exports.ErrorBar=ErrorBar;wijmo_1._addCultureInfo("FlexChartAnalytics",{BreakEven:{profitArea:"Profit Area",lossArea:"Loss Area",safetyMargin:"Safety Margin",salesRevenue:"Sales Revenue",totalCost:"Total Cost",fixedCost:"Fixed Cost",variableCost:"Variable Cost",marginalProfit:"Marginal Profit",breakEven:"Break Even"}});class BreakEven extends wijmo_chart_1.SeriesBase{constructor(t){super();this.rendering.addHandler(this._rendering,this);this.style={fill:"rgba(0,255,0,0.5)",strokeWidth:0};this.altStyle={fill:"rgba(255,0,0,0.5)",strokeWidth:0};this.tooltipContent="{y}";this.initialize(t);this._chartType=wijmo_chart_1.ChartType.Line;let e=wijmo_1.culture.FlexChartAnalytics.BreakEven;this.name=e.profitArea+","+e.lossArea+","+e.safetyMargin+","+e.salesRevenue+","+e.totalCost+","+e.fixedCost+","+e.variableCost+","+e.marginalProfit+","+e.breakEven}get fixedCost(){return this._fixedCost}set fixedCost(t){if(t!=this._fixedCost){this._fixedCost=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get variableCost(){return this._variableCost}set variableCost(t){if(t!=this._variableCost){this._variableCost=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get salesPrice(){return this._salesPrice}set salesPrice(t){if(t!=this._salesPrice){this._salesPrice=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!==this._styles){this._styles=t;this._invalidate()}}getValues(t){let e=this.salesPrice-this.variableCost;if(0==e)return null;let i=1.3*(this.fixedCost/e),s=[];for(let e=0;e<10;e++)0==t?s.push(e*i/10*this.salesPrice):1==t&&s.push(e*i/10);return s}_rendering(t,e){this.chart._plotRect;let i=e.engine,s=this.chart.axisX,r=this.chart.axisY,a=this.getValues(1),n=this.getValues(0),l=this.salesPrice-this.variableCost,h=this.fixedCost/l,o=this.fixedCost+n[n.length-1]-l*a[a.length-1],u=this.chart._plotrectId;i.startGroup(null,u);if(this.style&&this.style.fill){i.fill=this.style.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(n[n.length-1]),r.convert(h*this.salesPrice),r.convert(o)]);i.fill=null}if(this.altStyle&&this.altStyle.fill){i.fill=this.altStyle.fill;i.drawPolygon([s.convert(a[0]),s.convert(h),s.convert(a[0])],[r.convert(0),r.convert(h*this.salesPrice),r.convert(this.fixedCost)]);i.fill=null}let _=this.styles?this.styles.safetyMargin:void 0,c=this.styles?this.styles.salesRevenue:void 0,m=this.styles?this.styles.totalCost:void 0,d=this.styles?this.styles.fixedCost:void 0,g=this.styles?this.styles.variableCost:void 0,f=this.styles?this.styles.marginalProfit:void 0,p=this.styles?this.styles.breakEven:void 0;if(_&&_.fill){i.fill=_.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)),r.convert(this.fixedCost),r.convert(this.fixedCost)]);i.fill=null}if(c){this._setStyle(i,c);i.drawLine(s.convert(0),r.convert(0),s.convert(a[a.length-1]),r.convert(n[n.length-1]))}if(m){this._setStyle(i,m);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(o))}if(d){this._setStyle(i,d);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(this.fixedCost))}if(g){this._setStyle(i,g);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*this.variableCost))}if(f){this._setStyle(i,f);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)))}if(p){this._setStyle(i,p);i.drawLine(s.convert(h),r.convert(0),s.convert(h),r.convert(h*this.salesPrice));i.drawLine(s.convert(0),r.convert(h*this.salesPrice),s.convert(h),r.convert(h*this.salesPrice))}i.endGroup()}_setStyle(t,e){t.stroke=e.stroke;t.strokeWidth=e.strokeWidth?e.strokeWidth:3}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}legendItemLength(){return 9}_getStyle(t){let e=null;switch(t){case 0:e=this.style;break;case 1:e=this.altStyle;break;case 2:e=this.styles?this.styles.safetyMargin:null;break;case 3:e=this.styles?this.styles.salesRevenue:null;break;case 4:e=this.styles?this.styles.totalCost:null;break;case 5:e=this.styles?this.styles.fixedCost:null;break;case 6:e=this.styles?this.styles.variableCost:null;break;case 7:e=this.styles?this.styles.marginalProfit:null;break;case 8:e=this.styles?this.styles.breakEven:null}return e}measureLegendItem(t,e){var i=this._getName(e),s=new wijmo_1.Size(0,0),r=this._getStyle(e);i&&r&&(s=this._measureLegendItem(t,this._getName(e)));return s}drawLegendItem(t,e,i){var s=this._getStyle(i),r=this._getName(i);r&&s&&this._drawLegendItem(t,e,i<3?5:3,r,s,this.symbolStyle)}}exports.BreakEven=BreakEven;!function(t){t[t.InclusiveMedian=0]="InclusiveMedian";t[t.ExclusiveMedian=1]="ExclusiveMedian"}(QuartileCalculation=exports.QuartileCalculation||(exports.QuartileCalculation={}));class BoxWhisker extends wijmo_chart_1.SeriesBase{constructor(t){super();this._groupWidth=.8;this._gapWidth=.1;this._showInnerPoints=!1;this._showOutliers=!1;this._quartileCalculation=QuartileCalculation.InclusiveMedian;this._chartType=wijmo_chart_1.ChartType.Bar;this.rendering.addHandler(this._rendering,this);this.initialize(t)}_initProperties(t){wijmo_1.copy(this,t)}_clearValues(){super._clearValues()}get quartileCalculation(){return this._quartileCalculation}set quartileCalculation(t){if((t=wijmo_1.asEnum(t,QuartileCalculation,!0))!=this._quartileCalculation){this._quartileCalculation=t;this._invalidate()}}get groupWidth(){return this._groupWidth}set groupWidth(t){if(t!=this._groupWidth&&t>=0&&t<=1){this._groupWidth=wijmo_1.asNumber(t,!0);this._invalidate()}}get gapWidth(){return this._gapWidth}set gapWidth(t){if(t!=this._gapWidth&&t>=0&&t<=1){this._gapWidth=wijmo_1.asNumber(t,!0);this._invalidate()}}get showMeanLine(){return this._showMeanLine}set showMeanLine(t){if(t!=this._showMeanLine){this._showMeanLine=wijmo_1.asBoolean(t,!0);this._invalidate()}}get meanLineStyle(){return this._meanLineStyle}set meanLineStyle(t){if(t!=this._meanLineStyle){this._meanLineStyle=t;this._invalidate()}}get showMeanMarker(){return this._showMeanMarker}set showMeanMarker(t){if(t!=this._showMeanMarker){this._showMeanMarker=wijmo_1.asBoolean(t,!0);this._invalidate()}}get meanMarkerStyle(){return this._meanMarkerStyle}set meanMarkerStyle(t){if(t!=this._meanMarkerStyle){this._meanMarkerStyle=t;this._invalidate()}}get showInnerPoints(){return this._showInnerPoints}set showInnerPoints(t){if(t!=this._showInnerPoints){this._showInnerPoints=wijmo_1.asBoolean(t,!0);this._invalidate()}}get showOutliers(){return this._showOutliers}set showOutliers(t){if(t!=this._showOutliers){this._showOutliers=wijmo_1.asBoolean(t,!0);this._invalidate()}}_rendering(t,e){e.cancel=!0;var i,s,r=this,a=r.chart,n=(r.chart,r._getAxisX()),l=r._getAxisY(),h=e.index,o=e.count,u=e.engine,_=this._plotter,c=a.series.indexOf(r),m=wijmo_1.asType(r,wijmo_chart_1.SeriesBase),d=this.quartileCalculation,g=this.showOutliers,f=this.groupWidth,p=(null==this.gapWidth?.2:this.gapWidth)/2;h=h||0;var v=f/(o=o||1),y=r.getValues(0),x=r.getValues(1);if(!y)return;x||(x=_.dataInfo.getXVals());if(x){var w=_.dataInfo.getDeltaX();if(w>0){f*=w;v*=w}}var M=m._getSymbolFill(c),S=m._getAltSymbolFill(c)||M,b=m._getSymbolStroke(c),V=m._getAltSymbolStroke(c)||b,L=y.length;null!=x&&(L=Math.min(L,x.length));var P,E,T=0,B=0;let j=_.getItemFormatter(r);if(_.rotated){(T=n.origin||T)<n.actualMin?T=n.actualMin:T>n.actualMax&&(T=n.actualMax);n.convert(T);var C=l.actualMin,X=l.actualMax;for(Y=0;Y<L;Y++){k=x?x[Y]:Y;if(null==(O=y[Y])||0===O.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,Y));if(_._getSymbolStyles){M=(N=_._getSymbolStyles(Y))&&N.fill?N.fill:M;S=N&&N.fill?N.fill:S;b=N&&N.stroke?N.fill:b;V=N&&N.stroke?N.fill:V}P=O[0]>0?M:S;E=O[0]>0?b:V;u.fill=P;u.stroke=E;if(wijmo_chart_1._DataInfo.isValid(k)&&wijmo_1.isArray(O)&&O.length>0&&wijmo_chart_1._DataInfo.isValid(O[0])){var A=k-.5*f+h*v,H=k-.5*f+(h+1)*v;H-=I=(H-A)*p;if((A+=I)<C&&H<C||A>X&&H>X)continue;A=l.convert(A);H=l.convert(H);W=new _BoxPlot(O,d,g),R={min:n.convert(W.min),max:n.convert(W.max),firstQuartile:n.convert(W.firstQuartile),median:n.convert(W.median),thirdQuartile:n.convert(W.thirdQuartile),mean:n.convert(W.mean),outlierPoints:this._convertPoints(W.outlierPoints,n),innerPoints:this._convertPoints(W.innerPoints,n)},G=new wijmo_1.Rect(Math.min(R.min,R.max),Math.min(A,H),Math.abs(R.max-R.min),Math.abs(H-A)),z=new wijmo_chart_1._RectArea(G);var q={min:Math.min(A,H),median:(A+H)/2,max:Math.max(H,A)};if(j){u.startGroup();(U=new wijmo_chart_1.HitTestInfo(a,new wijmo_1.Point((R.min+R.max)/2,q.median),wijmo_chart_1.ChartElement.SeriesSymbol))._setData(r,Y);j(u,U,()=>{this._drawBoxWhisker(u,R,q,i,s,r);i=R;s=q});u.endGroup()}else{this._drawBoxWhisker(u,R,q,i,s,r);i=R;s=q}r._setPointIndex(Y,B);B++;(D=new wijmo_chart_1._DataPoint(c,Y,O,k)).item=W;z.tag=D;_.hitTester.add(z,c);W.outlierPoints&&W.outlierPoints.length&&W.outlierPoints.forEach((t,e)=>{let i=R.outlierPoints[e],s=new wijmo_chart_1._CircleArea(new wijmo_1.Point(i,G.top+G.height/2),2);s.tag=D;_.hitTester.add(s,c)})}}}else{(T=l.origin||T)<l.actualMin?T=l.actualMin:T>l.actualMax&&(T=l.actualMax);l.convert(T),n.actualMin,n.actualMax;for(var Y=0;Y<L;Y++){var O,k=x?x[Y]:Y;if(null==(O=y[Y])||0===O.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,Y,L));if(_._getSymbolStyles){var N;M=(N=_._getSymbolStyles(Y,L))&&N.fill?N.fill:M;S=N&&N.fill?N.fill:S;b=N&&N.stroke?N.stroke:b;V=N&&N.stroke?N.stroke:V}P=O[0]>0?M:S;E=O[0]>0?b:V;u.fill=P;u.stroke=E;if(wijmo_chart_1._DataInfo.isValid(k)&&wijmo_1.isArray(O)&&O.length>0&&wijmo_chart_1._DataInfo.isValid(O[0])){var I,F=k-.5*f+h*v,Q=k-.5*f+(h+1)*v;F+=I=(Q-F)*p;Q-=I;F=n.convert(F);Q=n.convert(Q);if(!wijmo_chart_1._DataInfo.isValid(F)||!wijmo_chart_1._DataInfo.isValid(Q))continue;var D,W=new _BoxPlot(O,d,g),R={min:l.convert(W.min),max:l.convert(W.max),firstQuartile:l.convert(W.firstQuartile),median:l.convert(W.median),thirdQuartile:l.convert(W.thirdQuartile),mean:l.convert(W.mean),outlierPoints:this._convertPoints(W.outlierPoints,l),innerPoints:this._convertPoints(W.innerPoints,l)},G=new wijmo_1.Rect(Math.min(F,Q),Math.min(R.min,R.max),Math.abs(Q-F),Math.abs(R.max-R.min)),z=new wijmo_chart_1._RectArea(G),K={min:Math.min(F,Q),median:(F+Q)/2,max:Math.max(F,Q)};if(j){u.startGroup();var U;(U=new wijmo_chart_1.HitTestInfo(a,new wijmo_1.Point(K.median,(R.min+R.max)/2),wijmo_chart_1.ChartElement.SeriesSymbol))._setData(r,Y);j(u,U,()=>{this._drawBoxWhisker(u,K,R,i,s,r);i=K;s=R});u.endGroup()}else{this._drawBoxWhisker(u,K,R,i,s,r);i=K;s=R}r._setPointIndex(Y,B);B++;(D=new wijmo_chart_1._DataPoint(c,Y,k,O)).item=W;z.tag=D;_.hitTester.add(z,c);W.outlierPoints&&W.outlierPoints.length&&W.outlierPoints.forEach((t,e)=>{let i=R.outlierPoints[e],s=new wijmo_chart_1._CircleArea(new wijmo_1.Point(G.left+G.width/2,i),2);s.tag=D;_.hitTester.add(s,c)})}}}}_convertPoints(t,e){return t.map(t=>e.convert(t))}_drawBoxWhisker(t,e,i,s,r,a){var n=a.symbolStyle,l=this.showInnerPoints,h=this.showOutliers,o=this.showMeanLine,u=this.meanLineStyle,_=this.showMeanMarker,c=this.meanMarkerStyle,m=this._plotter;t.startGroup("box-plot");t.strokeWidth=1;if(m.rotated){t.drawLine(e.min,(i.min+i.median)/2,e.min,(i.max+i.median)/2,null,n);t.drawLine(e.min,i.median,e.firstQuartile,i.median,null,n);t.drawRect(Math.min(e.firstQuartile,e.thirdQuartile),Math.min(i.min,i.max),Math.abs(e.thirdQuartile-e.firstQuartile),Math.abs(i.max-i.min),null,n);t.drawLine(e.median,i.min,e.median,i.max,null,n);t.drawLine(e.max,i.median,e.thirdQuartile,i.median,null,n);t.drawLine(e.max,(i.min+i.median)/2,e.max,(i.max+i.median)/2,null,n);o&&s&&r&&t.drawLine(e.mean,i.median,s.mean,r.median,"box-whisker-mean-line",u||n);if(_){var d=Math.abs(i.median-i.min)/2;t.drawLine(e.mean-d,i.median-d,e.mean+d,i.median+d,null,c||n);t.drawLine(e.mean+d,i.median-d,e.mean-d,i.median+d,null,c||n)}h&&e.outlierPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)});l&&e.innerPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)})}else{t.drawLine((e.min+e.median)/2,i.min,(e.max+e.median)/2,i.min,null,n);t.drawLine(e.median,i.min,e.median,i.firstQuartile,null,n);t.drawRect(Math.min(e.min,e.max),Math.min(i.firstQuartile,i.thirdQuartile),Math.abs(e.max-e.min),Math.abs(i.thirdQuartile-i.firstQuartile),null,n);t.drawLine(e.min,i.median,e.max,i.median,null,n);t.drawLine(e.median,i.max,e.median,i.thirdQuartile,null,n);t.drawLine((e.min+e.median)/2,i.max,(e.max+e.median)/2,i.max,null,n);o&&s&&r&&t.drawLine(e.median,i.mean,s.median,r.mean,"box-whisker-mean-line",u||n);if(_){d=Math.abs(e.median-e.min)/2;t.drawLine(e.median-d,i.mean-d,e.median+d,i.mean+d,null,c||n);t.drawLine(e.median-d,i.mean+d,e.median+d,i.mean-d,null,c||n)}h&&i.outlierPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)});l&&i.innerPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)})}t.endGroup()}_renderLabels(t,e,i,s){var r=this,a=this._plotter,n=e.length,l=i.dataLabel,h=l.border,o=l.offset,u=l.connectingLine,_="dataY";a.rotated&&(_="dataX");void 0===o&&(o=u?16:0);h&&(o-=2);let c=[];for(var m=0;m<n;m++){var d=e[m],g=d.tag,f=wijmo_1.asType(g,wijmo_chart_1._DataPoint,!0);if(f&&-1==c.indexOf(f)){c.push(f);var p=g.item,v=g.y;g[_]=p.min;g.yfmt=p.min;g.y=p.min;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.firstQuartile;g.yfmt=p.firstQuartile;g.y=p.firstQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.median;g.yfmt=p.median;g.y=p.median;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.thirdQuartile;g.yfmt=p.thirdQuartile;g.y=p.thirdQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.max;g.yfmt=p.max;g.y=p.max;this._plotter._renderLabel(t,d,f,i,l,r,o,s);if(this.showMeanMarker){let e=Number(p.mean.toFixed(2));g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)}p.showOutliers&&p.outlierPoints&&p.outlierPoints.forEach(e=>{g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)});g.y=v}}}}exports.BoxWhisker=BoxWhisker;class _BoxPlot{constructor(t,e,i){this._outlierPoints=[];this._innerPoints=[];this._data=t;this._quartileCalculation=e;this._showOutliers=i;this._parse()}get showOutliers(){return this._showOutliers}get min(){return this._min}get max(){return this._max}get mean(){return this._mean}get firstQuartile(){return this._firstQuartile}get thirdQuartile(){return this._thirdQuartile}get median(){return this._median}get outlierPoints(){return this._outlierPoints}get innerPoints(){return this._innerPoints}_parse(){var t=this._data.length,e=this._data,i=0;this._outlierPoints=[];this._innerPoints=[];e.sort((t,e)=>t-e);e.some(t=>{if(null==t)return!1;this._min=t;return!0});this._max=null==e[t-1]?0:e[t-1];if(this._quartileCalculation===QuartileCalculation.InclusiveMedian){this._firstQuartile=this._quartileInc(e,.25);this._median=this._quartileInc(e,.5);this._thirdQuartile=this._quartileInc(e,.75)}else{this._firstQuartile=this._quartileExc(e,.25);this._median=this._quartileExc(e,.5);this._thirdQuartile=this._quartileExc(e,.75)}this._iqr=1.5*Math.abs(this._thirdQuartile-this._firstQuartile);var s=this._firstQuartile-this._iqr,r=this._thirdQuartile+this._iqr;if(this._showOutliers){var a=this._max;this._max=this._min;this._min=a;this._data.forEach(t=>{i+=t;if(t<s||t>r)this._outlierPoints.push(t);else{t<this._min&&(this._min=t);t>this._max&&(this._max=t)}})}else i=this._data.reduce((t,e)=>t+e,0);this._innerPoints=this._data.filter(t=>{if(t>this._min&&t<this._max)return!0});this._mean=i/t}_quartileInc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];a=(i=(n-1)*e+1)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}_quartileExc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];if(2===n)return t[Math.round(e)];a=(i=(n+1)*e)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}}exports._BoxPlot=_BoxPlot;wijmo_1._registerModule("wijmo.chart.analytics",selfModule); | ||
"use strict";var __importStar=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.hasOwnProperty.call(t,i)&&(e[i]=t[i]);e.default=t;return e};Object.defineProperty(exports,"__esModule",{value:!0});const wijmo_1=require("@grapecity/wijmo"),wijmo_chart_1=require("@grapecity/wijmo.chart"),selfModule=__importStar(require("@grapecity/wijmo.chart.analytics"));class Waterfall extends wijmo_chart_1.SeriesBase{constructor(t){super();this._startLabel="Start";this._relativeData=!0;this._connectorLines=!1;this._showTotal=!1;this._totalLabel="Total";this._getXValues=!1;this._showIntermediateTotal=!1;this._intermediateTotalPos=[];this._chartType=wijmo_chart_1.ChartType.Bar;this.tooltipContent="<b>{seriesName}</b><br/>{x} {value}";this.rendering.addHandler(this._rendering,this);this.initialize(t)}get relativeData(){return this._relativeData}set relativeData(t){if(t!=this._relativeData){this._relativeData=wijmo_1.asBoolean(t,!0);this._invalidate()}}get start(){return this._start}set start(t){if(t!=this._start){this._start=wijmo_1.asNumber(t,!0);this._invalidate()}}get startLabel(){return this._startLabel}set startLabel(t){if(t!=this._startLabel){this._startLabel=wijmo_1.asString(t,!1);this._invalidate()}}get showTotal(){return this._showTotal}set showTotal(t){if(t!=this._showTotal){this._showTotal=wijmo_1.asBoolean(t,!0);this._invalidate()}}get totalLabel(){return this._totalLabel}set totalLabel(t){if(t!=this._totalLabel){this._totalLabel=wijmo_1.asString(t,!1);this._invalidate()}}get showIntermediateTotal(){return this._showIntermediateTotal}set showIntermediateTotal(t){if(t!=this._showIntermediateTotal){this._showIntermediateTotal=wijmo_1.asBoolean(t,!1);this._invalidate()}}get intermediateTotalPositions(){return this._intermediateTotalPositions}set intermediateTotalPositions(t){if(t!=this._intermediateTotalPositions){this._intermediateTotalPositions=wijmo_1.asArray(t,!0);this._invalidate()}}get intermediateTotalLabels(){return this._intermediateTotalLabels}set intermediateTotalLabels(t){if(t!=this._intermediateTotalLabels){wijmo_1.assert(null==t||wijmo_1.isArray(t)||wijmo_1.isString(t),"Array or string expected.");this._intermediateTotalLabels=t;this._invalidate()}}get connectorLines(){return this._connectorLines}set connectorLines(t){if(t!=this._connectorLines){this._connectorLines=wijmo_1.asBoolean(t,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!=this._styles){this._styles=t;this._invalidate()}}getValues(t){var e,i,s,r,a=[],n=0;e=super.getValues(t);if(0===t){if(!this._yValues){a=[];var l=null!=this.start?this.start:0,h=0,o=e&&e.length||0;if(this.relativeData){for(;h<o;h++){l+=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}else{for(;h<o;h++){l=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}if((i=this._yValues)&&i.length>0){if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){this._intermediateTotalPos=i.slice();this.intermediateTotalPositions.reduceRight((t,e)=>{var s=0===e?i[0]:i[e-1];if(i.length>e){i.splice(e,0,s);this._intermediateTotalPos.splice(e,0,!0)}else if(i.length===e){i.push(s);this._intermediateTotalPos.push(!0)}return 0},0)}if(null!=this.start){i.splice(0,0,this.start);this._intermediateTotalPos.splice(0,0,!1)}this.showTotal&&i&&i.push(i[i.length-1])}}return this._yValues}if(!this._xValues&&this._getXValues){this._xValues=e&&e.slice();this._getXValues=!1;if(this._xValues&&this._xValues.length>1){o=this._xValues.length;r=this._xValues[o-1];n=Math.abs(this._xValues[o-1]-this._xValues[o-2])}if(this.chart&&this.chart._xlabels&&this.chart._xlabels.length){s=this.chart._xlabels;if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){var u=this.intermediateTotalLabels;u&&this.intermediateTotalPositions.reduceRight((t,e,i)=>{var a="";a=wijmo_1.isString(u)?u:u[i]||"";s.length>e?s.splice(e,0,a):s.length===e&&s.push(a);if(n){r+=n;this._xValues.push(r)}return 0},0)}if(null!=this.start){s.splice(0,0,this.startLabel);if(n){r+=n;this._xValues.push(r)}}if(this.showTotal){s.push(this.totalLabel);if(n){r+=n;this._xValues.push(r)}}}}return this._xValues}legendItemLength(){return this.showTotal?3:2}measureLegendItem(t,e){var i=this._getName(e);return i?this._measureLegendItem(t,i):new wijmo_1.Size(0,0)}drawLegendItem(t,e,i){var s=this._getLegendStyles(i);this._getName(i)&&this._drawLegendItem(t,e,wijmo_chart_1.ChartType.Bar,this._getName(i),s,this.symbolStyle)}_clearValues(){super._clearValues();this._xValues=null;this._yValues=null;this._wfstyle=null;this._getXValues=!0;this._intermediateTotalPos=[];this.chart&&this.chart._performBind()}_invalidate(){super._invalidate();this._clearValues()}_getXOffset(){return null!=this.start?1:0}_getYOffset(t){return this.getValues(0)[t+this._getXOffset()]}_getValue(t){let e=t;if(null!=this.start){if(0==t)return this.start;t--}return this.showIntermediateTotal&&this.intermediateTotalPositions&&this._intermediateTotalPos[e],this.getValues(0)[e]}_getItem(t){let e=null;null!=this.start&&(0==t?(e={})[this.binding]=this.start:t--);if(this.showIntermediateTotal&&this.intermediateTotalPositions){let i=this._intermediateTotalPos;if(!0===i[t]){(e={})[this.binding]=this.getValues(0)[t];return e}{let e=t;for(let s=0;s<t;s++)!0===i[s]&&e--;t=e}}e||!(e=super._getItem(t))&&this.showTotal&&this._yValues&&this._yValues.length>0&&((e={})[this.binding]=this._yValues[this._yValues.length-1]);return e}_rendering(t,e){e.cancel=!0;this._wfstyle=null;var i,s,r,a,n,l,h=this.chart,o=this._getAxisY(),u=this._getAxisX(),_=o.origin||0,c=e.engine;this._barPlotter=h._getPlotter(this);r=this._barPlotter.rotated;this._barPlotter._getSymbolOrigin||(this._barPlotter._getSymbolOrigin=(t,e,i)=>0===e?t:!0===this._intermediateTotalPos[e]?t:e===i-1&&this.showTotal?t:this._yValues[e-1]);this._barPlotter._getSymbolStyles||(this._barPlotter._getSymbolStyles=(t,e)=>{var i=this._getStyles();return 0===t&&null!=this.start?i.start:!0===this._intermediateTotalPos[t]?i.intermediateTotal:t===e-1&&this.showTotal?i.total:0==t?this._yValues[t]<0?i.falling:i.rising:this._yValues[t]<this._yValues[t-1]?i.falling:i.rising});this._barPlotter.plotSeries(c,u,o,t,h,0,1);if(this.connectorLines&&(a=this._barPlotter.hitTester._map[0])&&a.length){c.startGroup(Waterfall.CSS_CONNECTOR_LINE_GROUP);l=this._yValues[0]<_;n=a[0].rect;for(i=1,s=a.length;i<s;i++)if(!0!==this._intermediateTotalPos[i]||i===s-1){this._drawConnectorLine(c,r,n,a[i].rect,l);n=a[i].rect;l=this._yValues[i]<this._yValues[i-1]}c.endGroup()}}_getStyles(){if(this._wfstyle)return this._wfstyle;var t=this._chart.series.indexOf(this),e=this._getSymbolFill(t),i=this._getSymbolStroke(t),s=this.styles||{};this._wfstyle={start:this._getStyleByKey(s,"start",e,i),intermediateTotal:this._getStyleByKey(s,"intermediateTotal",e,i),total:this._getStyleByKey(s,"total",e,i),falling:this._getStyleByKey(s,"falling","red","red"),rising:this._getStyleByKey(s,"rising","green","green")};return this._wfstyle}_getStyleByKey(t,e,i,s){return{fill:t[e]&&t[e].fill?t[e].fill:i,stroke:t[e]&&t[e].stroke?t[e].stroke:s}}_drawConnectorLine(t,e,i,s,r){var a=new wijmo_1.Point,n=new wijmo_1.Point,l=this.chart.axisY.reversed,h=this.chart.axisX.reversed;l^=r;if(e){if(l){a.x=i.left;n.x=i.left}else{a.x=i.left+i.width;n.x=i.left+i.width}if(h){a.y=i.top;n.y=s.top+s.height}else{a.y=i.top+i.height;n.y=s.top}}else{if(l){a.y=i.top+i.height;n.y=i.top+i.height}else{a.y=i.top;n.y=i.top}if(h){a.x=i.left+i.width;n.x=s.left}else{a.x=i.left;n.x=s.left+s.width}}t.drawLine(a.x,a.y,n.x,n.y,Waterfall.CSS_CONNECTOR_LINE,this.styles&&this.styles.connectorLines||{stroke:"black"})}_getLegendStyles(t){if(t<0||null===this.styles)return null;var e=this._getStyles();return 0===t?e.rising:1===t?e.falling:e.total}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}}Waterfall.CSS_CONNECTOR_LINE_GROUP="water-fall-connector-lines";Waterfall.CSS_CONNECTOR_LINE="water-fall-connector-line";Waterfall.CSS_ENDLABEL="water-fall-end-label";exports.Waterfall=Waterfall;class TrendLineBase extends wijmo_chart_1.SeriesBase{constructor(t){super();this._chartType=wijmo_chart_1.ChartType.Line;this._sampleCount=100;this.initialize(t)}get sampleCount(){return this._sampleCount}set sampleCount(t){if((t=wijmo_1.asNumber(t,!1,!0))!=this._sampleCount){this._sampleCount=t;this._invalidate()}}approximate(t){return 0}getValues(t){var e=this.binding,i=this.bindingX;if(e!==this._bind){this._bind=e;this.binding=e}if(i!==this._bindX){this._bindX=i;this.bindingX=i}null==this._originYValues&&(this._originYValues=super.getValues(0));null==this._originXValues&&(this._originXValues=super.getValues(1));if(null==this._originXValues||null==this._originYValues)return null;super.getValues(t);null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){}_invalidate(){super._invalidate();this._clearCalculatedValues()}_clearValues(){super._clearValues();this._originXValues=null;this._originYValues=null;this._clearCalculatedValues()}_clearCalculatedValues(){this._xValues=null;this._yValues=null}}exports.TrendLineBase=TrendLineBase;var MovingAverageType,TrendLineFitType;!function(t){t[t.Simple=0]="Simple";t[t.Weighted=1]="Weighted";t[t.Exponential=2]="Exponential";t[t.Triangular=3]="Triangular"}(MovingAverageType=exports.MovingAverageType||(exports.MovingAverageType={}));class MovingAverage extends TrendLineBase{constructor(t){super();this._chartType=wijmo_chart_1.ChartType.Line;this._type=MovingAverageType.Simple;this._period=2;this.initialize(t)}get type(){return this._type}set type(t){if((t=wijmo_1.asEnum(t,MovingAverageType,!1))!=this._type){this._type=t;this._invalidate()}}get period(){return this._period}set period(t){if((t=wijmo_1.asNumber(t,!1,!0))!=this._period){this._period=wijmo_1.asNumber(t,!1,!0);this._invalidate()}}_checkPeriod(){var t=this.period,e=this._originXValues;t<=1&&wijmo_1.assert(!1,"period must be greater than 1.");e&&e.length&&t>=e.length&&wijmo_1.assert(!1,"period must be less than itemSource's length.")}_calculateValues(){this._type;var t="_calculate"+MovingAverageType[this._type],e=[],i=[];this._checkPeriod();this[t]&&this[t].call(this,e,i);this._yValues=i;this._xValues=e}_calculateSimple(t,e,i=!1){for(var s=this._originXValues,r=this._originYValues,a=s.length,n=this._period,l=0,h=0;h<a;h++){l+=r[h]||0;h>=n&&(l-=r[h-n]||0);if(h>=n-1){t.push(s[h]);e.push(l/n)}else if(i){t.push(s[h]);e.push(l/(h+1))}}}_calculateWeighted(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=a*(a+1)/2,l=0,h=0,o=0;o<r;o++){o>0&&(l+=s[o-1]||0);o>a&&(l-=s[o-a-1]||0);if(o<a-1)h+=(s[o]||0)*(o+1);else{h+=(s[o]||0)*a;o>a-1&&(h-=l);t.push(i[o]);e.push(h/n)}}}_calculateExponential(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=0,l=0;l<r;l++)if(l<=a-2){n+=s[l]||0;l===a-2&&(n/=a-1)}else{n+=2/(a+1)*((s[l]||0)-n);t.push(i[l]);e.push(n)}}_calculateTriangular(t,e){var i=this._period,s=[],r=[],a=0;this._calculateSimple(s,r,!0);for(var n=0,l=s.length;n<l;n++){a+=r[n]||0;n>=i&&(a-=r[n-i]||0);if(n>=i-1){t.push(s[n]);e.push(a/i)}}}}exports.MovingAverage=MovingAverage;class MathHelper{static round(t,e){if(!t)return 0;var i=Math.pow(10,e||2);return Math.round(t*i)/i}static avg(t){return MathHelper.sum(t)/t.length}static sum(t){return(t=wijmo_1.asArray(t,!1)).reduce((t,e)=>t+e,0)}static sumOfPow(t,e){t=wijmo_1.asArray(t,!1);e=wijmo_1.asNumber(e,!1);return t.reduce((t,i)=>t+Math.pow(i,e),0)}static sumProduct(...t){t.length;var e,i,s=0,r=[];(t=wijmo_1.asArray(t,!1)).forEach((t,e)=>{t=wijmo_1.asArray(t,!1);0===e?s=t.length:wijmo_1.assert(t.length===s,"The length of the arrays must be equal")});for(e=0;e<s;e++){i=1;t.some((t,s)=>{var r=t[e];if(!r||!wijmo_1.isNumber(r)){i=0;return!0}i*=r});r.push(i)}return MathHelper.sum(r)}static variance(t){t=wijmo_1.asArray(t,!1);var e,i=MathHelper.avg(t);e=t.map(t=>t-i);return MathHelper.sumOfSquares(e)/(t.length-1)}static covariance(t,e){t=wijmo_1.asArray(t,!1);e=wijmo_1.asArray(e,!1);wijmo_1.assert(t.length===e.length,"Length of arrays must be equal");var i,s=MathHelper.avg(t),r=MathHelper.avg(e),a=t.length,n=0;for(i=0;i<a;i++)n+=(t[i]-s)*(e[i]-r)/a;return n}}MathHelper.min=t=>Math.min.apply(Math,wijmo_1.asArray(t,!1));MathHelper.max=t=>Math.max.apply(Math,wijmo_1.asArray(t,!1));MathHelper.square=t=>Math.pow(wijmo_1.asNumber(t,!1),2);MathHelper.sumOfSquares=t=>MathHelper.sumOfPow(t,2);MathHelper.stdDev=t=>Math.sqrt(MathHelper.variance(t));!function(t){t[t.Linear=0]="Linear";t[t.Exponential=1]="Exponential";t[t.Logarithmic=2]="Logarithmic";t[t.Power=3]="Power";t[t.Fourier=4]="Fourier";t[t.Polynomial=5]="Polynomial";t[t.MinX=6]="MinX";t[t.MinY=7]="MinY";t[t.MaxX=8]="MaxX";t[t.MaxY=9]="MaxY";t[t.AverageX=10]="AverageX";t[t.AverageY=11]="AverageY"}(TrendLineFitType=exports.TrendLineFitType||(exports.TrendLineFitType={}));class TrendLine extends TrendLineBase{constructor(t){super();this._minX=null;this._maxX=null;this._fitType=TrendLineFitType.Linear;this._order=2;this.initialize(t)}get fitType(){return this._fitType}set fitType(t){if((t=wijmo_1.asEnum(t,TrendLineFitType,!1))!=this._fitType){this._fitType=t;this._invalidate()}}get order(){return this._order}set order(t){if(t!=this._order){this._order=wijmo_1.asNumber(t,!1,!0);this._invalidate()}}get minX(){return this._minX}set minX(t){if(t!=this._minX){this._minX=wijmo_1.asNumber(t,!0);this._invalidate()}}get maxX(){return this._maxX}set maxX(t){if(t!=this._maxX){this._maxX=wijmo_1.asNumber(t,!0);this._invalidate()}}get coefficients(){return this._helper?this._helper.coefficients:null}approximate(t){return this._helper?this._helper.approximate(t):NaN}getEquation(t){return(this._helper?this._helper.getEquation(t):"").replace(/\S(\+|\-)\d/g,(function(t){return t[0]+" "+t[1]+" "+t[2]}))}_calculateValues(){var t=TrendLineFitType[this._fitType];if(TrendLineHelper[t]){var e=!1,i=this._originXValues;if(0==this._chart._xvals.length&&this._chart._xlabels.length>0){i=this._originXValues.map(t=>t+1);e=!0}var s=new TrendLineHelper[t](this._originYValues,i,this.sampleCount,this.order);null!==this.minX&&(s.xMin=this.minX);null!==this.maxX&&(s.xMax=this.maxX);s._isXString=e;var r=s.calculateValues();this._yValues=r[0];this._xValues=r[1];this._helper=s}}}exports.TrendLine=TrendLine;class Calculator{constructor(t,e){this._x=t;this._y=e}get x(){return this._x}get y(){return this._y}get minX(){null==this._minX&&(this._minX=MathHelper.min(this._x));return this._minX}get minY(){null==this._minY&&(this._minY=MathHelper.min(this._y));return this._minY}get maxX(){null==this._maxX&&(this._maxX=MathHelper.max(this._x));return this._maxX}get maxY(){null==this._maxY&&(this._maxY=MathHelper.max(this._y));return this._maxY}get averageX(){null==this._averageX&&(this._averageX=MathHelper.avg(this._x));return this._averageX}get averageY(){null==this._averageY&&(this._averageY=MathHelper.avg(this._y));return this._averageY}get sumX(){null==this._sumX&&(this._sumX=MathHelper.sum(this._x));return this._sumX}get sumY(){null==this._sumY&&(this._sumY=MathHelper.sum(this._y));return this._sumY}get LogX(){null==this._logX&&(this._logX=this._x.map(t=>Math.log(t)));return this._logX}get LogY(){null==this._logY&&(this._logY=this._y.map(t=>Math.log(t)));return this._logY}get sumLogX(){null==this._sumLogX&&(this._sumLogX=MathHelper.sum(this.LogX));return this._sumLogX}get sumLogY(){null==this._sumLogY&&(this._sumLogY=MathHelper.sum(this.LogY));return this._sumLogY}get sumOfSquareX(){null==this._sumOfSquareX&&(this._sumOfSquareX=MathHelper.sumOfSquares(this._x));return this._sumOfSquareX}get sumOfSquareY(){null==this._sumOfSquareY&&(this._sumOfSquareY=MathHelper.sumOfSquares(this._y));return this._sumOfSquareY}get sumOfSquareLogX(){null==this._sumOfSquareLogX&&(this._sumOfSquareLogX=MathHelper.sumOfSquares(this.LogX));return this._sumOfSquareLogX}get sumOfSquareLogY(){null==this._sumOfSquareLogY&&(this._sumOfSquareLogY=MathHelper.sumOfSquares(this.LogY));return this._sumOfSquareLogY}sumProduct(t,e){null==this._sumProduct&&(this._sumProduct=MathHelper.sumProduct(t,e));return this._sumProduct}}class TrendHelperBase{constructor(t,e,i){this._coefficients=[];this.y=wijmo_1.asArray(t);this.x=wijmo_1.asArray(e);wijmo_1.assert(t.length===e.length,"Length of X and Y arrays are not equal");this.count=i||t.length;this._calculator=new Calculator(e,t);this.xMin=this._calculator.minX;this.xMax=this._calculator.maxX}get calculator(){return this._calculator}get y(){return this._y}set y(t){t!==this.y&&(this._y=wijmo_1.asArray(t,!1))}get x(){return this._x}set x(t){t!==this.x&&(this._x=wijmo_1.asArray(t,!1))}get count(){return this._count}set count(t){t!==this.count&&(this._count=wijmo_1.asInt(t,!1,!0))}get xMin(){return this._xMin}set xMin(t){t!==this.xMin&&(this._xMin=wijmo_1.asNumber(t,!1))}get xMax(){return this._xMax}set xMax(t){t!==this.xMax&&(this._xMax=wijmo_1.asNumber(t,!1))}get coefficients(){return this._coefficients}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this._coefficients.push(e,t)}calculateValues(){for(var t=(this.xMax-this.xMin)/(this.count-1),e=[[],[]],i=0;i<this.count;i++){var s=this.xMin+t*i,r=this.calcY(s);e[0].push(r);this._isXString?e[1].push(s-1):e[1].push(s)}return e}calcA(t){var e=this.y.length,i=this.calculator.sumX;return(this.calculator.sumY-(t=t||this.calcB())*i)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.x,e.y),s=e.sumX;return(t*i-s*e.sumY)/(t*e.sumOfSquareX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]+e[1]*t}approximate(t){return this.calcY(t)}getEquation(t){t=t||this._defaultEquationFmt;return this._getEquation(t)}_getEquation(t){var e=this.coefficients,i=[];e.forEach(e=>{i.push(t(e))});return this._concatEquation(i)}_concatEquation(t){return""}_defaultEquationFmt(t){var e,i=Math.abs(t),s=String(i),r=0;if(i>=1e5){e=String(Math.round(i)).length-1;return Math.round(t/Number("1e"+e))+"e"+e}if(i<1e-4){e=s.indexOf("e")>-1?Math.abs(+s.substring(s.indexOf("e")+1)):s.match(/\.0+/)[0].length;return Math.round(t*Number("1e"+e))+"e-"+e}r=t>0?6:7;i>=1e4&&r--;return String(+String(t).substring(0,r))}}class LinearHelper extends TrendHelperBase{get yOffset(){return this._yOffset}set yOffset(t){t!==this.yOffset&&(this._yOffset=wijmo_1.asNumber(t,!0))}constructor(t,e,i,s){super(t,e,i);this._calculateCoefficients();this.yOffset=s}calcA(t){return null!=this.yOffset?this.yOffset:super.calcA(t)}calcB(){return null!=this.yOffset?this._calculateBSimple():super.calcB()}_calculateBSimple(){var t=this.calculator,e=t.sumProduct(t.x,t.y),i=t.sumX,s=t.sumOfSquareX;return(e-this.yOffset*i)/s}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return e[0]*t+e[1]}_concatEquation(t){return"y = "+t[0]+"x"+(this.coefficients[1]>=0?"+":"")+t[1]}}class LogHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.y.length,i=this.calculator,s=i.sumY,r=i.sumLogX;return(s-(t=t||this.calcB())*r)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.y,e.LogX),s=e.sumY,r=e.sumLogX;return(t*i-s*r)/(t*e.sumOfSquareLogX-MathHelper.square(r))}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return Math.log(t)*e[0]+e[1]}_concatEquation(t){return"y = "+t[0]+"ln(x)"+(this.coefficients[1]>=0?"+":"")+t[1]}}class ExpHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX,a=e.sumProduct(e.x,e.LogY);return Math.exp((i*s-r*a)/(t*s-MathHelper.square(r)))}calcB(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX;return(t*e.sumProduct(e.x,e.LogY)-r*i)/(t*s-MathHelper.square(r))}calcY(t){var e=this.coefficients;return e[0]*Math.exp(e[1]*t)}_concatEquation(t){return"y = "+t[0]+"e<sup>"+t[1]+"x</sup>"}}class PowerHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.calculator,i=this.y.length,s=e.sumLogX,r=e.sumLogY;t=t||this.calcB();return Math.exp((r-t*s)/i)}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.LogX,e.LogY),s=e.sumLogX;return(t*i-s*e.sumLogY)/(t*e.sumOfSquareLogX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]*Math.pow(t,e[1])}_concatEquation(t){return"y = "+t[0]+"x<sup>"+t[1]+"</sup>"}}class LeastSquaresHelper extends TrendHelperBase{constructor(t,e,i,s){super(t,e,i);this._order=null==s?2:s;this._basis=[];this._calculateCoefficients()}get basis(){return this._basis}get order(){return this._order}set order(t){this._order=wijmo_1.asNumber(t,!0)}_calculateCoefficients(){this._coefficients.length=this.order;this._createBasis();this._normalizeAndSolveGauss()}_createBasis(){var t=this.x.length,e=this.order;if(t<2)throw"Incompatible data: Less than 2 data points.";if(e<1)throw"Incompatible data: Less than 1 coefficient in the fit";if(e>t)throw"Incompatible data: Number of data points less than number of terms"}_normalizeAndSolveGauss(){var t=[];this._computeNormalEquations(t);this._genDefValForArray(t,0);if(!this._solveGauss(t))throw"Incompatible data: No solution."}_genDefValForArray(t,e){var i=t.length+1;t.forEach(t=>{for(var s=0;s<i;s++)null==t[s]&&(t[s]=e)})}_computeNormalEquations(t){var e,i,s,r,a=this.y,n=this.basis,l=this.order,h=a.length;for(e=0;e<l;e++){s=0;null==t[e]&&(t[e]=[]);a.forEach((t,i)=>{s+=t*n[i][e]});t[e][l]=s;for(i=e;i<l;i++){s=0;for(r=0;r<h;r++)s+=n[r][i]*n[r][e];null==t[i]&&(t[i]=[]);t[i][e]=s;t[e][i]=s}}}_solveGauss(t){var e,i,s=t.length,r=this._coefficients,a=!0;if(r.length<s||t[0].length<s+1)throw"Dimension of matrix is not correct.";t.some((e,r)=>{var n,l,h=r,o=Math.abs(e[r]);for(i=r+1;i<s;i++)if(o<(n=Math.abs(t[i][r]))){o=n;h=i}if(!(o>0)){a=!1;return!0}for(i=r;i<=s;i++){l=t[r][i];t[r][i]=t[h][i];t[h][i]=l}for(h=r+1;h<s;h++){l=t[h][r]/e[r];t[h][r]=0;for(i=r+1;i<=s;i++)t[h][i]-=l*e[i]}});if(a)for(e=s-1;e>=0;e--){r[e]=t[e][s];for(i=e+1;i<s;i++)r[e]-=t[e][i]*r[i];r[e]=r[e]/t[e][e]}return a}}class PolyHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s)}get coefficients(){return this._coefficients.slice(0).reverse()}calcY(t){var e=this._coefficients,i=0,s=1;e.forEach((e,r)=>{r>0&&(s*=t);i+=e*s});return i}_calculateCoefficients(){this._coefficients;this.order++;0;super._calculateCoefficients();0;this.order--}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{e[s]=[1];for(var r=1;r<=i;r++)e[s][r]=t*e[s][r-1]})}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a,n=i-1-r;if(0===n)e+=t;else if(1===n){a=s[r+1]>=0?"+":"";e+=t+"x"+a}else{a=s[r+1]>=0?"+":"";e+=t+"x<sup>"+n+"</sup>"+a}}));return e}}class FourierHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s=null==s?e.length:s)}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{var r,a;e[s]=[1];for(r=1;r<i;r++){a=Math.floor((r+1)/2);r%2==1?e[s].push(Math.cos(a*t)):e[s].push(Math.sin(a*t))}})}calcY(t){var e;this._coefficients.forEach((i,s)=>{var r,a=Math.floor((s+1)/2);if(0===s)e=i;else{r=a*t;e+=s%2==1?i*Math.cos(r):i*Math.sin(r)}});return e}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a=r===i-1?"":s[r+1]>=0?"+":"",n="",l=Math.ceil(r/2);if(0===r)e+=t+a;else{n=r%2==1?"cos":"sin";n+="("+(1===l?"":String(l))+"x)";e+=t+n+a}}));return e}}class SimpleTrendHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}_setVal(t){this._val=t}calcY(t){return this._val}}class MinXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMin;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MinYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.min(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.min(this.y);t&&(e=t(e));return"y = "+e}}class MaxXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMax,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMax;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MaxYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.max(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.max(this.y);t&&(e=t(e));return"y = "+e}}class AverageXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.x),s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}_getEquation(t){var e=MathHelper.avg(this.x);this._isXString&&(e-=1);t&&(e=t(e));return" x ="+e}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}class AverageYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.y),s=this.xMin,r=this.xMax;if(this._isXString){s-=1;r-=1}t=[s,r];e=[i,i];this._setVal(i);return[e,t]}_getEquation(t){return"y = "+t(MathHelper.avg(this.y))}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}var ErrorAmount,ErrorBarEndStyle,ErrorBarDirection,QuartileCalculation,TrendLineHelper={TrendHelperBase:TrendHelperBase,Linear:LinearHelper,Exponential:ExpHelper,Logarithmic:LogHelper,Power:PowerHelper,Polynomial:PolyHelper,Fourier:FourierHelper,MinX:MinXHelper,MinY:MinYHelper,MaxX:MaxXHelper,MaxY:MaxYHelper,AverageX:AverageXHelper,AverageY:AverageYHelper};class FunctionSeries extends TrendLineBase{constructor(t){super();this._min=0;this._max=1;this.initialize(t);null==this.itemsSource&&(this.itemsSource=[new wijmo_1.Point(0,0)])}get min(){return this._min}set min(t){if(this._min!==t){this._min=wijmo_1.asNumber(t,!1);this._invalidate()}}get max(){return this._max}set max(t){if(this._max!==t){this._max=wijmo_1.asNumber(t,!1);this._invalidate()}}getValues(t){null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){for(var t,e=this.sampleCount,i=[],s=[],r=(this.max-this.min)/(e-1),a=0;a<e;a++){t=a===e-1?this.max:this.min+r*a;i[a]=this._calculateX(t);s[a]=this._calculateY(t)}this._yValues=s;this._xValues=i}_validateValue(t){return isFinite(t)?t:Number.NaN}_calculateValue(t,e){var i;try{i=t(e)}catch(t){i=Number.NaN}return this._validateValue(i)}_calculateX(t){return 0}_calculateY(t){return 0}}exports.FunctionSeries=FunctionSeries;class YFunctionSeries extends FunctionSeries{constructor(t){super(t)}get func(){return this._func}set func(t){if(t&&this._func!==t){this._func=wijmo_1.asFunction(t,!1);this._invalidate()}}_calculateX(t){return t}_calculateY(t){return this._calculateValue(this.func,t)}approximate(t){return this._calculateValue(this.func,t)}}exports.YFunctionSeries=YFunctionSeries;class ParametricFunctionSeries extends FunctionSeries{constructor(t){super(t)}get xFunc(){return this._xFunc}set xFunc(t){if(t&&this._xFunc!==t){this._xFunc=wijmo_1.asFunction(t,!1);this._invalidate()}}get yFunc(){return this._yFunc}set yFunc(t){if(t&&this._yFunc!==t){this._yFunc=wijmo_1.asFunction(t,!1);this._invalidate()}}_calculateX(t){return this._calculateValue(this.xFunc,t)}_calculateY(t){return this._calculateValue(this.yFunc,t)}approximate(t){var e=this._calculateValue(this.xFunc,t),i=this._calculateValue(this.yFunc,t);return new wijmo_1.Point(e,i)}}exports.ParametricFunctionSeries=ParametricFunctionSeries;!function(t){t[t.FixedValue=0]="FixedValue";t[t.Percentage=1]="Percentage";t[t.StandardDeviation=2]="StandardDeviation";t[t.StandardError=3]="StandardError";t[t.Custom=4]="Custom"}(ErrorAmount=exports.ErrorAmount||(exports.ErrorAmount={}));!function(t){t[t.Cap=0]="Cap";t[t.NoCap=1]="NoCap"}(ErrorBarEndStyle=exports.ErrorBarEndStyle||(exports.ErrorBarEndStyle={}));!function(t){t[t.Both=0]="Both";t[t.Minus=1]="Minus";t[t.Plus=2]="Plus"}(ErrorBarDirection=exports.ErrorBarDirection||(exports.ErrorBarDirection={}));class ErrorBar extends wijmo_chart_1.Series{constructor(t){super();this._errorAmount=ErrorAmount.FixedValue;this._endStyle=ErrorBarEndStyle.Cap;this._direction=ErrorBarDirection.Both;this.rendering.addHandler(this._rendering,this);this.initialize(t)}get value(){return this._value}set value(t){if(t!=this._value){this._value=t;this._invalidate()}}get errorAmount(){return this._errorAmount}set errorAmount(t){if((t=wijmo_1.asEnum(t,ErrorAmount,!0))!=this._errorAmount){this._errorAmount=t;this._invalidate()}}get errorBarStyle(){return this._errorBarStyle}set errorBarStyle(t){if(t!=this._errorBarStyle){this._errorBarStyle=t;this._invalidate()}}get endStyle(){return this._endStyle}set endStyle(t){if((t=wijmo_1.asEnum(t,ErrorBarEndStyle,!0))!=this._endStyle){this._endStyle=t;this._invalidate()}}get direction(){return this._direction}set direction(t){if((t=wijmo_1.asEnum(t,ErrorBarDirection,!0))!=this._direction){this._direction=t;this._invalidate()}}getDataRect(t,e){if(!t)return null;this._chart;var i,s=this.errorAmount,r=0,a=0;this._paddings=[];this._calculateErrorValue();var n,l,h=this.getValues(0),o=t.top,u=t.bottom;if(!h)return t;for(n=0,i=h.length;n<i;n++){var _={plus:0,val:0,minus:0},c=this._value||0;l=h[n];switch(s){case ErrorAmount.Custom:(_=this._getCustomValue(n)).val=l;this._paddings.push(_);break;case ErrorAmount.FixedValue:this._paddings.push({plus:c,minus:c,val:l});break;case ErrorAmount.Percentage:this._paddings.push({plus:l*c,minus:l*c,val:l});break;case ErrorAmount.StandardDeviation:this._paddings.push({plus:this._errorValue*c,minus:this._errorValue*c,val:l});break;case ErrorAmount.StandardError:this._paddings.push({plus:this._errorValue,minus:this._errorValue,val:l})}(isNaN(o)||o>l-_.minus)&&(o=l-_.minus);(isNaN(u)||u<l+_.plus)&&(u=l+_.plus)}switch(s){case ErrorAmount.FixedValue:r=c;a=c;break;case ErrorAmount.Percentage:r=o*c;a=u*c;break;case ErrorAmount.StandardDeviation:r=this._errorValue*c;a=this._errorValue*c;break;case ErrorAmount.StandardError:r=this._errorValue;a=this._errorValue}this._showPlus&&(u+=a);this._showMinus&&(o-=r);return new wijmo_1.Rect(t.left,o,t.width,u-o)}_getCustomValue(t){var e,i=this.value,s={minus:0,val:0,plus:0};if(null!=this._minusBindingValues||null!=this._plusBindingValues){s.minus=this._minusBindingValues&&this._minusBindingValues[t]||0;s.plus=this._plusBindingValues&&this._plusBindingValues[t]||0;return s}if(null==i)return s;if(wijmo_1.isArray(i)){(e=i[t])&&e.minus&&(s.minus=e.minus);e&&e.plus&&(s.plus=e.plus)}else if(wijmo_1.isNumber(i)){s.minus=i;s.plus=i}else{i.minus&&(s.minus=i.minus);i.plus&&(s.plus=i.plus)}return s}_calculateErrorValue(){var t=0,e=0,i=0;if(this._errorAmount===ErrorAmount.StandardDeviation||this._errorAmount===ErrorAmount.StandardError){var s=this.getValues(0);if(null!=s){s.forEach(i=>{t+=i;e++});i=t/e;this._mean=i;t=0;s.forEach(e=>{t+=Math.pow(e-i,2)});this._errorValue=Math.sqrt(t/(e-1))}this._errorAmount==ErrorAmount.StandardError&&(this._errorValue=this._errorValue/Math.sqrt(e))}}_clearValues(){this.__errorValue=null;this._mean=null;this._plusBindingValues=null;this._minusBindingValues=null;super._clearValues()}getValues(t){if(0==t&&this.errorAmount===ErrorAmount.Custom){var e=this._getBinding(1),i=this._getBinding(2);if((null==this._plusBindingValues||null==this._minusBindingValues)&&e&&i)if(null!=this._cv){if(e){var s=this._bindValues(this._cv.items,e);this._plusBindingValues=s.values}if(i){var r=this._bindValues(this._cv.items,i);this._minusBindingValues=r.values}}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){if(e){s=this._bindValues(this._chart.collectionView.items,e);this._plusBindingValues=s.values}if(i){r=this._bindValues(this._chart.collectionView.items,i);this._minusBindingValues=r.values}}}return super.getValues(t)}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}get _errorValue(){return this.__errorValue}set _errorValue(t){t!=this.__errorValue&&(this.__errorValue=t)}get _showPlus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Plus}get _showMinus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Minus}_rendering(t,e){this._errorBarEles=[];e.cancel=!0;var i=this.chart,s=i._plotRect,r=this._getAxisY(),a=this._getAxisX(),n=(r.origin,e.engine),l=i.series.indexOf(this),h=this._plotter;h.plotSeries(n,a,r,this,i,e.index,e.count,t=>{var e,o,u,_=this._paddings,c=this._showPlus,m=this._showMinus,d=i._isRotated(),g=this.errorBarStyle&&this.errorBarStyle["stroke-width"]||2;u=(o=d?a:r).actualMax;e=o.convert(u);var f=n.stroke,p=n.strokeWidth;n.stroke="black";n.strokeWidth=1;let v=this.chart._plotrectId;n.startGroup(null,v);t&&t.length&&t.forEach((t,i)=>{if(null!=t&&null!=t.x&&null!=t.y){var r=_[i],a=r&&r.minus||0,f=r&&r.plus||0,p=Math.abs(o.convert(u-a)-e),v=Math.abs(o.convert(u+f)-e),y=new wijmo_1.Point(t.x,t.y),x=new wijmo_1.Point(t.x,t.y);if(d){if(this.errorAmount===ErrorAmount.StandardDeviation){t=new wijmo_1.Point(o.convert(this._mean),t.y);y.x=t.x;x.x=t.x}m&&(y.x=y.x-p);c&&(x.x=x.x+v)}else{if(this.errorAmount===ErrorAmount.StandardDeviation){t=new wijmo_1.Point(t.x,o.convert(this._mean));y.y=t.y;x.y=t.y}m&&(y.y=y.y+p);c&&(x.y=x.y-v)}let w;w=d?new wijmo_1.Rect(y.x,y.y-g,Math.abs(x.x-y.x),2*g):new wijmo_1.Rect(x.x-g,x.y,2*g,Math.abs(x.y-y.y));let M=new wijmo_chart_1._RectArea(w);M.ignoreLabel=!0;let S=new wijmo_chart_1._DataPoint(l,i,i,r.val);M.tag=S;h.hitTester.add(M,l);let b=[n.drawLine(y.x,y.y,x.x,x.y,"error-bar",this.errorBarStyle)];this._errorBarEles[i]=b;if(this.endStyle===ErrorBarEndStyle.Cap){if(c){let t;if(d){if(x.x<=s.right){t=n.drawLine(x.x,x.y-g,x.x,x.y+g,"error-bar",this.errorBarStyle);b.push(t)}}else if(x.y>=s.top){t=n.drawLine(x.x-g,x.y,x.x+g,x.y,"error-bar",this.errorBarStyle);b.push(t)}}if(m){let t;if(d){if(y.x>=s.left){t=n.drawLine(y.x,y.y-g,y.x,y.y+g,"error-bar",this.errorBarStyle);b.push(t)}}else if(y.y<=s.bottom){t=n.drawLine(y.x-g,y.y,y.x+g,y.y,"error-bar",this.errorBarStyle);b.push(t)}}}}});n.endGroup();n.stroke=f;n.strokeWidth=p})}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){let i=null==this._errorBarEles[t]?[]:this._errorBarEles[t].slice();var e=this._pointIndexes[t];e<this.hostElement.childNodes.length&&i.push(this.hostElement.childNodes[e]);return i}return null}}exports.ErrorBar=ErrorBar;wijmo_1._addCultureInfo("FlexChartAnalytics",{BreakEven:{profitArea:"Profit Area",lossArea:"Loss Area",safetyMargin:"Safety Margin",salesRevenue:"Sales Revenue",totalCost:"Total Cost",fixedCost:"Fixed Cost",variableCost:"Variable Cost",marginalProfit:"Marginal Profit",breakEven:"Break Even"}});class BreakEven extends wijmo_chart_1.SeriesBase{constructor(t){super();this.rendering.addHandler(this._rendering,this);this.style={fill:"rgba(0,255,0,0.5)",strokeWidth:0};this.altStyle={fill:"rgba(255,0,0,0.5)",strokeWidth:0};this.tooltipContent="{y}";this.initialize(t);this._chartType=wijmo_chart_1.ChartType.Line;let e=wijmo_1.culture.FlexChartAnalytics.BreakEven;this.name=e.profitArea+","+e.lossArea+","+e.safetyMargin+","+e.salesRevenue+","+e.totalCost+","+e.fixedCost+","+e.variableCost+","+e.marginalProfit+","+e.breakEven}get fixedCost(){return this._fixedCost}set fixedCost(t){if(t!=this._fixedCost){this._fixedCost=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get variableCost(){return this._variableCost}set variableCost(t){if(t!=this._variableCost){this._variableCost=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get salesPrice(){return this._salesPrice}set salesPrice(t){if(t!=this._salesPrice){this._salesPrice=wijmo_1.asNumber(t,!0,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!==this._styles){this._styles=t;this._invalidate()}}getValues(t){let e=this.salesPrice-this.variableCost;if(0==e)return null;let i=1.3*(this.fixedCost/e),s=[];for(let e=0;e<10;e++)0==t?s.push(e*i/10*this.salesPrice):1==t&&s.push(e*i/10);return s}_rendering(t,e){this.chart._plotRect;let i=e.engine,s=this.chart.axisX,r=this.chart.axisY,a=this.getValues(1),n=this.getValues(0),l=this.salesPrice-this.variableCost,h=this.fixedCost/l,o=this.fixedCost+n[n.length-1]-l*a[a.length-1],u=this.chart._plotrectId;i.startGroup(null,u);if(this.style&&this.style.fill){i.fill=this.style.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(n[n.length-1]),r.convert(h*this.salesPrice),r.convert(o)]);i.fill=null}if(this.altStyle&&this.altStyle.fill){i.fill=this.altStyle.fill;i.drawPolygon([s.convert(a[0]),s.convert(h),s.convert(a[0])],[r.convert(0),r.convert(h*this.salesPrice),r.convert(this.fixedCost)]);i.fill=null}let _=this.styles?this.styles.safetyMargin:void 0,c=this.styles?this.styles.salesRevenue:void 0,m=this.styles?this.styles.totalCost:void 0,d=this.styles?this.styles.fixedCost:void 0,g=this.styles?this.styles.variableCost:void 0,f=this.styles?this.styles.marginalProfit:void 0,p=this.styles?this.styles.breakEven:void 0;if(_&&_.fill){i.fill=_.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)),r.convert(this.fixedCost),r.convert(this.fixedCost)]);i.fill=null}if(c){this._setStyle(i,c);i.drawLine(s.convert(0),r.convert(0),s.convert(a[a.length-1]),r.convert(n[n.length-1]))}if(m){this._setStyle(i,m);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(o))}if(d){this._setStyle(i,d);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(this.fixedCost))}if(g){this._setStyle(i,g);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*this.variableCost))}if(f){this._setStyle(i,f);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)))}if(p){this._setStyle(i,p);i.drawLine(s.convert(h),r.convert(0),s.convert(h),r.convert(h*this.salesPrice));i.drawLine(s.convert(0),r.convert(h*this.salesPrice),s.convert(h),r.convert(h*this.salesPrice))}i.endGroup()}_setStyle(t,e){t.stroke=e.stroke;t.strokeWidth=e.strokeWidth?e.strokeWidth:3}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}legendItemLength(){return 9}_getStyle(t){let e=null;switch(t){case 0:e=this.style;break;case 1:e=this.altStyle;break;case 2:e=this.styles?this.styles.safetyMargin:null;break;case 3:e=this.styles?this.styles.salesRevenue:null;break;case 4:e=this.styles?this.styles.totalCost:null;break;case 5:e=this.styles?this.styles.fixedCost:null;break;case 6:e=this.styles?this.styles.variableCost:null;break;case 7:e=this.styles?this.styles.marginalProfit:null;break;case 8:e=this.styles?this.styles.breakEven:null}return e}measureLegendItem(t,e){var i=this._getName(e),s=new wijmo_1.Size(0,0),r=this._getStyle(e);i&&r&&(s=this._measureLegendItem(t,this._getName(e)));return s}drawLegendItem(t,e,i){var s=this._getStyle(i),r=this._getName(i);r&&s&&this._drawLegendItem(t,e,i<3?5:3,r,s,this.symbolStyle)}}exports.BreakEven=BreakEven;!function(t){t[t.InclusiveMedian=0]="InclusiveMedian";t[t.ExclusiveMedian=1]="ExclusiveMedian"}(QuartileCalculation=exports.QuartileCalculation||(exports.QuartileCalculation={}));class BoxWhisker extends wijmo_chart_1.SeriesBase{constructor(t){super();this._groupWidth=.8;this._gapWidth=.1;this._showInnerPoints=!1;this._showOutliers=!1;this._quartileCalculation=QuartileCalculation.InclusiveMedian;this._chartType=wijmo_chart_1.ChartType.Bar;this.rendering.addHandler(this._rendering,this);this.initialize(t)}_initProperties(t){wijmo_1.copy(this,t)}_clearValues(){super._clearValues()}get quartileCalculation(){return this._quartileCalculation}set quartileCalculation(t){if((t=wijmo_1.asEnum(t,QuartileCalculation,!0))!=this._quartileCalculation){this._quartileCalculation=t;this._invalidate()}}get groupWidth(){return this._groupWidth}set groupWidth(t){if(t!=this._groupWidth&&t>=0&&t<=1){this._groupWidth=wijmo_1.asNumber(t,!0);this._invalidate()}}get gapWidth(){return this._gapWidth}set gapWidth(t){if(t!=this._gapWidth&&t>=0&&t<=1){this._gapWidth=wijmo_1.asNumber(t,!0);this._invalidate()}}get showMeanLine(){return this._showMeanLine}set showMeanLine(t){if(t!=this._showMeanLine){this._showMeanLine=wijmo_1.asBoolean(t,!0);this._invalidate()}}get meanLineStyle(){return this._meanLineStyle}set meanLineStyle(t){if(t!=this._meanLineStyle){this._meanLineStyle=t;this._invalidate()}}get showMeanMarker(){return this._showMeanMarker}set showMeanMarker(t){if(t!=this._showMeanMarker){this._showMeanMarker=wijmo_1.asBoolean(t,!0);this._invalidate()}}get meanMarkerStyle(){return this._meanMarkerStyle}set meanMarkerStyle(t){if(t!=this._meanMarkerStyle){this._meanMarkerStyle=t;this._invalidate()}}get showInnerPoints(){return this._showInnerPoints}set showInnerPoints(t){if(t!=this._showInnerPoints){this._showInnerPoints=wijmo_1.asBoolean(t,!0);this._invalidate()}}get showOutliers(){return this._showOutliers}set showOutliers(t){if(t!=this._showOutliers){this._showOutliers=wijmo_1.asBoolean(t,!0);this._invalidate()}}_rendering(t,e){e.cancel=!0;var i,s,r=this,a=r.chart,n=(r.chart,r._getAxisX()),l=r._getAxisY(),h=e.index,o=e.count,u=e.engine,_=this._plotter,c=a.series.indexOf(r),m=wijmo_1.asType(r,wijmo_chart_1.SeriesBase),d=this.quartileCalculation,g=this.showOutliers,f=this.groupWidth,p=(null==this.gapWidth?.2:this.gapWidth)/2;h=h||0;var v=f/(o=o||1),y=r.getValues(0),x=r.getValues(1);if(!y)return;x||(x=_.dataInfo.getXVals());if(x){var w=_.dataInfo.getDeltaX();if(w>0){f*=w;v*=w}}var M=m._getSymbolFill(c),S=m._getAltSymbolFill(c)||M,b=m._getSymbolStroke(c),V=m._getAltSymbolStroke(c)||b,L=y.length;null!=x&&(L=Math.min(L,x.length));var P,E,T=0,B=0;let j=_.getItemFormatter(r);if(_.rotated){(T=n.origin||T)<n.actualMin?T=n.actualMin:T>n.actualMax&&(T=n.actualMax);n.convert(T);var X=l.actualMin,C=l.actualMax;for(Y=0;Y<L;Y++){k=x?x[Y]:Y;if(null==(O=y[Y])||0===O.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,Y));if(_._getSymbolStyles){M=(N=_._getSymbolStyles(Y))&&N.fill?N.fill:M;S=N&&N.fill?N.fill:S;b=N&&N.stroke?N.fill:b;V=N&&N.stroke?N.fill:V}P=O[0]>0?M:S;E=O[0]>0?b:V;u.fill=P;u.stroke=E;if(wijmo_chart_1._DataInfo.isValid(k)&&wijmo_1.isArray(O)&&O.length>0&&wijmo_chart_1._DataInfo.isValid(O[0])){var A=k-.5*f+h*v,H=k-.5*f+(h+1)*v;H-=I=(H-A)*p;if((A+=I)<X&&H<X||A>C&&H>C)continue;A=l.convert(A);H=l.convert(H);W=new _BoxPlot(O,d,g),R={min:n.convert(W.min),max:n.convert(W.max),firstQuartile:n.convert(W.firstQuartile),median:n.convert(W.median),thirdQuartile:n.convert(W.thirdQuartile),mean:n.convert(W.mean),outlierPoints:this._convertPoints(W.outlierPoints,n),innerPoints:this._convertPoints(W.innerPoints,n)},G=new wijmo_1.Rect(Math.min(R.min,R.max),Math.min(A,H),Math.abs(R.max-R.min),Math.abs(H-A)),z=new wijmo_chart_1._RectArea(G);var q={min:Math.min(A,H),median:(A+H)/2,max:Math.max(H,A)};if(j){u.startGroup();(U=new wijmo_chart_1.HitTestInfo(a,new wijmo_1.Point((R.min+R.max)/2,q.median),wijmo_chart_1.ChartElement.SeriesSymbol))._setData(r,Y);j(u,U,()=>{this._drawBoxWhisker(u,R,q,i,s,r);i=R;s=q});u.endGroup()}else{this._drawBoxWhisker(u,R,q,i,s,r);i=R;s=q}r._setPointIndex(Y,B);B++;(D=new wijmo_chart_1._DataPoint(c,Y,O,k)).item=W;z.tag=D;_.hitTester.add(z,c);W.outlierPoints&&W.outlierPoints.length&&W.outlierPoints.forEach((t,e)=>{let i=R.outlierPoints[e],s=new wijmo_chart_1._CircleArea(new wijmo_1.Point(i,G.top+G.height/2),2);s.tag=D;_.hitTester.add(s,c)})}}}else{(T=l.origin||T)<l.actualMin?T=l.actualMin:T>l.actualMax&&(T=l.actualMax);l.convert(T),n.actualMin,n.actualMax;for(var Y=0;Y<L;Y++){var O,k=x?x[Y]:Y;if(null==(O=y[Y])||0===O.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,Y,L));if(_._getSymbolStyles){var N;M=(N=_._getSymbolStyles(Y,L))&&N.fill?N.fill:M;S=N&&N.fill?N.fill:S;b=N&&N.stroke?N.stroke:b;V=N&&N.stroke?N.stroke:V}P=O[0]>0?M:S;E=O[0]>0?b:V;u.fill=P;u.stroke=E;if(wijmo_chart_1._DataInfo.isValid(k)&&wijmo_1.isArray(O)&&O.length>0&&wijmo_chart_1._DataInfo.isValid(O[0])){var I,F=k-.5*f+h*v,Q=k-.5*f+(h+1)*v;F+=I=(Q-F)*p;Q-=I;F=n.convert(F);Q=n.convert(Q);if(!wijmo_chart_1._DataInfo.isValid(F)||!wijmo_chart_1._DataInfo.isValid(Q))continue;var D,W=new _BoxPlot(O,d,g),R={min:l.convert(W.min),max:l.convert(W.max),firstQuartile:l.convert(W.firstQuartile),median:l.convert(W.median),thirdQuartile:l.convert(W.thirdQuartile),mean:l.convert(W.mean),outlierPoints:this._convertPoints(W.outlierPoints,l),innerPoints:this._convertPoints(W.innerPoints,l)},G=new wijmo_1.Rect(Math.min(F,Q),Math.min(R.min,R.max),Math.abs(Q-F),Math.abs(R.max-R.min)),z=new wijmo_chart_1._RectArea(G),K={min:Math.min(F,Q),median:(F+Q)/2,max:Math.max(F,Q)};if(j){u.startGroup();var U;(U=new wijmo_chart_1.HitTestInfo(a,new wijmo_1.Point(K.median,(R.min+R.max)/2),wijmo_chart_1.ChartElement.SeriesSymbol))._setData(r,Y);j(u,U,()=>{this._drawBoxWhisker(u,K,R,i,s,r);i=K;s=R});u.endGroup()}else{this._drawBoxWhisker(u,K,R,i,s,r);i=K;s=R}r._setPointIndex(Y,B);B++;(D=new wijmo_chart_1._DataPoint(c,Y,k,O)).item=W;z.tag=D;_.hitTester.add(z,c);W.outlierPoints&&W.outlierPoints.length&&W.outlierPoints.forEach((t,e)=>{let i=R.outlierPoints[e],s=new wijmo_chart_1._CircleArea(new wijmo_1.Point(G.left+G.width/2,i),2);s.tag=D;_.hitTester.add(s,c)})}}}}_convertPoints(t,e){return t.map(t=>e.convert(t))}_drawBoxWhisker(t,e,i,s,r,a){var n=a.symbolStyle,l=this.showInnerPoints,h=this.showOutliers,o=this.showMeanLine,u=this.meanLineStyle,_=this.showMeanMarker,c=this.meanMarkerStyle,m=this._plotter;t.startGroup("box-plot");t.strokeWidth=1;if(m.rotated){t.drawLine(e.min,(i.min+i.median)/2,e.min,(i.max+i.median)/2,null,n);t.drawLine(e.min,i.median,e.firstQuartile,i.median,null,n);t.drawRect(Math.min(e.firstQuartile,e.thirdQuartile),Math.min(i.min,i.max),Math.abs(e.thirdQuartile-e.firstQuartile),Math.abs(i.max-i.min),null,n);t.drawLine(e.median,i.min,e.median,i.max,null,n);t.drawLine(e.max,i.median,e.thirdQuartile,i.median,null,n);t.drawLine(e.max,(i.min+i.median)/2,e.max,(i.max+i.median)/2,null,n);o&&s&&r&&t.drawLine(e.mean,i.median,s.mean,r.median,"box-whisker-mean-line",u||n);if(_){var d=Math.abs(i.median-i.min)/2;t.drawLine(e.mean-d,i.median-d,e.mean+d,i.median+d,null,c||n);t.drawLine(e.mean+d,i.median-d,e.mean-d,i.median+d,null,c||n)}h&&e.outlierPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)});l&&e.innerPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)})}else{t.drawLine((e.min+e.median)/2,i.min,(e.max+e.median)/2,i.min,null,n);t.drawLine(e.median,i.min,e.median,i.firstQuartile,null,n);t.drawRect(Math.min(e.min,e.max),Math.min(i.firstQuartile,i.thirdQuartile),Math.abs(e.max-e.min),Math.abs(i.thirdQuartile-i.firstQuartile),null,n);t.drawLine(e.min,i.median,e.max,i.median,null,n);t.drawLine(e.median,i.max,e.median,i.thirdQuartile,null,n);t.drawLine((e.min+e.median)/2,i.max,(e.max+e.median)/2,i.max,null,n);o&&s&&r&&t.drawLine(e.median,i.mean,s.median,r.mean,"box-whisker-mean-line",u||n);if(_){d=Math.abs(e.median-e.min)/2;t.drawLine(e.median-d,i.mean-d,e.median+d,i.mean+d,null,c||n);t.drawLine(e.median-d,i.mean+d,e.median+d,i.mean-d,null,c||n)}h&&i.outlierPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)});l&&i.innerPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)})}t.endGroup()}_renderLabels(t,e,i,s){var r=this,a=this._plotter,n=e.length,l=i.dataLabel,h=l.border,o=l.offset,u=l.connectingLine,_="dataY";a.rotated&&(_="dataX");void 0===o&&(o=u?16:0);h&&(o-=2);let c=[];for(var m=0;m<n;m++){var d=e[m],g=d.tag,f=wijmo_1.asType(g,wijmo_chart_1._DataPoint,!0);if(f&&-1==c.indexOf(f)){c.push(f);var p=g.item,v=g.y;g[_]=p.min;g.yfmt=p.min;g.y=p.min;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.firstQuartile;g.yfmt=p.firstQuartile;g.y=p.firstQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.median;g.yfmt=p.median;g.y=p.median;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.thirdQuartile;g.yfmt=p.thirdQuartile;g.y=p.thirdQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.max;g.yfmt=p.max;g.y=p.max;this._plotter._renderLabel(t,d,f,i,l,r,o,s);if(this.showMeanMarker){let e=Number(p.mean.toFixed(2));g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)}p.showOutliers&&p.outlierPoints&&p.outlierPoints.forEach(e=>{g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)});g.y=v}}}}exports.BoxWhisker=BoxWhisker;class _BoxPlot{constructor(t,e,i){this._outlierPoints=[];this._innerPoints=[];this._data=t;this._quartileCalculation=e;this._showOutliers=i;this._parse()}get showOutliers(){return this._showOutliers}get min(){return this._min}get max(){return this._max}get mean(){return this._mean}get firstQuartile(){return this._firstQuartile}get thirdQuartile(){return this._thirdQuartile}get median(){return this._median}get outlierPoints(){return this._outlierPoints}get innerPoints(){return this._innerPoints}_parse(){var t=this._data.length,e=this._data,i=0;this._outlierPoints=[];this._innerPoints=[];e.sort((t,e)=>t-e);e.some(t=>{if(null==t)return!1;this._min=t;return!0});this._max=null==e[t-1]?0:e[t-1];if(this._quartileCalculation===QuartileCalculation.InclusiveMedian){this._firstQuartile=this._quartileInc(e,.25);this._median=this._quartileInc(e,.5);this._thirdQuartile=this._quartileInc(e,.75)}else{this._firstQuartile=this._quartileExc(e,.25);this._median=this._quartileExc(e,.5);this._thirdQuartile=this._quartileExc(e,.75)}this._iqr=1.5*Math.abs(this._thirdQuartile-this._firstQuartile);var s=this._firstQuartile-this._iqr,r=this._thirdQuartile+this._iqr;if(this._showOutliers){var a=this._max;this._max=this._min;this._min=a;this._data.forEach(t=>{i+=t;if(t<s||t>r)this._outlierPoints.push(t);else{t<this._min&&(this._min=t);t>this._max&&(this._max=t)}})}else i=this._data.reduce((t,e)=>t+e,0);this._innerPoints=this._data.filter(t=>{if(t>this._min&&t<this._max)return!0});this._mean=i/t}_quartileInc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];a=(i=(n-1)*e+1)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}_quartileExc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];if(2===n)return t[Math.round(e)];a=(i=(n+1)*e)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}}exports._BoxPlot=_BoxPlot;wijmo_1._registerModule("wijmo.chart.analytics",selfModule); |
/*! | ||
* | ||
* Wijmo Library 5.20241.19 | ||
* Wijmo Library 5.20242.21 | ||
* https://developer.mescius.com/wijmo | ||
@@ -14,2 +14,2 @@ * | ||
import{asNumber,copy,asEnum,asBoolean,asType,Point,Rect,isArray,Size,culture,_addCultureInfo,isNumber,asFunction,asArray,assert,asInt,asString,isString,_registerModule}from"@grapecity/wijmo";import{SeriesBase,ChartType,_DataPoint,_RectArea,_CircleArea,HitTestInfo,ChartElement,_DataInfo,Series}from"@grapecity/wijmo.chart";import*as selfModule from"@grapecity/wijmo.chart.analytics";export class Waterfall extends SeriesBase{constructor(t){super();this._startLabel="Start";this._relativeData=!0;this._connectorLines=!1;this._showTotal=!1;this._totalLabel="Total";this._getXValues=!1;this._showIntermediateTotal=!1;this._intermediateTotalPos=[];this._chartType=ChartType.Bar;this.tooltipContent="<b>{seriesName}</b><br/>{x} {value}";this.rendering.addHandler(this._rendering,this);this.initialize(t)}get relativeData(){return this._relativeData}set relativeData(t){if(t!=this._relativeData){this._relativeData=asBoolean(t,!0);this._invalidate()}}get start(){return this._start}set start(t){if(t!=this._start){this._start=asNumber(t,!0);this._invalidate()}}get startLabel(){return this._startLabel}set startLabel(t){if(t!=this._startLabel){this._startLabel=asString(t,!1);this._invalidate()}}get showTotal(){return this._showTotal}set showTotal(t){if(t!=this._showTotal){this._showTotal=asBoolean(t,!0);this._invalidate()}}get totalLabel(){return this._totalLabel}set totalLabel(t){if(t!=this._totalLabel){this._totalLabel=asString(t,!1);this._invalidate()}}get showIntermediateTotal(){return this._showIntermediateTotal}set showIntermediateTotal(t){if(t!=this._showIntermediateTotal){this._showIntermediateTotal=asBoolean(t,!1);this._invalidate()}}get intermediateTotalPositions(){return this._intermediateTotalPositions}set intermediateTotalPositions(t){if(t!=this._intermediateTotalPositions){this._intermediateTotalPositions=asArray(t,!0);this._invalidate()}}get intermediateTotalLabels(){return this._intermediateTotalLabels}set intermediateTotalLabels(t){if(t!=this._intermediateTotalLabels){assert(null==t||isArray(t)||isString(t),"Array or string expected.");this._intermediateTotalLabels=t;this._invalidate()}}get connectorLines(){return this._connectorLines}set connectorLines(t){if(t!=this._connectorLines){this._connectorLines=asBoolean(t,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!=this._styles){this._styles=t;this._invalidate()}}getValues(t){var e,i,s,r,a=[],n=0;e=super.getValues(t);if(0===t){if(!this._yValues){a=[];var l=null!=this.start?this.start:0,h=0,o=e&&e.length||0;if(this.relativeData){for(;h<o;h++){l+=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}else{for(;h<o;h++){l=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}if((i=this._yValues)&&i.length>0){if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){this._intermediateTotalPos=i.slice();this.intermediateTotalPositions.reduceRight((t,e)=>{var s=0===e?i[0]:i[e-1];if(i.length>e){i.splice(e,0,s);this._intermediateTotalPos.splice(e,0,!0)}else if(i.length===e){i.push(s);this._intermediateTotalPos.push(!0)}return 0},0)}if(null!=this.start){i.splice(0,0,this.start);this._intermediateTotalPos.splice(0,0,!1)}this.showTotal&&i&&i.push(i[i.length-1])}}return this._yValues}if(!this._xValues&&this._getXValues){this._xValues=e&&e.slice();this._getXValues=!1;if(this._xValues&&this._xValues.length>1){o=this._xValues.length;r=this._xValues[o-1];n=Math.abs(this._xValues[o-1]-this._xValues[o-2])}if(this.chart&&this.chart._xlabels&&this.chart._xlabels.length){s=this.chart._xlabels;if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){var u=this.intermediateTotalLabels;u&&this.intermediateTotalPositions.reduceRight((t,e,i)=>{var a="";a=isString(u)?u:u[i]||"";s.length>e?s.splice(e,0,a):s.length===e&&s.push(a);if(n){r+=n;this._xValues.push(r)}return 0},0)}if(null!=this.start){s.splice(0,0,this.startLabel);if(n){r+=n;this._xValues.push(r)}}if(this.showTotal){s.push(this.totalLabel);if(n){r+=n;this._xValues.push(r)}}}}return this._xValues}legendItemLength(){return this.showTotal?3:2}measureLegendItem(t,e){var i=this._getName(e);return i?this._measureLegendItem(t,i):new Size(0,0)}drawLegendItem(t,e,i){var s=this._getLegendStyles(i);this._getName(i)&&this._drawLegendItem(t,e,ChartType.Bar,this._getName(i),s,this.symbolStyle)}_clearValues(){super._clearValues();this._xValues=null;this._yValues=null;this._wfstyle=null;this._getXValues=!0;this._intermediateTotalPos=[];this.chart&&this.chart._performBind()}_invalidate(){super._invalidate();this._clearValues()}_getXOffset(){return null!=this.start?1:0}_getYOffset(t){return this.getValues(0)[t+this._getXOffset()]}_getValue(t){let e=t;if(null!=this.start){if(0==t)return this.start;t--}return this.showIntermediateTotal&&this.intermediateTotalPositions&&this._intermediateTotalPos[e],this.getValues(0)[e]}_getItem(t){let e=null;null!=this.start&&(0==t?(e={})[this.binding]=this.start:t--);if(this.showIntermediateTotal&&this.intermediateTotalPositions){let i=this._intermediateTotalPos;if(!0===i[t]){(e={})[this.binding]=this.getValues(0)[t];return e}{let e=t;for(let s=0;s<t;s++)!0===i[s]&&e--;t=e}}e||!(e=super._getItem(t))&&this.showTotal&&this._yValues&&this._yValues.length>0&&((e={})[this.binding]=this._yValues[this._yValues.length-1]);return e}_rendering(t,e){e.cancel=!0;this._wfstyle=null;var i,s,r,a,n,l,h=this.chart,o=this._getAxisY(),u=this._getAxisX(),c=o.origin||0,_=e.engine;this._barPlotter=h._getPlotter(this);r=this._barPlotter.rotated;this._barPlotter._getSymbolOrigin||(this._barPlotter._getSymbolOrigin=(t,e,i)=>0===e?t:!0===this._intermediateTotalPos[e]?t:e===i-1&&this.showTotal?t:this._yValues[e-1]);this._barPlotter._getSymbolStyles||(this._barPlotter._getSymbolStyles=(t,e)=>{var i=this._getStyles();return 0===t&&null!=this.start?i.start:!0===this._intermediateTotalPos[t]?i.intermediateTotal:t===e-1&&this.showTotal?i.total:0==t?this._yValues[t]<0?i.falling:i.rising:this._yValues[t]<this._yValues[t-1]?i.falling:i.rising});this._barPlotter.plotSeries(_,u,o,t,h,0,1);if(this.connectorLines&&(a=this._barPlotter.hitTester._map[0])&&a.length){_.startGroup(Waterfall.CSS_CONNECTOR_LINE_GROUP);l=this._yValues[0]<c;n=a[0].rect;for(i=1,s=a.length;i<s;i++)if(!0!==this._intermediateTotalPos[i]||i===s-1){this._drawConnectorLine(_,r,n,a[i].rect,l);n=a[i].rect;l=this._yValues[i]<this._yValues[i-1]}_.endGroup()}}_getStyles(){if(this._wfstyle)return this._wfstyle;var t=this._chart.series.indexOf(this),e=this._getSymbolFill(t),i=this._getSymbolStroke(t),s=this.styles||{};this._wfstyle={start:this._getStyleByKey(s,"start",e,i),intermediateTotal:this._getStyleByKey(s,"intermediateTotal",e,i),total:this._getStyleByKey(s,"total",e,i),falling:this._getStyleByKey(s,"falling","red","red"),rising:this._getStyleByKey(s,"rising","green","green")};return this._wfstyle}_getStyleByKey(t,e,i,s){return{fill:t[e]&&t[e].fill?t[e].fill:i,stroke:t[e]&&t[e].stroke?t[e].stroke:s}}_drawConnectorLine(t,e,i,s,r){var a=new Point,n=new Point,l=this.chart.axisY.reversed,h=this.chart.axisX.reversed;l^=r;if(e){if(l){a.x=i.left;n.x=i.left}else{a.x=i.left+i.width;n.x=i.left+i.width}if(h){a.y=i.top;n.y=s.top+s.height}else{a.y=i.top+i.height;n.y=s.top}}else{if(l){a.y=i.top+i.height;n.y=i.top+i.height}else{a.y=i.top;n.y=i.top}if(h){a.x=i.left+i.width;n.x=s.left}else{a.x=i.left;n.x=s.left+s.width}}t.drawLine(a.x,a.y,n.x,n.y,Waterfall.CSS_CONNECTOR_LINE,this.styles&&this.styles.connectorLines||{stroke:"black"})}_getLegendStyles(t){if(t<0||null===this.styles)return null;var e=this._getStyles();return 0===t?e.rising:1===t?e.falling:e.total}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}}Waterfall.CSS_CONNECTOR_LINE_GROUP="water-fall-connector-lines";Waterfall.CSS_CONNECTOR_LINE="water-fall-connector-line";Waterfall.CSS_ENDLABEL="water-fall-end-label";export class TrendLineBase extends SeriesBase{constructor(t){super();this._chartType=ChartType.Line;this._sampleCount=100;this.initialize(t)}get sampleCount(){return this._sampleCount}set sampleCount(t){if((t=asNumber(t,!1,!0))!=this._sampleCount){this._sampleCount=t;this._invalidate()}}approximate(t){return 0}getValues(t){var e=this.binding,i=this.bindingX;if(e!==this._bind){this._bind=e;this.binding=e}if(i!==this._bindX){this._bindX=i;this.bindingX=i}null==this._originYValues&&(this._originYValues=super.getValues(0));null==this._originXValues&&(this._originXValues=super.getValues(1));if(null==this._originXValues||null==this._originYValues)return null;super.getValues(t);null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){}_invalidate(){super._invalidate();this._clearCalculatedValues()}_clearValues(){super._clearValues();this._originXValues=null;this._originYValues=null;this._clearCalculatedValues()}_clearCalculatedValues(){this._xValues=null;this._yValues=null}}export var MovingAverageType;!function(t){t[t.Simple=0]="Simple";t[t.Weighted=1]="Weighted";t[t.Exponential=2]="Exponential";t[t.Triangular=3]="Triangular"}(MovingAverageType||(MovingAverageType={}));export class MovingAverage extends TrendLineBase{constructor(t){super();this._chartType=ChartType.Line;this._type=MovingAverageType.Simple;this._period=2;this.initialize(t)}get type(){return this._type}set type(t){if((t=asEnum(t,MovingAverageType,!1))!=this._type){this._type=t;this._invalidate()}}get period(){return this._period}set period(t){if((t=asNumber(t,!1,!0))!=this._period){this._period=asNumber(t,!1,!0);this._invalidate()}}_checkPeriod(){var t=this.period,e=this._originXValues;t<=1&&assert(!1,"period must be greater than 1.");e&&e.length&&t>=e.length&&assert(!1,"period must be less than itemSource's length.")}_calculateValues(){this._type;var t="_calculate"+MovingAverageType[this._type],e=[],i=[];this._checkPeriod();this[t]&&this[t].call(this,e,i);this._yValues=i;this._xValues=e}_calculateSimple(t,e,i=!1){for(var s=this._originXValues,r=this._originYValues,a=s.length,n=this._period,l=0,h=0;h<a;h++){l+=r[h]||0;h>=n&&(l-=r[h-n]||0);if(h>=n-1){t.push(s[h]);e.push(l/n)}else if(i){t.push(s[h]);e.push(l/(h+1))}}}_calculateWeighted(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=a*(a+1)/2,l=0,h=0,o=0;o<r;o++){o>0&&(l+=s[o-1]||0);o>a&&(l-=s[o-a-1]||0);if(o<a-1)h+=(s[o]||0)*(o+1);else{h+=(s[o]||0)*a;o>a-1&&(h-=l);t.push(i[o]);e.push(h/n)}}}_calculateExponential(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=0,l=0;l<r;l++)if(l<=a-2){n+=s[l]||0;l===a-2&&(n/=a-1)}else{n+=2/(a+1)*((s[l]||0)-n);t.push(i[l]);e.push(n)}}_calculateTriangular(t,e){var i=this._period,s=[],r=[],a=0;this._calculateSimple(s,r,!0);for(var n=0,l=s.length;n<l;n++){a+=r[n]||0;n>=i&&(a-=r[n-i]||0);if(n>=i-1){t.push(s[n]);e.push(a/i)}}}}class MathHelper{static round(t,e){if(!t)return 0;var i=Math.pow(10,e||2);return Math.round(t*i)/i}static avg(t){return MathHelper.sum(t)/t.length}static sum(t){return(t=asArray(t,!1)).reduce((t,e)=>t+e,0)}static sumOfPow(t,e){t=asArray(t,!1);e=asNumber(e,!1);return t.reduce((t,i)=>t+Math.pow(i,e),0)}static sumProduct(...t){t.length;var e,i,s=0,r=[];(t=asArray(t,!1)).forEach((t,e)=>{t=asArray(t,!1);0===e?s=t.length:assert(t.length===s,"The length of the arrays must be equal")});for(e=0;e<s;e++){i=1;t.some((t,s)=>{var r=t[e];if(!r||!isNumber(r)){i=0;return!0}i*=r});r.push(i)}return MathHelper.sum(r)}static variance(t){t=asArray(t,!1);var e,i=MathHelper.avg(t);e=t.map(t=>t-i);return MathHelper.sumOfSquares(e)/(t.length-1)}static covariance(t,e){t=asArray(t,!1);e=asArray(e,!1);assert(t.length===e.length,"Length of arrays must be equal");var i,s=MathHelper.avg(t),r=MathHelper.avg(e),a=t.length,n=0;for(i=0;i<a;i++)n+=(t[i]-s)*(e[i]-r)/a;return n}}MathHelper.min=t=>Math.min.apply(Math,asArray(t,!1));MathHelper.max=t=>Math.max.apply(Math,asArray(t,!1));MathHelper.square=t=>Math.pow(asNumber(t,!1),2);MathHelper.sumOfSquares=t=>MathHelper.sumOfPow(t,2);MathHelper.stdDev=t=>Math.sqrt(MathHelper.variance(t));export var TrendLineFitType;!function(t){t[t.Linear=0]="Linear";t[t.Exponential=1]="Exponential";t[t.Logarithmic=2]="Logarithmic";t[t.Power=3]="Power";t[t.Fourier=4]="Fourier";t[t.Polynomial=5]="Polynomial";t[t.MinX=6]="MinX";t[t.MinY=7]="MinY";t[t.MaxX=8]="MaxX";t[t.MaxY=9]="MaxY";t[t.AverageX=10]="AverageX";t[t.AverageY=11]="AverageY"}(TrendLineFitType||(TrendLineFitType={}));export class TrendLine extends TrendLineBase{constructor(t){super();this._fitType=TrendLineFitType.Linear;this._order=2;this.initialize(t)}get fitType(){return this._fitType}set fitType(t){if((t=asEnum(t,TrendLineFitType,!1))!=this._fitType){this._fitType=t;this._invalidate()}}get order(){return this._order}set order(t){if(t!=this._order){this._order=asNumber(t,!1,!0);this._invalidate()}}get coefficients(){return this._helper?this._helper.coefficients:null}approximate(t){return this._helper?this._helper.approximate(t):NaN}getEquation(t){return(this._helper?this._helper.getEquation(t):"").replace(/\S(\+|\-)\d/g,(function(t){return t[0]+" "+t[1]+" "+t[2]}))}_calculateValues(){var t=TrendLineFitType[this._fitType];if(TrendLineHelper[t]){var e=!1,i=this._originXValues;if(0==this._chart._xvals.length&&this._chart._xlabels.length>0){i=this._originXValues.map(t=>t+1);e=!0}var s=new TrendLineHelper[t](this._originYValues,i,this.sampleCount,this.order);s._isXString=e;var r=s.calculateValues();this._yValues=r[0];this._xValues=r[1];this._helper=s}}}class Calculator{constructor(t,e){this._x=t;this._y=e}get x(){return this._x}get y(){return this._y}get minX(){null==this._minX&&(this._minX=MathHelper.min(this._x));return this._minX}get minY(){null==this._minY&&(this._minY=MathHelper.min(this._y));return this._minY}get maxX(){null==this._maxX&&(this._maxX=MathHelper.max(this._x));return this._maxX}get maxY(){null==this._maxY&&(this._maxY=MathHelper.max(this._y));return this._maxY}get averageX(){null==this._averageX&&(this._averageX=MathHelper.avg(this._x));return this._averageX}get averageY(){null==this._averageY&&(this._averageY=MathHelper.avg(this._y));return this._averageY}get sumX(){null==this._sumX&&(this._sumX=MathHelper.sum(this._x));return this._sumX}get sumY(){null==this._sumY&&(this._sumY=MathHelper.sum(this._y));return this._sumY}get LogX(){null==this._logX&&(this._logX=this._x.map(t=>Math.log(t)));return this._logX}get LogY(){null==this._logY&&(this._logY=this._y.map(t=>Math.log(t)));return this._logY}get sumLogX(){null==this._sumLogX&&(this._sumLogX=MathHelper.sum(this.LogX));return this._sumLogX}get sumLogY(){null==this._sumLogY&&(this._sumLogY=MathHelper.sum(this.LogY));return this._sumLogY}get sumOfSquareX(){null==this._sumOfSquareX&&(this._sumOfSquareX=MathHelper.sumOfSquares(this._x));return this._sumOfSquareX}get sumOfSquareY(){null==this._sumOfSquareY&&(this._sumOfSquareY=MathHelper.sumOfSquares(this._y));return this._sumOfSquareY}get sumOfSquareLogX(){null==this._sumOfSquareLogX&&(this._sumOfSquareLogX=MathHelper.sumOfSquares(this.LogX));return this._sumOfSquareLogX}get sumOfSquareLogY(){null==this._sumOfSquareLogY&&(this._sumOfSquareLogY=MathHelper.sumOfSquares(this.LogY));return this._sumOfSquareLogY}sumProduct(t,e){null==this._sumProduct&&(this._sumProduct=MathHelper.sumProduct(t,e));return this._sumProduct}}class TrendHelperBase{constructor(t,e,i){this._coefficients=[];this.y=asArray(t);this.x=asArray(e);assert(t.length===e.length,"Length of X and Y arrays are not equal");this.count=i||t.length;this._calculator=new Calculator(e,t);this.xMin=this._calculator.minX;this.xMax=this._calculator.maxX}get calculator(){return this._calculator}get y(){return this._y}set y(t){t!==this.y&&(this._y=asArray(t,!1))}get x(){return this._x}set x(t){t!==this.x&&(this._x=asArray(t,!1))}get count(){return this._count}set count(t){t!==this.count&&(this._count=asInt(t,!1,!0))}get xMin(){return this._xMin}set xMin(t){t!==this.xMin&&(this._xMin=asNumber(t,!1))}get xMax(){return this._xMax}set xMax(t){t!==this.xMax&&(this._xMax=asNumber(t,!1))}get coefficients(){return this._coefficients}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this._coefficients.push(e,t)}calculateValues(){for(var t=(this.xMax-this.xMin)/(this.count-1),e=[[],[]],i=0;i<this.count;i++){var s=this.xMin+t*i,r=this.calcY(s);e[0].push(r);this._isXString?e[1].push(s-1):e[1].push(s)}return e}calcA(t){var e=this.y.length,i=this.calculator.sumX;return(this.calculator.sumY-(t=t||this.calcB())*i)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.x,e.y),s=e.sumX;return(t*i-s*e.sumY)/(t*e.sumOfSquareX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]+e[1]*t}approximate(t){return this.calcY(t)}getEquation(t){t=t||this._defaultEquationFmt;return this._getEquation(t)}_getEquation(t){var e=this.coefficients,i=[];e.forEach(e=>{i.push(t(e))});return this._concatEquation(i)}_concatEquation(t){return""}_defaultEquationFmt(t){var e,i=Math.abs(t),s=String(i),r=0;if(i>=1e5){e=String(Math.round(i)).length-1;return Math.round(t/Number("1e"+e))+"e"+e}if(i<1e-4){e=s.indexOf("e")>-1?Math.abs(+s.substring(s.indexOf("e")+1)):s.match(/\.0+/)[0].length;return Math.round(t*Number("1e"+e))+"e-"+e}r=t>0?6:7;i>=1e4&&r--;return String(+String(t).substring(0,r))}}class LinearHelper extends TrendHelperBase{get yOffset(){return this._yOffset}set yOffset(t){t!==this.yOffset&&(this._yOffset=asNumber(t,!0))}constructor(t,e,i,s){super(t,e,i);this._calculateCoefficients();this.yOffset=s}calcA(t){return null!=this.yOffset?this.yOffset:super.calcA(t)}calcB(){return null!=this.yOffset?this._calculateBSimple():super.calcB()}_calculateBSimple(){var t=this.calculator,e=t.sumProduct(t.x,t.y),i=t.sumX,s=t.sumOfSquareX;return(e-this.yOffset*i)/s}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return e[0]*t+e[1]}_concatEquation(t){return"y = "+t[0]+"x"+(this.coefficients[1]>=0?"+":"")+t[1]}}class LogHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.y.length,i=this.calculator,s=i.sumY,r=i.sumLogX;return(s-(t=t||this.calcB())*r)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.y,e.LogX),s=e.sumY,r=e.sumLogX;return(t*i-s*r)/(t*e.sumOfSquareLogX-MathHelper.square(r))}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return Math.log(t)*e[0]+e[1]}_concatEquation(t){return"y = "+t[0]+"ln(x)"+(this.coefficients[1]>=0?"+":"")+t[1]}}class ExpHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX,a=e.sumProduct(e.x,e.LogY);return Math.exp((i*s-r*a)/(t*s-MathHelper.square(r)))}calcB(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX;return(t*e.sumProduct(e.x,e.LogY)-r*i)/(t*s-MathHelper.square(r))}calcY(t){var e=this.coefficients;return e[0]*Math.exp(e[1]*t)}_concatEquation(t){return"y = "+t[0]+"e<sup>"+t[1]+"x</sup>"}}class PowerHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.calculator,i=this.y.length,s=e.sumLogX,r=e.sumLogY;t=t||this.calcB();return Math.exp((r-t*s)/i)}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.LogX,e.LogY),s=e.sumLogX;return(t*i-s*e.sumLogY)/(t*e.sumOfSquareLogX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]*Math.pow(t,e[1])}_concatEquation(t){return"y = "+t[0]+"x<sup>"+t[1]+"</sup>"}}class LeastSquaresHelper extends TrendHelperBase{constructor(t,e,i,s){super(t,e,i);this._order=null==s?2:s;this._basis=[];this._calculateCoefficients()}get basis(){return this._basis}get order(){return this._order}set order(t){this._order=asNumber(t,!0)}_calculateCoefficients(){this._coefficients.length=this.order;this._createBasis();this._normalizeAndSolveGauss()}_createBasis(){var t=this.x.length,e=this.order;if(t<2)throw"Incompatible data: Less than 2 data points.";if(e<1)throw"Incompatible data: Less than 1 coefficient in the fit";if(e>t)throw"Incompatible data: Number of data points less than number of terms"}_normalizeAndSolveGauss(){var t=[];this._computeNormalEquations(t);this._genDefValForArray(t,0);if(!this._solveGauss(t))throw"Incompatible data: No solution."}_genDefValForArray(t,e){var i=t.length+1;t.forEach(t=>{for(var s=0;s<i;s++)null==t[s]&&(t[s]=e)})}_computeNormalEquations(t){var e,i,s,r,a=this.y,n=this.basis,l=this.order,h=a.length;for(e=0;e<l;e++){s=0;null==t[e]&&(t[e]=[]);a.forEach((t,i)=>{s+=t*n[i][e]});t[e][l]=s;for(i=e;i<l;i++){s=0;for(r=0;r<h;r++)s+=n[r][i]*n[r][e];null==t[i]&&(t[i]=[]);t[i][e]=s;t[e][i]=s}}}_solveGauss(t){var e,i,s=t.length,r=this._coefficients,a=!0;if(r.length<s||t[0].length<s+1)throw"Dimension of matrix is not correct.";t.some((e,r)=>{var n,l,h=r,o=Math.abs(e[r]);for(i=r+1;i<s;i++)if(o<(n=Math.abs(t[i][r]))){o=n;h=i}if(!(o>0)){a=!1;return!0}for(i=r;i<=s;i++){l=t[r][i];t[r][i]=t[h][i];t[h][i]=l}for(h=r+1;h<s;h++){l=t[h][r]/e[r];t[h][r]=0;for(i=r+1;i<=s;i++)t[h][i]-=l*e[i]}});if(a)for(e=s-1;e>=0;e--){r[e]=t[e][s];for(i=e+1;i<s;i++)r[e]-=t[e][i]*r[i];r[e]=r[e]/t[e][e]}return a}}class PolyHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s)}get coefficients(){return this._coefficients.slice(0).reverse()}calcY(t){var e=this._coefficients,i=0,s=1;e.forEach((e,r)=>{r>0&&(s*=t);i+=e*s});return i}_calculateCoefficients(){this._coefficients;this.order++;0;super._calculateCoefficients();0;this.order--}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{e[s]=[1];for(var r=1;r<=i;r++)e[s][r]=t*e[s][r-1]})}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a,n=i-1-r;if(0===n)e+=t;else if(1===n){a=s[r+1]>=0?"+":"";e+=t+"x"+a}else{a=s[r+1]>=0?"+":"";e+=t+"x<sup>"+n+"</sup>"+a}}));return e}}class FourierHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s=null==s?e.length:s)}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{var r,a;e[s]=[1];for(r=1;r<i;r++){a=Math.floor((r+1)/2);r%2==1?e[s].push(Math.cos(a*t)):e[s].push(Math.sin(a*t))}})}calcY(t){var e;this._coefficients.forEach((i,s)=>{var r,a=Math.floor((s+1)/2);if(0===s)e=i;else{r=a*t;e+=s%2==1?i*Math.cos(r):i*Math.sin(r)}});return e}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a=r===i-1?"":s[r+1]>=0?"+":"",n="",l=Math.ceil(r/2);if(0===r)e+=t+a;else{n=r%2==1?"cos":"sin";n+="("+(1===l?"":String(l))+"x)";e+=t+n+a}}));return e}}class SimpleTrendHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}_setVal(t){this._val=t}calcY(t){return this._val}}class MinXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMin;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MinYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.min(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.min(this.y);t&&(e=t(e));return"y = "+e}}class MaxXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMax,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMax;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MaxYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.max(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.max(this.y);t&&(e=t(e));return"y = "+e}}class AverageXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.x),s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}_getEquation(t){var e=MathHelper.avg(this.x);this._isXString&&(e-=1);t&&(e=t(e));return" x ="+e}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}class AverageYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.y),s=this.xMin,r=this.xMax;if(this._isXString){s-=1;r-=1}t=[s,r];e=[i,i];this._setVal(i);return[e,t]}_getEquation(t){return"y = "+t(MathHelper.avg(this.y))}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}var TrendLineHelper={TrendHelperBase:TrendHelperBase,Linear:LinearHelper,Exponential:ExpHelper,Logarithmic:LogHelper,Power:PowerHelper,Polynomial:PolyHelper,Fourier:FourierHelper,MinX:MinXHelper,MinY:MinYHelper,MaxX:MaxXHelper,MaxY:MaxYHelper,AverageX:AverageXHelper,AverageY:AverageYHelper};export class FunctionSeries extends TrendLineBase{constructor(t){super();this._min=0;this._max=1;this.initialize(t);null==this.itemsSource&&(this.itemsSource=[new Point(0,0)])}get min(){return this._min}set min(t){if(this._min!==t){this._min=asNumber(t,!1);this._invalidate()}}get max(){return this._max}set max(t){if(this._max!==t){this._max=asNumber(t,!1);this._invalidate()}}getValues(t){null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){for(var t,e=this.sampleCount,i=[],s=[],r=(this.max-this.min)/(e-1),a=0;a<e;a++){t=a===e-1?this.max:this.min+r*a;i[a]=this._calculateX(t);s[a]=this._calculateY(t)}this._yValues=s;this._xValues=i}_validateValue(t){return isFinite(t)?t:Number.NaN}_calculateValue(t,e){var i;try{i=t(e)}catch(t){i=Number.NaN}return this._validateValue(i)}_calculateX(t){return 0}_calculateY(t){return 0}}export class YFunctionSeries extends FunctionSeries{constructor(t){super(t)}get func(){return this._func}set func(t){if(t&&this._func!==t){this._func=asFunction(t,!1);this._invalidate()}}_calculateX(t){return t}_calculateY(t){return this._calculateValue(this.func,t)}approximate(t){return this._calculateValue(this.func,t)}}export class ParametricFunctionSeries extends FunctionSeries{constructor(t){super(t)}get xFunc(){return this._xFunc}set xFunc(t){if(t&&this._xFunc!==t){this._xFunc=asFunction(t,!1);this._invalidate()}}get yFunc(){return this._yFunc}set yFunc(t){if(t&&this._yFunc!==t){this._yFunc=asFunction(t,!1);this._invalidate()}}_calculateX(t){return this._calculateValue(this.xFunc,t)}_calculateY(t){return this._calculateValue(this.yFunc,t)}approximate(t){var e=this._calculateValue(this.xFunc,t),i=this._calculateValue(this.yFunc,t);return new Point(e,i)}}export var ErrorAmount;!function(t){t[t.FixedValue=0]="FixedValue";t[t.Percentage=1]="Percentage";t[t.StandardDeviation=2]="StandardDeviation";t[t.StandardError=3]="StandardError";t[t.Custom=4]="Custom"}(ErrorAmount||(ErrorAmount={}));export var ErrorBarEndStyle;!function(t){t[t.Cap=0]="Cap";t[t.NoCap=1]="NoCap"}(ErrorBarEndStyle||(ErrorBarEndStyle={}));export var ErrorBarDirection;!function(t){t[t.Both=0]="Both";t[t.Minus=1]="Minus";t[t.Plus=2]="Plus"}(ErrorBarDirection||(ErrorBarDirection={}));export class ErrorBar extends Series{constructor(t){super();this._errorAmount=ErrorAmount.FixedValue;this._endStyle=ErrorBarEndStyle.Cap;this._direction=ErrorBarDirection.Both;this.rendering.addHandler(this._rendering,this);this.initialize(t)}get value(){return this._value}set value(t){if(t!=this._value){this._value=t;this._invalidate()}}get errorAmount(){return this._errorAmount}set errorAmount(t){if((t=asEnum(t,ErrorAmount,!0))!=this._errorAmount){this._errorAmount=t;this._invalidate()}}get errorBarStyle(){return this._errorBarStyle}set errorBarStyle(t){if(t!=this._errorBarStyle){this._errorBarStyle=t;this._invalidate()}}get endStyle(){return this._endStyle}set endStyle(t){if((t=asEnum(t,ErrorBarEndStyle,!0))!=this._endStyle){this._endStyle=t;this._invalidate()}}get direction(){return this._direction}set direction(t){if((t=asEnum(t,ErrorBarDirection,!0))!=this._direction){this._direction=t;this._invalidate()}}getDataRect(t,e){if(!t)return null;this._chart;var i,s=this.errorAmount,r=0,a=0;this._paddings=[];this._calculateErrorValue();var n,l,h=this.getValues(0),o=t.top,u=t.bottom;if(!h)return t;for(n=0,i=h.length;n<i;n++){var c={plus:0,val:0,minus:0},_=this._value||0;l=h[n];switch(s){case ErrorAmount.Custom:(c=this._getCustomValue(n)).val=l;this._paddings.push(c);break;case ErrorAmount.FixedValue:this._paddings.push({plus:_,minus:_,val:l});break;case ErrorAmount.Percentage:this._paddings.push({plus:l*_,minus:l*_,val:l});break;case ErrorAmount.StandardDeviation:this._paddings.push({plus:this._errorValue*_,minus:this._errorValue*_,val:l});break;case ErrorAmount.StandardError:this._paddings.push({plus:this._errorValue,minus:this._errorValue,val:l})}(isNaN(o)||o>l-c.minus)&&(o=l-c.minus);(isNaN(u)||u<l+c.plus)&&(u=l+c.plus)}switch(s){case ErrorAmount.FixedValue:r=_;a=_;break;case ErrorAmount.Percentage:r=o*_;a=u*_;break;case ErrorAmount.StandardDeviation:r=this._errorValue*_;a=this._errorValue*_;break;case ErrorAmount.StandardError:r=this._errorValue;a=this._errorValue}this._showPlus&&(u+=a);this._showMinus&&(o-=r);return new Rect(t.left,o,t.width,u-o)}_getCustomValue(t){var e,i=this.value,s={minus:0,val:0,plus:0};if(null!=this._minusBindingValues||null!=this._plusBindingValues){s.minus=this._minusBindingValues&&this._minusBindingValues[t]||0;s.plus=this._plusBindingValues&&this._plusBindingValues[t]||0;return s}if(null==i)return s;if(isArray(i)){(e=i[t])&&e.minus&&(s.minus=e.minus);e&&e.plus&&(s.plus=e.plus)}else if(isNumber(i)){s.minus=i;s.plus=i}else{i.minus&&(s.minus=i.minus);i.plus&&(s.plus=i.plus)}return s}_calculateErrorValue(){var t=0,e=0,i=0;if(this._errorAmount===ErrorAmount.StandardDeviation||this._errorAmount===ErrorAmount.StandardError){var s=this.getValues(0);if(null!=s){s.forEach(i=>{t+=i;e++});i=t/e;this._mean=i;t=0;s.forEach(e=>{t+=Math.pow(e-i,2)});this._errorValue=Math.sqrt(t/(e-1))}this._errorAmount==ErrorAmount.StandardError&&(this._errorValue=this._errorValue/Math.sqrt(e))}}_clearValues(){this.__errorValue=null;this._mean=null;this._plusBindingValues=null;this._minusBindingValues=null;super._clearValues()}getValues(t){if(0==t&&this.errorAmount===ErrorAmount.Custom){var e=this._getBinding(1),i=this._getBinding(2);if((null==this._plusBindingValues||null==this._minusBindingValues)&&e&&i)if(null!=this._cv){if(e){var s=this._bindValues(this._cv.items,e);this._plusBindingValues=s.values}if(i){var r=this._bindValues(this._cv.items,i);this._minusBindingValues=r.values}}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){if(e){s=this._bindValues(this._chart.collectionView.items,e);this._plusBindingValues=s.values}if(i){r=this._bindValues(this._chart.collectionView.items,i);this._minusBindingValues=r.values}}}return super.getValues(t)}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}get _errorValue(){return this.__errorValue}set _errorValue(t){t!=this.__errorValue&&(this.__errorValue=t)}get _showPlus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Plus}get _showMinus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Minus}_rendering(t,e){this._errorBarEles=[];e.cancel=!0;var i=this.chart,s=i._plotRect,r=this._getAxisY(),a=this._getAxisX(),n=(r.origin,e.engine),l=i.series.indexOf(this),h=this._plotter;h.plotSeries(n,a,r,this,i,e.index,e.count,t=>{var e,o,u,c=this._paddings,_=this._showPlus,m=this._showMinus,d=i._isRotated(),g=this.errorBarStyle&&this.errorBarStyle["stroke-width"]||2;u=(o=d?a:r).actualMax;e=o.convert(u);var f=n.stroke,p=n.strokeWidth;n.stroke="black";n.strokeWidth=1;let y=this.chart._plotrectId;n.startGroup(null,y);t&&t.length&&t.forEach((t,i)=>{if(null!=t&&null!=t.x&&null!=t.y){var r=c[i],a=r&&r.minus||0,f=r&&r.plus||0,p=Math.abs(o.convert(u-a)-e),y=Math.abs(o.convert(u+f)-e),v=new Point(t.x,t.y),x=new Point(t.x,t.y);if(d){if(this.errorAmount===ErrorAmount.StandardDeviation){t=new Point(o.convert(this._mean),t.y);v.x=t.x;x.x=t.x}m&&(v.x=v.x-p);_&&(x.x=x.x+y)}else{if(this.errorAmount===ErrorAmount.StandardDeviation){t=new Point(t.x,o.convert(this._mean));v.y=t.y;x.y=t.y}m&&(v.y=v.y+p);_&&(x.y=x.y-y)}let M;M=d?new Rect(v.x,v.y-g,Math.abs(x.x-v.x),2*g):new Rect(x.x-g,x.y,2*g,Math.abs(x.y-v.y));let S=new _RectArea(M);S.ignoreLabel=!0;let b=new _DataPoint(l,i,i,r.val);S.tag=b;h.hitTester.add(S,l);let w=[n.drawLine(v.x,v.y,x.x,x.y,"error-bar",this.errorBarStyle)];this._errorBarEles[i]=w;if(this.endStyle===ErrorBarEndStyle.Cap){if(_){let t;if(d){if(x.x<=s.right){t=n.drawLine(x.x,x.y-g,x.x,x.y+g,"error-bar",this.errorBarStyle);w.push(t)}}else if(x.y>=s.top){t=n.drawLine(x.x-g,x.y,x.x+g,x.y,"error-bar",this.errorBarStyle);w.push(t)}}if(m){let t;if(d){if(v.x>=s.left){t=n.drawLine(v.x,v.y-g,v.x,v.y+g,"error-bar",this.errorBarStyle);w.push(t)}}else if(v.y<=s.bottom){t=n.drawLine(v.x-g,v.y,v.x+g,v.y,"error-bar",this.errorBarStyle);w.push(t)}}}}});n.endGroup();n.stroke=f;n.strokeWidth=p})}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){let i=null==this._errorBarEles[t]?[]:this._errorBarEles[t].slice();var e=this._pointIndexes[t];e<this.hostElement.childNodes.length&&i.push(this.hostElement.childNodes[e]);return i}return null}}_addCultureInfo("FlexChartAnalytics",{BreakEven:{profitArea:"Profit Area",lossArea:"Loss Area",safetyMargin:"Safety Margin",salesRevenue:"Sales Revenue",totalCost:"Total Cost",fixedCost:"Fixed Cost",variableCost:"Variable Cost",marginalProfit:"Marginal Profit",breakEven:"Break Even"}});export class BreakEven extends SeriesBase{constructor(t){super();this.rendering.addHandler(this._rendering,this);this.style={fill:"rgba(0,255,0,0.5)",strokeWidth:0};this.altStyle={fill:"rgba(255,0,0,0.5)",strokeWidth:0};this.tooltipContent="{y}";this.initialize(t);this._chartType=ChartType.Line;let e=culture.FlexChartAnalytics.BreakEven;this.name=e.profitArea+","+e.lossArea+","+e.safetyMargin+","+e.salesRevenue+","+e.totalCost+","+e.fixedCost+","+e.variableCost+","+e.marginalProfit+","+e.breakEven}get fixedCost(){return this._fixedCost}set fixedCost(t){if(t!=this._fixedCost){this._fixedCost=asNumber(t,!0,!0);this._invalidate()}}get variableCost(){return this._variableCost}set variableCost(t){if(t!=this._variableCost){this._variableCost=asNumber(t,!0,!0);this._invalidate()}}get salesPrice(){return this._salesPrice}set salesPrice(t){if(t!=this._salesPrice){this._salesPrice=asNumber(t,!0,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!==this._styles){this._styles=t;this._invalidate()}}getValues(t){let e=this.salesPrice-this.variableCost;if(0==e)return null;let i=1.3*(this.fixedCost/e),s=[];for(let e=0;e<10;e++)0==t?s.push(e*i/10*this.salesPrice):1==t&&s.push(e*i/10);return s}_rendering(t,e){this.chart._plotRect;let i=e.engine,s=this.chart.axisX,r=this.chart.axisY,a=this.getValues(1),n=this.getValues(0),l=this.salesPrice-this.variableCost,h=this.fixedCost/l,o=this.fixedCost+n[n.length-1]-l*a[a.length-1],u=this.chart._plotrectId;i.startGroup(null,u);if(this.style&&this.style.fill){i.fill=this.style.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(n[n.length-1]),r.convert(h*this.salesPrice),r.convert(o)]);i.fill=null}if(this.altStyle&&this.altStyle.fill){i.fill=this.altStyle.fill;i.drawPolygon([s.convert(a[0]),s.convert(h),s.convert(a[0])],[r.convert(0),r.convert(h*this.salesPrice),r.convert(this.fixedCost)]);i.fill=null}let c=this.styles?this.styles.safetyMargin:void 0,_=this.styles?this.styles.salesRevenue:void 0,m=this.styles?this.styles.totalCost:void 0,d=this.styles?this.styles.fixedCost:void 0,g=this.styles?this.styles.variableCost:void 0,f=this.styles?this.styles.marginalProfit:void 0,p=this.styles?this.styles.breakEven:void 0;if(c&&c.fill){i.fill=c.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)),r.convert(this.fixedCost),r.convert(this.fixedCost)]);i.fill=null}if(_){this._setStyle(i,_);i.drawLine(s.convert(0),r.convert(0),s.convert(a[a.length-1]),r.convert(n[n.length-1]))}if(m){this._setStyle(i,m);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(o))}if(d){this._setStyle(i,d);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(this.fixedCost))}if(g){this._setStyle(i,g);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*this.variableCost))}if(f){this._setStyle(i,f);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)))}if(p){this._setStyle(i,p);i.drawLine(s.convert(h),r.convert(0),s.convert(h),r.convert(h*this.salesPrice));i.drawLine(s.convert(0),r.convert(h*this.salesPrice),s.convert(h),r.convert(h*this.salesPrice))}i.endGroup()}_setStyle(t,e){t.stroke=e.stroke;t.strokeWidth=e.strokeWidth?e.strokeWidth:3}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}legendItemLength(){return 9}_getStyle(t){let e=null;switch(t){case 0:e=this.style;break;case 1:e=this.altStyle;break;case 2:e=this.styles?this.styles.safetyMargin:null;break;case 3:e=this.styles?this.styles.salesRevenue:null;break;case 4:e=this.styles?this.styles.totalCost:null;break;case 5:e=this.styles?this.styles.fixedCost:null;break;case 6:e=this.styles?this.styles.variableCost:null;break;case 7:e=this.styles?this.styles.marginalProfit:null;break;case 8:e=this.styles?this.styles.breakEven:null}return e}measureLegendItem(t,e){var i=this._getName(e),s=new Size(0,0),r=this._getStyle(e);i&&r&&(s=this._measureLegendItem(t,this._getName(e)));return s}drawLegendItem(t,e,i){var s=this._getStyle(i),r=this._getName(i);r&&s&&this._drawLegendItem(t,e,i<3?5:3,r,s,this.symbolStyle)}}export var QuartileCalculation;!function(t){t[t.InclusiveMedian=0]="InclusiveMedian";t[t.ExclusiveMedian=1]="ExclusiveMedian"}(QuartileCalculation||(QuartileCalculation={}));export class BoxWhisker extends SeriesBase{constructor(t){super();this._groupWidth=.8;this._gapWidth=.1;this._showInnerPoints=!1;this._showOutliers=!1;this._quartileCalculation=QuartileCalculation.InclusiveMedian;this._chartType=ChartType.Bar;this.rendering.addHandler(this._rendering,this);this.initialize(t)}_initProperties(t){copy(this,t)}_clearValues(){super._clearValues()}get quartileCalculation(){return this._quartileCalculation}set quartileCalculation(t){if((t=asEnum(t,QuartileCalculation,!0))!=this._quartileCalculation){this._quartileCalculation=t;this._invalidate()}}get groupWidth(){return this._groupWidth}set groupWidth(t){if(t!=this._groupWidth&&t>=0&&t<=1){this._groupWidth=asNumber(t,!0);this._invalidate()}}get gapWidth(){return this._gapWidth}set gapWidth(t){if(t!=this._gapWidth&&t>=0&&t<=1){this._gapWidth=asNumber(t,!0);this._invalidate()}}get showMeanLine(){return this._showMeanLine}set showMeanLine(t){if(t!=this._showMeanLine){this._showMeanLine=asBoolean(t,!0);this._invalidate()}}get meanLineStyle(){return this._meanLineStyle}set meanLineStyle(t){if(t!=this._meanLineStyle){this._meanLineStyle=t;this._invalidate()}}get showMeanMarker(){return this._showMeanMarker}set showMeanMarker(t){if(t!=this._showMeanMarker){this._showMeanMarker=asBoolean(t,!0);this._invalidate()}}get meanMarkerStyle(){return this._meanMarkerStyle}set meanMarkerStyle(t){if(t!=this._meanMarkerStyle){this._meanMarkerStyle=t;this._invalidate()}}get showInnerPoints(){return this._showInnerPoints}set showInnerPoints(t){if(t!=this._showInnerPoints){this._showInnerPoints=asBoolean(t,!0);this._invalidate()}}get showOutliers(){return this._showOutliers}set showOutliers(t){if(t!=this._showOutliers){this._showOutliers=asBoolean(t,!0);this._invalidate()}}_rendering(t,e){e.cancel=!0;var i,s,r=this,a=r.chart,n=(r.chart,r._getAxisX()),l=r._getAxisY(),h=e.index,o=e.count,u=e.engine,c=this._plotter,_=a.series.indexOf(r),m=asType(r,SeriesBase),d=this.quartileCalculation,g=this.showOutliers,f=this.groupWidth,p=(null==this.gapWidth?.2:this.gapWidth)/2;h=h||0;var y=f/(o=o||1),v=r.getValues(0),x=r.getValues(1);if(!v)return;x||(x=c.dataInfo.getXVals());if(x){var M=c.dataInfo.getDeltaX();if(M>0){f*=M;y*=M}}var S=m._getSymbolFill(_),b=m._getAltSymbolFill(_)||S,w=m._getSymbolStroke(_),V=m._getAltSymbolStroke(_)||w,L=v.length;null!=x&&(L=Math.min(L,x.length));var P,E,T=0,B=0;let C=c.getItemFormatter(r);if(c.rotated){(T=n.origin||T)<n.actualMin?T=n.actualMin:T>n.actualMax&&(T=n.actualMax);n.convert(T);var X=l.actualMin,A=l.actualMax;for(O=0;O<L;O++){I=x?x[O]:O;if(null==(k=v[O])||0===k.length)return;c._getSymbolOrigin&&l.convert(c._getSymbolOrigin(T,O));if(c._getSymbolStyles){S=(N=c._getSymbolStyles(O))&&N.fill?N.fill:S;b=N&&N.fill?N.fill:b;w=N&&N.stroke?N.fill:w;V=N&&N.stroke?N.fill:V}P=k[0]>0?S:b;E=k[0]>0?w:V;u.fill=P;u.stroke=E;if(_DataInfo.isValid(I)&&isArray(k)&&k.length>0&&_DataInfo.isValid(k[0])){var H=I-.5*f+h*y,Y=I-.5*f+(h+1)*y;Y-=F=(Y-H)*p;if((H+=F)<X&&Y<X||H>A&&Y>A)continue;H=l.convert(H);Y=l.convert(Y);R=new _BoxPlot(k,d,g),G={min:n.convert(R.min),max:n.convert(R.max),firstQuartile:n.convert(R.firstQuartile),median:n.convert(R.median),thirdQuartile:n.convert(R.thirdQuartile),mean:n.convert(R.mean),outlierPoints:this._convertPoints(R.outlierPoints,n),innerPoints:this._convertPoints(R.innerPoints,n)},z=new Rect(Math.min(G.min,G.max),Math.min(H,Y),Math.abs(G.max-G.min),Math.abs(Y-H)),K=new _RectArea(z);var q={min:Math.min(H,Y),median:(H+Y)/2,max:Math.max(Y,H)};if(C){u.startGroup();(U=new HitTestInfo(a,new Point((G.min+G.max)/2,q.median),ChartElement.SeriesSymbol))._setData(r,O);C(u,U,()=>{this._drawBoxWhisker(u,G,q,i,s,r);i=G;s=q});u.endGroup()}else{this._drawBoxWhisker(u,G,q,i,s,r);i=G;s=q}r._setPointIndex(O,B);B++;(W=new _DataPoint(_,O,k,I)).item=R;K.tag=W;c.hitTester.add(K,_);R.outlierPoints&&R.outlierPoints.length&&R.outlierPoints.forEach((t,e)=>{let i=G.outlierPoints[e],s=new _CircleArea(new Point(i,z.top+z.height/2),2);s.tag=W;c.hitTester.add(s,_)})}}}else{(T=l.origin||T)<l.actualMin?T=l.actualMin:T>l.actualMax&&(T=l.actualMax);l.convert(T),n.actualMin,n.actualMax;for(var O=0;O<L;O++){var k,I=x?x[O]:O;if(null==(k=v[O])||0===k.length)return;c._getSymbolOrigin&&l.convert(c._getSymbolOrigin(T,O,L));if(c._getSymbolStyles){var N;S=(N=c._getSymbolStyles(O,L))&&N.fill?N.fill:S;b=N&&N.fill?N.fill:b;w=N&&N.stroke?N.stroke:w;V=N&&N.stroke?N.stroke:V}P=k[0]>0?S:b;E=k[0]>0?w:V;u.fill=P;u.stroke=E;if(_DataInfo.isValid(I)&&isArray(k)&&k.length>0&&_DataInfo.isValid(k[0])){var F,D=I-.5*f+h*y,Q=I-.5*f+(h+1)*y;D+=F=(Q-D)*p;Q-=F;D=n.convert(D);Q=n.convert(Q);if(!_DataInfo.isValid(D)||!_DataInfo.isValid(Q))continue;var W,R=new _BoxPlot(k,d,g),G={min:l.convert(R.min),max:l.convert(R.max),firstQuartile:l.convert(R.firstQuartile),median:l.convert(R.median),thirdQuartile:l.convert(R.thirdQuartile),mean:l.convert(R.mean),outlierPoints:this._convertPoints(R.outlierPoints,l),innerPoints:this._convertPoints(R.innerPoints,l)},z=new Rect(Math.min(D,Q),Math.min(G.min,G.max),Math.abs(Q-D),Math.abs(G.max-G.min)),K=new _RectArea(z),j={min:Math.min(D,Q),median:(D+Q)/2,max:Math.max(D,Q)};if(C){u.startGroup();var U;(U=new HitTestInfo(a,new Point(j.median,(G.min+G.max)/2),ChartElement.SeriesSymbol))._setData(r,O);C(u,U,()=>{this._drawBoxWhisker(u,j,G,i,s,r);i=j;s=G});u.endGroup()}else{this._drawBoxWhisker(u,j,G,i,s,r);i=j;s=G}r._setPointIndex(O,B);B++;(W=new _DataPoint(_,O,I,k)).item=R;K.tag=W;c.hitTester.add(K,_);R.outlierPoints&&R.outlierPoints.length&&R.outlierPoints.forEach((t,e)=>{let i=G.outlierPoints[e],s=new _CircleArea(new Point(z.left+z.width/2,i),2);s.tag=W;c.hitTester.add(s,_)})}}}}_convertPoints(t,e){return t.map(t=>e.convert(t))}_drawBoxWhisker(t,e,i,s,r,a){var n=a.symbolStyle,l=this.showInnerPoints,h=this.showOutliers,o=this.showMeanLine,u=this.meanLineStyle,c=this.showMeanMarker,_=this.meanMarkerStyle,m=this._plotter;t.startGroup("box-plot");t.strokeWidth=1;if(m.rotated){t.drawLine(e.min,(i.min+i.median)/2,e.min,(i.max+i.median)/2,null,n);t.drawLine(e.min,i.median,e.firstQuartile,i.median,null,n);t.drawRect(Math.min(e.firstQuartile,e.thirdQuartile),Math.min(i.min,i.max),Math.abs(e.thirdQuartile-e.firstQuartile),Math.abs(i.max-i.min),null,n);t.drawLine(e.median,i.min,e.median,i.max,null,n);t.drawLine(e.max,i.median,e.thirdQuartile,i.median,null,n);t.drawLine(e.max,(i.min+i.median)/2,e.max,(i.max+i.median)/2,null,n);o&&s&&r&&t.drawLine(e.mean,i.median,s.mean,r.median,"box-whisker-mean-line",u||n);if(c){var d=Math.abs(i.median-i.min)/2;t.drawLine(e.mean-d,i.median-d,e.mean+d,i.median+d,null,_||n);t.drawLine(e.mean+d,i.median-d,e.mean-d,i.median+d,null,_||n)}h&&e.outlierPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)});l&&e.innerPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)})}else{t.drawLine((e.min+e.median)/2,i.min,(e.max+e.median)/2,i.min,null,n);t.drawLine(e.median,i.min,e.median,i.firstQuartile,null,n);t.drawRect(Math.min(e.min,e.max),Math.min(i.firstQuartile,i.thirdQuartile),Math.abs(e.max-e.min),Math.abs(i.thirdQuartile-i.firstQuartile),null,n);t.drawLine(e.min,i.median,e.max,i.median,null,n);t.drawLine(e.median,i.max,e.median,i.thirdQuartile,null,n);t.drawLine((e.min+e.median)/2,i.max,(e.max+e.median)/2,i.max,null,n);o&&s&&r&&t.drawLine(e.median,i.mean,s.median,r.mean,"box-whisker-mean-line",u||n);if(c){d=Math.abs(e.median-e.min)/2;t.drawLine(e.median-d,i.mean-d,e.median+d,i.mean+d,null,_||n);t.drawLine(e.median-d,i.mean+d,e.median+d,i.mean-d,null,_||n)}h&&i.outlierPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)});l&&i.innerPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)})}t.endGroup()}_renderLabels(t,e,i,s){var r=this,a=this._plotter,n=e.length,l=i.dataLabel,h=l.border,o=l.offset,u=l.connectingLine,c="dataY";a.rotated&&(c="dataX");void 0===o&&(o=u?16:0);h&&(o-=2);let _=[];for(var m=0;m<n;m++){var d=e[m],g=d.tag,f=asType(g,_DataPoint,!0);if(f&&-1==_.indexOf(f)){_.push(f);var p=g.item,y=g.y;g[c]=p.min;g.yfmt=p.min;g.y=p.min;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[c]=p.firstQuartile;g.yfmt=p.firstQuartile;g.y=p.firstQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[c]=p.median;g.yfmt=p.median;g.y=p.median;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[c]=p.thirdQuartile;g.yfmt=p.thirdQuartile;g.y=p.thirdQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[c]=p.max;g.yfmt=p.max;g.y=p.max;this._plotter._renderLabel(t,d,f,i,l,r,o,s);if(this.showMeanMarker){let e=Number(p.mean.toFixed(2));g[c]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)}p.showOutliers&&p.outlierPoints&&p.outlierPoints.forEach(e=>{g[c]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)});g.y=y}}}}export class _BoxPlot{constructor(t,e,i){this._outlierPoints=[];this._innerPoints=[];this._data=t;this._quartileCalculation=e;this._showOutliers=i;this._parse()}get showOutliers(){return this._showOutliers}get min(){return this._min}get max(){return this._max}get mean(){return this._mean}get firstQuartile(){return this._firstQuartile}get thirdQuartile(){return this._thirdQuartile}get median(){return this._median}get outlierPoints(){return this._outlierPoints}get innerPoints(){return this._innerPoints}_parse(){var t=this._data.length,e=this._data,i=0;this._outlierPoints=[];this._innerPoints=[];e.sort((t,e)=>t-e);e.some(t=>{if(null==t)return!1;this._min=t;return!0});this._max=null==e[t-1]?0:e[t-1];if(this._quartileCalculation===QuartileCalculation.InclusiveMedian){this._firstQuartile=this._quartileInc(e,.25);this._median=this._quartileInc(e,.5);this._thirdQuartile=this._quartileInc(e,.75)}else{this._firstQuartile=this._quartileExc(e,.25);this._median=this._quartileExc(e,.5);this._thirdQuartile=this._quartileExc(e,.75)}this._iqr=1.5*Math.abs(this._thirdQuartile-this._firstQuartile);var s=this._firstQuartile-this._iqr,r=this._thirdQuartile+this._iqr;if(this._showOutliers){var a=this._max;this._max=this._min;this._min=a;this._data.forEach(t=>{i+=t;if(t<s||t>r)this._outlierPoints.push(t);else{t<this._min&&(this._min=t);t>this._max&&(this._max=t)}})}else i=this._data.reduce((t,e)=>t+e,0);this._innerPoints=this._data.filter(t=>{if(t>this._min&&t<this._max)return!0});this._mean=i/t}_quartileInc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];a=(i=(n-1)*e+1)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}_quartileExc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];if(2===n)return t[Math.round(e)];a=(i=(n+1)*e)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}}_registerModule("wijmo.chart.analytics",selfModule); | ||
import{asNumber,copy,asEnum,asBoolean,asType,Point,Rect,isArray,Size,culture,_addCultureInfo,isNumber,asFunction,asArray,assert,asInt,asString,isString,_registerModule}from"@grapecity/wijmo";import{SeriesBase,ChartType,_DataPoint,_RectArea,_CircleArea,HitTestInfo,ChartElement,_DataInfo,Series}from"@grapecity/wijmo.chart";import*as selfModule from"@grapecity/wijmo.chart.analytics";export class Waterfall extends SeriesBase{constructor(t){super();this._startLabel="Start";this._relativeData=!0;this._connectorLines=!1;this._showTotal=!1;this._totalLabel="Total";this._getXValues=!1;this._showIntermediateTotal=!1;this._intermediateTotalPos=[];this._chartType=ChartType.Bar;this.tooltipContent="<b>{seriesName}</b><br/>{x} {value}";this.rendering.addHandler(this._rendering,this);this.initialize(t)}get relativeData(){return this._relativeData}set relativeData(t){if(t!=this._relativeData){this._relativeData=asBoolean(t,!0);this._invalidate()}}get start(){return this._start}set start(t){if(t!=this._start){this._start=asNumber(t,!0);this._invalidate()}}get startLabel(){return this._startLabel}set startLabel(t){if(t!=this._startLabel){this._startLabel=asString(t,!1);this._invalidate()}}get showTotal(){return this._showTotal}set showTotal(t){if(t!=this._showTotal){this._showTotal=asBoolean(t,!0);this._invalidate()}}get totalLabel(){return this._totalLabel}set totalLabel(t){if(t!=this._totalLabel){this._totalLabel=asString(t,!1);this._invalidate()}}get showIntermediateTotal(){return this._showIntermediateTotal}set showIntermediateTotal(t){if(t!=this._showIntermediateTotal){this._showIntermediateTotal=asBoolean(t,!1);this._invalidate()}}get intermediateTotalPositions(){return this._intermediateTotalPositions}set intermediateTotalPositions(t){if(t!=this._intermediateTotalPositions){this._intermediateTotalPositions=asArray(t,!0);this._invalidate()}}get intermediateTotalLabels(){return this._intermediateTotalLabels}set intermediateTotalLabels(t){if(t!=this._intermediateTotalLabels){assert(null==t||isArray(t)||isString(t),"Array or string expected.");this._intermediateTotalLabels=t;this._invalidate()}}get connectorLines(){return this._connectorLines}set connectorLines(t){if(t!=this._connectorLines){this._connectorLines=asBoolean(t,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!=this._styles){this._styles=t;this._invalidate()}}getValues(t){var e,i,s,r,a=[],n=0;e=super.getValues(t);if(0===t){if(!this._yValues){a=[];var l=null!=this.start?this.start:0,h=0,o=e&&e.length||0;if(this.relativeData){for(;h<o;h++){l+=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}else{for(;h<o;h++){l=isNaN(e[h])?0:e[h];a.push(l)}this._yValues=a}if((i=this._yValues)&&i.length>0){if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){this._intermediateTotalPos=i.slice();this.intermediateTotalPositions.reduceRight((t,e)=>{var s=0===e?i[0]:i[e-1];if(i.length>e){i.splice(e,0,s);this._intermediateTotalPos.splice(e,0,!0)}else if(i.length===e){i.push(s);this._intermediateTotalPos.push(!0)}return 0},0)}if(null!=this.start){i.splice(0,0,this.start);this._intermediateTotalPos.splice(0,0,!1)}this.showTotal&&i&&i.push(i[i.length-1])}}return this._yValues}if(!this._xValues&&this._getXValues){this._xValues=e&&e.slice();this._getXValues=!1;if(this._xValues&&this._xValues.length>1){o=this._xValues.length;r=this._xValues[o-1];n=Math.abs(this._xValues[o-1]-this._xValues[o-2])}if(this.chart&&this.chart._xlabels&&this.chart._xlabels.length){s=this.chart._xlabels;if(this.showIntermediateTotal&&this.intermediateTotalPositions&&this.intermediateTotalPositions.length>0){var u=this.intermediateTotalLabels;u&&this.intermediateTotalPositions.reduceRight((t,e,i)=>{var a="";a=isString(u)?u:u[i]||"";s.length>e?s.splice(e,0,a):s.length===e&&s.push(a);if(n){r+=n;this._xValues.push(r)}return 0},0)}if(null!=this.start){s.splice(0,0,this.startLabel);if(n){r+=n;this._xValues.push(r)}}if(this.showTotal){s.push(this.totalLabel);if(n){r+=n;this._xValues.push(r)}}}}return this._xValues}legendItemLength(){return this.showTotal?3:2}measureLegendItem(t,e){var i=this._getName(e);return i?this._measureLegendItem(t,i):new Size(0,0)}drawLegendItem(t,e,i){var s=this._getLegendStyles(i);this._getName(i)&&this._drawLegendItem(t,e,ChartType.Bar,this._getName(i),s,this.symbolStyle)}_clearValues(){super._clearValues();this._xValues=null;this._yValues=null;this._wfstyle=null;this._getXValues=!0;this._intermediateTotalPos=[];this.chart&&this.chart._performBind()}_invalidate(){super._invalidate();this._clearValues()}_getXOffset(){return null!=this.start?1:0}_getYOffset(t){return this.getValues(0)[t+this._getXOffset()]}_getValue(t){let e=t;if(null!=this.start){if(0==t)return this.start;t--}return this.showIntermediateTotal&&this.intermediateTotalPositions&&this._intermediateTotalPos[e],this.getValues(0)[e]}_getItem(t){let e=null;null!=this.start&&(0==t?(e={})[this.binding]=this.start:t--);if(this.showIntermediateTotal&&this.intermediateTotalPositions){let i=this._intermediateTotalPos;if(!0===i[t]){(e={})[this.binding]=this.getValues(0)[t];return e}{let e=t;for(let s=0;s<t;s++)!0===i[s]&&e--;t=e}}e||!(e=super._getItem(t))&&this.showTotal&&this._yValues&&this._yValues.length>0&&((e={})[this.binding]=this._yValues[this._yValues.length-1]);return e}_rendering(t,e){e.cancel=!0;this._wfstyle=null;var i,s,r,a,n,l,h=this.chart,o=this._getAxisY(),u=this._getAxisX(),_=o.origin||0,c=e.engine;this._barPlotter=h._getPlotter(this);r=this._barPlotter.rotated;this._barPlotter._getSymbolOrigin||(this._barPlotter._getSymbolOrigin=(t,e,i)=>0===e?t:!0===this._intermediateTotalPos[e]?t:e===i-1&&this.showTotal?t:this._yValues[e-1]);this._barPlotter._getSymbolStyles||(this._barPlotter._getSymbolStyles=(t,e)=>{var i=this._getStyles();return 0===t&&null!=this.start?i.start:!0===this._intermediateTotalPos[t]?i.intermediateTotal:t===e-1&&this.showTotal?i.total:0==t?this._yValues[t]<0?i.falling:i.rising:this._yValues[t]<this._yValues[t-1]?i.falling:i.rising});this._barPlotter.plotSeries(c,u,o,t,h,0,1);if(this.connectorLines&&(a=this._barPlotter.hitTester._map[0])&&a.length){c.startGroup(Waterfall.CSS_CONNECTOR_LINE_GROUP);l=this._yValues[0]<_;n=a[0].rect;for(i=1,s=a.length;i<s;i++)if(!0!==this._intermediateTotalPos[i]||i===s-1){this._drawConnectorLine(c,r,n,a[i].rect,l);n=a[i].rect;l=this._yValues[i]<this._yValues[i-1]}c.endGroup()}}_getStyles(){if(this._wfstyle)return this._wfstyle;var t=this._chart.series.indexOf(this),e=this._getSymbolFill(t),i=this._getSymbolStroke(t),s=this.styles||{};this._wfstyle={start:this._getStyleByKey(s,"start",e,i),intermediateTotal:this._getStyleByKey(s,"intermediateTotal",e,i),total:this._getStyleByKey(s,"total",e,i),falling:this._getStyleByKey(s,"falling","red","red"),rising:this._getStyleByKey(s,"rising","green","green")};return this._wfstyle}_getStyleByKey(t,e,i,s){return{fill:t[e]&&t[e].fill?t[e].fill:i,stroke:t[e]&&t[e].stroke?t[e].stroke:s}}_drawConnectorLine(t,e,i,s,r){var a=new Point,n=new Point,l=this.chart.axisY.reversed,h=this.chart.axisX.reversed;l^=r;if(e){if(l){a.x=i.left;n.x=i.left}else{a.x=i.left+i.width;n.x=i.left+i.width}if(h){a.y=i.top;n.y=s.top+s.height}else{a.y=i.top+i.height;n.y=s.top}}else{if(l){a.y=i.top+i.height;n.y=i.top+i.height}else{a.y=i.top;n.y=i.top}if(h){a.x=i.left+i.width;n.x=s.left}else{a.x=i.left;n.x=s.left+s.width}}t.drawLine(a.x,a.y,n.x,n.y,Waterfall.CSS_CONNECTOR_LINE,this.styles&&this.styles.connectorLines||{stroke:"black"})}_getLegendStyles(t){if(t<0||null===this.styles)return null;var e=this._getStyles();return 0===t?e.rising:1===t?e.falling:e.total}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}}Waterfall.CSS_CONNECTOR_LINE_GROUP="water-fall-connector-lines";Waterfall.CSS_CONNECTOR_LINE="water-fall-connector-line";Waterfall.CSS_ENDLABEL="water-fall-end-label";export class TrendLineBase extends SeriesBase{constructor(t){super();this._chartType=ChartType.Line;this._sampleCount=100;this.initialize(t)}get sampleCount(){return this._sampleCount}set sampleCount(t){if((t=asNumber(t,!1,!0))!=this._sampleCount){this._sampleCount=t;this._invalidate()}}approximate(t){return 0}getValues(t){var e=this.binding,i=this.bindingX;if(e!==this._bind){this._bind=e;this.binding=e}if(i!==this._bindX){this._bindX=i;this.bindingX=i}null==this._originYValues&&(this._originYValues=super.getValues(0));null==this._originXValues&&(this._originXValues=super.getValues(1));if(null==this._originXValues||null==this._originYValues)return null;super.getValues(t);null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){}_invalidate(){super._invalidate();this._clearCalculatedValues()}_clearValues(){super._clearValues();this._originXValues=null;this._originYValues=null;this._clearCalculatedValues()}_clearCalculatedValues(){this._xValues=null;this._yValues=null}}export var MovingAverageType;!function(t){t[t.Simple=0]="Simple";t[t.Weighted=1]="Weighted";t[t.Exponential=2]="Exponential";t[t.Triangular=3]="Triangular"}(MovingAverageType||(MovingAverageType={}));export class MovingAverage extends TrendLineBase{constructor(t){super();this._chartType=ChartType.Line;this._type=MovingAverageType.Simple;this._period=2;this.initialize(t)}get type(){return this._type}set type(t){if((t=asEnum(t,MovingAverageType,!1))!=this._type){this._type=t;this._invalidate()}}get period(){return this._period}set period(t){if((t=asNumber(t,!1,!0))!=this._period){this._period=asNumber(t,!1,!0);this._invalidate()}}_checkPeriod(){var t=this.period,e=this._originXValues;t<=1&&assert(!1,"period must be greater than 1.");e&&e.length&&t>=e.length&&assert(!1,"period must be less than itemSource's length.")}_calculateValues(){this._type;var t="_calculate"+MovingAverageType[this._type],e=[],i=[];this._checkPeriod();this[t]&&this[t].call(this,e,i);this._yValues=i;this._xValues=e}_calculateSimple(t,e,i=!1){for(var s=this._originXValues,r=this._originYValues,a=s.length,n=this._period,l=0,h=0;h<a;h++){l+=r[h]||0;h>=n&&(l-=r[h-n]||0);if(h>=n-1){t.push(s[h]);e.push(l/n)}else if(i){t.push(s[h]);e.push(l/(h+1))}}}_calculateWeighted(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=a*(a+1)/2,l=0,h=0,o=0;o<r;o++){o>0&&(l+=s[o-1]||0);o>a&&(l-=s[o-a-1]||0);if(o<a-1)h+=(s[o]||0)*(o+1);else{h+=(s[o]||0)*a;o>a-1&&(h-=l);t.push(i[o]);e.push(h/n)}}}_calculateExponential(t,e){for(var i=this._originXValues,s=this._originYValues,r=i.length,a=this._period,n=0,l=0;l<r;l++)if(l<=a-2){n+=s[l]||0;l===a-2&&(n/=a-1)}else{n+=2/(a+1)*((s[l]||0)-n);t.push(i[l]);e.push(n)}}_calculateTriangular(t,e){var i=this._period,s=[],r=[],a=0;this._calculateSimple(s,r,!0);for(var n=0,l=s.length;n<l;n++){a+=r[n]||0;n>=i&&(a-=r[n-i]||0);if(n>=i-1){t.push(s[n]);e.push(a/i)}}}}class MathHelper{static round(t,e){if(!t)return 0;var i=Math.pow(10,e||2);return Math.round(t*i)/i}static avg(t){return MathHelper.sum(t)/t.length}static sum(t){return(t=asArray(t,!1)).reduce((t,e)=>t+e,0)}static sumOfPow(t,e){t=asArray(t,!1);e=asNumber(e,!1);return t.reduce((t,i)=>t+Math.pow(i,e),0)}static sumProduct(...t){t.length;var e,i,s=0,r=[];(t=asArray(t,!1)).forEach((t,e)=>{t=asArray(t,!1);0===e?s=t.length:assert(t.length===s,"The length of the arrays must be equal")});for(e=0;e<s;e++){i=1;t.some((t,s)=>{var r=t[e];if(!r||!isNumber(r)){i=0;return!0}i*=r});r.push(i)}return MathHelper.sum(r)}static variance(t){t=asArray(t,!1);var e,i=MathHelper.avg(t);e=t.map(t=>t-i);return MathHelper.sumOfSquares(e)/(t.length-1)}static covariance(t,e){t=asArray(t,!1);e=asArray(e,!1);assert(t.length===e.length,"Length of arrays must be equal");var i,s=MathHelper.avg(t),r=MathHelper.avg(e),a=t.length,n=0;for(i=0;i<a;i++)n+=(t[i]-s)*(e[i]-r)/a;return n}}MathHelper.min=t=>Math.min.apply(Math,asArray(t,!1));MathHelper.max=t=>Math.max.apply(Math,asArray(t,!1));MathHelper.square=t=>Math.pow(asNumber(t,!1),2);MathHelper.sumOfSquares=t=>MathHelper.sumOfPow(t,2);MathHelper.stdDev=t=>Math.sqrt(MathHelper.variance(t));export var TrendLineFitType;!function(t){t[t.Linear=0]="Linear";t[t.Exponential=1]="Exponential";t[t.Logarithmic=2]="Logarithmic";t[t.Power=3]="Power";t[t.Fourier=4]="Fourier";t[t.Polynomial=5]="Polynomial";t[t.MinX=6]="MinX";t[t.MinY=7]="MinY";t[t.MaxX=8]="MaxX";t[t.MaxY=9]="MaxY";t[t.AverageX=10]="AverageX";t[t.AverageY=11]="AverageY"}(TrendLineFitType||(TrendLineFitType={}));export class TrendLine extends TrendLineBase{constructor(t){super();this._minX=null;this._maxX=null;this._fitType=TrendLineFitType.Linear;this._order=2;this.initialize(t)}get fitType(){return this._fitType}set fitType(t){if((t=asEnum(t,TrendLineFitType,!1))!=this._fitType){this._fitType=t;this._invalidate()}}get order(){return this._order}set order(t){if(t!=this._order){this._order=asNumber(t,!1,!0);this._invalidate()}}get minX(){return this._minX}set minX(t){if(t!=this._minX){this._minX=asNumber(t,!0);this._invalidate()}}get maxX(){return this._maxX}set maxX(t){if(t!=this._maxX){this._maxX=asNumber(t,!0);this._invalidate()}}get coefficients(){return this._helper?this._helper.coefficients:null}approximate(t){return this._helper?this._helper.approximate(t):NaN}getEquation(t){return(this._helper?this._helper.getEquation(t):"").replace(/\S(\+|\-)\d/g,(function(t){return t[0]+" "+t[1]+" "+t[2]}))}_calculateValues(){var t=TrendLineFitType[this._fitType];if(TrendLineHelper[t]){var e=!1,i=this._originXValues;if(0==this._chart._xvals.length&&this._chart._xlabels.length>0){i=this._originXValues.map(t=>t+1);e=!0}var s=new TrendLineHelper[t](this._originYValues,i,this.sampleCount,this.order);null!==this.minX&&(s.xMin=this.minX);null!==this.maxX&&(s.xMax=this.maxX);s._isXString=e;var r=s.calculateValues();this._yValues=r[0];this._xValues=r[1];this._helper=s}}}class Calculator{constructor(t,e){this._x=t;this._y=e}get x(){return this._x}get y(){return this._y}get minX(){null==this._minX&&(this._minX=MathHelper.min(this._x));return this._minX}get minY(){null==this._minY&&(this._minY=MathHelper.min(this._y));return this._minY}get maxX(){null==this._maxX&&(this._maxX=MathHelper.max(this._x));return this._maxX}get maxY(){null==this._maxY&&(this._maxY=MathHelper.max(this._y));return this._maxY}get averageX(){null==this._averageX&&(this._averageX=MathHelper.avg(this._x));return this._averageX}get averageY(){null==this._averageY&&(this._averageY=MathHelper.avg(this._y));return this._averageY}get sumX(){null==this._sumX&&(this._sumX=MathHelper.sum(this._x));return this._sumX}get sumY(){null==this._sumY&&(this._sumY=MathHelper.sum(this._y));return this._sumY}get LogX(){null==this._logX&&(this._logX=this._x.map(t=>Math.log(t)));return this._logX}get LogY(){null==this._logY&&(this._logY=this._y.map(t=>Math.log(t)));return this._logY}get sumLogX(){null==this._sumLogX&&(this._sumLogX=MathHelper.sum(this.LogX));return this._sumLogX}get sumLogY(){null==this._sumLogY&&(this._sumLogY=MathHelper.sum(this.LogY));return this._sumLogY}get sumOfSquareX(){null==this._sumOfSquareX&&(this._sumOfSquareX=MathHelper.sumOfSquares(this._x));return this._sumOfSquareX}get sumOfSquareY(){null==this._sumOfSquareY&&(this._sumOfSquareY=MathHelper.sumOfSquares(this._y));return this._sumOfSquareY}get sumOfSquareLogX(){null==this._sumOfSquareLogX&&(this._sumOfSquareLogX=MathHelper.sumOfSquares(this.LogX));return this._sumOfSquareLogX}get sumOfSquareLogY(){null==this._sumOfSquareLogY&&(this._sumOfSquareLogY=MathHelper.sumOfSquares(this.LogY));return this._sumOfSquareLogY}sumProduct(t,e){null==this._sumProduct&&(this._sumProduct=MathHelper.sumProduct(t,e));return this._sumProduct}}class TrendHelperBase{constructor(t,e,i){this._coefficients=[];this.y=asArray(t);this.x=asArray(e);assert(t.length===e.length,"Length of X and Y arrays are not equal");this.count=i||t.length;this._calculator=new Calculator(e,t);this.xMin=this._calculator.minX;this.xMax=this._calculator.maxX}get calculator(){return this._calculator}get y(){return this._y}set y(t){t!==this.y&&(this._y=asArray(t,!1))}get x(){return this._x}set x(t){t!==this.x&&(this._x=asArray(t,!1))}get count(){return this._count}set count(t){t!==this.count&&(this._count=asInt(t,!1,!0))}get xMin(){return this._xMin}set xMin(t){t!==this.xMin&&(this._xMin=asNumber(t,!1))}get xMax(){return this._xMax}set xMax(t){t!==this.xMax&&(this._xMax=asNumber(t,!1))}get coefficients(){return this._coefficients}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this._coefficients.push(e,t)}calculateValues(){for(var t=(this.xMax-this.xMin)/(this.count-1),e=[[],[]],i=0;i<this.count;i++){var s=this.xMin+t*i,r=this.calcY(s);e[0].push(r);this._isXString?e[1].push(s-1):e[1].push(s)}return e}calcA(t){var e=this.y.length,i=this.calculator.sumX;return(this.calculator.sumY-(t=t||this.calcB())*i)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.x,e.y),s=e.sumX;return(t*i-s*e.sumY)/(t*e.sumOfSquareX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]+e[1]*t}approximate(t){return this.calcY(t)}getEquation(t){t=t||this._defaultEquationFmt;return this._getEquation(t)}_getEquation(t){var e=this.coefficients,i=[];e.forEach(e=>{i.push(t(e))});return this._concatEquation(i)}_concatEquation(t){return""}_defaultEquationFmt(t){var e,i=Math.abs(t),s=String(i),r=0;if(i>=1e5){e=String(Math.round(i)).length-1;return Math.round(t/Number("1e"+e))+"e"+e}if(i<1e-4){e=s.indexOf("e")>-1?Math.abs(+s.substring(s.indexOf("e")+1)):s.match(/\.0+/)[0].length;return Math.round(t*Number("1e"+e))+"e-"+e}r=t>0?6:7;i>=1e4&&r--;return String(+String(t).substring(0,r))}}class LinearHelper extends TrendHelperBase{get yOffset(){return this._yOffset}set yOffset(t){t!==this.yOffset&&(this._yOffset=asNumber(t,!0))}constructor(t,e,i,s){super(t,e,i);this._calculateCoefficients();this.yOffset=s}calcA(t){return null!=this.yOffset?this.yOffset:super.calcA(t)}calcB(){return null!=this.yOffset?this._calculateBSimple():super.calcB()}_calculateBSimple(){var t=this.calculator,e=t.sumProduct(t.x,t.y),i=t.sumX,s=t.sumOfSquareX;return(e-this.yOffset*i)/s}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return e[0]*t+e[1]}_concatEquation(t){return"y = "+t[0]+"x"+(this.coefficients[1]>=0?"+":"")+t[1]}}class LogHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.y.length,i=this.calculator,s=i.sumY,r=i.sumLogX;return(s-(t=t||this.calcB())*r)/e}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.y,e.LogX),s=e.sumY,r=e.sumLogX;return(t*i-s*r)/(t*e.sumOfSquareLogX-MathHelper.square(r))}_calculateCoefficients(){var t=this.calcB(),e=this.calcA(t);this.coefficients.push(t,e)}calcY(t){var e=this.coefficients;return Math.log(t)*e[0]+e[1]}_concatEquation(t){return"y = "+t[0]+"ln(x)"+(this.coefficients[1]>=0?"+":"")+t[1]}}class ExpHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX,a=e.sumProduct(e.x,e.LogY);return Math.exp((i*s-r*a)/(t*s-MathHelper.square(r)))}calcB(){var t=this.y.length,e=this.calculator,i=e.sumLogY,s=e.sumOfSquareX,r=e.sumX;return(t*e.sumProduct(e.x,e.LogY)-r*i)/(t*s-MathHelper.square(r))}calcY(t){var e=this.coefficients;return e[0]*Math.exp(e[1]*t)}_concatEquation(t){return"y = "+t[0]+"e<sup>"+t[1]+"x</sup>"}}class PowerHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}calcA(t){var e=this.calculator,i=this.y.length,s=e.sumLogX,r=e.sumLogY;t=t||this.calcB();return Math.exp((r-t*s)/i)}calcB(){var t=this.y.length,e=this.calculator,i=e.sumProduct(e.LogX,e.LogY),s=e.sumLogX;return(t*i-s*e.sumLogY)/(t*e.sumOfSquareLogX-MathHelper.square(s))}calcY(t){var e=this.coefficients;return e[0]*Math.pow(t,e[1])}_concatEquation(t){return"y = "+t[0]+"x<sup>"+t[1]+"</sup>"}}class LeastSquaresHelper extends TrendHelperBase{constructor(t,e,i,s){super(t,e,i);this._order=null==s?2:s;this._basis=[];this._calculateCoefficients()}get basis(){return this._basis}get order(){return this._order}set order(t){this._order=asNumber(t,!0)}_calculateCoefficients(){this._coefficients.length=this.order;this._createBasis();this._normalizeAndSolveGauss()}_createBasis(){var t=this.x.length,e=this.order;if(t<2)throw"Incompatible data: Less than 2 data points.";if(e<1)throw"Incompatible data: Less than 1 coefficient in the fit";if(e>t)throw"Incompatible data: Number of data points less than number of terms"}_normalizeAndSolveGauss(){var t=[];this._computeNormalEquations(t);this._genDefValForArray(t,0);if(!this._solveGauss(t))throw"Incompatible data: No solution."}_genDefValForArray(t,e){var i=t.length+1;t.forEach(t=>{for(var s=0;s<i;s++)null==t[s]&&(t[s]=e)})}_computeNormalEquations(t){var e,i,s,r,a=this.y,n=this.basis,l=this.order,h=a.length;for(e=0;e<l;e++){s=0;null==t[e]&&(t[e]=[]);a.forEach((t,i)=>{s+=t*n[i][e]});t[e][l]=s;for(i=e;i<l;i++){s=0;for(r=0;r<h;r++)s+=n[r][i]*n[r][e];null==t[i]&&(t[i]=[]);t[i][e]=s;t[e][i]=s}}}_solveGauss(t){var e,i,s=t.length,r=this._coefficients,a=!0;if(r.length<s||t[0].length<s+1)throw"Dimension of matrix is not correct.";t.some((e,r)=>{var n,l,h=r,o=Math.abs(e[r]);for(i=r+1;i<s;i++)if(o<(n=Math.abs(t[i][r]))){o=n;h=i}if(!(o>0)){a=!1;return!0}for(i=r;i<=s;i++){l=t[r][i];t[r][i]=t[h][i];t[h][i]=l}for(h=r+1;h<s;h++){l=t[h][r]/e[r];t[h][r]=0;for(i=r+1;i<=s;i++)t[h][i]-=l*e[i]}});if(a)for(e=s-1;e>=0;e--){r[e]=t[e][s];for(i=e+1;i<s;i++)r[e]-=t[e][i]*r[i];r[e]=r[e]/t[e][e]}return a}}class PolyHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s)}get coefficients(){return this._coefficients.slice(0).reverse()}calcY(t){var e=this._coefficients,i=0,s=1;e.forEach((e,r)=>{r>0&&(s*=t);i+=e*s});return i}_calculateCoefficients(){this._coefficients;this.order++;0;super._calculateCoefficients();0;this.order--}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{e[s]=[1];for(var r=1;r<=i;r++)e[s][r]=t*e[s][r-1]})}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a,n=i-1-r;if(0===n)e+=t;else if(1===n){a=s[r+1]>=0?"+":"";e+=t+"x"+a}else{a=s[r+1]>=0?"+":"";e+=t+"x<sup>"+n+"</sup>"+a}}));return e}}class FourierHelper extends LeastSquaresHelper{constructor(t,e,i,s){super(t,e,i,s=null==s?e.length:s)}_createBasis(){super._createBasis();var t=this.x,e=this.basis,i=this.order;t.forEach((t,s)=>{var r,a;e[s]=[1];for(r=1;r<i;r++){a=Math.floor((r+1)/2);r%2==1?e[s].push(Math.cos(a*t)):e[s].push(Math.sin(a*t))}})}calcY(t){var e;this._coefficients.forEach((i,s)=>{var r,a=Math.floor((s+1)/2);if(0===s)e=i;else{r=a*t;e+=s%2==1?i*Math.cos(r):i*Math.sin(r)}});return e}_concatEquation(t){var e="y = ",i=t.length,s=this.coefficients;t.forEach((function(t,r){var a=r===i-1?"":s[r+1]>=0?"+":"",n="",l=Math.ceil(r/2);if(0===r)e+=t+a;else{n=r%2==1?"cos":"sin";n+="("+(1===l?"":String(l))+"x)";e+=t+n+a}}));return e}}class SimpleTrendHelper extends TrendHelperBase{constructor(t,e,i){super(t,e,i);this._calculateCoefficients()}_setVal(t){this._val=t}calcY(t){return this._val}}class MinXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMin;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MinYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.min(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.min(this.y);t&&(e=t(e));return"y = "+e}}class MaxXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMax,s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}getEquation(t){var e=this.xMax;this._isXString&&(e-=1);t&&(e=t(e));return"x = "+e}}class MaxYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=this.xMin,s=this.xMax,r=MathHelper.max(this.y);if(this._isXString){i-=1;s-=1}t=[i,s];e=[r,r];this._setVal(r);return[e,t]}getEquation(t){var e=MathHelper.max(this.y);t&&(e=t(e));return"y = "+e}}class AverageXHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.x),s=MathHelper.min(this.y),r=MathHelper.max(this.y);this._isXString&&(i-=1);t=[i,i];e=[s,r];this._setVal(i);return[e,t]}_getEquation(t){var e=MathHelper.avg(this.x);this._isXString&&(e-=1);t&&(e=t(e));return" x ="+e}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}class AverageYHelper extends SimpleTrendHelper{constructor(t,e,i){super(t,e,i)}calculateValues(){var t,e,i=MathHelper.avg(this.y),s=this.xMin,r=this.xMax;if(this._isXString){s-=1;r-=1}t=[s,r];e=[i,i];this._setVal(i);return[e,t]}_getEquation(t){return"y = "+t(MathHelper.avg(this.y))}_defaultEquationFmt(t){return Math.abs(t)<1e5?super._defaultEquationFmt(t):""+MathHelper.round(t,2)}}var TrendLineHelper={TrendHelperBase:TrendHelperBase,Linear:LinearHelper,Exponential:ExpHelper,Logarithmic:LogHelper,Power:PowerHelper,Polynomial:PolyHelper,Fourier:FourierHelper,MinX:MinXHelper,MinY:MinYHelper,MaxX:MaxXHelper,MaxY:MaxYHelper,AverageX:AverageXHelper,AverageY:AverageYHelper};export class FunctionSeries extends TrendLineBase{constructor(t){super();this._min=0;this._max=1;this.initialize(t);null==this.itemsSource&&(this.itemsSource=[new Point(0,0)])}get min(){return this._min}set min(t){if(this._min!==t){this._min=asNumber(t,!1);this._invalidate()}}get max(){return this._max}set max(t){if(this._max!==t){this._max=asNumber(t,!1);this._invalidate()}}getValues(t){null!=this._xValues&&null!=this._yValues||this._calculateValues();return 0===t?this._yValues||null:1===t?this._xValues||null:void 0}_calculateValues(){for(var t,e=this.sampleCount,i=[],s=[],r=(this.max-this.min)/(e-1),a=0;a<e;a++){t=a===e-1?this.max:this.min+r*a;i[a]=this._calculateX(t);s[a]=this._calculateY(t)}this._yValues=s;this._xValues=i}_validateValue(t){return isFinite(t)?t:Number.NaN}_calculateValue(t,e){var i;try{i=t(e)}catch(t){i=Number.NaN}return this._validateValue(i)}_calculateX(t){return 0}_calculateY(t){return 0}}export class YFunctionSeries extends FunctionSeries{constructor(t){super(t)}get func(){return this._func}set func(t){if(t&&this._func!==t){this._func=asFunction(t,!1);this._invalidate()}}_calculateX(t){return t}_calculateY(t){return this._calculateValue(this.func,t)}approximate(t){return this._calculateValue(this.func,t)}}export class ParametricFunctionSeries extends FunctionSeries{constructor(t){super(t)}get xFunc(){return this._xFunc}set xFunc(t){if(t&&this._xFunc!==t){this._xFunc=asFunction(t,!1);this._invalidate()}}get yFunc(){return this._yFunc}set yFunc(t){if(t&&this._yFunc!==t){this._yFunc=asFunction(t,!1);this._invalidate()}}_calculateX(t){return this._calculateValue(this.xFunc,t)}_calculateY(t){return this._calculateValue(this.yFunc,t)}approximate(t){var e=this._calculateValue(this.xFunc,t),i=this._calculateValue(this.yFunc,t);return new Point(e,i)}}export var ErrorAmount;!function(t){t[t.FixedValue=0]="FixedValue";t[t.Percentage=1]="Percentage";t[t.StandardDeviation=2]="StandardDeviation";t[t.StandardError=3]="StandardError";t[t.Custom=4]="Custom"}(ErrorAmount||(ErrorAmount={}));export var ErrorBarEndStyle;!function(t){t[t.Cap=0]="Cap";t[t.NoCap=1]="NoCap"}(ErrorBarEndStyle||(ErrorBarEndStyle={}));export var ErrorBarDirection;!function(t){t[t.Both=0]="Both";t[t.Minus=1]="Minus";t[t.Plus=2]="Plus"}(ErrorBarDirection||(ErrorBarDirection={}));export class ErrorBar extends Series{constructor(t){super();this._errorAmount=ErrorAmount.FixedValue;this._endStyle=ErrorBarEndStyle.Cap;this._direction=ErrorBarDirection.Both;this.rendering.addHandler(this._rendering,this);this.initialize(t)}get value(){return this._value}set value(t){if(t!=this._value){this._value=t;this._invalidate()}}get errorAmount(){return this._errorAmount}set errorAmount(t){if((t=asEnum(t,ErrorAmount,!0))!=this._errorAmount){this._errorAmount=t;this._invalidate()}}get errorBarStyle(){return this._errorBarStyle}set errorBarStyle(t){if(t!=this._errorBarStyle){this._errorBarStyle=t;this._invalidate()}}get endStyle(){return this._endStyle}set endStyle(t){if((t=asEnum(t,ErrorBarEndStyle,!0))!=this._endStyle){this._endStyle=t;this._invalidate()}}get direction(){return this._direction}set direction(t){if((t=asEnum(t,ErrorBarDirection,!0))!=this._direction){this._direction=t;this._invalidate()}}getDataRect(t,e){if(!t)return null;this._chart;var i,s=this.errorAmount,r=0,a=0;this._paddings=[];this._calculateErrorValue();var n,l,h=this.getValues(0),o=t.top,u=t.bottom;if(!h)return t;for(n=0,i=h.length;n<i;n++){var _={plus:0,val:0,minus:0},c=this._value||0;l=h[n];switch(s){case ErrorAmount.Custom:(_=this._getCustomValue(n)).val=l;this._paddings.push(_);break;case ErrorAmount.FixedValue:this._paddings.push({plus:c,minus:c,val:l});break;case ErrorAmount.Percentage:this._paddings.push({plus:l*c,minus:l*c,val:l});break;case ErrorAmount.StandardDeviation:this._paddings.push({plus:this._errorValue*c,minus:this._errorValue*c,val:l});break;case ErrorAmount.StandardError:this._paddings.push({plus:this._errorValue,minus:this._errorValue,val:l})}(isNaN(o)||o>l-_.minus)&&(o=l-_.minus);(isNaN(u)||u<l+_.plus)&&(u=l+_.plus)}switch(s){case ErrorAmount.FixedValue:r=c;a=c;break;case ErrorAmount.Percentage:r=o*c;a=u*c;break;case ErrorAmount.StandardDeviation:r=this._errorValue*c;a=this._errorValue*c;break;case ErrorAmount.StandardError:r=this._errorValue;a=this._errorValue}this._showPlus&&(u+=a);this._showMinus&&(o-=r);return new Rect(t.left,o,t.width,u-o)}_getCustomValue(t){var e,i=this.value,s={minus:0,val:0,plus:0};if(null!=this._minusBindingValues||null!=this._plusBindingValues){s.minus=this._minusBindingValues&&this._minusBindingValues[t]||0;s.plus=this._plusBindingValues&&this._plusBindingValues[t]||0;return s}if(null==i)return s;if(isArray(i)){(e=i[t])&&e.minus&&(s.minus=e.minus);e&&e.plus&&(s.plus=e.plus)}else if(isNumber(i)){s.minus=i;s.plus=i}else{i.minus&&(s.minus=i.minus);i.plus&&(s.plus=i.plus)}return s}_calculateErrorValue(){var t=0,e=0,i=0;if(this._errorAmount===ErrorAmount.StandardDeviation||this._errorAmount===ErrorAmount.StandardError){var s=this.getValues(0);if(null!=s){s.forEach(i=>{t+=i;e++});i=t/e;this._mean=i;t=0;s.forEach(e=>{t+=Math.pow(e-i,2)});this._errorValue=Math.sqrt(t/(e-1))}this._errorAmount==ErrorAmount.StandardError&&(this._errorValue=this._errorValue/Math.sqrt(e))}}_clearValues(){this.__errorValue=null;this._mean=null;this._plusBindingValues=null;this._minusBindingValues=null;super._clearValues()}getValues(t){if(0==t&&this.errorAmount===ErrorAmount.Custom){var e=this._getBinding(1),i=this._getBinding(2);if((null==this._plusBindingValues||null==this._minusBindingValues)&&e&&i)if(null!=this._cv){if(e){var s=this._bindValues(this._cv.items,e);this._plusBindingValues=s.values}if(i){var r=this._bindValues(this._cv.items,i);this._minusBindingValues=r.values}}else if(null!=this.binding&&null!=this._chart&&null!=this._chart.collectionView){if(e){s=this._bindValues(this._chart.collectionView.items,e);this._plusBindingValues=s.values}if(i){r=this._bindValues(this._chart.collectionView.items,i);this._minusBindingValues=r.values}}}return super.getValues(t)}get _chart(){return this.__chart}set _chart(t){t!==this.__chart&&(this.__chart=t)}get _errorValue(){return this.__errorValue}set _errorValue(t){t!=this.__errorValue&&(this.__errorValue=t)}get _showPlus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Plus}get _showMinus(){return this.direction===ErrorBarDirection.Both||this.direction===ErrorBarDirection.Minus}_rendering(t,e){this._errorBarEles=[];e.cancel=!0;var i=this.chart,s=i._plotRect,r=this._getAxisY(),a=this._getAxisX(),n=(r.origin,e.engine),l=i.series.indexOf(this),h=this._plotter;h.plotSeries(n,a,r,this,i,e.index,e.count,t=>{var e,o,u,_=this._paddings,c=this._showPlus,m=this._showMinus,d=i._isRotated(),g=this.errorBarStyle&&this.errorBarStyle["stroke-width"]||2;u=(o=d?a:r).actualMax;e=o.convert(u);var f=n.stroke,p=n.strokeWidth;n.stroke="black";n.strokeWidth=1;let v=this.chart._plotrectId;n.startGroup(null,v);t&&t.length&&t.forEach((t,i)=>{if(null!=t&&null!=t.x&&null!=t.y){var r=_[i],a=r&&r.minus||0,f=r&&r.plus||0,p=Math.abs(o.convert(u-a)-e),v=Math.abs(o.convert(u+f)-e),y=new Point(t.x,t.y),x=new Point(t.x,t.y);if(d){if(this.errorAmount===ErrorAmount.StandardDeviation){t=new Point(o.convert(this._mean),t.y);y.x=t.x;x.x=t.x}m&&(y.x=y.x-p);c&&(x.x=x.x+v)}else{if(this.errorAmount===ErrorAmount.StandardDeviation){t=new Point(t.x,o.convert(this._mean));y.y=t.y;x.y=t.y}m&&(y.y=y.y+p);c&&(x.y=x.y-v)}let M;M=d?new Rect(y.x,y.y-g,Math.abs(x.x-y.x),2*g):new Rect(x.x-g,x.y,2*g,Math.abs(x.y-y.y));let S=new _RectArea(M);S.ignoreLabel=!0;let b=new _DataPoint(l,i,i,r.val);S.tag=b;h.hitTester.add(S,l);let w=[n.drawLine(y.x,y.y,x.x,x.y,"error-bar",this.errorBarStyle)];this._errorBarEles[i]=w;if(this.endStyle===ErrorBarEndStyle.Cap){if(c){let t;if(d){if(x.x<=s.right){t=n.drawLine(x.x,x.y-g,x.x,x.y+g,"error-bar",this.errorBarStyle);w.push(t)}}else if(x.y>=s.top){t=n.drawLine(x.x-g,x.y,x.x+g,x.y,"error-bar",this.errorBarStyle);w.push(t)}}if(m){let t;if(d){if(y.x>=s.left){t=n.drawLine(y.x,y.y-g,y.x,y.y+g,"error-bar",this.errorBarStyle);w.push(t)}}else if(y.y<=s.bottom){t=n.drawLine(y.x-g,y.y,y.x+g,y.y,"error-bar",this.errorBarStyle);w.push(t)}}}}});n.endGroup();n.stroke=f;n.strokeWidth=p})}getPlotElement(t){if(this.hostElement&&t<this._pointIndexes.length){let i=null==this._errorBarEles[t]?[]:this._errorBarEles[t].slice();var e=this._pointIndexes[t];e<this.hostElement.childNodes.length&&i.push(this.hostElement.childNodes[e]);return i}return null}}_addCultureInfo("FlexChartAnalytics",{BreakEven:{profitArea:"Profit Area",lossArea:"Loss Area",safetyMargin:"Safety Margin",salesRevenue:"Sales Revenue",totalCost:"Total Cost",fixedCost:"Fixed Cost",variableCost:"Variable Cost",marginalProfit:"Marginal Profit",breakEven:"Break Even"}});export class BreakEven extends SeriesBase{constructor(t){super();this.rendering.addHandler(this._rendering,this);this.style={fill:"rgba(0,255,0,0.5)",strokeWidth:0};this.altStyle={fill:"rgba(255,0,0,0.5)",strokeWidth:0};this.tooltipContent="{y}";this.initialize(t);this._chartType=ChartType.Line;let e=culture.FlexChartAnalytics.BreakEven;this.name=e.profitArea+","+e.lossArea+","+e.safetyMargin+","+e.salesRevenue+","+e.totalCost+","+e.fixedCost+","+e.variableCost+","+e.marginalProfit+","+e.breakEven}get fixedCost(){return this._fixedCost}set fixedCost(t){if(t!=this._fixedCost){this._fixedCost=asNumber(t,!0,!0);this._invalidate()}}get variableCost(){return this._variableCost}set variableCost(t){if(t!=this._variableCost){this._variableCost=asNumber(t,!0,!0);this._invalidate()}}get salesPrice(){return this._salesPrice}set salesPrice(t){if(t!=this._salesPrice){this._salesPrice=asNumber(t,!0,!0);this._invalidate()}}get styles(){return this._styles}set styles(t){if(t!==this._styles){this._styles=t;this._invalidate()}}getValues(t){let e=this.salesPrice-this.variableCost;if(0==e)return null;let i=1.3*(this.fixedCost/e),s=[];for(let e=0;e<10;e++)0==t?s.push(e*i/10*this.salesPrice):1==t&&s.push(e*i/10);return s}_rendering(t,e){this.chart._plotRect;let i=e.engine,s=this.chart.axisX,r=this.chart.axisY,a=this.getValues(1),n=this.getValues(0),l=this.salesPrice-this.variableCost,h=this.fixedCost/l,o=this.fixedCost+n[n.length-1]-l*a[a.length-1],u=this.chart._plotrectId;i.startGroup(null,u);if(this.style&&this.style.fill){i.fill=this.style.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(n[n.length-1]),r.convert(h*this.salesPrice),r.convert(o)]);i.fill=null}if(this.altStyle&&this.altStyle.fill){i.fill=this.altStyle.fill;i.drawPolygon([s.convert(a[0]),s.convert(h),s.convert(a[0])],[r.convert(0),r.convert(h*this.salesPrice),r.convert(this.fixedCost)]);i.fill=null}let _=this.styles?this.styles.safetyMargin:void 0,c=this.styles?this.styles.salesRevenue:void 0,m=this.styles?this.styles.totalCost:void 0,d=this.styles?this.styles.fixedCost:void 0,g=this.styles?this.styles.variableCost:void 0,f=this.styles?this.styles.marginalProfit:void 0,p=this.styles?this.styles.breakEven:void 0;if(_&&_.fill){i.fill=_.fill;i.drawPolygon([s.convert(a[a.length-1]),s.convert(h),s.convert(a[a.length-1])],[r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)),r.convert(this.fixedCost),r.convert(this.fixedCost)]);i.fill=null}if(c){this._setStyle(i,c);i.drawLine(s.convert(0),r.convert(0),s.convert(a[a.length-1]),r.convert(n[n.length-1]))}if(m){this._setStyle(i,m);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(o))}if(d){this._setStyle(i,d);i.drawLine(s.convert(a[0]),r.convert(this.fixedCost),s.convert(a[a.length-1]),r.convert(this.fixedCost))}if(g){this._setStyle(i,g);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*this.variableCost))}if(f){this._setStyle(i,f);i.drawLine(s.convert(a[0]),r.convert(0),s.convert(a[a.length-1]),r.convert(a[a.length-1]*(this.salesPrice-this.variableCost)))}if(p){this._setStyle(i,p);i.drawLine(s.convert(h),r.convert(0),s.convert(h),r.convert(h*this.salesPrice));i.drawLine(s.convert(0),r.convert(h*this.salesPrice),s.convert(h),r.convert(h*this.salesPrice))}i.endGroup()}_setStyle(t,e){t.stroke=e.stroke;t.strokeWidth=e.strokeWidth?e.strokeWidth:3}_getName(t){var e=void 0;if(this.name)if(this.name.indexOf(",")){var i=this.name.split(",");i&&i.length-1>=t&&(e=i[t].trim())}else e=this.name;return e}legendItemLength(){return 9}_getStyle(t){let e=null;switch(t){case 0:e=this.style;break;case 1:e=this.altStyle;break;case 2:e=this.styles?this.styles.safetyMargin:null;break;case 3:e=this.styles?this.styles.salesRevenue:null;break;case 4:e=this.styles?this.styles.totalCost:null;break;case 5:e=this.styles?this.styles.fixedCost:null;break;case 6:e=this.styles?this.styles.variableCost:null;break;case 7:e=this.styles?this.styles.marginalProfit:null;break;case 8:e=this.styles?this.styles.breakEven:null}return e}measureLegendItem(t,e){var i=this._getName(e),s=new Size(0,0),r=this._getStyle(e);i&&r&&(s=this._measureLegendItem(t,this._getName(e)));return s}drawLegendItem(t,e,i){var s=this._getStyle(i),r=this._getName(i);r&&s&&this._drawLegendItem(t,e,i<3?5:3,r,s,this.symbolStyle)}}export var QuartileCalculation;!function(t){t[t.InclusiveMedian=0]="InclusiveMedian";t[t.ExclusiveMedian=1]="ExclusiveMedian"}(QuartileCalculation||(QuartileCalculation={}));export class BoxWhisker extends SeriesBase{constructor(t){super();this._groupWidth=.8;this._gapWidth=.1;this._showInnerPoints=!1;this._showOutliers=!1;this._quartileCalculation=QuartileCalculation.InclusiveMedian;this._chartType=ChartType.Bar;this.rendering.addHandler(this._rendering,this);this.initialize(t)}_initProperties(t){copy(this,t)}_clearValues(){super._clearValues()}get quartileCalculation(){return this._quartileCalculation}set quartileCalculation(t){if((t=asEnum(t,QuartileCalculation,!0))!=this._quartileCalculation){this._quartileCalculation=t;this._invalidate()}}get groupWidth(){return this._groupWidth}set groupWidth(t){if(t!=this._groupWidth&&t>=0&&t<=1){this._groupWidth=asNumber(t,!0);this._invalidate()}}get gapWidth(){return this._gapWidth}set gapWidth(t){if(t!=this._gapWidth&&t>=0&&t<=1){this._gapWidth=asNumber(t,!0);this._invalidate()}}get showMeanLine(){return this._showMeanLine}set showMeanLine(t){if(t!=this._showMeanLine){this._showMeanLine=asBoolean(t,!0);this._invalidate()}}get meanLineStyle(){return this._meanLineStyle}set meanLineStyle(t){if(t!=this._meanLineStyle){this._meanLineStyle=t;this._invalidate()}}get showMeanMarker(){return this._showMeanMarker}set showMeanMarker(t){if(t!=this._showMeanMarker){this._showMeanMarker=asBoolean(t,!0);this._invalidate()}}get meanMarkerStyle(){return this._meanMarkerStyle}set meanMarkerStyle(t){if(t!=this._meanMarkerStyle){this._meanMarkerStyle=t;this._invalidate()}}get showInnerPoints(){return this._showInnerPoints}set showInnerPoints(t){if(t!=this._showInnerPoints){this._showInnerPoints=asBoolean(t,!0);this._invalidate()}}get showOutliers(){return this._showOutliers}set showOutliers(t){if(t!=this._showOutliers){this._showOutliers=asBoolean(t,!0);this._invalidate()}}_rendering(t,e){e.cancel=!0;var i,s,r=this,a=r.chart,n=(r.chart,r._getAxisX()),l=r._getAxisY(),h=e.index,o=e.count,u=e.engine,_=this._plotter,c=a.series.indexOf(r),m=asType(r,SeriesBase),d=this.quartileCalculation,g=this.showOutliers,f=this.groupWidth,p=(null==this.gapWidth?.2:this.gapWidth)/2;h=h||0;var v=f/(o=o||1),y=r.getValues(0),x=r.getValues(1);if(!y)return;x||(x=_.dataInfo.getXVals());if(x){var M=_.dataInfo.getDeltaX();if(M>0){f*=M;v*=M}}var S=m._getSymbolFill(c),b=m._getAltSymbolFill(c)||S,w=m._getSymbolStroke(c),V=m._getAltSymbolStroke(c)||w,L=y.length;null!=x&&(L=Math.min(L,x.length));var P,E,T=0,X=0;let B=_.getItemFormatter(r);if(_.rotated){(T=n.origin||T)<n.actualMin?T=n.actualMin:T>n.actualMax&&(T=n.actualMax);n.convert(T);var C=l.actualMin,A=l.actualMax;for(O=0;O<L;O++){N=x?x[O]:O;if(null==(k=y[O])||0===k.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,O));if(_._getSymbolStyles){S=(I=_._getSymbolStyles(O))&&I.fill?I.fill:S;b=I&&I.fill?I.fill:b;w=I&&I.stroke?I.fill:w;V=I&&I.stroke?I.fill:V}P=k[0]>0?S:b;E=k[0]>0?w:V;u.fill=P;u.stroke=E;if(_DataInfo.isValid(N)&&isArray(k)&&k.length>0&&_DataInfo.isValid(k[0])){var H=N-.5*f+h*v,Y=N-.5*f+(h+1)*v;Y-=F=(Y-H)*p;if((H+=F)<C&&Y<C||H>A&&Y>A)continue;H=l.convert(H);Y=l.convert(Y);R=new _BoxPlot(k,d,g),G={min:n.convert(R.min),max:n.convert(R.max),firstQuartile:n.convert(R.firstQuartile),median:n.convert(R.median),thirdQuartile:n.convert(R.thirdQuartile),mean:n.convert(R.mean),outlierPoints:this._convertPoints(R.outlierPoints,n),innerPoints:this._convertPoints(R.innerPoints,n)},z=new Rect(Math.min(G.min,G.max),Math.min(H,Y),Math.abs(G.max-G.min),Math.abs(Y-H)),K=new _RectArea(z);var q={min:Math.min(H,Y),median:(H+Y)/2,max:Math.max(Y,H)};if(B){u.startGroup();(U=new HitTestInfo(a,new Point((G.min+G.max)/2,q.median),ChartElement.SeriesSymbol))._setData(r,O);B(u,U,()=>{this._drawBoxWhisker(u,G,q,i,s,r);i=G;s=q});u.endGroup()}else{this._drawBoxWhisker(u,G,q,i,s,r);i=G;s=q}r._setPointIndex(O,X);X++;(W=new _DataPoint(c,O,k,N)).item=R;K.tag=W;_.hitTester.add(K,c);R.outlierPoints&&R.outlierPoints.length&&R.outlierPoints.forEach((t,e)=>{let i=G.outlierPoints[e],s=new _CircleArea(new Point(i,z.top+z.height/2),2);s.tag=W;_.hitTester.add(s,c)})}}}else{(T=l.origin||T)<l.actualMin?T=l.actualMin:T>l.actualMax&&(T=l.actualMax);l.convert(T),n.actualMin,n.actualMax;for(var O=0;O<L;O++){var k,N=x?x[O]:O;if(null==(k=y[O])||0===k.length)return;_._getSymbolOrigin&&l.convert(_._getSymbolOrigin(T,O,L));if(_._getSymbolStyles){var I;S=(I=_._getSymbolStyles(O,L))&&I.fill?I.fill:S;b=I&&I.fill?I.fill:b;w=I&&I.stroke?I.stroke:w;V=I&&I.stroke?I.stroke:V}P=k[0]>0?S:b;E=k[0]>0?w:V;u.fill=P;u.stroke=E;if(_DataInfo.isValid(N)&&isArray(k)&&k.length>0&&_DataInfo.isValid(k[0])){var F,D=N-.5*f+h*v,Q=N-.5*f+(h+1)*v;D+=F=(Q-D)*p;Q-=F;D=n.convert(D);Q=n.convert(Q);if(!_DataInfo.isValid(D)||!_DataInfo.isValid(Q))continue;var W,R=new _BoxPlot(k,d,g),G={min:l.convert(R.min),max:l.convert(R.max),firstQuartile:l.convert(R.firstQuartile),median:l.convert(R.median),thirdQuartile:l.convert(R.thirdQuartile),mean:l.convert(R.mean),outlierPoints:this._convertPoints(R.outlierPoints,l),innerPoints:this._convertPoints(R.innerPoints,l)},z=new Rect(Math.min(D,Q),Math.min(G.min,G.max),Math.abs(Q-D),Math.abs(G.max-G.min)),K=new _RectArea(z),j={min:Math.min(D,Q),median:(D+Q)/2,max:Math.max(D,Q)};if(B){u.startGroup();var U;(U=new HitTestInfo(a,new Point(j.median,(G.min+G.max)/2),ChartElement.SeriesSymbol))._setData(r,O);B(u,U,()=>{this._drawBoxWhisker(u,j,G,i,s,r);i=j;s=G});u.endGroup()}else{this._drawBoxWhisker(u,j,G,i,s,r);i=j;s=G}r._setPointIndex(O,X);X++;(W=new _DataPoint(c,O,N,k)).item=R;K.tag=W;_.hitTester.add(K,c);R.outlierPoints&&R.outlierPoints.length&&R.outlierPoints.forEach((t,e)=>{let i=G.outlierPoints[e],s=new _CircleArea(new Point(z.left+z.width/2,i),2);s.tag=W;_.hitTester.add(s,c)})}}}}_convertPoints(t,e){return t.map(t=>e.convert(t))}_drawBoxWhisker(t,e,i,s,r,a){var n=a.symbolStyle,l=this.showInnerPoints,h=this.showOutliers,o=this.showMeanLine,u=this.meanLineStyle,_=this.showMeanMarker,c=this.meanMarkerStyle,m=this._plotter;t.startGroup("box-plot");t.strokeWidth=1;if(m.rotated){t.drawLine(e.min,(i.min+i.median)/2,e.min,(i.max+i.median)/2,null,n);t.drawLine(e.min,i.median,e.firstQuartile,i.median,null,n);t.drawRect(Math.min(e.firstQuartile,e.thirdQuartile),Math.min(i.min,i.max),Math.abs(e.thirdQuartile-e.firstQuartile),Math.abs(i.max-i.min),null,n);t.drawLine(e.median,i.min,e.median,i.max,null,n);t.drawLine(e.max,i.median,e.thirdQuartile,i.median,null,n);t.drawLine(e.max,(i.min+i.median)/2,e.max,(i.max+i.median)/2,null,n);o&&s&&r&&t.drawLine(e.mean,i.median,s.mean,r.median,"box-whisker-mean-line",u||n);if(_){var d=Math.abs(i.median-i.min)/2;t.drawLine(e.mean-d,i.median-d,e.mean+d,i.median+d,null,c||n);t.drawLine(e.mean+d,i.median-d,e.mean-d,i.median+d,null,c||n)}h&&e.outlierPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)});l&&e.innerPoints.forEach(e=>{t.drawPieSegment(e,i.median,2,0,2*Math.PI,null,n)})}else{t.drawLine((e.min+e.median)/2,i.min,(e.max+e.median)/2,i.min,null,n);t.drawLine(e.median,i.min,e.median,i.firstQuartile,null,n);t.drawRect(Math.min(e.min,e.max),Math.min(i.firstQuartile,i.thirdQuartile),Math.abs(e.max-e.min),Math.abs(i.thirdQuartile-i.firstQuartile),null,n);t.drawLine(e.min,i.median,e.max,i.median,null,n);t.drawLine(e.median,i.max,e.median,i.thirdQuartile,null,n);t.drawLine((e.min+e.median)/2,i.max,(e.max+e.median)/2,i.max,null,n);o&&s&&r&&t.drawLine(e.median,i.mean,s.median,r.mean,"box-whisker-mean-line",u||n);if(_){d=Math.abs(e.median-e.min)/2;t.drawLine(e.median-d,i.mean-d,e.median+d,i.mean+d,null,c||n);t.drawLine(e.median-d,i.mean+d,e.median+d,i.mean-d,null,c||n)}h&&i.outlierPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)});l&&i.innerPoints.forEach(i=>{t.drawPieSegment(e.median,i,2,0,2*Math.PI,null,n)})}t.endGroup()}_renderLabels(t,e,i,s){var r=this,a=this._plotter,n=e.length,l=i.dataLabel,h=l.border,o=l.offset,u=l.connectingLine,_="dataY";a.rotated&&(_="dataX");void 0===o&&(o=u?16:0);h&&(o-=2);let c=[];for(var m=0;m<n;m++){var d=e[m],g=d.tag,f=asType(g,_DataPoint,!0);if(f&&-1==c.indexOf(f)){c.push(f);var p=g.item,v=g.y;g[_]=p.min;g.yfmt=p.min;g.y=p.min;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.firstQuartile;g.yfmt=p.firstQuartile;g.y=p.firstQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.median;g.yfmt=p.median;g.y=p.median;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.thirdQuartile;g.yfmt=p.thirdQuartile;g.y=p.thirdQuartile;this._plotter._renderLabel(t,d,f,i,l,r,o,s);g[_]=p.max;g.yfmt=p.max;g.y=p.max;this._plotter._renderLabel(t,d,f,i,l,r,o,s);if(this.showMeanMarker){let e=Number(p.mean.toFixed(2));g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)}p.showOutliers&&p.outlierPoints&&p.outlierPoints.forEach(e=>{g[_]=e;g.yfmt=e;g.y=e;this._plotter._renderLabel(t,d,f,i,l,r,o,s)});g.y=v}}}}export class _BoxPlot{constructor(t,e,i){this._outlierPoints=[];this._innerPoints=[];this._data=t;this._quartileCalculation=e;this._showOutliers=i;this._parse()}get showOutliers(){return this._showOutliers}get min(){return this._min}get max(){return this._max}get mean(){return this._mean}get firstQuartile(){return this._firstQuartile}get thirdQuartile(){return this._thirdQuartile}get median(){return this._median}get outlierPoints(){return this._outlierPoints}get innerPoints(){return this._innerPoints}_parse(){var t=this._data.length,e=this._data,i=0;this._outlierPoints=[];this._innerPoints=[];e.sort((t,e)=>t-e);e.some(t=>{if(null==t)return!1;this._min=t;return!0});this._max=null==e[t-1]?0:e[t-1];if(this._quartileCalculation===QuartileCalculation.InclusiveMedian){this._firstQuartile=this._quartileInc(e,.25);this._median=this._quartileInc(e,.5);this._thirdQuartile=this._quartileInc(e,.75)}else{this._firstQuartile=this._quartileExc(e,.25);this._median=this._quartileExc(e,.5);this._thirdQuartile=this._quartileExc(e,.75)}this._iqr=1.5*Math.abs(this._thirdQuartile-this._firstQuartile);var s=this._firstQuartile-this._iqr,r=this._thirdQuartile+this._iqr;if(this._showOutliers){var a=this._max;this._max=this._min;this._min=a;this._data.forEach(t=>{i+=t;if(t<s||t>r)this._outlierPoints.push(t);else{t<this._min&&(this._min=t);t>this._max&&(this._max=t)}})}else i=this._data.reduce((t,e)=>t+e,0);this._innerPoints=this._data.filter(t=>{if(t>this._min&&t<this._max)return!0});this._mean=i/t}_quartileInc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];a=(i=(n-1)*e+1)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}_quartileExc(t,e){var i,s,r,a,n=t.length;if(1===n)return t[0];if(2===n)return t[Math.round(e)];a=(i=(n+1)*e)-(s=Math.floor(i));return(r=t[s-1])+(t[s]-r)*a}}_registerModule("wijmo.chart.analytics",selfModule); |
/*! | ||
* | ||
* Wijmo Library 5.20241.19 | ||
* Wijmo Library 5.20242.21 | ||
* https://developer.mescius.com/wijmo | ||
@@ -309,2 +309,4 @@ * | ||
private _helper; | ||
private _minX; | ||
private _maxX; | ||
/** | ||
@@ -330,2 +332,15 @@ * Initializes a new instance of the {@link TrendLine} class. | ||
/** | ||
* Gets or sets the minimal x-value. | ||
* | ||
* The default value is null and the minimum is calculated automatically from | ||
* original data range. | ||
*/ | ||
minX: number; | ||
/** | ||
* Gets or sets the maximal x-value. | ||
* The default value is null and the maximum is calculated automatically from | ||
* original data range. | ||
*/ | ||
maxX: number; | ||
/** | ||
* Gets the coefficients of the equation. | ||
@@ -332,0 +347,0 @@ */ |
{ | ||
"name": "@grapecity/wijmo.chart.analytics", | ||
"version": "5.20241.19", | ||
"version": "5.20242.21", | ||
"description": "UI library for pure JS, Angular, React, Vue and more...", | ||
@@ -10,4 +10,4 @@ "author": "MESCIUS inc", | ||
"dependencies": { | ||
"@grapecity/wijmo": "5.20241.19", | ||
"@grapecity/wijmo.chart": "5.20241.19" | ||
"@grapecity/wijmo": "5.20242.21", | ||
"@grapecity/wijmo.chart": "5.20242.21" | ||
}, | ||
@@ -14,0 +14,0 @@ "homepage": "https://developer.mescius.com/wijmo", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
306671
786
1
+ Added@grapecity/wijmo@5.20242.21(transitive)
+ Added@grapecity/wijmo.chart@5.20242.21(transitive)
+ Added@grapecity/wijmo.styles@5.20242.21(transitive)
- Removed@grapecity/wijmo@5.20241.19(transitive)
- Removed@grapecity/wijmo.chart@5.20241.19(transitive)
- Removed@grapecity/wijmo.styles@5.20241.19(transitive)
Updated@grapecity/wijmo@5.20242.21